Nmap-端口扫描工具
Nmap是一个自动化的端口扫描工具,它可以探测一个或多个主机的端口开放情况,并依据尝试建立的TCP连接,推测主机的操作系统等信息。
官方网站:https://nmap.org/
Nmap安装
Windows下我们可以在官网找到Nmap工具的预编译包。
Linux下,我们可以直接从软件源中安装,或是直接使用Kali Linux自带的Nmap。
Nmap使用实例
直接在终端输入nmap,我们可以查看到该命令行工具的提示信息。其支持的参数非常多,我们这里简单介绍Nmap工具的常见用法。
扫描一个网段的主机
如下命令扫描了192.168.1.0/24地址段。
nmap 192.168.1.0/24 -sS
-sS:Nmap默认会尝试三次握手建立完整的TCP连接,来实现端口探测,即-sT模式,但这种情况容易让我们的探测被日志记录下来,-sS能直接发送TCP SYN包,不仅探测速度更快,而且被发现的几率更小。

从图中返回结果来看,其实我们从MAC地址就可以对网络中的设备类型略窥一二了。
192.168.1.1运行了DNS服务,而且MAC地址为一个华为设备,那显然它是个家庭路由器。192.168.1.101从MAC地址就可以看出它是个树莓派。192.168.1.103的MAC地址显示它使用的是一块微星主板,从开放的端口来看大致是一个Windows操作系统的PC机。
注:使用TCP SYN探测端口,需要root权限。
推测一台主机的详细信息
如下命令扫描192.168.1.126主机的详细信息。
nmap 192.168.1.126 -A
-A:该参数是几个参数的合体,包括推测服务版本(-sV)、推测操作系统(-O)、脚本扫描(-sC)和Traceroute(--traceroute)功能。不过-A耗时可能较长,我们也可以单独指定扫描参数。
端口详情和操作系统推测:

脚本扫描结果:

Traceroute信息:

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。