端口扫描器弹出 22 端口开放的当探那一秒,我正端着半凉的漏洞咖啡。屏幕上那行绿字跳出来,进口像有人在漆黑的位置走廊尽头划了根火柴——你知道那里有扇门,门后可能是当探机房,也可能是漏洞陷阱。
大多数人看到“端口开放”就急着敲
ssh。进口我偏不。位置先扔一个nmap -sV -O过去,当探看它回什么。漏洞那次回的进口是 OpenSSH 7.4,老得掉渣。位置运维但凡上点心,当探早该升到 9.x 了。漏洞这个版本号本身就是进口一条线索:要么机器三年没人碰,要么有人故意留着它钓鱼。探测漏洞进口位置,本质上是在猜对方的懒惰和自负。懒惰的人不更新补丁,自负的人觉得自己的 WAF 天下无敌。我见过一台暴露在公网的 Jenkins,连登录页都没改,默认口令
admin/admin直接进。进去之后发现它挂着内网跳板机的 SSH 密钥。那个运维大概觉得“内网的东西外人看不见”——可 Jenkins 自己就在公网上。端口只是入口的坐标,真正要定位的是“信任边界在哪里断裂”。比如 8080 端口跑着一个 Spring Boot 应用,
/actuator/env没关。你访问一下,它能把数据库密码、Redis 地址、甚至云厂商的 AK/SK 全吐出来。这不是漏洞利用,这是对方把钥匙插在门上还贴了张纸条写“请进”。我习惯先画一张粗糙的拓扑图。用纸笔。哪个端口对应哪个服务,服务之间怎么调用,哪些调用没做鉴权。有一次扫到一个 6379 端口,Redis 未授权。连上去
info一看,主从复制里挂着一个内网 IP。顺手config set dir /root/.ssh写了个公钥进去。三分钟后,那台内网机器就成了我的跳板。整个过程没有一行 exploit 代码,全是配置失误。探测的节奏很重要。慢一点,再慢一点。很多扫描器默认并发太高,直接把目标打挂或者触发告警。我通常把
-T调到 2,每扫一个 C 段就停几秒,假装自己是个迷路的爬虫。有次扫到一半,目标 IP 突然回了 RST,所有端口全关。对方发现我了。我立刻换源 IP,隔了二十分钟再扫,只扫 80 和 443。这次它没反应。人总是对“看起来正常”的流量放松警惕。最有趣的进口位置往往不在那些显眼的服务上。一台只开了 80 端口的 Web 服务器,首页是个静态页,
robots.txt里写着Disallow: /backup_2021/。你猜怎么着?那个目录直接列目录,里面躺着整个站的源码压缩包。下载解压,config.php里数据库口令明文写着。从端口探测到拿到数据库,全程不到五分钟。那个进口位置不是 80 端口,是运维在 robots.txt 里留的那行字。探测到进口之后,别急着往里冲。先问自己:这个入口是真的,还是蜜罐?蜜罐通常太完美——所有漏洞都刚好存在,版本号刚好有 EXP,连回显都干净得不像话。真实环境里总有那么点脏:报错信息里混着中文、日志路径是
/home/zhangsan/、某个接口返回 500 但换个参数就 200。这些不完美才是真的。我笔记本上记着一条原则:进口位置不是“找到”的,是“等”出来的。你扫得越急,越容易错过那些藏在响应头、错误页、甚至 TCP 时间戳里的线索。有一次我盯了一个 IP 三天,它只在凌晨两点到四点开放 3389。其他时间全关。后来才知道那是个运维的远程桌面,他设了定时防火墙规则。你要是白天扫,永远看不见这扇门。
所以每次看到“端口开放”那行绿字,我都先放下咖啡。不敲命令。盯着屏幕看一会儿。等它自己告诉我,它到底想让我看见什么。
顶: 83踩: 4812






评论专区