游客发表
端口扫出来是渗透扫描开着的,不代表你就能进去。渗透扫描这事儿我踩过坑。渗透扫描
去年帮一个朋友看他的渗透扫描小服务器,顺手跑了个nmap。渗透扫描22端口开着,渗透扫描80端口开着,渗透扫描3306也开着。渗透扫描他当时还挺得意,渗透扫描说"你看我这配置多干净"。渗透扫描我没说话,渗透扫描直接拿hydra怼了一下MySQL。渗透扫描密码是渗透扫描root123。三秒钟的渗透扫描事。他脸都绿了。渗透扫描
这就是渗透扫描最容易被误解的地方——很多人以为扫端口就是渗透的全部,扫到开放端口就觉得自己摸到了门。其实端口扫描只是敲门,真正决定你能不能进去的,是你敲完门之后干什么。
主动扫描就是直接发包过去问:"嘿,你开着哪些门?"nmap、masscan干的就是这个。好处是快、全,坏处是动静大。目标如果有IDS/IPS,你的IP可能已经被记在小本本上了。
被动扫描不直接碰目标。你从流量镜像、DNS日志、Shodan这类搜索引擎里捞信息。比如你想摸一个站,先去Shodan搜它的IP段,看看历史上开过什么端口、跑过什么服务版本。这些信息是别人帮你扫好的,你只是去捡。隐蔽性高,但时效性差,可能你看到的是一年前的快照。
我一般两个都用。先用被动扫一圈,把目标的家底摸个大概,再用主动扫精准验证。上来就masscan全网段扫的,要么是新手,要么是红队打点不在乎暴露。
22端口开着,这信息价值有限。但如果nmap告诉你跑的是OpenSSH 7.4,那就完全不一样了。这个版本有几个已知的CVE,其中一个用户名枚举漏洞特别好用——你可以通过响应时间差异判断哪些用户名是真实存在的。
我习惯在nmap上加-sV -sC。前者做版本探测,后者跑默认脚本。默认脚本里有个http-title,能直接告诉你这个80端口后面是什么站。有时候扫出来一个后台登录页,标题写着"Admin Panel - v2.1",连漏洞库都不用查,直接搜这个版本号的已知问题就行。
还有个小技巧:-O做系统指纹识别。Windows和Linux的TTL值不一样,TCP窗口大小也有差异。知道对面是什么系统,后面选exp的时候能少走弯路。
外网扫描你要考虑隐蔽性,内网扫描你只需要考虑速度。前提是你已经拿到一台内网机器的权限。这时候masscan可以开到很高的速率,因为内网延迟低、丢包少,而且没有防火墙拦你。
我见过有人在内网用nmap默认参数扫一个/24的段,扫了快一个小时。换成masscan,--rate 10000,几十秒完事。内网扫描的核心就一个字:快。你多待一秒,被发现的概率就大一分。
扫完之后别急着打。先把结果整理一下,按服务类型分类。Web服务放一堆,数据库放一堆,远程管理端口放一堆。然后从最弱的那个开始试。什么叫最弱的?版本老、配置默认、没有WAF。这三个条件满足两个,基本就是突破口。
扫描这件事,工具只是工具。nmap的参数背得再熟,不如理解TCP三次握手和TLS握手过程中哪些字段可以拿来判断服务类型。我见过太多人拿着扫描结果问我"接下来怎么办",问题不在于他们不会用工具,在于他们不知道自己在扫什么。
你扫的是端口,但你看的应该是服务。你看到的是开放,但你想的应该是利用。
友情链接