vulnhub靶机Earth

文章描述了一个网络安全场景,涉及端口扫描发现80端口的admin页面和443端口的加密信息。通过Python进行异或加密解密,得到密码并利用它在80端口的admin页面登录。此外,文章还讨论了如何绕过IP限制执行系统命令以及在suid提权过程中遇到的挑战,最终通过strace调试工具解决问题。
摘要由CSDN通过智能技术生成

端口扫描

 这里注意修改一下host文件,要不然解析不到1.1.1.131。

这里看到python3.9就应该想到可能是django

web探测

80端口处存在admin页面

 

 443和80分别开放了不同的服务

 这里在443处可以通过robots发现一个文件,但是没有给我们后缀。

这里可以用现有工具跑一下存在这样一个文件

testingnotes.txt 

这里提供了几个信息,第一采用异或加密,第二有testdata.txt这个文件去用来做加密测试,第三 terra用作admin的账户名。

加密内容:

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.
 

那么这里很容易应该想到是和80端口我们最初的下面三个信息做异或,怎么做呢,我们可以通过测试发现最后输出结果都是16进制的组合

奇数为减的绝对值,偶数相加。  这个规律其实也没什么用。。。。。。。。。。。

根据异或加密原理,a xor b = c,那么c xor b = a 相当于按位取反再取反。

到这里我卡了一段时间,一是忘了python很多东西写不出异或代码,二没找到现成工具

import binascii

entry_str = '2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a'
pass_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."
#将pass_txt转换成16进制
pass_txt_16 = binascii.b2a_hex(pass_txt.encode(encoding="utf-8")).decode('utf-8').replace("b'",'')
#进行xor运算
result = hex(int(entry_str,16)^int(pass_txt_16,16)).replace('0x','')
#将运算结果转换成字符串
datatext = binascii.unhexlify(result).decode('utf-8')
print(datatext)

这里经过测试发现第二个是正确的密码

解密内容

earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimat
 

猜测可能是earthclimatechangebad4humans

通过之前得到的账号在80admin处可以登录

命令执行 

很显然这里是执行系统命令的地方但是可以发现对ip地址做出了限制

这里就涉及到一个绕过ip限制,可以通过16进制编码绕过,也可以通过

 对要执行的命令先base64编码再解码,从而绕过ip检查

 可以看到已经成功反弹shell。

suid提权

find / -user root -perm /4000 2>/dev/null

可以找到/usr/bin/reset_root这样一条指令,但是运行时候会报错,做到这自己就没有思路了。无奈只能去看别人的wp

这里可以看到文件源码中出现了改变密码为Earth的字样。 

这里也是简单学到了strace这个工具,一个调试器,告诉你程序哪个地方运行出现了问题。

首先把这个文件下载下来用strace去运行,然后会提示缺少三个文件。

/dev/shm/kHgTFI5G

/dev/shm/Zw7bV9U5

/tmp/kcM0Wewe

 

再去运行发现密码已经被重置为Earth

 

总结

整体难度不大,但是遇到考察的东西可能会比较多,如果不借助别的工具自己写xor脚本还有最后提权的调试。对我来说这个靶机算中等难度。遇见了很多自己接触比较少的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值