nmap扫描器在kali系统中自带,无需下载。
未经授权扫描别人网站、主机端口属于入侵违法违规行为。学习扫描时尽量用内网和对虚拟机进行学习扫描,避免违法违规。
Nmap是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器。Nmap(汉译为诸神之眼)工具可以用来扫描电脑上开放的端口,确定哪些服务运行在哪些端口,并且推断出计算机运行的操作系统。通过使用该工具,可以评估网络系统安全。是网安最强大的开源扫描器,能跨平台运行可以支持ip、端口、网站、操作系统等。
可以去官网访问一下,会提供各种学习资料、参考手册、命令集等。国内大部分技术博文都来自于官网的技术文档。
这里可以看到125个网络安全工具
Nmap扫描 Nmap的功能
(1)首先用户需要进行主机发现,找出活动的主机。然后,确定活动主机上端口状况。
(2)根据端口扫描,以确定端口上具体运行的应用程序与版本信息。
(3)对版本信息侦测后,对操作系统进行侦测
主动收集,就是要跟目标的网站、服务器、进行主动的交互。
基于命令行
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
脚本扫描,类似一个漏洞扫描器来使用,
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
表格语法:
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扫描局域网中存在1.6.4三个ip地址,主机扫描。
使用nmap语句,系统扫描
nmap -O 172.16.126.6
查询目标机器是什么操作系统,可以看到扫描除了很多的端口。
目标机器可能是Windows Vistal7|8.1版本,目标靶机为Windows 7 sp1。
nmap -A 172.16.126.6
扫描所有信息罗列出。(可能有时候速度比较慢,像卡住一样。这个时候不要停止扫描,只是动作慢,稍等片刻后会显示结果。也可以输入命令-v或者-vv,可以看到详细的过程。)例:
nmap -A -v 172.16.126.6
nmap -A -T4 -v 172.16.126.6
会把nmap线程加大,参数是可以叠加的。
基于脚本来扫描,例如采用默认脚本来进行扫描,时间可能久一点,但是会把详细的MAC地址、操作系统信息、端口服务、版本号等帮我探测出来。
Nmap的脚本引擎
使用默认脚本扫描目标主机:
nmap -sC target_ip
nmap -sC target_ip是一种Nmap扫描技术,它将在目标IP上运行默认的Nmap脚本。这些脚本可以用于执行各种任务,例如漏洞扫描、服务和操作系统检测等。使用该命令可以快速获取目标主机的信息,以便进行后续的渗投测试或安全评估。
列出所有可用的脚本:
nmap --script-help all
zenmap图形化扫描实战
Windows系统用户直接安装zenmap安装包就可以使用,kali系统用户以前的一些版本是自带zenmap软件的,后面的版本是不带的,需要去官网自行安装。
1、Zenmap简介
zenmap是一个开放源代码的网络探测和安全审核的工具,它是nmap安全扫描工具的图形界面前端,它可以支持跨平台。使用zenmap工具可以快速地扫描大型网络或单个主机的信息。如扫描主机提供了哪些服务,使用的操作系统、网站等。图形化也更利于新手学习,不用配置命令行,仅选择模式即可。
2、Zenmap的基本操作方法
①Zenmap的目标处写需要扫描的ip信息。
②上述命令可以直接写在Zenmap的命令行,也可选择配置中自带的命令。
③写好目标跟命令后,点击扫描按钮即可。
④也可在cmd中执行nmap命令。
3、Zenmap配置说明
第一种: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)
慢速全面扫描。