NMAP是一款流行的网络扫描和嗅探工具,被广泛应用在黑客领域做漏洞探测以及安全扫描,更多的nmap是一个好用的网络工具,在生产和开发中也经常用到,主要做端口开放性检测和局域网信息的查看收集等,不同Linux发行版包管理中一般也带有nmap工具,这里选择去官网下载源码包进行编译安装,nmap的官网是:https://nmap.org/ 由于某城墙的原因,打开会比较慢或者连接失败,所以奉上nmap中文网地址:http://www.nmap.com.cn/ 中文网里面也有比较全的使用手册,这里选择Linux版本的二进制包进行下载
下载地址同样是指向官网,下载之后准备安装
首先解压并进入源码目录:
tar -xjvf nmap-7.31.tar.bz2 cd nmap-7.31/
然后使用默认参数执行编译:
./configure make make install
等安装之后nmap命令就可以直接使用了,直接执行 nmap 会给出详细使用参数,执行 nmap -v 会输出当前版本号
现在可以执行一个最简单的命令扫描一台主机,比如: nmap 192.168.0.42 什么参数都不加默认相当于-sS参数也就是TCP SYN Scan,这种方式不需要和服务器有完整的握手就能返回信息,并且发送SYN数据包的优点是不会产生任何会话,也不会在服务器产生日志;确认之后启动扫描,当前命令被阻塞,按一下回车,会显示一次当前的执行进度:
扫描完成后会显示详细的结果:
扫描结果首先是显示主机是开启的,对应的端口open表示正常开启,后面的SERVICE是nmap能嗅探到的大致的服务,filtered表示有些端口可能开着,但是没有被程序监听或者被防火墙等其余软件拦截过滤导致状态未知,可以看出用着很方便,不用手动去排查端口了
使用nmap还可以检测远程主机的操作系统,比如: nmap -O 192.168.0.46 执行后返回如下信息:
可以看到22端口是开启的,并且系统类型是Linux,以及大致的内核版本号信息
另外nmap后面的ip可以直接改为192.168.0.1-100来实现局域网网段扫描或者192.168.0.1/24来实现整个局域网扫描,除此还有各种参数实现指定端口扫描,排除扫描,或者发送各种不同类型的数据包扫描等各种强大的功能,