我一直觉得,内网渗透是最能拉开安全从业者差距的方向之一。外网打点拼的是漏洞基础和运气,进了内网之后,比的就是信息收集的细度、权限维持的耐心,以及横向移动时对不同环境的判断。今天我把自己平时在授权靶场里反复验证过的路径整理出来,从入门概念到一步步实操,尽量少讲空话,多给可以直接落地的思路。这篇文章的定位不是教你去打谁,而是让你用红队视角理解攻击路径,反哺蓝队防御。适合初步掌握网络命令、想系统梳理内网攻击链路的读者,也适合刚接触安全、正愁没有方向的新人。
1. 内网渗透的核心思路与阶段拆解
1.1 内网和外网渗透到底差在哪
外网渗透的目标通常很明确:找到一个暴露在公网的系统,利用漏洞拿权限。内网却完全不同,它更像“进入写字楼之后找财务室”——整栋楼里所有工位都是信任关系的集合,门不一定全锁,甚至很多门默认就是开的。这也是内网渗透最迷人的地方:你不需要一路砸墙角,只需要顺着一层层信任关系往里走。
内网的特点第一是“横向信任”。一个域用户可能在这台机器能登录、那台机器也能登录,这种多对多的信任关系就是横向移动的基础。第二是“网络复杂”,有多个网段、多张网卡、防火墙策略各不相同,你以为拿到一台机器就能畅通无阻,实际可能只是站在一个走廊口。第三是“资产巨大且混乱”,几十个网段、几千台机器,没有清晰的信息收集思路,很容易进去一两个小时还在原地打转。
所以内网渗透的第一步,从来不是急着跑工具,而是先把“地图”画出来。这个地图包括:当前机器所在网段、有哪些同网段主机、哪些主机是域控、哪些是核心业务服务器、管理员的机器在哪。没有这个地图,后面所有操作都是盲人摸象。
1.2 攻击链路的五个阶段
我把一次完整的内网渗透拆成五个阶段,每个阶段都有明确的目标:
- 踩点与信息收集:搞清楚当前环境里有什么,能访问什么,最忌讳上来就横扫全网段。
- 权限获取:通过漏洞利用、弱口令、凭证复用等方式,拿到第一个可以交互的账号或会话。
- 权限维持:保证你拿到的权限不会因为进程退出、会话关闭而立刻消失,核心思路是找到系统自身的机制来保持访问可能性。
- 横向移动:从当前机器出发,利用信任关系、凭证、共享、计划任务等手段,移动到更多机器,最终接近域控或核心数据区。
- 数据回传与痕迹整理:把有价值的信息从内网传回分析环境,同时记录好你的每一步操作,方便结束后复盘和清理。
这五个阶段不是严格串行的。实战里经常是“收集到一半发现一个密码,先横移一步,再继续收集”,来回穿插。但你的心里一定要有这条主线,否则很容易陷入“扫一站打一站,打完不知道下一步干嘛”的状态。
1.3 新手最容易卡壳的地方
大部分新手在内网里卡住,不是因为工具不够,而是因为三个问题:第一,对目标环境缺少整体判断,拿到一台机器就开始跑全套工具,动静太大,还没摸到下一台就被安全设备盯上了。第二,太依赖图形化工具,一旦环境里没有图形界面、没有GUI工具,就手足无措,其实Windows自带的命令足够完成八成工作。第三,没有记录习惯,自己扫过哪台机器、测过什么密码、哪些主机是通的,全靠脑子记,隔半小时就全乱了。
我自己的经验是,从第一天就培养“做笔记”的习惯。每台机器一个文件,记录IP地址、操作系统、开放端口、登录账号、发现的问题,这样到了后期横向移动的时候,你才知道哪条路最短、哪台机器最值得花时间。渗透过程里的信息本身就是最重要的资产。
2. 信息收集:进入内网后的第一脚怎么踩
2.1 入口机器上的第一轮情报收集
无论你从外网打进来,还是在演练环境里拿到了第一台机器,第一步永远是静态信息收集。这些信息靠几条系统命令就能拿到,不需要额外装工具。
先看网卡信息:ipconfig /all,这个命令告诉你当前机器的IP地址、掩码、网关,以及最重要的DNS服务器。如果DNS指向一台内网地址,这台机器极大概率在域环境里,而且DNS服务器往往就是域控。接着看arp -a,这会列出当前机器在最近一段时间内通信过的同网段主机,那些可访问的主机会直接暴露出来,比盲扫节省大量时间。
再看连接状态:netstat -ano,列出当前所有TCP连接和对应PID,可以通过tasklist /svc把PID对应到进程名,快速定位机器上正在运行的关键服务。比如你看到某台远程服务器IP的3389端口连接,说明这台机器很可能正在被管理员远程管理,那台机器就是典型的高价值目标。
最后看一眼route print,搞清楚本机的路由表。很多内网机器是双网卡甚至多网卡,一边连着办公网,一边连着管理网。路由表会明确告诉你哪些网段是直接可达的,这是后面跨网段移动的基础。
2.2 存活主机探测:别只依赖一种方式
拿到IP网段后,下一步是探测哪些主机在线。新手最常见的坑是只会用Ping扫IP,结果Ping没响应就以为主机不存在。实际上内网机器普遍开启防火墙,ICMP很容易被拦掉,机器明明在线就是不回包。
我自己的经验是换用TCP层的探测,比如利用TCP三次握手的SYN包来判断端口是否开放。最通用的做法是用Nmap扫关键端口,但如果没有工具或不允许上传工具,也可以用Windows自带的PowerShell循环探测。比如写一个简单的循环,对目标网段里的每个IP执行Test-NetConnection -Port 445 -InformationLevel Quiet,虽然比Nmap慢不少,但胜在零落地、不触发文件查杀。
内网里最值得关注的端口有其规律:445端口对应SMB共享,在Windows环境里几乎必然是开着的,是横向移动的主通道;3389端口对应远程桌面;139端口对应NetBIOS会话服务;135端口对应远程服务调用,很多后续操作都依赖它;另外还有22、80、443、53等通用端口。扫描的时候不要贪多,集中扫这七个端口,足够你判断一台机器的角色了。
2.3 服务指纹与角色判断的取舍
端口扫完之后,不需要对每台机器都做全面漏洞扫描。内网里几千台机器,你不可能一一挖掘,也不划算。正确的做法是把机器分类:先看谁能当跳板、谁是办公终端、谁是服务器、谁是域控。
判断系统版本有个安安静静的命令:systeminfo,可以看到系统大版本、补丁级别、主机名。内网里主机名往往自带业务含义,比如带有“DC”“AD”字样的通常是域控,带有“SQL”“DB”字样的通常是数据库服务器,带有“WEB”字样的通常是Web服务器。这种静态信息收集比漏洞扫描有用得多。
再看域环境:net user /domain可以看到域用户列表,net group "Domain Admins" /domain能看到域管理员组,net time /domain如果报出域控的时间服务器,直接说明当前机器在域里。还可以用nltest /dclist:域名来获取域控列表。这些命令都是系统原生的,执行时不会产生额外文件,降低被安全设备重点盯防的风险。
2.4 把信息收集的边界控制好
信息收集最容易犯的错误是无脑大范围扫描。一个几千台机器的网段,如果直接全段跑Nmap,流量特征会在很短时间里被打上标签,安全设备十有八九会弹出横向扫描告警。更合理的做法是先探测同网段、再探测路由可达网段,分批次小范围进行,每完成一个阶段就停下来分析结果。
我习惯把收集到的信息画一张简单的拓扑图,不需要多专业,纸上画也行。把网段、域控、服务器、当前机器标出来,后面每一步横向移动都在这个图上做推演。这个习惯帮我避开了很多重复工作和无效操作。
3. 权限维持与横向移动:突破单点之后怎么走
3.1 别以为拿到一台机器就能平推
很多新手拿到第一台机器的管理员权限后,觉得内网已经尽在掌握,结果下一秒就碰壁。原因通常是:虽然有管理员权限,但机器本身没有域权限,看不到域内资源;或者当前机器处在隔离网段,路由表根本到不了核心业务网段;又或者虽然能Ping通目标主机,但目标防火墙做了严格的端口限制,只放开了几个业务端口,你就是登录不上去。
所以拿到机器之后,第一件事不是到处找下一台机器,而是确认自己到底处在一个什么位置。看看当前机器是不是域内机器,如果不是,就要考虑先做权限提升或寻找其他入口;看看当前网络能不能到核心网段,如果不能,就需要找到可以做路由转发的中转点。
3.2 凭证获取与复用:为什么哈希比明文更重要
横向移动最依赖的不是漏洞利用,而是凭证复用。内网里大量机器用同一个本地管理员密码或同一批域账号密码,只要拿到一组有效凭证,就能在很大范围内横着走。
内网里提取凭证最常见的方式是读取系统里的账号哈希。这里要说明一个关键机制:Windows系统本身的登录认证不一定需要明文密码,很多时候只要拿到哈希,就能直接用于远程身份验证,这就是哈希传递的原理。不要以为密码是加密的、拿不到明文就没办法,哈希本身就是一把钥匙。拿到了哈希,就相当于拿到了账号的“影子密码”,很多远程调用和登录场景都能直接使用,甚至不需要破解它。
我在实际演练里的体会是,拿到哈希后先不要急着爆破,先试试能不能用哈希直接访问其他机器。如果能用,那至少说明多台机器之间账号密码复用情况严重;如果不能用,再考虑是不是有防火墙或登录方式的限制。有时候一条哈希能开很多台机器的门,比累死累活去破解明文高效得多。
3.3 远程执行命令的三类常见手段
有了凭证,接下来要解决一个问题:怎么在目标机器上执行命令。内网横向移动中,最常用的三类方法都基于Windows自身机制,不需要额外装客户端。
第一类是计划任务,即利用系统自带的计划任务组件,将命令写入目标机器并立即触发执行。这种方式简单直接,但会在目标机器上留下计划任务记录,容易被检测。第二类是远程服务调用,通过135端口调用目标机器的系统服务来启动指定程序,无需开启额外端口,适合快速验证目标是否可控。第三类是Windows远程管理,走的是5985或5986端口,利用的是操作系统自带的远程管理通道,前提是目标机器已经启用这个服务。
这三类手段的共同点是都依赖凭证,所以它们的生命周期和凭证的有效期高度绑定。如果你的凭证失效,这些通道也就断了。这也是为什么做权限维持时,需要把注意力放在系统自身的机制上,而不是只依赖某一个会话。
3.4 横向移动时的动静控制
横向移动做多了,最容易暴露的不是一次攻击行为,而是行为规律。比如同一个账号短时间内在多台机器上登录,这在安全设备眼里是异常高频行为;比如从一台机器横向跳到下一台,还没站稳就继续跳,轨迹连成一条线,很容易被安全分析人员抓出来。
我的原则是:横向移动尽量批量、静默、有节奏地做。扫到目标后,先做小范围验证,确认凭证和通道可用,再继续推进。同时,每移动一步都记录清楚:IP、账号、执行了什么操作、使用了什么通道。这样不但方便复盘,也能在出现问题时快速回退清理。
4. 流量转发与数据回流:内网数据怎么带回分析环境
4.1 为什么需要一套数据回传通道
内网渗透经常遇到一个问题:凭证拿到了,数据也找到了,但传不出来。内网机器不能直接访问公网,或者只能访问白名单里有限的地址,这时候就需要借助已有的机器搭建一条数据回传链路。注意,我这里说的全部基于授权测试场景,如果你没有明确授权,任何类似操作都不应该出现在生产环境里。
数据回传通道的思路很简单,就是借道。把内网里的数据先传到一台你能控制的中转机器上,再从中转机器拉回分析环境。为了让这条链路稳定,需要选择合适的转发方向、端口和加密方式。
4.2 正向转发与反向转发的选择
内网场景下的流量转发大致可以分成两种方向。正向转发,是让目标内网机器主动开放一个端口,你的分析终端连接到这个端口上来读取数据。这种方式适合内网机器对你有网络连通性的情况,但缺点是会在目标机器上增加一个监听端口,容易被扫描发现。
反向转发,是内网机器主动向你控制的分析终端发起连接,再由分析终端向内网机器下发指令或接收数据。这种方式更隐蔽,因为连接是由内网机器主动外发的,很多时候防火墙会放行这类外联流量。选择哪种方向,标准只有一个:谁到谁的网络路径是通的。
4.3 转发工具与端口的落地细节
工具选择上,市面上有大量开源流量转发工具,核心原理都是差不多的,无非是建立一条加密传输管道,把内网流量封装后传出来。实操中我更看重三个细节:第一,端口尽量复用目标机器上已经开放的端口,比如用53端口走DNS流量,能有效降低被排查的概率;第二,数据一定要做压缩和加密,内网数据量往往很大,不压缩会让链路很慢;第三,加心跳保活,避免连接因为长时间空闲被中间设备切断。
另外,中转链路不要直接搭到最终目标上。合理做法是搭到一台离目标比较近、但不是目标的机器上,再在分析环境里做二次跳转。这样即使某一段链路被发现了,也不至于直接暴露最终访问的数据位置。
4.4 数据回传过程中的安全底线
数据回传是最容易失控的环节。我的原则是:只传输与测试目标相关的必要数据,不做无底线的大批量文件回传。拿到凭证哈希,只回传哈希本身和分析结果,不要把整台机器的用户文件全拉回来。这样既节省时间,也减少了数据泄露风险。
如果你在测试中发现目标系统里有明显涉及个人隐私或敏感业务的数据,正确做法是立即停止回传,记录一下存在哪些数据就足够交差了。授权测试的目的是证明风险存在,不是真的把数据全部拖走。守住这条底线,你在这个行业里才能走得更远。
5. 常见翻车现场与排查技巧
5.1 为什么扫描了半天,一个存活主机都没发现
这种情况新手遇到最多。排查顺序是这样的:先确认本机自己的IP和网段,用ipconfig /all看当前地址是哪个网段的。如果你扫描的目标网段和本机不在同一个二层网络里,中间隔着网关或防火墙,那存活探测的结果就会非常不可靠。很多内网防火墙会直接丢弃来自陌生网段的扫描流量,表现为“无响应”。
其次换成TCP全连接探测试试。ICMP不可靠,那就扫445、22这类基础端口。如果这些端口也全部超时,大概率是网络隔离策略或主机防火墙在起作用,这时候不要硬扫,先回到信息收集阶段找找有没有其他可达路径。
5.2 拿着密码和哈希,却登录不了目标机器
这是一个高频问题。拿到了密码或哈希,不代表一定能横向移动成功。先检查账号是否有登录目标机器的权限,域账号不一定有所有机器的本地登录权限;再检查网络连通性,目标机器是否开放了对应端口,防火墙是否阻止了你的IP;还要考虑账号锁定策略,如果密码输错太多次,账号会被锁定,反而弄巧成拙。
还有一个容易忽视的点:目标机器可能处于不同的内网网段,你的当前路由根本到不了,表面上是“登录失败”,实际上是“网络不通”。遇到这种情况,先Ping一下,再telnet一下目标端口,把网络问题和认证问题区分开,能省下大量无用功。
5.3 权限维持没多久就失效,怎么办
权限丢掉的原因很多,最常见的就是账号密码被管理员改了。所以做权限维持的时候,不要只依赖一个账号、一种通道,尽量利用系统本身就存在的机制多留几条不同路径。当然,我指的是在授权测试中记录多种可用的访问方式,而不是在系统里植入恶意后门。
另一个常见原因是通道没有做保活。很多转发链路默认不传数据就会超时断开,你需要配置心跳机制,让链路持续活跃。还有一点,内网机器可能会重启,一旦重启,内存里的会话就没了,这时候你更需要依赖能持久保存的凭证和自启动项目。理解这些系统机制,才能设计出更稳健的测试方案。
5.4 命令执行了但没有回显,怎么确认结果
内网环境里,命令执行无回显是非常正常的事。因为很多通道是单向的,你执行了命令,但结果不会自己传回来。我的解决方法很朴素:让目标机器把结果写入一个文件,然后你再通过共享、Web服务或日志读取这个文件。
比如可以用计划任务执行一条命令,将输出重定向到目标机器上有读取权限的目录,比如Web根目录或共享文件夹,然后从分析环境访问读取。还有一种思路是让目标机器主动把结果通过DNS请求或HTTP请求发出来,利用你控制的接收端记录。这些方法都属于常见技术手段,核心就是“让数据去找你”,而不是傻等着回显。
5.5 新手常见问题速查表
| 问题现象 | 最可能的原因 | 优先排查思路 |
|---|---|---|
| 扫描无存活主机 | 防火墙拦ICMP,或跨网段隔离 | 换TCP探测,回到路由表确认可达性 |
| 密码正确但登录失败 | 账号权限或目标主机登录限制 | 检查账号域权限与目标防火墙策略 |
| 权限很快就丢失 | 凭证被修改或通道无保活 | 理解系统自身机制,增加可用访问路径 |
| 命令执行无回显 | 通道单向传输 | 将结果写入文件或主动外发到接收端 |
| 会话经常断线 | 链路无心跳或网络策略限制 | 配置心跳保活,适当降低活动频率 |
这张表是我自己排查问题的高频路线图,每次翻车都用它来定位,比从头到尾盲查效率高不少。
6. 对抗视角下的检测加固与实战经验
6.1 用红队思路反查蓝队检测盲区
内网渗透的所有攻击路径,反过来就是一套完整的检测清单。如果你能理解攻击者是怎么进来的,就能在日志和流量里找到对应的蛛丝马迹。重点盯几个方向:一是账号登录日志,尤其是一个账号短时间内登录多台机器的记录,这是典型的横向移动特征;二是新增计划任务和自启动项的监控,这两种是最常被利用的系统机制;三是外联流量,特别是非标准端口上的长连接和定期心跳,这种流量一般都不是正常业务产生的。
防守方还有一个常被忽略的点:资产清单混乱本身就是最大的风险。攻击者能横着走,往往不是因为技术多强,而是因为你们自己都不知道内网里有多少机器、哪些机器打了补丁、哪些账号还在用初始密码。把资产管理做扎实,很多攻击路径会直接断掉。
6.2 加固优先级:先堵住最容易被打的路
不需要面面俱到,先把最常用的攻击路径堵上。优先级按这个顺序来:第一是补丁管理,尤其是操作系统和常见办公软件的高危漏洞补丁,这是外网打点的主要来源;第二是账号和口令策略,禁止多台机器共用同一套密码,这是横向移动的直接阻碍;第三是最小权限原则,普通用户不该有本地管理员权限,运维账号不应该日常用于登录办公终端;第四是网络分区和访问控制,把核心业务区和管理区隔离,减少攻击者能触达的范围;最后是日志集中收集和告警,让异常行为能第一时间被发现。
这五件事做完,内网的安全性起码能提升一个档次。剩下的更高阶安全建设,都是在这些基本功之上的锦上添花。
6.3 新手练手环境搭建建议
如果你现在没有实战经验,请不要把目标放在任何真实系统上。正确的做法是用桌面虚拟化软件搭一个小的模拟内网。三台虚拟机就够了:一台Windows Server当域控,一台Windows Server当业务服务器,一台Windows 10当办公终端。把三台机器加进同一个域环境,开放必要的服务,再做几个弱口令账号作为练习对象。
在这个闭环环境里,你可以反复练习前面讲到的信息收集、横向移动、通道搭建全套流程,而且随时可以重置还原,不用担心产生任何负面影响。扎实地把这套流程走三遍,比在网上看几百篇教程都管用。
6.4 最后分享一点我的体会
内网渗透这门活儿,心态比技术更重要。拿到权限时不冲动炫耀,走不通时不急躁盲扫,遇到敏感数据时知道住手,这些习惯都是在一次一次练习中磨出来的。我在最初踩坑时,也经常盯着Nmap输出发呆,后来慢慢学会把每一步都记录下来、每一条线索都追到底,才开始真正理解网络里的信任关系。希望这篇内容能让你少走点弯路,也能让你更敬畏内网里的每一台机器。