本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.6
nmap -sC -sV -p- -Pn -oN popcorn.nmap 10.10.10.6
nmap扫描结果
就开了两个端口,我们直接访问80端口
爆破下目录
访问目录torrent
经过测试这里存在万能密码,使用万能密码直接登录成功,当然这里也是可以直接注册一个用户然后登录进去
进去之后是个上传页面,需要上传torrent的文件,在谷歌上随便搜索了一个这类的文件上传并使用burpsuite抓包
发现上面有个Edit this torrent 点击进去之后可以上传图片,正常上传了一个图片是没问题,但是上传一个php格式的文件,显示无效,尝试上传绕过,最终确认只需要使用burpsuite在上传的时候更改Content-Type的格式为image/png 等图片格式即可绕过,最后我使用 https://github.com/pentestmonkey/php-reverse-shell 上传php ,然后通过burpsuite抓包更改Content-type成功上传文件,上传成功之后猜测上传目录是upload 最终上传成功后的地址:10.10.10.6/torrent/upload
访问我们上传的反弹shell代码成功反弹shell
升级为tty-shell
通过下面命令查找家目录有价值的信息
find /home -printf "%f %p %u %g %m " 2>/dev/null |column -t
发现了隐藏文件.cache 含有motd等关键字,可以进行提权,提权前确认下信息
确认可以提权,提权相关的exploit
https://www.exploit-db.com/exploits/14339
https://www.exploit-db.com/exploits/14273
大概原理清楚就可以,我这里手动利用此漏洞,通过上面提供的exploit有点问题,没成功,所以就自己直接手动搞,具体如下:
创建两个目录.ssh和.cache
在目标靶机上生成ssh 可以的密钥和公钥
上述一直敲击3个回车即可,生成完成之后更改对应公钥名称和权限然后尝试本地登录是否成功,确认没有问题
确认上登录没有问题,退出登录查看当前/etc/passwd的权限,然后尝试触发漏洞,最终的目的是将/etc/passwd文件的拥有人和拥有组都改成当前靶机的用户,然后就可以通过添加uid为0的用户进行提权
上述是删除原有的.cache文件,然后创建软连接到/etc/passwd 确认没有问题之后开始触发漏洞,触发漏洞很简单,就是再登录一次刚才使用密钥登录的用户即可
上述触发成功,发现/etc/passwd的权限已经被更改为www-data,那么就可以使用当前用户直接更改此文件添加用户进行提权,下面是添加用户提权的操作
增加用户提权 www-data@popcorn:/var/www$ openssl passwd bmfx DcqfpgDB7cBZU www-data@popcorn:/var/www$ echo "bmfx:DcqfpgDB7cBZU:0:0:root:/root:/bin/bash" >> /etc/passwd
上述手动提权的思路对应的exploit https://www.exploit-db.com/exploits/14339 此漏洞刚开始利用的时候没有成功,最后找到原因了,具体如下:
需要注意的点:
- 下载到的exploit代码是在Windows环境下编写的所以含有回车和换行符,需要在Linux环境下使用dos2unix进行转换后再传到目标靶机,也可以直接复制到目标靶机
- 上述代码执行之前需要手动通过ssh-keygen生成公钥和密码,不这么做的话,我刚开始执行的时候会让你输入当前反弹shell用户www-data的密码,反弹的shell当然不知道密码所以没法继续,原因也是对应的exploit里面在执行的时候先默认你含有公钥和私钥然后去触发漏洞去连接目标靶机,然而没有私钥和公钥当然会让你输入密码了
- 将上述生成好的公钥和私钥,其中复制一份公钥到当前靶机用户的家目录且更改名称为 authorized_keys ; cp .ssh/id_rsa.pub .ssh/authorized_keys
- 上述是我这边测试的结果,实际代码中也会给使用ssh-keygen创建公钥和私钥,奇怪的是没有达到效果,而且我尝试删除手动创建的公钥和私钥,下面的exploit就利用失败
- 所以上述都操作完成之后,直接利用漏洞即可成功
其他漏洞提权
https://www.exploit-db.com/exploits/15704
https://www.exploit-db.com/raw/40839
上述两个exploit下载到目标靶机直接gcc编译即可执行提权成功,不演示了