娱乐

nmap扫描网站

时间:2010-12-5 17:23:32  作者:休闲   来源:百科  查看:  评论:0
内容摘要:打开终端,敲下 `nmap -sT -p 80,443 example.com`,几秒后你就知道这个网站到底开了哪些门。别被“扫描”这个词吓到,它跟黑客电影里那种噼里啪啦滚代码的场面不是一回事。Nma

打开终端,扫描敲下 `nmap -sT -p 80,网站443 example.com`,几秒后你就知道这个网站到底开了哪些门。扫描别被“扫描”这个词吓到,网站它跟黑客电影里那种噼里啪啦滚代码的扫描场面不是一回事。Nmap 就是网站个网络探测工具,你让它去敲目标服务器的扫描门,它回来告诉你哪扇门开着、网站门后面大概站着谁。扫描

我第一次用 nmap 扫自己搭的网站博客,结果发现 3306 端口大剌剌敞着——MySQL 直接暴露在公网。扫描那会儿我还觉得“反正没数据”,网站后来才意识到,扫描光靠端口开放这一条信息,网站攻击者就能拿着默认密码字典慢慢试。扫描扫一次,后背发凉一次,这话不夸张。

先搞清楚你要扫什么

扫网站和扫 IP 是两码事。网站背后可能挂着 CDN,你扫到的其实是 Cloudflare 或者阿里云的边缘节点,不是真实服务器。想绕过 CDN 得先找源站 IP,那是另一个话题了。新手最容易犯的错就是拿着 `nmap example.com` 一顿跑,然后对着 Cloudflare 的 IP 分析半天,纯属白费功夫。

如果目标没上 CDN,那简单:`nmap -sS -sV -p- example.com`。`-sS` 是 SYN 半开扫描,快且隐蔽;`-sV` 探测服务版本;`-p-` 扫全部 65535 个端口。不加 `-p-` 的话默认只扫最常见的 1000 个,很多奇怪的服务就藏在剩下的端口里。

那些扫出来的东西怎么看

假设你扫出来这么一行:

PORT STATE SERVICE VERSION 8080/tcp open http Apache Tomcat 9.0.30 

信息量不小。8080 开着,跑的是 Tomcat,版本 9.0.30。去查一下这个版本有没有已知 CVE,运气好能翻出几个反序列化漏洞。再试试访问 `http://example.com:8080/manager/html`,如果 Tomcat 管理后台没设密码或者用了弱口令,那就直接进去了。Nmap 只负责告诉你门在哪,推不推得开是你自己的事。

还有更细的。`-sV --version-intensity 9` 能把版本信息挖到极致,有时候连补丁级别都能猜出来。`-O` 尝试识别操作系统,不过准确率一般,别太当真。`--script` 才是重头戏,Nmap 自带的脚本库能直接检测漏洞、枚举目录、爆破弱口令。比如 `--script http-enum` 会把网站常见路径跑一遍,`--script mysql-empty-password` 直接试 MySQL 空密码。这些脚本用好了,一次扫描顶你手动测半天。

别当愣头青,扫描有代价

全端口扫描加上版本探测,流量特征非常明显。目标如果有 IDS/IPS,你扫到一半 IP 就被封了。生产环境千万别用 `-T4` 或 `-T5` 这种激进模式,`-T2` 慢是慢点,但不容易触发告警。我习惯加 `--randomize-hosts` 和 `--scan-delay 1s`,让流量看起来不那么像机器行为。

还有法律问题。扫自己的服务器随便扫,扫别人的——哪怕只是“看看”——在很多司法管辖区已经踩线了。未授权扫描在某些国家算计算机犯罪,别觉得没造成破坏就没事。我见过有人扫了某政府网站,第二天就被请去喝茶,虽然最后没起诉,但过程够难受的。

扫完之后干什么

把结果存下来,`-oX scan.xml` 输出 XML 格式,方便后续用工具解析。对比不同时间的扫描结果,能发现新开的端口或者服务版本变化——这往往是运维疏忽或者被入侵的信号。我给自己定的规矩是每月扫一次自己的资产,每次都能找出点意外的东西,比如某个测试用的 Redis 忘了关,或者 Jenkins 还在用默认凭据。

Nmap 不是万能钥匙,它只是把锁眼露给你看。真正的功夫在扫描之后:分析版本、查漏洞库、验证利用条件、评估影响范围。扫一次十分钟,分析可能花一整天。但这一整天值得,因为你知道自己的门到底锁没锁。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap