从Web渗透进阶内网,横向移动和域控突破怎么练
很多从Web渗透转内网的朋友,刚开始都会有一种“失重感”。Web端有明确的URL、参数和响应,一切似乎都在掌控之中;可一旦进入内网,面对的却是网段、凭证、域信任关系这些更加抽象的概念。今天我想聊聊,怎么从一台外网跳板机出发,一步步摸到域控的核心,以及这个过程中那些容易踩的坑。
靶场搭建:先画好地图再出发
练内网渗透,没有合适的靶场就像闭着眼睛走迷宫。我推荐的起步架构是1台外网机 + 2台内网机 + 1台域控,四台机器构成一个最小化的企业内网模型。
外网机通常配置双网卡,一张对外暴露服务(模拟被攻破的Web服务器),另一张接入内网网段。两台内网机分别扮演普通办公终端和数据库服务器,域控则负责整个环境的身份认证与策略下发。这个架构的优势在于路径清晰:外网机是入口,内网机是横向移动的中转站,域控是最终目标。
搭建时建议用VMware或VirtualBox,域控装Windows Server 2016/2019,其余用Windows 10即可。网络模式上,外网机第一张网卡用NAT或桥接模拟公网,第二张与内网机、域控同用**仅主机模式(Host-Only)**隔离。很多人图省事把四台机器全放同一个网段,结果信息收集阶段就一团乱麻,根本分不清流量走向。
信息收集:内网渗透的“望远镜”
拿到外网机的初始shell后,第一件事不是急着翻密码,而是搞清楚自己在哪里、能去哪里。
Web渗透里的信息收集偏向“点”——一个域名、一个接口、一个参数;内网则是“面”的扫描:本机IP、所在网段、域成员关系、可访问的服务、防火墙策略,缺一不可。
常用命令组合如下:
# 快速查看本机网络配置ipconfig /all# 查看当前用户及权限whoami/all# 查看域信息net view /domain# 查看本机共享net share# 查看ARP缓存,推测内网活跃主机arp-aLinux环境下则用ifconfig、netstat -tulnp、cat /etc/resolv.conf等。关键是养成多维度交叉验证的习惯:ARP缓存看到的主机,再用ping或nmap扫一遍确认存活;DNS服务器指向的往往是域控;netstat里的 Established 连接可能暴露其他内网资产。
很多人一上来就丢Nmap全端口扫描,动静大、时间长,还容易触发告警。更稳妥的做法是分段探测:先用ping或fping做存活扫描,再用nmap -sS -p 22,80,135,139,445,3389,5985扫常见端口,最后对高价值目标做服务识别。
凭证窃取:从“敲门砖”到“万能钥匙”
内网渗透的核心矛盾是:机器很多,能直接利用的漏洞很少,但凭证一旦到手,局面瞬间打开。
Windows环境下,Mimikatz是绕不开的工具。它的经典用法是从LSASS进程内存中抓取明文密码或NTLM哈希:
# 提升权限后执行privilege::debug sekurlsa::logonpasswords但这里坑不少。首先是权限问题:非管理员运行Mimikatz基本抓不到东西,而现代Windows版本(Win10 1809以后)默认开启了Credential Guard,明文密码很难直接读出,往往只能拿到NTLM哈希。其次是杀毒软件拦截:直接上传mimikatz.exe大概率被杀,需要做些免杀处理,或者改用PowerShell版本的Invoke-Mimikatz。
另一个常被忽略的工具是Responder。它通过监听LLMNR、NBT-NS等NetBIOS名称服务,在局域网内发起欺骗攻击,诱导其他主机向攻击机发送NTLM认证信息。配置极其简单:
responder-Ieth0-wrf一旦有主机尝试解析不存在的名称,Responder就能捕获到NTLMv2哈希。这个手法的妙处在于完全被动,不需要主动攻击任何目标,特别适合内网初期潜伏。
横向移动:Pass the Hash 的实战逻辑
拿到哈希后,下一步就是横向移动。Pass the Hash(PtH)的本质是绕过密码验证环节,直接用哈希完成身份认证,这在拿不到明文密码的场景下尤为关键。
Impacket工具集里的smbexec.py、wmiexec.py、psexec.py是三大常用脚本。以wmiexec为例:
python3 wmiexec.py-hashesLM_HASH:NT_HASH DOMAIN/USER@TARGET_IP执行后会在目标主机上启动一个半交互式的shell。这里有几个细节值得注意:
- 哈希格式:Impacket要求的是
LM_HASH:NT_HASH的完整格式,如果LM哈希为空,也要保留冒号前的空位,写成00000000000000000000000000000000:NT_HASH。 - 目标端口:WMI默认走135端口,但后续数据传输会动态协商高端口,防火墙策略复杂时可能失败,这时换用smbexec或psexec更稳定。
- 痕迹清理:wmiexec会在目标上创建临时服务,退出时建议加
-delete参数清理,或者手动删除C:\Windows\Temp下的残留文件。
很多人把横向移动理解为“一台一台扫过去”,其实更高效的做法是结合BloodHound做路径规划。BloodHound通过收集域内的用户、组、计算机、ACL等关系,能直观展示出从当前用户到域管理员的最短攻击路径。运行SharpHound收集数据:
SharpHound.exe-call导入BloodHound后,查询"Shortest Paths to Domain Admin",往往能看到令人意外的捷径——比如某个普通用户恰好是某台服务器的本地管理员,而那台服务器又允许域管理员登录。
BloodHound:把域环境“画”出来
BloodHound的价值在于把抽象的域信任关系可视化。它的查询语言Cypher虽然需要适应,但常用模式固定:
# 查找域管理员 MATCH (u:User) WHERE u.admincount=TRUE RETURN u # 查找当前用户可达的特权路径 MATCH p=shortestPath((u:User {name:'DOMAIN\\USER'})-[*1..]->(g:Group {name:'DOMAIN\\DOMAIN ADMINS@DOMAIN'})) RETURN p实际使用中,我发现新手最容易犯的错误是数据收集不全。SharpHound默认只跑部分收集方法,复杂域环境里建议用-c all全量采集,虽然耗时更长,但路径分析更准确。另一个坑是Neo4j数据库版本兼容性,BloodHound对Neo4j 4.x的支持曾有波动,遇到导入失败时不妨检查版本匹配。
Cobalt Strike:从工具到流程的跨越
当单条命令已经满足不了需求,Cobalt Strike(CS)这类C2框架的价值就凸显出来了。它把载荷生成、钓鱼投递、会话管理、横向移动、权限维持整合进一个平台,更适合模拟真实APT攻击链。
CS的基本使用流程:
- 创建Listener:Beacon HTTP/HTTPS是最常用的回连方式,配置好Team Server的IP和端口。
- 生成Payload:根据目标场景选择Executable、PowerShell、VBA等格式。
- 投递执行:外网机上线后,通过
spawn迁移到更稳定的进程,再用jump psexec或jump wmi做横向移动。
CS的SMB Beacon在内网渗透中特别好用:它通过命名管道与父Beacon通信,不直接对外连接,能大幅降低被流量检测发现的概率。配置时先让外网机作为中转,内网机通过SMB Beacon回连,整个拓扑就变成了“外网机-Team Server”一条出网通道,其余流量全在内部消化。
不过CS的门槛也在这里——它不只是工具的堆砌,而是攻击流程的工程化。什么时候用Stageless载荷、什么时候做进程注入、怎么设计Sleep时间躲避EDR,这些决策比单条命令重要得多。
Web渗透 vs 内网渗透:思维转换的关键
聊到这里,可以总结下两种渗透形态的核心差异:
| 维度 | Web渗透 | 内网渗透 |
|---|---|---|
| 攻击面 | 面向公网的单点应用 | 内部网络的多主机、多服务、多信任关系 |
| 核心资产 | 漏洞利用链 | 身份凭证与权限路径 |
| 信息形态 | HTTP请求/响应、参数、接口 | 网段拓扑、域结构、ACL、会话令牌 |
| 典型工具 | Burp Suite、SQLMap | Mimikatz、BloodHound、Impacket、CS |
| 隐蔽性要求 | 相对较低,重在高并发测试 | 极高,需考虑日志、EDR、流量检测 |
Web渗透更像“解谜”,目标是找到那条精确的利用链;内网渗透则是“导航”,在复杂的信任迷宫中找到最高效的路径。前者考验对协议和代码的理解,后者考验对系统架构和权限模型的把控。
常见坑点与避坑建议
最后说几个实战中反复遇到的坑:
环境隔离不到位。靶场里的域控如果和物理机共用网段,Responder的欺骗可能误伤真实网络,Mimikatz抓到的也可能是自己主机的凭证。务必确保虚拟网络完全隔离。
过度依赖单一路径。BloodHound显示的最短路径可能因为补丁、防火墙或权限变更而走不通,准备2-3条备选方案是基本素养。
忽视日志与痕迹。内网渗透不是拿到域控就结束,测试过程中的认证日志、服务创建记录、文件访问痕迹都需要清理,否则蓝队复盘时一目了然。
把工具当黑箱。Impacket能成功执行PtH,背后是NTLM认证协议的完整交互;BloodHound能画出路径,背后是LDAP查询和域对象解析。不懂原理,遇到报错就只能抓瞎。
从Web到内网,本质上是从“应用层”向“系统层”的纵深。这条路没有速成,但每多搭一次靶场、多走一遍横向移动的闭环,对真实企业网络的理解就会深一层。而理解,正是攻防两端共同的护城河。
