Red:1
项目地址:https://download.vulnhub.com/red/Red.ova
是一个打包好的镜像文件
注意:导入 ova 时一定要选择我已移动,否则没网
使用 Nmap 扫描出开放服务及操作系统版本

文件包含
NetworkFileManagerPHP
发现 /wp-admin/ 目录,打开首页没啥东西

查看源代码,我们发现主机名为 redrocks.win

所以让我们将其添加到 hosts 文件中

嘲讽我们,暗示我们的网站被黑了,他甚至提到网站里有某种后门

点进这篇博客

查看源代码找到注释

AI 梭哈一下,提示扫描后台

发现一个 NetworkFileManagerPHP.php 文件

FUZZ 出参数是 key,测试发现不是 RCE,而是文件包含

弱口令
SSH
PHP 协议查看网页源码

翻看源码,正常的 LFI 代码,但是有一段 Base64 注释

AI 梭哈注释,提示是 Hashcat Rules

查看 wp-config.php

Hashcat 的规则引擎可以对字典中的每个基础单词进行系统化变形,自动生成大量密码变体
1 | 基础单词: "password" |
将上面的数据库密码保存然后进行变形
1 | # --stdout:不破解哈希,仅输出结果 |

然后使用九头蛇爆破密码

提权
/etc/sudoers 配置不当
连接上后检查自身权限,可以使用 time 提权

但是过一段时间就会踢掉我们

并且还会换密码

time 提权
快速提权到 ippsec 用户
1 | sudo -u ippsec /usr/bin/time /bin/bash |
/usr/bin/time 用于测量并报告另一个程序执行所消耗的系统资源(时间、内存等),它接收一个命令作为参数并执行它

反弹 Shell 稳定化
快速创建一个反弹 Shell 脚本并运行

思路如下:
使用 Python 升级 PTY
python3 -c 'import pty;pty.spawn("/bin/bash")'
按下 Ctrl+Z,将
nc进程放入后台stty raw -echo;fg:将你 Kali 本地的终端设置为 “原始模式”-echo:关闭本地回显,因为远端的 Bash 已经会把你输入的命令回显给你了,如果本地再回显一次,你打的每个字母都会显示两遍fg:将刚才挂起的 nc 进程重新调回前台
export TERM=xterm:修复终端显示
防掉线原理:
在 Raw 模式下,本地终端驱动程序不再拦截和处理任何特殊控制字符(如 Ctrl+C, Ctrl+Z, Ctrl+\)
当你在键盘上按下 Ctrl+C 时,Kali 不会去杀
nc进程,而是将 Ctrl+C 的原始字节流(0x03)直接通过网络透传给远端的目标机器远端的 Bash 接收到
0x03,只会终止远端正在运行的命令(比如ping或find),而不会杀死你的nc连接
定时任务
快速定位属于特定用户组(ippsec)的目录
1 | find / -group ippsec -type d 2>/dev/null | grep -v proc |
-v:表示反向匹配(排除)。这里的作用是排除路径中包含proc字样的结果(主要是为了过滤掉/proc伪文件系统)

我们拥有其写入权限

在这里面有两个文件

上传 psps64s 文件

运行 psps64s 发现这两文件有定时任务

删除后重新写成一个反弹 Shell

等待一段时间即可拿到 Root Shell
