|
一个下午,远程我正调试公司新买的主机服务器。旁边同事突然喊了一声:“哎,计算机名检测这机器怎么自己弹了个账号出来?漏洞” 我凑过去看,他正用扫描工具扫内网段。远程结果扫到一台Windows Server,主机工具报告说:远程主机计算机名检测漏洞,计算机名检测可获取主机名。漏洞同事觉得奇怪,远程主机名算什么漏洞?主机又不是密码。 问题就出在这——太多人把主机名当无用小信息。计算机名检测可实际上,漏洞它是远程内网渗透的第一块拼图。 远程主机计算机名检测漏洞,主机本质是计算机名检测NetBIOS名称服务和SMB协议在默认配置下,允许未授权用户直接查询目标机器的名称、域名、甚至当前登录用户名。你只要发一个简单的Name Service请求,对方就乖乖把家底报出来。不需要账号,不需要密码,防火墙通常也不拦这种UDP 137端口的查询。 有一次,我参加某金融单位的渗透测试授权项目。拿到一个普通员工电脑的权限后,我顺手用nbtstat -A命令扫了隔壁财务子网。结果不出五秒,十几台机器的主机名全列出来了。里面有三台叫“CW-FUWUQI-01”、“CW-SHENJI-02”,还有一台叫“CAIWU-BOSS”。 不用猜,财务服务器、审计系统、领导电脑,全标好了。后来我完全没费劲,直接锁定了那台“CAIWU-BOSS”做钓鱼目标。 这个漏洞的危险性不在“知道名字”本身,而在于它把内网的拓扑结构、管理员命名习惯、业务系统分布全暴露了。很多公司的主机名里带着部门缩写、IP段编号、甚至项目代号。攻击者拿到这些,等于拿到一张内部地图。再结合其他漏洞,比如MS17-010永恒之蓝,或者弱口令爆破,就能精准打击高价值目标,而不是像无头苍蝇一样乱扫。 更恶心的是,这漏洞还常被用来判断目标是否在线、是否属于当前域。你扫到一个叫“DC-01”的主机,基本就能确认这是域控。下一步就是准备抓hash或者打Kerberos攻击。 那怎么修?说简单也简单。 最直接的办法是禁掉NetBIOS over TCP/IP。在网卡的高级TCP/IP设置里,WINS选项卡下,选择“禁用TCP/IP上的NetBIOS”。这能干掉绝大多数来自外部的名称查询请求。但注意,你自己内网的旧应用可能依赖NetBIOS,禁用前得先测试。 另一个办法是在防火墙层面过滤UDP 137和139端口,只允许特定管理网段访问。我见过不少公司,内网防火墙策略做得跟筛子似的,137端口对整个VLAN全开。你问管理员为什么,他说“以前就这么配的,没出过事”。 还有一点容易忽略——关闭不必要的SMB服务。Windows 10和Server 2016之后的版本,SMBv1默认不启用,但很多老机器升级后没彻底关掉。SMBv1不仅泄露主机名,还带一堆远程执行漏洞。直接在“启用或关闭Windows功能”里把SMB 1.0/CIFS文件共享支持勾掉,重启,完事。 最后说句实在话。这个漏洞被评为“低危”不是没道理,它本身拿不到权限,也执行不了代码。但在真实攻击链里,它往往是第一块多米诺骨牌。红队打点的时候,第一步就是信息收集,而主机名是成本最低、回报最稳定的信息源。你堵住了SQL注入,堵住了未授权访问,却把主机名敞着给人看,等于把家里钥匙放在门口垫子底下——锁再结实也没用。 所以,别嫌它级别低。内网安全,往往就是把这些不起眼的小洞,一个个仔细堵上。 |