网络映射器工具Nmap

Nmap是一个免费开放的网络扫描嗅探工具包,也叫网络映射器。其主要功能有三个:一是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;三是可以推断主机使用的操作系统。

Nmap使用TCP/IP协议栈指纹准确的判断目标主机的操作系统类型,首先Nmap对目标主机进行端口扫描,找出哪些端口正在目标主机上监听。

Nmap的工作原理

测试 描述
T1 发送TCP数据包(Flag=SYN)到开放的TCP端口上
T2 发送一个空的TCP数据包到开放的TCP端口上
T3 发送TCP数据包(Flag=SYN、URG、PSH、FIN)到开放的TCP端口上
T4 发送TCP数据包(Flag=ACK)到开放的TCP端口上
T5 发送TCP数据包(Flag=SYN)到关闭的TCP端口上
T6 发送TCP数据包(Flag=ACK)到关闭的TCP端口上
T7 发送TCP数据包(Flag=URG、PSH、FIN)到关闭的TCP端口上

Nmap对目标主机进行一系列测试,利用得出的测试结果建立相应目标主机的Nmap指纹。最后,将此Nmap指纹与指纹库中的指纹进行查找匹配,从而得出目标主机的操作系统类型。

Nmap主要扫描类型如下:

Ping扫描 端口扫描
TCP SYN扫描 UDP扫描
操作系统识别 隐藏扫描

使用Nmap识别活跃主机

查看一个主机是否在线

1
nmap -sP [目标地址]

输出的信息中包含目标主机域名、主机在线和MAC地址等。也可以使用:

1
nping --echo-client "public" echo.[目标地址]

输出的信息显示了与echo.nmap.org网站链接时的数据发送情况,用户也可以发送一些指定的十六进制数据到指定端口:

1
nping -tcp -p 445 -data [数据内容] [目标地址]

输出的信息显示了主机与目标主机之间的TCP传输过程,通过发送数据包到指定端口模拟出一些常见的网络层攻击,以验证目标主机对这些测试的防御情况。

TCP端口扫描工具Nmap

查看目标开放端口号:

1
nmap [目标地址]

指定扫描1-1000之间的端口号

1
nmap -p 1-1000 [目标地址]

扫描特定端口:

例如扫描指定网段192.168.31.*内所有开放22端口的主机:

1
nmap -p 22 192.168.31.*

指定扫描结果输出格式

1
nmap -p 22 192.168.31.* -oG /home/test.txt

图形化工具Zenmap

Zenmap是NMAP官方推出的基于Nmap的安全扫描图形用户界面,它的设计目标是快速扫描大型网络。

注:kali2020.1版本不自带Zenmap工具了,使用apt安装也无法安装,所以这里附上安装步骤

下载RPM包:https://nmap.org/download.html

安装RMP转DEB工具:

1
sudo apt-get install alien fakeroot

安装依赖:

1
sudo apt-get install alien fakeroot --fix-missing

转换包rpm->deb:

1
fakeroot alien zenmap-7.80-1.noarch.rpm

安装deb包:

1
dpkg -i zenmap_7.80-2_all.deb

安装成功,如果碰到如下报错:

改一下环境变量:

1
export PATH=/usr/loca/sbin:/usr/sbin:/sbin:$PATH

安装成功

回到正题,打开Zenmap:

直接输入目标地址,开始扫描:

很多信息都能被扫描出来。