nmap命令详解使用方法
nmap 这东西,命令第一次用会觉得参数多到眼花。详解但真正常用的使用就那么十几个,剩下的命令要么是特定场景,要么是详解性能调优。我平时做内网资产梳理,使用基本一条命令就能把存活主机和开放端口摸清楚。命令 最基础的详解扫描: 想扫全端口? 存活探测是另一个高频操作。 服务识别得加 操作系统识别用 脚本引擎是 nmap 真正好玩的地方。 有次帮朋友看一台暴露在公网的测试机, 速度控制别忽略。 输出格式也值得说一句。 最后提一个坑:nmap 默认的 SYN 扫描需要 root。没 root 权限会自动退化成 TCP connect 扫描,速度慢一截,而且日志里会留完整连接记录。所以能用 sudo 就用 sudo,别跟自己过不去。 参数不用背,nmap 192.168.1.1。默认扫 1000 个常见端口,使用发 SYN 包,命令速度快,详解结果干净。使用但如果你扫的命令是公网 IP,对方可能有防火墙,详解这时候默认扫描会漏掉不少东西。使用nmap -p- 192.168.1.1。65535 个端口全过一遍,时间会明显拉长。我一般先快速扫一遍常见端口,发现有意思的目标再上全端口。不然对着几百台机器全端口扫,等结果能等到睡着。nmap -sn 192.168.1.0/24 只发 ARP 或 ICMP,不扫端口,几秒钟就能列出网段里所有活着的设备。比 ping 扫段靠谱,因为有些机器禁 ping 但 ARP 会回应。这个命令我每周至少跑一次,看看有没有陌生设备接进来。-sV。nmap -sV -p 22,80,443 192.168.1.1 会连上去抓 banner,告诉你跑的是 OpenSSH 8.9 还是 nginx 1.24。版本号有时候不准,但比光看端口号强得多。有一次扫到 8080 端口,以为是 Tomcat,-sV 一跑发现是 Jenkins,这就差出十万八千里了。-O。这功能依赖 TCP/IP 栈的指纹,准确率看情况。Linux 和 Windows 一般能分出来,具体发行版就别太当真。而且 -O 需要 root 权限,普通用户跑不了。--script 后面跟脚本名或类别。比如 --script http-title 能抓网页标题,--script vuln 会跑一堆漏洞检测脚本。但 vuln 类脚本动静大,容易触发 IDS 告警,内网用用还行,公网慎碰。nmap -sV --script=http-enum -p 80,443 target 直接列出了一堆敏感路径,包括 /backup/ 和 /.git/。他当时就傻了,说以为没人会去翻这些。nmap 的 http-enum 脚本就是干这个的,字典不算大,但命中率不低。-T4 是常用档位,再快就 -T5,但丢包率会上升,结果可能不准。--min-rate 和 --max-retries 更精细,适合脚本化批量扫描。我一般 -T4 起步,扫公网目标会降到 -T3,免得被 ban。-oN 存普通文本,-oX 存 XML,-oG 存 grep 友好的格式。批量扫描时我习惯 -oX 加 -oN 双份,XML 给后续脚本解析,文本自己翻着看。别小看这个,扫完 200 台机器再回头找某台的具体端口,没存档就等着重扫吧。nmap --help 随时能查。真正要练的是根据目标环境选组合——内网快扫、公网慢扫、服务识别加脚本、存活探测单独跑。扫多了自然就有手感了。
-
上一篇
-
下一篇