内网安全最尴尬的现实是:边界上砸了几百万,内网里一台机器被打穿之后,攻击者半小时能横到核心库。
原因不复杂。边界设备管的是"从外面进来",而横向移动发生在"里面走"。你所有的 WAF、IPS、抗 DDoS,都在防第一跳;可真正造成损失的是第二跳到第十跳——那段路上通常什么都没有。
我在一次演练里见过完整的路径:从一台测试机的弱口令进(10 分钟),用本地管理员密码全网统一这一点拿到另一台机器(15 分钟),从一台运维机上的凭据文件拿到域账号(20 分钟),最后到数据库服务器。全程没有触发任何告警,因为没有任何设备在看东西向流量。
这篇按攻击者的路径讲:进来之后会走哪五条路、每条路怎么堵、在买微隔离之前能做什么。这不是理论,是可以在两周内动手的事。
资产底数怎么盘,看 甲方安全新人第一个月做什么;边界那侧怎么配,看 安全设备运营怎么查。
一、横向移动的五条路
先看清路,再谈堵。攻击者在内网里能走的路,实际就五条,按"被用得最多"排序:
| 路径 | 依赖什么 | 典型手法 |
|---|---|---|
| 凭据复用 | 各机器本地管理员密码相同 | 抓一台的 hash,撞开一片 |
| 远程管理端口 | 3389/22/445/5985 对内网全开 | 直接连,用拿到的账号登录 |
| 共享与文件 | 共享目录、部署脚本、配置文件 | 从共享里捞凭据、投毒 |
| 信任关系 | 域信任、SSO、API 互信 | 从低权限域跳到高权限域 |
| 运维通道 | 跳板机、堡垒机、自动化平台 | 借运维的合法通道操作 |
这五条里,前两条占了实际案例的大多数。原因很朴素:它们不需要漏洞,只需要一个密码或一个开放的端口。
所以内网加固的优先级也应该是这个顺序——先把凭据和端口收掉,再谈流量检测和微隔离。反过来做(先买微隔离平台),往往钱花了,最容易被利用的那两条路还开着。
二、第一件事:本地管理员密码不能全网统一
这是投入产出比最高的一项,也是最容易被忽略的一项。
很多单位的装机流程是同一个镜像、同一个本地管理员口令,装完也不改。这样一来,攻破一台等于攻破全部——攻击者用 mimikatz 之类的工具从内存里抓出本地管理员 hash,然后拿它去撞内网所有机器,成功率极高,而且不需要任何漏洞。
验证方法很简单,随便挑两台机器比一下本地管理员的口令 hash 是否相同:
# Windows:导出本地管理员 hash(需在目标机执行,演练/自查时用) # 注意:这是取证级操作,必须在授权范围内、且事后清理 reg save HKLM\SAM C:\temp\sam.hiv reg save HKLM\SYSTEM C:\temp\system.hiv # 导出的 hive 用离线工具比对,不要在生产机上装破解工具 # 更轻的办法:直接对比两台机器的本地管理员口令(在授权下各试一次) net use \\HOST-A\IPC$ /user:Administrator <口令> net use \\HOST-B\IPC$ /user:Administrator <口令> # 同一个口令都能通,就说明全网统一
Linux 侧同理,看/etc/shadow里 root 的 hash 是否跨机器一致。
修法分两种,按规模选。
规模小(几十台)可以手工改,改成"一机一密",口令记在密码管理器里。规模大就要上 LAPS 这类方案:域内每台机器自动生成随机的本地管理员口令,存在 AD 里,只有授权的人能查。
# LAPS(Windows LAPS)启用要点,组策略侧配置 # 1) 扩展 AD schema(一次) # 2) 组策略:计算机配置 -> 管理模板 -> 系统 -> LAPS # - Backup Directory: Active Directory # - Password Settings: 长度 20,复杂度高,30 天轮换 # - Administrator Account Name: 自定义(不要用 Administrator) # 3) 授权:只给桌面运维组 "读取密码" 权限
改这个会遇到阻力,因为运维习惯了"一个密码走天下"。但它的收益非常直接:攻击者拿到一台机器,无法凭这一台的凭据拿下第二台。这一条就把横向移动的成本抬高了一个量级。
三、第二件事:远程管理端口收敛到跳板
3389、22、445、5985 这些端口在内网里通常是对全网开放的。这是历史遗留:早期没有堡垒机,运维从自己电脑直连服务器最方便。
收敛的做法是网络层限制,不是靠制度要求:
| 端口 | 协议 | 应该允许谁访问 |
|---|---|---|
| 3389 | RDP | 只有跳板机/堡垒机的 IP |
| 22 | SSH | 只有跳板机/堡垒机的 IP |
| 445 | SMB | 只有域控、文件服务器之间;终端之间禁止 |
| 5985/5986 | WinRM | 只有自动化平台/堡垒机 |
| 1433/3306/6379 | 数据库 | 只有应用服务器;运维走跳板 |
关键的一条是终端到终端禁止 445。这是勒索病毒横向传播的主要通道——一台中招,靠 SMB 扫一遍全网共享就铺开了。这一条在防火墙上做,或者用终端防火墙策略下发,都能实现。
验证收敛效果,可以从一台普通终端上试连:
# 从一台业务终端测试:这些应该都不通 for p in 3389 22 445 5985; do timeout 2 bash -c "echo > /dev/tcp/10.20.1.31/$p" 2>/dev/null \ && echo "端口 $p 可达(需收敛)" || echo "端口 $p 已阻断" done
如果这些端口从终端都能连上,那你内网的暴露面等于没有边界。
四、分段:不是买个防火墙分两段
绝大多数企业已经做了分段,但效果有限,因为分的方式不对——通常是"按楼层"或"按 IP 段"分,而不是"按信任等级"分。
有效的分段按信任等级划,四个域就够:
| 域 | 里面有什么 | 允许的访问 |
|---|---|---|
| 办公域 | 员工终端、打印机 | 只能到办公应用和互联网出口 |
| 生产域 | 业务服务器、数据库 | 只能被办公域的应用入口访问,不能反向 |
| 管理域 | 堡垒机、监控、自动化平台 | 可到生产域,但不能被办公域直接访问 |
| 隔离域 | 测试环境、外包接入、无线访客 | 默认全部阻断,逐条放通 |
四个域之间的策略只允许"从高信任到低信任"和"从办公到生产的具体端口",其他一律拒绝。
有个判据很好用:办公域能不能直接连生产域的数据库。能连,说明分段只是名义上的。
微隔离(东西向防火墙)确实比网段分段更细,但它不是起步方案。原因有两个:一是要装 agent、要梳理业务关系,周期长;二是业务关系梳理不清就上微隔离,结果一定是全放通,等于白做。
所以顺序是:先网段分段 + 端口收敛(两周能做),跑顺了再考虑微隔离。
五、东西向流量:你的设备看不见
南北向(进出互联网)有防火墙、IPS、WAF 在看;东西向(内网机器之间)通常只有一个交换机,什么也看不见。
这是内网检测最大的盲区。补的办法有两个层次:
第一层,用现有设备做。核心交换机的 NetFlow/sFlow 数据,接到现有的日志平台或 SIEM 里,至少能看到"哪两台机器在异常通信"。
关键检测点:
| 现象 | 说明什么 |
|---|---|
| 一台终端向大量内网 IP 的 445 发起连接 | 勒索/蠕虫横向扫描 |
| 一台服务器向多台机器的 22/3389 发起连接 | 凭据爆破或横向尝试 |
| 内网出现 SMB、RDP 之外的异常协议 | 隧道工具(DNS/ICMP/HTTP 隧道) |
| 内网机器访问非常规端口的外网地址 | C2 回连 |
| 同一账号在短时间内从多台机器登录 | 凭据被盗 |
第二层,端点侧补。EDR 能看到的比流量更多:进程的父子关系、命令行参数、凭据访问行为。横向移动在端点侧留下的痕迹很明确——mimikatz、procdump抓 lsass、net use批量连、psexec落地服务。
检测规则不难写,关键是先有日志。如果 EDR 只装了办公终端、服务器一台没装,那服务器之间的横向你永远看不见。
还有一个更常见的问题:日志有了,但没人在看。东西向告警的量通常远大于南北向——内网机器之间正常通信本身就多,稍微放宽阈值就是每天几千条。结果是要么关掉,要么设成只记录,等于没开。
处理办法是只对高价值目标开东西向检测:核心数据库、域控、堡垒机这三类机器周围的流量全查,其他区域只做统计不告警。范围小了,量级就降到人能处理的水平。等这三类的规则跑稳、误报压下去,再逐步扩范围。这个节奏比"全网上线然后被迫关掉"要慢,但能活下来。
六、几台机器、两周能做的事
不用等预算,下面四件事现在就能做,按性价比排序:
第一,查本地管理员密码是否统一(半天)。抽样 10 台机器比对,如果统一,这周就排期改。
第二,终端之间断 445(一次变更)。在终端防火墙策略或接入层 ACL 上做,能挡住一大类勒索扩散。
第三,远程管理端口收敛到跳板(两周,需要协调)。这一步会有阻力,先做服务器侧,终端侧后做。
第四,把核心交换机的流量数据接进日志平台(一周)。哪怕只做 Top 会话统计,也比完全看不见强。
四件事做完,内网的安全水位会有明显变化。它们的共同特点是:不依赖任何新产品采购。
它们还有一个共同特点:做完能拿出证据。密码是否还统一、445 是否通、RDP 是否只剩跳板,这三件事都能当场验证,不靠汇报。
七、域环境特有的三条捷径
上面讲的是"不分域也能走"的路。如果内网是 AD 域环境,还有三条更省事的捷径——它们不需要猜密码,也不需要开放端口,靠的是域本身的机制。
第一条:Kerberoasting。任何域用户都能向域控请求"服务票据"(TGS),而票据是用服务账号的口令 hash 加密的。拿到票据后离线暴力破解,就能得到服务账号的明文口令。而服务账号往往权限很高——很多单位直接拿域管理员跑服务。
检测方法:域控上开 4769 事件审核,看有没有同一账号在短时间内请求大量不同 SPN 的票据。防御上则是服务账号口令必须足够长(25 位以上,长到无法在合理时间内破解),或者改用组托管服务账号(gMSA)让口令自动轮换。
第二条:非约束委派。如果某台机器配置了"非约束委派",攻击者只要能让域管理员访问这台机器(哪怕只是访问它的一个共享),就能拿到域管理员的票据,进而冒充。
检测是一条命令的事:用Get-ADComputer和Get-ADUser分别查TrustedForDelegation为$true的对象,把清单拉出来。如果输出有内容,就要逐个评估:这台机器为什么需要非约束委派?能不能改成约束委派或基于资源的约束委派?多数情况下答案是"历史遗留,其实不需要"。
第三条:GPO 与 SYSVOL。组策略文件放在域控的 SYSVOL 共享里,任何域用户都能读。如果有人把脚本、配置文件里的口令放进了 GPO,等于对全公司公开。
自查方法:在 SYSVOL 的 scripts 目录里搜password、passwd、pwd、secret这类关键字,看有没有明文口令。这个动作只读不写,在授权范围内做。
这三条的共同点是:它们是域的设计特性,不是漏洞。所以你没法"打补丁",只能靠两件事——配置收敛(长口令、改委派、清 GPO 里的凭据)和检测(4769 异常、委派对象清单定期核)。
顺便说一句,很多团队把内网安全的希望全押在"买一套东西向检测设备"上,但上面这三条里,第一条和第二条的修复成本几乎为零,只需要有人去查一遍。先做这些不需要花钱的事,再谈采购。
八、检测规则示例
有了日志之后,几条规则能覆盖大部分横向行为。下面用通用伪代码写,具体语法按你的平台改:
-- 规则一:单台主机在 5 分钟内连接超过 20 个不同内网 IP 的 445 端口 SELECT src_ip, COUNT(DISTINCT dst_ip) AS targets FROM netflow WHERE dst_port = 445 AND dst_ip LIKE '10.%' AND ts > NOW() - INTERVAL '5 minutes' GROUP BY src_ip HAVING COUNT(DISTINCT dst_ip) > 20; -- 规则二:同一账号在 10 分钟内从 3 台以上不同主机登录成功 SELECT user_name, COUNT(DISTINCT host) AS hosts FROM auth_log WHERE result = 'success' AND ts > NOW() - INTERVAL '10 minutes' GROUP BY user_name HAVING COUNT(DISTINCT host) >= 3; -- 规则三:非运维网段的主机向服务器发起 RDP 连接 SELECT src_ip, dst_ip FROM netflow WHERE dst_port = 3389 AND src_ip NOT LIKE '10.10.5.%' -- 跳板机网段 AND dst_ip LIKE '10.20.%'; -- 生产网段
规则三是最该先上的一条。它的逻辑很硬:除了跳板机,谁都不该直接连服务器的 RDP。一旦有连接,要么是运维绕行,要么是攻击者在横向——两种都值得立即查。
九、三个月能推到什么程度
| 阶段 | 时间 | 做什么 | 判断标准 |
|---|---|---|---|
| 一期 | 第 1 月 | 本地管理员改一机一密、终端断 445 | 抽样验证 hash 不重复;终端互连 445 不通 |
| 二期 | 第 2 月 | 远程管理端口收敛到跳板、四条检测规则上线 | 从终端连服务器 3389/22 不通;规则能出告警 |
| 三期 | 第 3 月 | 四域分段落地、核心交换机流量接入 | 办公域不能直连生产域数据库;东西向有数据 |
三期做完不要急着上微隔离。先用三个月数据看清"哪些机器在互相通信",这份业务关系图是微隔离能不能做成的前提——没有它,微隔离上线当天就得全放通。
十、几个想清楚再动手的问题
第一,收敛端口一定会有人反对。反对的理由通常是"影响效率"。应对办法不是讲安全,是给替代方案:跳板机上加个快捷方式、堡垒机配好单点登录,让走正规通道不比直连慢。只堵不给路,一定被绕过。
第二,本地管理员改一机一密之后,运维会抱怨"记不住"。这是必须提前解决的:上密码管理系统,或者用 LAPS 让系统代管。不然三个月后一定会有人把口令写回便利贴。
第三,检测规则先少后多。一上来写二十条规则,结果是每天几百条告警没人看。先上三条最硬的(非跳板 RDP、批量 445、账号多地登录),跑稳了再加。
第四,别把内网安全做成"又一个买设备的项目"。上面这些事里,只有流量采集可能需要一点投入,其余都是配置和流程。内网安全的差距,八成不在设备,在于有没有人真的按这个顺序做过一遍。