首页 > 其他分享 >C10-05-1-Nmap常用参数说明

C10-05-1-Nmap常用参数说明

时间:2024-09-22 18:02:12浏览次数:7  
标签:扫描 05 Nmap 主机 端口 TCP 目标 C10

一、Nmap

免责声明

本文仅是个人对该工具的学习测试过程记录,不具有恶意引导意向。

本文工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。

在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描,以避免侵犯对方的隐私或违反相关法律法规。

1.1 概述

下载地址:https://nmap.org/download.html

官方文档说明:https://nmap.org/man/zh/index.html

端口+IP+指纹

虽然Nmap这些年来功能越来越多,但它最初也是从一个端口扫描器开始的,并且这仍然是它的核心功能。

nmap 是一个网络扫描和安全审计工具,它被广泛用于网络发现和安全审核。

Nmap(“Network Mapper<网络映射器>”)是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速扫描大型网络,当然用它扫描单个主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,这些主机提供什么服务(应用程序名和版本),这些服务运行在什么操作系统中, 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。(端口和指纹信息)

虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。

Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些补充信息则依赖于所使用的选项。通常会列出端口号,协议,服务名称和状态。

nmap **这个简单的命令会扫描主机上的超过1660个TCP端口。许多传统的端口扫描器只列出所有端口是开放还是关闭的,Nmap的信息粒度比它们要细得多:

端口状态:

①open(开放的):意味着目标机器上的应用程序正在该端口监听连接/报文。

②filtered(被过滤的):意味着防火墙、过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知它是open还是closed。

③closed(关闭的):端口没有应用程序在它上面监听,但是它们随时可能开放。

④unfiltered(未被过滤的):当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是unfiltered。

⑤open|filtered 和 closed|filtered :状态组合,即Nmap无法确定该端口处于两个状态中的哪一个状态。

1.2 nmap目标指定规范

Nmap指定扫描目标支持IPv4的CIDR风格的地址:

192.168.10.0/24

Nmap通过八位字节地址范围支持IPv4这样的扫描:

192.168.0-255.1-254

0-255.0-255.13.37

Nmap扫描目标也可以是域名

1.3 选项及示例

nmap -A -T4 scanme.nmap.org

说明:

-A: Enable OS detection, version detection, script scanning, and traceroute

用来进行操作系统及其版本的探测,及路由跟踪。

-T4:时间模板;设置扫描速度。可以设置不同的速度等级,以适应不同的扫描环境。速度级别从0到5,级别越高,扫描速度越快,但也越容易被防火墙拦截。


模板名称:默认模式为Normal(T3)

paranoid (0)、sneaky (1)、polite (2)、normal(3)、aggressive(4)、insane(5)

(T0)适合需要极小网络影响的扫描,几乎不会被IDS/IPS检测到。这是串行扫描,速度极慢(至少间隔5m)

(T1)扫描速度很慢,可用于IDS躲避;仍然是串行扫描(15s)

(T2)降低了扫描速度以使用更少的带宽和目标主机资源(400ms,但会动态地调整间隔,最大为1s)

(T3)默认模式为Normal,因此 -T3实际上是未做任何优化;(不使用固定的扫描间隔,而是采用并行扫描技术,同时发送多个探测;单次扫描延时1s,一秒后当前端口被放弃并进行下一个端口扫描)

(T4)假设用户具有合适及可靠的网络从而加速扫描;(行扫描来增加速度,但可能会增加被检测到的风险;单次扫描延时10ms)

(T5)假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性最快,但可能会产生大量的网络流量,极有可能被IDS/IPS检测到;(单次扫描延时5ms)

从Nmap的某个版本开始(可能是Nmap 7.00或更高版本),-T 参数的行为有所变化,并且可能已经被新的参数(如--min-rate, --max-rate, --min-hostgroup, --max-hostgroup, --min-parallelism, --max-parallelism, --min-rtt-timeout, --max-rtt-timeout, --initial-rtt-timeout, --max-retries, --host-timeout, --scan-delay 等)所取代,这些参数提供了更细粒度的控制来优化扫描速度和避免被检测。

1.3.1 nmap指定主机的其他方式

除了直接自定域名或IP为扫描目标,也可以通过选项指定

加黑字体的选项是网络安全人员常用选项

-iL (IP地址列表文件)

列表中的项可以是Nmap在命令行上接受的任何格式(IP地址,主机名,CIDR,IPv6,或者八位字节范围)。 每一项必须以一个或多个空格,制表符或换行符分开

-iR (主机数量)

(随机选择目标)可以用来选择随机的互联网主机来扫描;不合需要的IP如特定的私有,组播或者未分配的地址自动略过。选项0意味着永无休止的扫描;些网管对于未授权的扫描可能会很感冒并加以抱怨,使用该选项的后果自负!

--exclude <host1,host2,host3,...> (排除主机/网络)

--excludefile (排除文件中的列表)以换行符,空格,或者制表符分隔

1.3.2 主机发现常用参数(主机发现)

加黑字体的选项是网络安全人员常用选项

-sL (列表扫描)

它仅仅列出指定网络上的每台主机,不发送任何报文到目标主

机,也并不能确定主机是否存活,所以扫描速度是很快的。默认情况下,Nmap会对主机进行反向域名解析以获取它们的名字(是主机发现的退化形式);如果主机的域

名出乎您的意料,那么就值得进一步检查以防错误地扫描其它组织的网络。既然只是打印目标主机的列表,像其它一些高级功能如端口扫描,操作系统探测或者Ping扫描的选项就没有了。(从描述看,感觉该选项更多关注反向域名解析结果)

-sP (Ping扫描)

只进行ping扫描(主机发现),然后输出对扫描做出响应的那些主机,没有进一步的测试 (如端口扫描或者操作系统探测)当防守严密的防火墙位于运行Nmap的源主机和目标网络之间时, 推荐使用那些高级选项。否则,当防火墙捕获并丢弃探测包或者响应包时,一些主机就不能被探测到。

-P0 (无ping)

默认情况下,Nmap只对正在运行的主机进行高强度的探测如端口扫描,版本探测,或者操作系统探测。用-P0禁止主机发现会使Nmap对每一个指定的目标IP地址进行所要求的扫描(也就是说默认情况nmap现对目标探活,再对活动的目标执行其他探测)

Namp -P0 10.0.0.0/24 (不预先探活,直接全部扫描,省时)

Nmap 10.0.0.0/24 (现探活,再对活目标扫描,耗时)

-PS [portlist] (TCP SYN Ping)

SYN标志位告诉对方正试图建立一个连接。 通常目标端口是关闭的,一个RST (复位) 包会发回来。 如果碰巧端口是开放的,目标会进行TCP三步握手的第二步,回应一个SYN/ACK TCP报文。然后运行Nmap的机器则会扼杀这个正在建立的连接, 发送一个RST而非ACK报文, RST报文是运行Nmap的机器而不是Nmap本身响应的,因为它对收到的SYN/ACK感到很意外。Nmap并不关心端口开放还是关闭。 无论RST还是SYN/ACK 响应都告诉Nmap该主机正在运行;

定义:TCP SYN Ping扫描是Nmap用于检测目标主机是否存活的一种技术。

工作原理:在这种扫描方式中,Nmap向目标主机的特定端口(通常是80)发送一个TCP SYN数据包。如果目标主机在该端口上监听,并且主机是活跃的,它将返回一个SYN/ACK响应。Nmap收到这个响应后,就知道目标主机是活跃的,但并不会进一步尝试建立连接。

权限要求:通常不需要特殊权限,因为它不涉及建立完整的TCP连接。

应用场景:主要用于快速检测目标主机是否在线,而不进行深入的端口扫描或操作系统检测。

-PA [portlist] (TCP ACK Ping)

远程主机应该总是回应一个RST报文, 因为它们并没有发出过连接请求到运行Nmap的机器,如果它们正在运行的话;

-PU [portlist] (UDP Ping)

不指定端口,默认是31338;如果目标机器的端口是关闭的,UDP探测应该马上得到一个ICMP端口无法到达的回应报文。 这对于Nmap意味着该机器正在运行。没有回应也被这样解释:类似许多其它类型的ICMP错误,像主机/网络无法到达或者TTL超时则表示down掉的或者不可到达的主机。(该扫描类型的主要优势是它可以穿过只过滤TCP的防火墙和过滤器)

-PE; -PP; -PM (ICMP Ping Types)

-PE:Nmap发送一个ICMP type 8 (回声请求),期望返回type 0 (回声响应)报文;type 0 (回声响应)报文;

当管理员特别封锁了回声请求报文,而忘了其它ICMP查询可能用于相同目的时,这两个查询可能很有价值:

-PP:时间戳请求;Nmap发送一个ICMP type 13 (回声请求),期望返回type 14 (回声响应)报文;

-PM:地址掩码请求;Nmap发送一个ICMP type 17 (回声请求),期望返回type 18 (回声响应)报文;

-n (不用域名解析)

告诉Nmap永不对它发现的活动IP地址进行反向域名解析;

-R (为所有目标解析域名)

告诉Nmap 永远 对目标IP地址作反向域名解析。 一般只有当发现机器正在运行时才进行这项操作。

1.3.3 端口扫描

虽然Nmap努力产生正确的结果,但请记住所有结果都是基于目标机器(或者它们前面的防火墙)返回的报文的。这些主机也许是不值得信任的,它们可能响应以迷惑或误导Nmap的报文。

这一节讨论Nmap支持的大约十几种扫描技术。一般一次只用一种方法。

-sS (TCP SYN扫描) 半连接扫描,使用最频繁,安全,快

它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个端口。SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接;

定义:半开放扫描(SYN Scan),也称为SYN半连接扫描,是Nmap中最常用的扫描技术之一。

工作原理:在这种扫描方式中,Nmap向目标端口发送一个SYN数据包,就像它打算建立一个完整的TCP连接一样。但是,一旦收到SYN/ACK响应,Nmap不会发送ACK数据包来完成三次握手,而是发送一个RST数据包来终止连接。这种方式的好处是,它不会建立一个完整的TCP连接,因此扫描速度更快,且不易被目标主机记录在系统日志中。

权限要求:通常需要root或管理员权限来执行,因为它涉及到发送原始套接字数据包。

应用场景:适用于快速扫描大量主机的开放端口,同时减少被目标主机记录的风险。

-sS和-PS的区别总结:

主要区别:-sS用于扫描目标主机的开放端口,而-PS主要用于检测目标主机是否存活。-sS会尝试与目标端口的TCP连接(但不完全建立),而-PS只是发送一个SYN数据包来检测主机是否响应。

使用场景:-sS适用于需要了解目标主机开放端口的情况,而-PS则适用于仅需要知道目标主机是否在线的场景。

-sT (TCP connect()扫描)

一种基本的TCP扫描方式,它基于TCP连接机制来探测目标主机的端口状态。

原理

-sT扫描通过发送TCP连接请求(即进行三次握手)来探测目标端口的开放状态。具体来说,扫描器会尝试与目标主机上的指定端口建立TCP连接。如果目标端口有程序在监听,那么连接会成功建立,此时端口被视为开放(open);如果目标端口没有程序监听,则目标主机会回复一个RST(重置)包,表示端口不可达(close)。

特点

易于使用:-sT扫描不需要特殊的权限,在大多数UNIX系统下,任何用户都可以自由使用这个系统调用。

易被发现:由于这种扫描方式需要建立完整的TCP连接,因此它很容易被目标主机察觉并记录在系统日志中。这表现为一系列的连接请求和可能的错误信息。

有效性:虽然易于被发现,但-sT扫描是一种非常有效的端口扫描方式,它能够准确地识别出目标主机的开放端口。

使用场景

-sT扫描适用于大多数需要探测目标主机开放端口的场景。然而,由于其易于被发现的特点,建议在网络扫描和渗透测试等需要高度隐蔽性的场景中谨慎使用,或者结合其他扫描方式以提高隐蔽性。

-sU (UDP扫描)

UDP扫描用-sU选项激活。它可以和TCP扫描如 SYN扫描 (-sS)结合使用来同时检查两种协议;UDP不建立连接,通常依赖于目标主机对特定类型 UDP 数据包的响应来推断端口状态;

closed(关闭的):回ICMP端口不可到达错误(类型3,代码3)

filtered(被过滤的):ICMP不可到达错误(类型3, 代码1,2,9,10,或者13)

open(开放的):某服务会响应一个UDP报文

open|filtered(开放|被过滤的)几次重试后还没有响应:

防火墙和过滤规则:UDP 扫描可能会受到网络中的防火墙和过滤规则的影响。一些防火墙可能会丢弃 UDP 数据包或发送伪造的 ICMP 端口不可达消息来欺骗扫描器。

扫描速度和效率:由于 UDP 扫描的复杂性,它可能比 TCP 扫描更慢且效率更低。因此,在进行大规模 UDP 扫描时,需要仔细考虑扫描参数和扫描策略。

1.3.4 端口说明和扫描顺序

除了所有前面讨论的常用扫描方法, Nmap提供选项说明哪些端口被扫描以及扫描是随机还是顺序进行。

默认情况下,Nmap用指定的协议对端口1到1024以及nmap-services 文件中列出的更高的端口在扫描。

-p (只扫描指定的端口)

该选项指明想扫描的端口,覆盖默认值,参数后面可以跟一个或多个端口号或端口范围。端口号之间可以用逗号(,)分隔,范围可以用连字符(-)表示(如1-1023)。

既扫描TCP端口又扫描UDP端口时,可以在端口号前加上T:或者U:指定协议( -p U:53,111,137,T:21-25,80,139,8080),但必须指定 -sU ,以及至少一个TCP扫描类型(如 -sS,-sF,或者 -sT)。如果没有给定协议限定符, 端口号会被加到所有协议列表

注意:

默认情况下,nmap 使用 TCP 协议进行扫描。如果你需要扫描 UDP 端口,可以使用 -sU 参数。

你可以通过 -p-(连字符后无空格)来指定扫描目标上的所有端口(TCP 或 UDP,取决于是否使用了 -sU)。

对于大范围的端口扫描,考虑使用 -T 参数来设置扫描的时间模板,以加快扫描速度。但要注意,提高扫描速度可能会增加被目标网络发现的风险

-r (不要按随机顺序扫描端口)

默认情况下,Nmap按随机顺序扫描端口(除了出于效率的考虑,常用的端口前移)。这种随机化通常都是受欢迎的, 但您也可以指定-r来按顺序进行端口扫描。

1.3.5 服务和版本探测

在用某种其它类型的扫描方法发现TCP 和/或者UDP端口后,版本探测会询问这些端口,确定到底什么服务正在运行。nmap-service-probes 数据库包含查询不同服务的探测报文和解析识别响应的匹配表达式

Nmap试图确定服务协议 (如 ftp,ssh,telnet,http),应用程序名(如ISC Bind,Apache httpd,Solaris telnetd),版本号, 主机名,设备类型(如 打印机,路由器),操作系统家族 (如Windows,Linux)以及其它的细节,如 如是否可以连接X server,SSH协议版本 ,或者KaZaA用户名)

-sV (版本探测)

打开版本探测,也可以用 -A 同时打开操作系统探测和版本探测。

--allports (不为版本探测排除任何端口)

用于指示Nmap扫描目标主机上所有可能的端口(通常是1到65535之间的所有端口),而不是仅限于Nmap的默认扫描范围;

默认情况下,Nmap版本探测会跳过 9100 TCP端口,因为一些打印机会打印发送到该端口的任何数据,会导致数十页HTTP get请求、二进制 SSL会话请求等等被打印出来。这一行为可以通过修改或删除nmap-service-probes 中的Exclude指示符改变,也可以不理会任何Exclude指示符,指定--allports扫描所有端口。

1.3.6 操作系统探测

-O (启用操作系统检测)

也可以使用 -A 来同时启用操作系统检测和版本检测。

1.3.7 时间和性能

-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (设置时间模板)

详细说明

1.3.8 输出

-oN <文件名>: 将扫描结果保存到指定文件中,以标准格式(nmap 的默认输出格式)存储。

-oX <文件名>: 将扫描结果以 XML 格式保存到指定文件中,这便于后续使用其他工具进行解析和处理。

-oG <文件名>: 将扫描结果以 Grepable 格式保存到指定文件中,这种格式便于通过 grep 等工具进行搜索和过滤。

-oA <基本文件名>: 同时以 -oN、-oX 和 -oS 的格式保存扫描结果,文件名由指定的基本文件名和扩展名组成(例如,-oA myscan 将产生 myscan.nmap、myscan.xml 和 myscan.gnmap)。

-oS <文件名>: 将扫描结果以脚本 kiddie 友好的格式保存到指定文件中,这通常是一种更容易阅读的格式。

-v (提高输出信息的详细度)

通过提高详细度,Nmap可以输出扫描过程的更多信息。 输出发现的打开端口,若Nmap认为扫描需要更多时间会显示估计 的结束时间。这个选项使用两次,会提供更详细的信息。这个选 项使用两次以上不起作用。

标签:扫描,05,Nmap,主机,端口,TCP,目标,C10
From: https://www.cnblogs.com/cnblogsfc/p/18425591

相关文章

  • 05-信息扫描&漏洞探测的工具使用
    1、安装并使用Nmap扫描一个地址(本机、VPS、虚拟机环境都可以),提供扫描结果截图在https://nmap.org/nmap官网下载对应的操作系统版本文件。安装完成后对本机10.0.0.151进行-A(探测操作系统及版本),-T4(加速扫描),-sS(半连接扫描)。2、安装并使用Xray被动扫描,提供过程文档+......
  • P1056 [NOIP2008 普及组] 排座椅(模拟)
    1.用x,y数组存放切了几对学生,用数组的下标记录切的位置2.按照题目要求k和l依次取出最大的数组的值,并将其变为-1,再次循环取出第二大的值,之后所有下标为-1的的下标就是切的学生对多的3.切的意思是把两个学生分开#include<bits/stdc++.h>usingnamespacestd;intx[1005],......
  • 解决Access出现Microsoft JET Database Engine (0x80004005)未指定的错误
    MicrosoftJETDatabaseEngine(0x80004005)未指定的错误,这个错误只有在使用Access数据库时才能出现 出现以上问题,可以使用以下步骤进行解决问题: 1、系统可能没有注册msjetoledb40.dll,解决办法是  点开始--->运行,输入regsvr32msjetoledb40.dll,回车即可;2、数据库所在......
  • Java高级05telnet,Socket
    telnet既测试了端口号也测试了IP是否通畅//80是开放的端口号telnet111.206.208.13580//退出ctrl+]quit//查看本机使用的端口号telnet-anoSocket//客户端publicstaticvoidmain(String[]args){//创建一个Socket对象,指定服务器的IP地址和端口号......
  • 基于Spark的温布尔登特色赛赛事数据分析预测及算法实现_718p9405
    目录技术栈和环境说明python语言解决的思路具体实现截图框架介绍技术路线操作可行性性能/安全/负载方面python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取技术栈和环境说明结合用户的使用需求,本系统采用运用较为广泛的Python语言,DJAN......
  • 电容式液位传感器CL01DH05 鱼缸 水 牛奶 蜂蜜 乳胶 体液(血液)酸性或碱性溶液检测传感器
    CL01DH05电容式液位传感器是利用水和空气中存在的电荷不一样来感应并区分容器内是否有水的当容器内无水,则电荷较少,此时等效于没有在电容,当容器内有水,水中带有大量的电荷此时相对于空气能有由一点的容值变化,通过电路对信号的处理,再由算法的计算和判断这个变化,最终输出当前状态是否有......
  • 光学式管道液体传感器LL10AH05 拖把洗地机清水箱与污水箱专用检测传感器
    应用领域:拖把洗地机咖啡机净水器饮水机管道水流检测 产品特征:无机械运动部件、可靠性高体积小、成本低液位控制精度高防水等级 IP66......
  • 光电式液位传感器LLM12DH05 国产替代英国SST LLC系列型号
    LLM12DH05光电液位传感器是利用光在两种不同介质界面发生反射折射原理,是一种新型接触式点液位测控装置。可以单点检测,TTL兼容数字电平信号输出,适用于运输及军工等行业生产。⚫应用邻域/Application鱼缸/fishtank 热水器/waterheater 咖啡机/Coffeemachine 小家电/Hous......
  • 电气自动化入门05:三相异步电动机的正反转点动控制电路
    视频链接:3.2电工知识:三相异步电动机的正反转点动控制电路_1_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1PJ41117PW?p=6&vd_source=b5775c3a4ea16a5306db9c7c1c1486b51.断路器及其选型1.1断路器定义、分类、表示符号1.2.断路器功能、断路器脱钩方式1.3.电动......
  • 题解 GD230531C【眺望】
    题目描述有\(n\)座灯塔排成一排,第\(i\)座灯塔的高度是\(a_i\)。你需要求出有多少对\(l<r\)满足\(a_l=a_r\),且\(\foralll<i<r,a_i<a_l\)。灯塔的高度有\(Q\)次修改,每次给定\(x,h\),表示将\(a_x\)修改为\(h\)。求出修改之前和每次修改之后的答案。\(n......