Nmap专题

article/2025/9/2 1:57:05

Nmap专题笔记

  1. 介绍网络扫描相关概念和Nmap的作用。
  2. 介绍Nmap相关概念、演示简单的安装过程。
  3. 列举Nmap的主要参数,介绍相关参数。
  4. 实例演示Nmap的常用扫描技巧。
  5. 介绍使用Nmap的脚本扫描。

建议学习方法

1.熟记Nmap的主要参数命令。
2.学习OSI七层模型的相关知识,理解扫描的真正含义和原理。
3.在允许和有限的条件下应当多做扫描练习,并且记录下结果以便分析。

什么是网络扫描?

针对目标网络主动发送特定的具有特殊功能的数据包,通过目标网路反馈的信息,用以确认网络目标的相关特征,使用什么操作系统,运行了什么样的服务,打开了哪些端口,等等做好记录。

为什么要做网络扫描?

在所有的安全测试中信息收集都属于测试的第一部分,而网络扫描属于其中之一,主动的探测和扫描目标主机,可以分析目标信息有哪些漏铜,做好分析记录,为后续漏洞分析做准备。

Nmap在网络扫描中具备了哪些常用的作用:

1、查看存活主机。
解:扫描目标网络主机IP地址下哪些主机是开启状态,哪些是关闭状态。
2、扫描目标主机开放的端口
解:知道了某个目标的端口(服务)开放关闭状态,才能通过某些端口更好的进行漏洞利用。
3、鉴别安全过滤机制。
解:扫描主机后,通过反馈会知道当前主机是否有IDS,IBS安全设备以及防御系统,或者防止扫描,防止发送特定的数据包和过滤数据包的功能。
4、识别目标主机的操作系统。
解:要对目标主机进行测试和漏洞利用,最起码要知道目标主机用的是什么操作系统,以及版本和特征,针对不同的特征可以找出操作系统原有的漏洞以并分析。
5、查看目标主机服务的版本信息。
解:扫描的主机如果是台目标服务器,通过扫描可以知道该服务器运行的是IIS还是Apache,他的MySQL是什么样的版本,在后续的漏洞利用当中有针对的去进行利用工作。
6、利用脚本扫描漏洞
解:Nmap事先编好了一些漏洞利用的脚本,可以用这些脚本去做简单的扫漏分析。

Nmap简介:

Nmap也称Network Mapper,是一款多平台的网络连接扫描软件,可以探测计算机网络上我主机服务情况,端口打开情况,操作系统情况,运行的机制情况。在渗透初期为了绘制目标网络拓展图,需用到Nmap对目标网络发送特定的数据包,对返回的数据包进行分析。

Nmap的主要适用平台:

Windows系统、MAC OS X系统、Linux系统

Nmap常见的运行方式:

Zenmap GUI方式(图形化界面)
命令行方式

Nmap的安装方式

去官网找到windows下载的安装包或者exe。
下载后组建全选就可以了,找到对应的目录最好在C盘里

Nmap打开方式
图形化界面直接点击桌面图标就行。
命令行有两种打开方式:
1、打开cmd:nmap
2、打开cmd把解压缩后的nmap.exe拖动到cmd命令行里

其他操作系统安装

其他才做系统就按照官网里的文件去下载后直接安装就可以了。Kaili里预置的有Nmap的软件参数都是通用的。

提示:Linux里面的Nmap区分大小写很严格,Windows里不是很严格

Nmap主要参数介绍

Nmap的功能参数主要分为以下几个大类

1、主机说明
2、主机发现
3、端口扫描
4、端口说明和描述顺序
5、服务与版本探测
6、脚本扫描
7、操作系统探测
8、时间和性能
9、防火墙/IDS规避和欺骗
10、输出选项

1、TARGET SPECIFITION 目标说明

-iL 从主机地址列表文件中导入扫描地址*

解:打开记事本逐行输入你需要扫描的IP地址保存到C盘命名1.txt,在打开CMD:

nmap -iL c:\1.txt

可以看到开放了哪些端口以及服务,最下面可以看到扫描了两个地址,几个地址开启成功几个地址未开启

-iR随机选择目标地址进行扫描,num hosts表示数目,设置为0则表示无休止扫描

–exclude 排除某个主机地址

在这里插入图片描述

–excludefile 排除主机地址列表文件中的地址
在这里插入图片描述

HOST DISCOVERY 主机发现

sL 列表扫描,仅将指令的目标IP列举出来,不进行主机发现
解:用网址能扫出他的ip

nmap -sL baidu.com

-sn 和-sP一样,只用Ping扫描主机发现,不扫描目标主机的端口
解:只会看到该主机是否在线,不会去看端口
在这里插入图片描述

-Pn将所有指定主机视为已开启状态,跳过主机发现过程

解:也就是说对一个网段或者网络进行扫描的时候, 不管该主机是否开启,都会去扫描,不一样的地方就是跳过主机发现。

-PS TCP SYN ping ,发送一个设置了SYN标志位的空TCP报文,默认端口为80,也可指定端口
在这里插入图片描述

-PA TCP ACK ping ,发送了一个设置ACK标志位的TCP报文,默认端口为80,也可制定端口
PU UDP ping ,发送一个空的UDO报文到指定端口,可穿透只过滤TCP的防火墙

-P0 使用IP协议ping
-PR 使用ARP ping
解:两种ping返回的数值是一样的,但是在特定的情况下,两个ping对目标造成影响却不同

-n/-R 不用域名解析 ,加速扫描, -R为目标IP做反向域名解析,扫描较慢- -些

-dns -servers 自定义 域名解析服务器地址
-traceroute 目标主机路由追踪
在这里插入图片描述

3、SCAN TECHNIQUES 端口扫描

Nmap将目标端口分为6种状态:

-open(开放的)
closed(关闭的)
-filtered(被过滤的)
-unfiltered(未被过滤)可访问但不确定开放情况
-open|filtered (开放或者被过滤)无法确定端口是开放的还是被过滤的

Nmap产生的结果是基于目标机器的响应报文的,而这些主机可能是不可信任的,会产生迷惑或者误导Nmap的报文
在这里插入图片描述

端口扫描的命令

-sS TCP SYN扫描 ,半开放扫描,速度快隐蔽性好(不完成TCP的握手连接),能够明确区分端口状态
-sT TCP连接扫描,容易产生记录,效率低,不推荐
-sA TCP ACK扫描,只设置ACK标志位,区别被过滤与未被过滤的。
-sU UDP服务扫描,例如DNS/DHCP等,低效率
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
sN;-sF;-sX TCP Null,Fin,Xmas扫描,从RFC挖掘微妙方法来区分开放关闭端口
-sI 利用僵尸主机上已知IP分段ID序列生产算法来探测目标上开放端口的信息,极端隐蔽
sO IP协议扫描,可以确定目标主机支持哪些IP协议,例如TCP/ICMP等
在这里插入图片描述
在这里插入图片描述

4、PORT SPECIFICATION AND SCAN ORDER 端口说明和扫描顺序

在这里插入图片描述

-p 指定扫描的端口,可以是单个端口,也可以是端口范围,可以指定UDP或TCP协议扫描特定端口
-p指定扫描协议,例如-p http 即可扫描http协议的端口状态
–exclude-ports 排除指定端口不扫描
-F 快速模式,仅扫描100个常用端口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、SERVICE/VERSION DETECTION 服务与版本探测

Nmap-services 包含大量服务数据库,Nmap通过查询数据库可以报告哪些端口可能对应什么服务,但不一定正确
-sV 进行服务版本探测
–version-intensity设置版本扫描强度,范围0-9,默认是7,强度越高,时间越长,服务越可能被正确的识别

6、SCRIPT SCAN 脚本扫描

**允许用户自己编写脚本来执行自动化的操作或者扩展Nmap的功能,使用Lua脚本语言。

在这里插入图片描述

7、操作系统探测

用TCP/IP协议栈fingerprinting进行探测, Nmap发送一系列TCP和UDP报文到远程主机, 检查响应中的每一 个比特。 测试后Nmap把结果和数据库中超过1500个已知的fingerprints比较,如匹配则输出结果。

-0 启用操作系统探测
解,可同时扫描操作系统和端口开放情况
-A 同时启用操作系统探测和服务版本探测(万能开关)
–osscan-limit 针对指定的 目标进行操作系统检测
–osscan-guess 当Nmap无法确定所检测的操作系统时 ,会尽可能地提供最相近的匹配

在这里插入图片描述
在这里插入图片描述

8、时间和性能

Nmap开发的最高优先级是性能,但实际应用中很多因素会增加扫描时间,比如特定的扫描选项,防火墙配置以及版本扫描等。

*-T<0-5> 设置时间模板级数,在0- 5中选择。T0、T1用于IDS规避, T2降低了扫描速度以使用更少的带宽和资源。默认为T3 ,未做任何优化。T4假设具有合适及可靠的网络从而加速扫描。T5假设具有特别快的网络或者愿为速度牺牲准确性。
-host-timeout

9、防火墙/IDS规避和欺骗

-f (报文分段); --mtu (使用指定的MTU )将TCP头分段在几个包中,使得包过滤器、IDS以及其它工具的检测更加困难

-D <decoy1 [, decoy2] [, ME.]…>隐蔽扫描 ;使用逗号分隔每个诱饵主机,用自己真实IP作为诱饵使用ME选项。如在6号或更后的位置使用ME选项, - - -些检测器就不报告真实IP。如不使用ME ,真实IP将随机放置
-S 伪造数据包的源地址
-source-port < portnumber>/-g < portnumber>伪造源端口

10、输出选项

-ON标准输出
-oX XML输出写入指定的文件
-oS 脚本小子输出,类似于交互工具输出
-0GGrep输出
-0A输出至所有格式
-V 提高输出信息的详细度
-resume <filename )继续中断的扫描

Nmap常用扫描技巧

1、扫描单一目标主机

nmap 39.156.69.79
nmap baidu.com
在这里插入图片描述
2、扫描整个子网
nmap 39.156.69.79/24
解也可以用-sP来扫描跳过端口
在这里插入图片描述

3、扫描多个目标
nmap 39.156.69.79 baidu.com等等无限延伸

4、扫描一个范围内的目标
nmap 39.156.69.79-200
解:该扫描会从79-200的所有地址扫描,可以配合使用例如-sP
5、导入IP列表进行扫描
nmap -iL ip.txt (要求在Nmap目录)
解:之前写过批量扫描可以去看看
6、列举目标地址,但不进行扫描
nmap -sL 39.156.69.79/24
解:只列举处所有子网的IP地址,但不进行扫描过程
7.排除某IP进行扫描
nmap 39.156.69.79/24 -exclude 39.156.69.79
解:之前已经演示过了可以去上面看看。排除单个不扫描
nmap 39.156.69.79/24 -exclude file ip.txt
解:同理,排除文件列表中的IP,注意格式和C,D盘

8、扫描特定主机的端口
nmap -p80,21,8080,135 39.156.69.79
nmap -p50-900 39.156.69.79
解:注意格式。
在这里插入图片描述
9、简单扫描,详细输出返回结果
nmap -vv 39.156.69.79
解:-vv有很多种用法不单单只有这一种
在这里插入图片描述
10、简单扫描并进行路由跟踪
nmap -traceroute baidu.com
在这里插入图片描述

11、ping扫描,不端口扫描(linux下使用需要ROOT权限)
nmap -sP 39.156.69.79
nmap -sn 39.156.69.79

12.探测操作系统类型
nmap -O 39.156.69.79
在这里插入图片描述

13、Nmap万能开关-A参数
-A包含1-10000端口的扫描,操作系统扫描,脚本扫描,路由跟追,服务探测。
14、混合命令扫描(重要)
nmap -vv -p1-1000 -O 196.254.223.216/24 -exclude 196.254.223.216
解:nmap扫描39.156.69.79的子网范围,和1-1000的端口范围,每个系统的桉树,并且去除掉39.156.69.79不扫描
在这里插入图片描述
在这里插入图片描述
15、半开放TCP SYN端口扫描
nmap -sS 39.156.69.79
16、扫描UDP 服务端口
nmap -sU 39.156.69.79
17、TCP链接端口扫描
nmap -sT 39.156.69.79
由于IDS/IPS系统的存在,防火墙可能会阻止掉SYN数据包,此时可发送设置了FIN标志的数据包,不需要完成TCP握手,不会再目标产生日志记录(重要)
nmap -sF baidu.com

在你不知道对方开启了什么系统和服务的时候,就要尝试用多种参数去扫描,并且做记录,因为你不敢保证返回过来的信息有没有骗你。记录下,可以取最多值来信任

19.服务版本探测
nmap -sV 39.156.69.79
**20、图形化界面
在这里插入图片描述
根据界面可以做调整

Nmap 脚本扫描

Nmap允许用户自己编写脚本进行自动化扫描操作,或者扩展Nmap现有的功能脚本文件的默认目录为: /usr/share/nmap/scripts,如图大概近600个不同分类不同功能的脚本
在这里插入图片描述
-sC参数等价于-sC=default使用默认类别的脚本进行扫描,可更换其他脚本类别。

脚本部分参数

–script-args= <n1=v1,[n2=v2…]>为脚本提供默认参数
–sCript- args-file=filename使用文件来为脚本提供参数
– script-updated更新脚本数据库
–script-trace显示脚本执行过程中所有数据的发送与接收
–script-help= 显示脚本的帮助信息

Nmap的脚本功能主要分为以下几类

扫描过程中可以使用-script=类别名称这种方式进行扫描:

auth:负责处理鉴权证书(绕开鉴权)的脚本

broadcast:在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务

brute:提供暴力破解方式,针对常见的应用如http/snmp等

default:使用-sC或- A选项拦描时候默认的脚本,提供基本脚本扫描能力

discovery:对网络进行更多的信息,如SMB枚举、SNMP查询等

dos:用于进行拒绝服务攻击

exploit:利用已知的漏洞入侵系统

external:利用第三方的数据库或资源,例如进行whois解析

fuzzer:模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞

intrusive:入侵性的脚本,此类脚本可能弓|发对方的IDS/IPS的记录或屏蔽

malware:探测目标机是否感染了病毒、开启了后门]等信息

safe:此类与intrusive相反,属于安全性脚本

version:负责增强服务与版本扫描( Version Detection )功能的脚本

vuln:负责检查目标机是否有常见的漏洞( Vulnerability ) , 如是否有MS08_ 067

扫描实例:
默认脚本扫描
nmap -sC IP
在这里插入图片描述

使用auth类脚本进行扫描,处理及安全证书方面的脚本,也可以作为部分弱口令的检查
Nmap --script=auth IP

剩下的,按照格式去了解和测试,不方便公开。


http://chatgpt.dhexx.cn/article/O6yy2O3I.shtml

相关文章

Nmap扫描

基本快速扫描 Nmap 默认发送一个arp的ping数据包来探测目标主机在1-10000范围内所开放的端口。 nmap 10.130.1.43 快速扫描多个目标 nmap <target ip1 address> <target ip2 address> nmap 10.130.1.28 10.130.1.43 详细描述输出扫描 简单扫描并对返回的结果详细描…

Nmap入门

Nmap入门 Nmap介绍 nmap是用来探测网络、目标主机的操作系统&#xff0c;安全审计的工具&#xff0c;可以用来快速扫描。nmap也有图形界面。 特点&#xff1a; 主机测试端口扫描版本检测支持探测脚本的编写 kali虚拟机中本来就有nmap&#xff0c;所以安装好kali之后直接在…

网络安全nmap扫描端口命令详解linux网络探测

简介&#xff1a; nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&#xff08;这是亦称 fingerprinting&#xff09;。它是网络管理员必用的软件之一&#xff0c;以及用…

cut指令

一、定义 正如其名&#xff0c;cut的工作就是“剪”&#xff0c;具体的说就是在文件中负责剪切数据用的。cut以行为单位处理数据&#xff0c;而不是整篇信息分析&#xff0c;这种机制和sed一样。 二、作用 将同一行里面的数据进行分解&#xff0c;最常使用在分析一些数据或文…

jieba分词cut与lcut的区别

从分词的效果来看两者没有区别。 区别在于分词后结果的表示形式。 例如&#xff1a;lcut分词 str_text "本法所称突发事件&#xff0c;是指突然发生&#xff0c;造成或者可能造成严重社会危害&#xff0c;需要采取应急处置措施予以应对的自然灾害、事故灾难、公共卫生…

linux之cut的使用

cut是一个选取命令&#xff0c;就是将一段数据经过分析&#xff0c;取出我们想要的。一般来说&#xff0c;选取信息通常是针对“行”来进行分析的&#xff0c;并不是整篇信息分析的 其语法格式为&#xff1a; cut [-bn] [file] 或 cut [-c][file] 或 cut [-df] [file]使用说明:…

图像分割之(三)从Graph Cut到Grab Cut

图像分割之&#xff08;三&#xff09;从Graph Cut到Grab Cut zouxy09qq.com http://blog.csdn.net/zouxy09 上一文对GraphCut做了一个了解&#xff0c;而现在我们聊到的GrabCut是对其的改进版&#xff0c;是迭代的Graph Cut。OpenCV中的GrabCut算法是依据《"GrabCut&qu…

shell中cut用法简介

shell中的cut命令 (2010-03-30 17:05:31) 转载▼ 标签&#xff1a; shell cut 杂谈 分类&#xff1a; shell cut是以每一行为一个处理对象的&#xff0c;这种机制和sed是一样的。&#xff08;关于sed的入门文章将在近期发布&#xff09; 2 cut一般以什么为依据呢? 也就是说&a…

Linux-cut

cut命令介绍 cut命令将文件的每一行剪切字节&#xff0c;字符和字段&#xff0c;并将这些字节&#xff0c;字符和字段写到标准输出 提取列&#xff0c;cut命令不能提取空格&#xff0c;可以是制表符或者其他字符 cut [选项][文件] 选项&#xff1a; -b&#xff1a;以字节为单…

Linux字符截取命令-cut

概述 cut是一个选取命令&#xff0c;。一般来说&#xff0c;选取信息通常是针对“行”来进行分析的&#xff0c;并不是整篇信息分析的。 语法 cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、…

反掩码的作用是什么?通配符掩码的作用是什么?—Vecloud

反掩码即路由器使用的通配符掩码与源或目标地址一起来分辨匹配的地址范围&#xff0c;跟子网掩码刚好相反。 它像子网掩码告诉路由器IP地址的哪一位属于网络号一样&#xff0c;通配符掩码告诉路由器为了判断出匹配&#xff0c;它需要检查IP地址中的多少位。这个地址掩码对使我们…

反掩码和通配符,傻傻分不清

网络掩码 网络掩码&#xff0c;大家很熟悉。格式跟 IP 地址一样&#xff0c;是 32 位的二进制数&#xff0c;网络部分用 1 表示&#xff0c;主机部分用 0 表示&#xff0c;和 IP 地址同时使用才有意义。 我们可以发现&#xff0c;网络掩码是由 1 和 0 组成&#xff0c;而且 1 …

彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区

1.子网掩码&#xff08;IP subnet mask&#xff09; 用途&#xff1a;标识一个IP地址的网络位&#xff0c;主机位 网络设备判断目的IP跟自己是否同一网段的依据。 特点&#xff1a;1和0绝对不可能间隔&#xff0c;1总在0的前面。 网络通信角度&#xff0c;子网掩码只具有本地…

反掩码和通配符,傻傻分不清?

网络掩码 网络掩码&#xff0c;大家很熟悉。格式跟 IP 地址一样&#xff0c;是 32 位的二进制数&#xff0c;网络部分用 1 表示&#xff0c;主机部分用 0 表示&#xff0c;和 IP 地址同时使用才有意义。 我们可以发现&#xff0c;网络掩码是由 1 和 0 组成&#xff0c;而且 1 …

通配符及反掩码的详解 (网络中ACL )

在我们学习ACL中&#xff0c;在搞懂ACL的同时也要搞定通配符掩码&#xff08;wildcard mask&#xff09;。说简单点&#xff0c;通配符掩码就是0为绝对匹配&#xff0c;必须严格匹配才行&#xff0c;而1为任意&#xff0c;从某种意义上讲&#xff0c;如果一个8位上有一个1字符&…

反掩码与通配符掩码

掩码我们学数通的应该都很熟悉&#xff0c;我们刚刚学习IP的时候肯定都学过&#xff0c;这里就不在叙述。 今天我们要说的是反掩码和通配符掩码&#xff0c;反掩码相信大家也都不陌生&#xff0c;我们配置OSPF的时候都能用的到但是很多网工也就知道配置OSPF就要那么配置&#x…

掩码、通配符与反掩码

掩码 采用按位与运算&#xff0c;计算一个ip地址的网络号0 & 0 0  1 & 0 0  即&#xff1a;x & 0 00 & 1 0  1 & 1 1  即&#xff1a;x & 1 xip地址的结构 网络号 主机号若要得到网络号&#xff0c;掩码的结构必然为前面是连续的1&am…

ACL 通配符掩码 匹配的范围计算及理解

例题 access-list 120 permit ip 10.0.0.0 0.0.0.191 any 这条ACL看似简单&#xff0c;却又复杂&#xff0c;因为正常我们见到的通配符掩码都是诸如0.0.0.255&#xff08;255.255.255.0&#xff09;/0.0.255.255&#xff08;255.255.0.0&#xff09;/0.0.0.127&#xff08;255…

UDF和GenericUDF区别

目录 UDF GenericUDF Java开发转了大数据&#xff0c;竟然被拉去做了非结构的ETL抽取&#xff0c;真的是比做后端伤脑筋&#xff0c;没有可借鉴的框架&#xff0c;只能根据数据进行抽取,第一份大数据实习&#xff0c;写完抽取代码后&#xff0c;需要写成UDF和UDTF进行使用。 …

URDF教程

创建自己的URDF文件 1.1创建树形结构文件 在这部分教程中要创建的将是下面的图形所描述的机器人的urdf文件 图片中这个机器人是一个树形结构的。让我们开始非常简单的创建这个树型结构的描述文件&#xff0c;不用担心维度等的问题。创建一个my_robot.urdf文件&#xff0c;…