nmap扫描器在kali系统中自带,无需下载。

未经授权扫描别人网站、主机端口属于入侵违法违规行为。学习扫描时尽量用内网和对虚拟机进行学习扫描,避免违法违规。


Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器。Nmap(汉译为诸神之眼)工具可以用来扫描电脑上开放的端口,确定哪些服务运行在哪些端口,并且推断出计算机运行的操作系统。通过使用该工具,可以评估网络系统安全。是网安最强大的开源扫描器,能跨平台运行可以支持ip、端口、网站、操作系统等。

一文带你从了解到精通Nmap扫描器_UDP

一文带你从了解到精通Nmap扫描器_UDP_02

可以去官网访问一下,会提供各种学习资料、参考手册、命令集等。国内大部分技术博文都来自于官网的技术文档。

一文带你从了解到精通Nmap扫描器_UDP_03

这里可以看到125个网络安全工具

Nmap扫描 Nmap的功能

(1)首先用户需要进行主机发现,找出活动的主机。然后,确定活动主机上端口状况。

(2)根据端口扫描,以确定端口上具体运行的应用程序与版本信息。

(3)对版本信息侦测后,对操作系统进行侦测


主动收集,就是要跟目标的网站、服务器、进行主动的交互。

基于命令行

一文带你从了解到精通Nmap扫描器_UDP_04

help 查看帮助

┌──(root㉿kali)-[~]
└─# nmap -help


如果要了解局域网里有哪些主机

┌──(root㉿kali)-[~]
└─# nmap -sn 192.168.122.0/24

要了解主机的开放了哪些端口

┌──(root㉿kali)-[~]
└─# nmap -s-S -pl-1000 192.168.199.174

用tcp端的三次握手进行扫描,可以指定端口,也可以不指定。

搜索操作系统

┌──(root㉿kali)-[~]
└─# nmap -O 192.168.199.174

扫描版本

┌──(root㉿kali)-[~]
└─# nmap -sV192.168.199.174

综合扫描

┌──(root㉿kali)-[~]
└─# nmap -A 192.168.199.174

脚本扫描,类似一个漏洞扫描器来使用,

一文带你从了解到精通Nmap扫描器_TCP_05

一文带你从了解到精通Nmap扫描器_UDP_06

1.Nmap简介

Nmap的定义:

Nmap是一款开源的网络探测和安全审核工具,可以用来扫描网络主机,确定哪些主机在运行、运行哪些服务以及运行哪个操作系统等信息。它可以通过各种方式对目标主机进行探测,如TCP SYN扫描、UDP扫描、TCP connect() 扫描、FTP bounce公积扫描等。同时,nmap还具有多种高级功能,如操作系统指纹识别、版本探测、脚本扫描等,是网络安全人员必备的工具之一。


Nmap的特点 :

可以扫描本地网络中的所有设备,包括开放的端口和服务。

可以进行远程主机的端口扫描,以及对远程主机进行操作系统和服务版本的探测。

支持多种扫描技术,如TCP、UDP、ICMP等。

可以进行灵活的扫描范围和扫描选项的配置。

可以使用脚本进行高级扫描和漏洞检测。

可以输出多种格式的扫描结果,如文本、XML、HTML等。

可以通过插件机制进行功能扩展。

Nmap的应用场景:

在网络安全领域,nmap可以用来扫描网络上的主机和端口,以便发现网络中存在的漏洞和安全隐患。

在系统管理领域,nmap可以用来检查网络设备的配置和状态,以便确定网络中存在的问题和瓶颈。

在开发领域,nmap可以用来测试网络应用程序的安全性和性能,以便提高应用程序的质量和可靠性。

在渗投测试领域,nmap可以用来获取目标网络的拓扑结构和服务信息,以便制定公积计划和选择公积方式。

在网监控领域,nmap可以用来监测网络设备的状态和活动,以便及时发现和解决网络故障和安全事件。

2. Nmap的基本使用

安装Nmap:

使用包管理器安装(以Ubuntu为例):

sudo apt-get update
sudo apt-get install nmap

从源代码安装:

wget https://nmap.org/dist/nmap-7.91.tar.bz2
tar -xvjf nmap-7.91.tar.bz2
cd nmap-7.91
./configure
make
sudo make install

使用Docker安装:

docker pull nmap
docker run nmap -sS target

表格语法:

安装方式

命令

包管理器

sudo apt-get install nmap

源代码安装

./configure

make

sudo make install


Docker安装

docker pull nmap

docker run nmap -sS target

Nmap的基本命令 :

nmap扫描目标IP地址:nmap 192.168.1.1

nmap扫描目标主机名:nmap www.example.com

nmap扫描目标IP地址段:nmap 192.168.1.1-100

nmap扫描目标网段:nmap 192.168.1.0/24

nmap扫描目标网段并指定端口范围:nmap -p 1-100 192.168.1.0/24

nmap扫描目标主机并指定端口范围:nmap -p 80,443 www.example.com

nmap扫描目标主机并进行服务探测:nmap -sV www.example.com

Nmap的扫描方式:

1.基本TCP扫描:nmap -sT target


使用TCP连接进行扫描,可以检测目标主机上的开放端口。


2.基本UDP扫描:nmap -sU target


使用UDP数据报进行扫描,可以检测目标主机上的开放端口。


3.全面扫描:nmap -p1-65535 -sV -sS -T4 target


扫描所有的TCP端口和UDP端口,同时进行版本检测和TCP SYN扫描,使用-T4选项来加快扫描速度。


4.操作系统检测:nmap -O target


使用TCP/IP栈指纹来检测目标主机的操作系统类型。


5.NSE脚本扫描:nmap --script <script> target


使用NSE脚本来扫描目标主机,可以检测出很多服务和漏洞信息。可以使用 --script-help 选项来查看所有可用的脚本。



3. Nmap高级使用

Nmap的高级扫描技巧:

使用nmap进行TCP SYN扫描

nmap -sS target

使用nmap进行TCP Connect扫描


nmap -sT target


使用nmap进行UDP扫描


nmap -sU target


使用nmap进行操作系统指纹识别


nmap -O target


使用nmap进行服务指纹识别


nmap -sV target


使用nmap进行端口版本指纹识别


nmap -sV --version-all target

使用nmap进行脚本扫描


nmap -sC target

使用nmap进行快速扫描


nmap -F targe


使用nmap进行全端口扫描


nmap -p- target


使用nmap进行带服物和版本的全端口扫描


nmap -p- -sV target

OS指纹识别:

使用nmap进行OS指纹识别:

$ nmap -O target_ip
Starting Nmap 7.80 ( https://nmap.org ) at 2021-08-11 14:00 EDT
Nmap scan report for target_ip
Host is up (0.0010s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
111/tcp open  rpcbind
 
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.32 - 2.6.39
Network Distance: 1 hop
 
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.34 seconds

通过使用nmap的-O选项,可以对目标主机进行OS指纹识别,nmap会尝试发送不同的TCP/IP数据包,通过目标主机的响应来判断其所使用的操作系统类型和版本号。在上面的示例中,nmap识别出目标主机运行的是Linux 2.6.X操作系统,并提供了更详细的信息。

端口扫描技巧

使用TCP SYN扫描技巧

nmap -sS <目标IP>

使用TCP connect() 扫描技巧

nmap -sT <目标IP>

使用UDP扫描技巧

nmap -sU <目标IP>

使用TCP ACK扫描技巧

nmap -sA <目标IP>

使用TCP Window扫描技巧

nmap -sW <目标IP>

使用TCP Maimon扫描技巧

nmap -sM <目标IP>

使用IDLE/IPID Header扫描技巧

nmap -sI <目标IP>

使用FTP Bounce扫描技巧

nmap -b <FTP代理IP>:<FTP代理端口> <目标IP>

使用SCTP INIT扫描技巧

nmap -sY <目标IP>

使用RPC扫描技巧

nmap -sR <目标IP>

使用IP Protocol扫描技巧

nmap -sO <目标IP>

使用NULL扫描技巧

nmap -sN <目标IP>

使用FIN扫描技巧

nmap -sF <目标IP>

使用Xmas扫描技巧

nmap -sX <目标IP>

使用ACK扫描技巧

nmap -sA <目标IP>

使用TCP Ping扫描技巧

nmap -PT <目标IP>

使用UDP Ping扫描技巧

nmap -PU <目标IP>

使用ICMP Ping扫描技巧

nmap -PE <目标IP>

操作系统漏洞扫描

使用nmap扫描操作系统漏洞:

nmap -sV --script vuln <目标IP>



实战演练


使用nmap扫描时要注意,nmap不但可以扫描局域网,在互联网上也可以扫描。大家在做实验的时候要注意不要乱扫,可能会出现违法违规的情况哦。

一文带你从了解到精通Nmap扫描器_UDP_07

上图nmap扫描局域网中存在1.6.4三个ip地址,主机扫描。

一文带你从了解到精通Nmap扫描器_TCP_08

一文带你从了解到精通Nmap扫描器_IP_09

在扫描目标主机1-1000的开放端口,发现有135.139.445端口开放。端口扫描

一文带你从了解到精通Nmap扫描器_TCP_08

一文带你从了解到精通Nmap扫描器_UDP_11

使用nmap语句,系统扫描

nmap -O 172.16.126.6

查询目标机器是什么操作系统,可以看到扫描除了很多的端口。

一文带你从了解到精通Nmap扫描器_UDP_12

目标机器可能是Windows Vistal7|8.1版本,目标靶机为Windows 7 sp1。

nmap -A 172.16.126.6

扫描所有信息罗列出。(可能有时候速度比较慢,像卡住一样。这个时候不要停止扫描,只是动作慢,稍等片刻后会显示结果。也可以输入命令-v或者-vv,可以看到详细的过程。)例:

nmap -A  -v 172.16.126.6

一文带你从了解到精通Nmap扫描器_TCP_08

nmap -A -T4 -v 172.16.126.6

会把nmap线程加大,参数是可以叠加的。

一文带你从了解到精通Nmap扫描器_IP_14

一文带你从了解到精通Nmap扫描器_UDP_15

一文带你从了解到精通Nmap扫描器_TCP_05

基于脚本来扫描,例如采用默认脚本来进行扫描,时间可能久一点,但是会把详细的MAC地址、操作系统信息、端口服务、版本号等帮我探测出来。

Nmap的脚本引擎

使用默认脚本扫描目标主机:

nmap -sC target_ip

nmap -sC target_ip是一种Nmap扫描技术,它将在目标IP上运行默认的Nmap脚本。这些脚本可以用于执行各种任务,例如漏洞扫描、服务和操作系统检测等。使用该命令可以快速获取目标主机的信息,以便进行后续的渗投测试或安全评估。

列出所有可用的脚本:

nmap --script-help all

zenmap图形化扫描实战

一文带你从了解到精通Nmap扫描器_UDP_17

Windows系统用户直接安装zenmap安装包就可以使用,kali系统用户以前的一些版本是自带zenmap软件的,后面的版本是不带的,需要去官网自行安装。

1、Zenmap简介

zenmap是一个开放源代码的网络探测和安全审核的工具,它是nmap安全扫描工具的图形界面前端,它可以支持跨平台。使用zenmap工具可以快速地扫描大型网络或单个主机的信息。如扫描主机提供了哪些服务,使用的操作系统、网站等。图形化也更利于新手学习,不用配置命令行,仅选择模式即可。

2、Zenmap的基本操作方法

①Zenmap的目标处写需要扫描的ip信息。
②上述命令可以直接写在Zenmap的命令行,也可选择配置中自带的命令。
③写好目标跟命令后,点击扫描按钮即可。
④也可在cmd中执行nmap命令。

3、Zenmap配置说明

一文带你从了解到精通Nmap扫描器_IP_18

第一种:Intense scan
(nmap -T4 -A -v)
一般来说,Intense scan可以满足一般扫描
-T4 加快执行速度
-A 操作系统及版本探测
-v 显示详细的输出

第二种:Intense scan plus UDP
(nmap -sS -sU -T4 -A -v)
即UDP扫描
-sS TCP SYN 扫描
-sU UDP 扫描

第三种:Intense scan,all TCP ports
(nmap -p 1-65536 -T4 -A -v)
扫描所有TCP端口,范围在1-65535,试图扫描所有端口的开放情况,速度比较慢。
-p 指定端口扫描范围

第四种:Intense scan,no ping
(nmap -T4 -A -v -Pn)
非ping扫描
-Pn 非ping扫描

第五种:Ping scan
(nmap -sn)
Ping 扫描
优点:速度快。
缺点:容易被防火墙屏蔽,导致无扫描结果
-sn ping扫描

第六种:Quick scan
(nmap -T4 -F)
快速的扫描
-F 快速模式。

第七种:Quick scan plus
(nmap -sV -T4 -O -F --version-light)
快速扫描加强模式
-sV 探测端口及版本服务信息。
-O 开启OS检测
–version-light 设定侦测等级为2。

第八种:Quick traceroute
(nmap -sn --traceroute)
路由跟踪
-sn Ping扫描,关闭端口扫描
-traceroute 显示本机到目标的路由跃点。

第九种:Regular scan
规则扫描

第十种:Slow comprehensive scan
(nmap -sS -sU -T4 -A -v -PE -PP -PS80,443,-PA3389,PU40125 -PY -g 53 --script all)
慢速全面扫描。

一文带你从了解到精通Nmap扫描器_IP_19

一文带你从了解到精通Nmap扫描器_UDP_20