探索

nmap命令

时间:2010-12-5 17:23:32  作者:焦点   来源:综合  查看:  评论:0
内容摘要:第一次用nmap扫自己服务器,看到22端口开着,我顺手加了`-sV`。结果它告诉我OpenSSH版本是7.4。这个版本有个挺有名的用户名枚举漏洞,虽然不算致命,但足以让我把升级计划提前了。nmap就是

第一次用nmap扫自己服务器,命令看到22端口开着,命令我顺手加了`-sV`。命令结果它告诉我OpenSSH版本是命令7.4。这个版本有个挺有名的命令用户名枚举漏洞,虽然不算致命,命令但足以让我把升级计划提前了。命令nmap就是命令这样,它不跟你讲客气话,命令直接把网络上的命令东西摊开给你看。

装nmap很简单,命令`apt install nmap`或者`brew install nmap`,命令两分钟的命令事。真正需要花时间的命令是理解它那些参数组合。默认情况下,命令nmap扫描主机的1000个常用端口,速度不算快但也不慢。我习惯先跑一遍`nmap 192.168.1.1`,看看目标大概开了哪些门。输出很干净,端口、状态、服务名,三列排得整整齐齐。

但默认扫描有个问题——它只扫TCP。UDP端口经常被忽略,而DNS、SNMP、DHCP这些服务恰恰跑在UDP上。加`-sU`可以扫UDP,代价是慢得让人想泡杯茶等着。有次我扫一台内网设备,TCP只开了80和443,加上UDP扫描才发现161端口开着SNMP,community string还是默认的public。这玩意儿泄露的信息比HTTP多得多。

端口状态有六种:open、closed、filtered、unfiltered、open|filtered、closed|filtered。最常遇到的是open和filtered。filtered意味着有防火墙在丢包,你发出去的探测包石沉大海。closed倒是好事,说明主机活着但那个端口没服务。open|filtered最讨厌,nmap自己也拿不准,通常出现在UDP扫描里。

服务识别靠`-sV`。nmap往目标端口发一串探针,把返回的banner跟自己的数据库比对。准确率挺高,但别全信。我见过把nginx伪装成IIS的,nmap照样报nginx。版本号有时候也会偏,尤其是自己编译的服务。操作系统检测用`-O`,原理是分析TCP/IP协议栈的指纹。这个功能对权限有要求,普通用户跑不了。结果也不一定准,虚拟机里经常识别成宿主机系统。

脚本引擎是nmap真正好玩的地方。`--script`后面跟脚本名或者类别。比如`--script vuln`会跑所有漏洞检测脚本,`--script http-title`只抓网页标题。我常用`--script smb-os-discovery`来快速判断Windows版本,比`-O`在某些场景下更直接。脚本用Lua写的,自己改起来也不难。有次我改了个http-headers脚本,让它顺便把Server头里的版本号单独拎出来,省得每次肉眼找。

扫描速度控制是个双刃剑。`-T4`是常用的加速档,`-T5`更快但容易丢包导致漏报。生产环境我一般用`-T3`,稳。`--min-rate`和`--max-rate`可以精确控制每秒发包数,适合在带宽有限或者怕触发IDS的时候用。有次我在客户内网扫,用了`-T4`,结果交换机CPU直接飙到90%,被网管打电话问是不是在搞压力测试。后来老老实实降到`-T2`,慢是慢,但没人来找麻烦。

输出格式值得单独说。默认是交互式输出,看着方便但不适合存档。`-oN`存普通文本,`-oX`存XML,`-oG`存grepable格式。我习惯同时用`-oA`,一次性生成三种格式加一个XML。XML丢给Metasploit或者自己写脚本解析,grepable用来快速过滤。比如`grep "22/open" scan.gnmap`能立刻找出所有开了SSH的主机。

防火墙绕过这块,nmap提供了不少选项。`-f`分片,`--mtu`指定分片大小,`-D`用诱饵IP混淆来源。这些技术对现代防火墙效果有限,但对付老设备或者配置粗糙的ACL偶尔有奇效。`--source-port`可以把源端口设成53或者20,有些防火墙规则会放行这些“可信”端口。我试过用`--source-port 53`绕过一台老ASA的过滤,成功了。新版本PAN-OS就没戏。

最后说个实际场景。有次排查内网为什么慢,我跑`nmap -sn 192.168.0.0/24`做ping扫描,发现多了三台不认识的设备。再对这三台跑`-sS -sV -O`,其中一台开着3389和445,系统识别为Windows Server 2008。问了一圈没人认领,直接拔网线。后来查出来是某个部门偷偷接的测试机,中了勒索病毒在局域网里疯狂扫描。nmap不能杀毒,但它能让你看见不该看见的东西。

用nmap别贪快,别扫不属于你的网络。参数组合千变万化,但核心逻辑就一条:发探测包,收回应,推断状态。剩下的都是经验。

最近更新
热门排行
copyright © 2026 powered by 烟消火灭网   sitemap