靶机地址:http://www./entry/five86-1,417/ 技术点opennetadmin v18.1.1 RCE
破解Linux中经过HASH加密的密码 crunch 生成字典
john 和hashcat 破解密码
hash-identifier 查看HASH类型
SSH免密登陆 Linux查看当前用户权限可读文件和可执行命令
目标发现nmap -sP 参数使用 ping 扫描局域网主机,目的地址为 192.168.56.5 ![发现目标地址](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_1_20210118045346197.png)
nmap -sS -A -v 192.168.56.5 看一下详细的扫描结果 -sS 是半开放扫描,-A 是进行操作系统指纹和版本检测,-v 输出详细情况 ![输出详细情况](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_2_20210118045346682.png)
可以看到开放了 22、80、10000 三个端口,并且 80 端口存在 robots.txt 和路径 /ona 漏洞发现与利用访问http://192.168.56.5是个空白页面,然后去访问 /ona,可以看到是 opennetadmin 的管理页面,并且版本是 18.1.1 ![访问管理页面](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_3_20210118045347213.png)
![管理页面](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_4_20210118045347369.png)
v18.1.1 的opennetadmin 是存在RCE漏洞的,在github找个exp打过去就可以,https://github.com/amriunix/ona-rce
![在github找个exp打过去](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_5_20210118045347650.png)
或者是使用 searchsploit ,不过这里有个坑点,就是要对这个bash脚本进行转换格式,否则会报错,使用dos2unix 47691.sh 这个命令,而且这里的shell不能转成TTY ![使用 searchsploit](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_6_20210118045347900.png)
![转换格式](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_7_20210118045348135.png)
下面的问题就是如何进行提权了,经过一番测试,发现这里无法执行的命令是没有回显的,并且不能执行cd 命令,但是可以使用ls 和cat 命令 ![命令是没有回显](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_8_20210118045348354.png)
![命令是没有回显](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_9_20210118045348557.png)
这里肯定是有权限控制的,可以使用find / -type f -user www-data 命令查看这个用户可以读取的文件,除了/proc 就是/var/www/html/reports/.htaccess 和/var/log/ona.log ![查看这个用户可以读取的文件](http://image109.360doc.com/DownloadImg/2021/01/1816/213329744_10_20210118045348682.png)
读取var/www/html/reports/.htaccess 可以找到AuthUserFile 的路径/var/www/.htpasswd ![找到路径](http://pubimage.360doc.com/wz/default.gif)
读取这个文件如下,可以得到用户名douglas 和HASH的密码$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1 ,给的提示是只包含aefhrt的十个字符 ![得到用户名和HASH的密码](http://pubimage.360doc.com/wz/default.gif)
douglas:$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1
# To make things slightly less painful (a standard dictionary will likely fail),
# use the following character set for this 10 character password: aefhrt 先用hash-identifier 看一下是哪个HASH,结果 hash -type : [+] MD5(APR) ![看一下是哪个HASH](http://pubimage.360doc.com/wz/default.gif)
然后使用crunch 生成对应的字典,命令格式crunch <min-len> <max-len> [charset string] [options] ,这里生成只包含aefhrt的10个字符,就可以使用如下命令crunch 10 10 aefhrt -o pass.txt ,更多的介绍可以看Linux下的字典生成工具Crunch和crunch命令详解 ![生成对应的字典](http://pubimage.360doc.com/wz/default.gif)
最后就要用大名鼎鼎的hashcat 去破解这个HASH,命令格式hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]... ,这里使用的命令为hashcat -m 1600 -a 0 -o res hash.txt pass.txt -m是HASH类别,-a是攻击方式,-o是输出结果,更多的参数可以参考Hashcat密码破解攻略。这里在kali里面运行一直报错,就转移到wsl2里面了,命令hashcat -m 1600 -a 0 -o res hash.txt pass.txt --force ![在kali里面运行一直报错](http://pubimage.360doc.com/wz/default.gif)
![密码](http://pubimage.360doc.com/wz/default.gif)
最终密码为 fatherrrrr 或者这里也可以使用john 来进行破解john --wordlist=pass.txt hash.txt ,但是速度可能有丶问题 ![进行破解](http://pubimage.360doc.com/wz/default.gif)
使用ssh连接ssh douglas@192.168.56.5 ![用ssh连接](http://pubimage.360doc.com/wz/default.gif)
这里是个TTY,但还是存在权限控制,使用sudo -l 看一下可以使用什么命令,结果是(jen) NOPASSWD: /bin/cp ,这里就有点奇怪了,douglas 可以用jen 的身份运行cp 命令 ![存在权限控制](http://pubimage.360doc.com/wz/default.gif)
先去访问一下home 目录,发现douglas 和jen 这两个用户,但是只能用jen 的cp 命令,且没有jen 的密码 ![访问一下home目录](http://pubimage.360doc.com/wz/default.gif)
值得注意的是,如果jen 用户下的/home/jen/.ssh/authorized_keys 包含douglas 的公钥,那就可以用douglas 的id_rsa 文件登陆jen 的ssh,也即免密登陆jen 的ssh。这里复制到/tmp 目录下是因为jen 没有权限访问douglas 目录下的文件 cp .ssh/id_rsa.pub /tmp/authorized_keys
chmod 777 /tmp/authorized_keys
sudo -u jen /bin/cp /tmp/authorized_keys /home/jen/.ssh/ ![用douglas的id_rsa文件登陆jen的ssh](http://pubimage.360doc.com/wz/default.gif)
然后用ssh连接ssh -i id_rsa jen@127.0.0.1 ![用ssh连接](http://pubimage.360doc.com/wz/default.gif)
成功登陆jen ,看到提示mail ,还是先执行echo $(find / -type f -user jen) > 1.txt 看一下,有一个/var/mail/jen 的文件可以读取 ![成功登陆jen](http://pubimage.360doc.com/wz/default.gif)
或者这里直接输入mail 的命令也可以看到 ![直接输入mail的命令](http://pubimage.360doc.com/wz/default.gif)
读取一下,其内容如下 ![读取其内容](http://pubimage.360doc.com/wz/default.gif)
关键词:change Moss's password 、his password is now Fire!Fire! 接着ssh连接moss 用户ssh moss@127.0.0.1 ![ssh连接moss用户](http://pubimage.360doc.com/wz/default.gif)
在当前目录发现了一个隐藏目录.games ,访问后发现一个root 权限的二进制文件upyourgame ![二进制文件](http://pubimage.360doc.com/wz/default.gif)
运行之后就发现自己神奇的变成root用户辣 ![运行之后](http://pubimage.360doc.com/wz/default.gif)
最后,flag在/root 中,为8f3b38dd95eccf600593da4522251746 ![flag](http://pubimage.360doc.com/wz/default.gif)
彩蛋时刻,其实在拿到douglas 的密码之后就可以用虚拟机登陆,然后操作,这里是用的moss 的账号密码,也是同样的效果 ![彩蛋时刻](http://pubimage.360doc.com/wz/default.gif)
相关实验:VulnHub渗透测试实战靶场Node 1.0 (Node 1.0 是一个难度为中等的Boot2root/CTF挑战,靶场环境最初由 HackTheBox 创建,实验目的是获取两个flag)
|