Nmap在实战中的高级用法

2020-01-11 05:10 来源:未知

kali linux下nmap常用参数翻译记录:


 

Nmap在实战中的高级用法

Nmap提供了四项基本功能(主机发现、端口扫描、服务与版本侦测、OS侦测)及丰富的脚本库。Nmap既能应用于简单的网络信息扫描,也能用在高级、复杂、特定的环境中:例如扫描互联网上大量的主机;绕开防火墙/IDS/IPS;扫描Web站点;扫描路由器等等。

简要回顾Nmap简单的扫描方式:

Default

全面扫描:nmap-T4 -A targetip 主机发现:nmap-T4 -sn targetip 端口扫描:nmap-T4 targetip 服务扫描:nmap-T4 -sV targetip 操作系统扫描:nmap-T4 -O targetip

1
2
3
4
5
6
7
8
9
    全面扫描:nmap-T4 -A targetip  
 
    主机发现:nmap-T4 -sn targetip  
 
    端口扫描:nmap-T4 targetip  
 
    服务扫描:nmap-T4 -sV targetip  
 
    操作系统扫描:nmap-T4 -O targetip

上述的扫描方式能满足一般的信息搜集需求。而若想利用Nmap探索出特定的场景中更详细的信息,则需仔细地设计Nmap命令行参数,以便精确地控制Nmap的扫描行为。

下面列举比较实用的高级应用场景和技巧。

主机扫描:

title: NMAP
date: 2016-06-13 10:58
tags: kali渗透测试 主动信息收集

目标规范:

1     Nmap高级选项

-iL 做成ip地址列表文件


可以通过主机名,IP地址,网络等

1.1  查看本地路由与接口

Nmap中提供了–iflist选项来查看本地主机的接口信息与路由信息。当遇到无法达到目标主机或想选择从多块网卡中某一特定网卡访问目标主机时,可以查看nmap –iflist中提供的网络接口信息。

nmap –iflist

 图片 1

-iR 随机选择目标扫描

0x00 NMAP常用参数介绍


例:scanme.nmap.org, dream4.org/24, 192.168.0.1; 10.0.0-255.1-254

1.2  指定网口与IP地址

在Nmap可指定用哪个网口发送数据,-e <interface>选项。接口的详细信息可以参考–iflist选项输出结果。

示例:

nmap -e eth0 targetip

Nmap也可以显式地指定发送的源端IP地址。使用-S <spoofip>选项,nmap将用指定的spoofip作为源端IP来发送探测包。

另外可以使用Decoy(诱骗)方式来掩盖真实的扫描地址,例如-D ip1,ip2,ip3,ip4,ME,这样就会产生多个虚假的ip同时对目标机进行探测,其中ME代表本机的真实地址,这样对方的防火墙不容易识别出是扫描者的身份。

nmap -T4 -F -n -Pn -D192.168.1.100,192.168.1.101,192.168.1.102,ME 192.168.1.1

nmap -iR 100 -p22 (随机扫100个地址的22端口)

0x01 TARGET SPECIFICATION 目标发现

-iL <inputfilename>: 从指定文件获取主机或网络

1.3  定制探测包

Nmap提供–scanflags选项,用户可以对需要发送的TCP探测包的标志位进行完全的控制。可以使用数字或符号指定TCP标志位:URG, ACK, PSH,RST, SYN,and FIN。

例如,

nmap -sX -T4 –scanflags URGACKPSHRSTSYNFINtargetip

此命令设置全部的TCP标志位为1,可以用于某些特殊场景的探测。

另外使用–ip-options可以定制IP包的options字段。

使用-S指定虚假的IP地址,-D指定一组诱骗IP地址(ME代表真实地址)。-e指定发送探测包的网络接口,-g(–source- port)指定源端口,-f指定使用IP分片方式发送探测包,–spoof-mac指定使用欺骗的MAC地址。–ttl指定生存时间。

--exclude 排除哪些

-iL 添加扫描待ip列表文件

-iR <num hosts>: 随机选择主机,(0 不限制扫描主机数)

2     扫描防火墙

防火墙在今天网络安全中扮演着重要的角色,如果能对防火墙系统进行详细的探测,那么绕开防火墙或渗透防火墙就更加容易。所以,此处讲解利用Nmap获取防火墙基本信息典型的用法。

为了获取防火墙全面的信息,需尽可能多地结合不同扫描方式来探测其状态。在设计命令行参数时,可以综合网络环境来微调时序参数,以便加快扫描速度。

SYN扫描

首先可以利用基本的SYN扫描方式探测其端口开放状态。

nmap -sS -T4 www.91ri.org

扫描输出为:

Default

All 997 ports are filtered PORT STATE SERVICE 80/tcp open http 113/tcp closed auth 507/tcp open crs

1
2
3
4
5
6
7
8
9
    All 997 ports are filtered  
 
    PORT    STATE  SERVICE  
 
    80/tcp  open   http  
 
    113/tcp closed auth  
 
    507/tcp open   crs

我们可以看到SYN方式探测到3个端口开放,而有997个端口被过滤。Nmap默认扫描只扫描1000个最可能开放的端口,如果想扫描全部的端口.

使用命令nmap -sS -T4-p- www.91ri.org

FIN扫描

然后可以利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态。

nmap -sF -T4 www.91ri.org

Default

PORT STATE SERVICE 7/tcp open|filtered echo 9/tcp open|filtered discard 11/tcp open|filtered systat 13/tcp open|filtered daytime 23/tcp open|filtered telnet 25/tcp open|filtered smtp 37/tcp open|filtered time 79/tcp open|filtered finger 80/tcp open|filtered http 更多端口,此处省略

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    PORT      STATE         SERVICE  
 
    7/tcp     open|filtered echo  
 
    9/tcp     open|filtered discard  
 
    11/tcp    open|filtered systat  
 
    13/tcp    open|filtered daytime  
 
    23/tcp    open|filtered telnet  
 
    25/tcp    open|filtered smtp  
 
    37/tcp    open|filtered time  
 
    79/tcp    open|filtered finger  
 
    80/tcp    open|filtered http  
 
    更多端口,此处省略

ACK扫描

然后利用ACK扫描判断端口是否被过滤。针对ACK探测包,未被过滤的端口(无论打开、关闭)会回复RST包。

nmap -sA -T4 www.91ri.org

扫描输出为:

Default

Not shown: 997 unfiltered ports PORT STATE SERVICE 135/tcp filtered msrpc 1434/tcp filtered ms-sql-m 32777/tcp filtered sometimes-rpc17

1
2
3
4
5
6
7
8
9
    Not shown: 997 unfiltered ports  
 
    PORT      STATE    SERVICE  
 
    135/tcp   filtered msrpc  
 
    1434/tcp  filtered ms-sql-m  
 
    32777/tcp filtered sometimes-rpc17

从结果可以997个端口是未被过滤的(unfiltered),而3个(135/1434/32777)被过滤了。所以,将ACK与FIN扫描 的结果结合分析,我们可以找到很多开放的端口。例如7号端口,FIN中得出的状态是:open或filtered,从ACK中得出的状态是 unfiltered,那么该端口只能是open的。

Window扫描

当然也可以利用Window扫描方式,得出一些端口信息,可以与之前扫描分析的结果相互补充。Window扫描方式只对某些TCPIP协议栈才有效。

window扫描原理与ACK类似,发送ACK包探测目标端口,对回复的RST包中的Window size进行解析。在某些TCPIP协议栈实现中,关闭的端口在RST中会将Window size设置为0;而开放的端口将Window size设置成非0的值。

nmap -sW -p- -T4 www.91ri.org

输出结果:

Default

PORT STATE SERVICE 7/tcp open echo 9/tcp open discard 11/tcp open systat 13/tcp open daytime 更多端口,此处省略

1
2
3
4
5
6
7
8
9
10
11
    PORT      STATE    SERVICE  
 
    7/tcp     open     echo  
 
    9/tcp     open     discard  
 
    11/tcp    open     systat  
 
    13/tcp    open     daytime  
 
    更多端口,此处省略

在采用多种方式获取出防火墙状态后,可以进一步进行应用程序与版本侦测及OS侦测。

此处不再赘述!91ri.org:小编这里份关于使用nmap突破防火墙的文章 推荐一下《Nmap绕过防火墙&脚本的使用》

nmap 192.168.1.0/24 --exclude 192.168.1-100 (从101往后开始扫描)

-iR 随机选择目标

不用指定目标ip,nmap对自动对全球的ip随机选择100个进行扫描

root@kali:~# nmap -iR 100  -p100

--exclude <host1[,host2][,host3],...>: 排除指定主机或网络

3     扫描路由器

Nmap内部维护了一份系统与设备的数据库(nmap-os-db),能够识别数千种不同系统与设备。所以,可以用来扫描主流的路由器设备。

--excludefile 从文件中排除

--exclude 排除扫描

当想要对某个ip地址段进行扫描,但是并不扫描其中特定的一些ip

root@kali:~# nmap 192.168.1.0/24 --exclude 192.168.1.1-100

--excludefile <exclude_file>: 从指定文件获取被排除的主机或网络

3.1  扫描思科路由器

nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16

思科路由器会在上述端口中运行了常见的服务。列举出上述端口开放的主机,可以定位到路由器设备可能的IP地址及端口状态。

-sL 列出扫描地址段

--excludefile

从文件列表中排除不需要扫描的ip


 

3.2  扫描路由器TFTP

nmap –sU –p69 –nvv target

大多数的路由器都支持TFTP协议(简单文件传输协议),该协议常用于备份和恢复路由器的配置文件,运行在UDP 69端口上。使用上述命令可以探测出路由器是否开放TFTP。

nmap -sL 192.168.1.0/28 (列出扫描哪些扫描ip,相当于子网掩码计算)

0x02 HOST DISCOVERY 主机发现

主机发现:

3.3  扫描路由器操作系统

与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。

nmap -O -F -n 192.168.1.1图片 2

-sn 不做端口扫描

-sn 端口扫描

Ping Scan - disable port scan

-sL: 列表扫描- 简单列出被扫描的目标(不发送任何报文至目标主机)

4     扫描互联网

Nmap内部的设计非常强大灵活,既能扫描单个主机、小型的局域网,也可以扫描成千上万台主机从中发掘用户关注的信息。扫描大量主机,需要对扫描时序等参数进行仔细的优化。

-Pn 主机发现阶段,不管回不回包,都扫描完。扫防火墙时比较必要。

-Pn 完全扫描

Treat all hosts as online -- skip host discovery
通常用于扫描防火墙

-sP: Ping 扫描- 仅仅进行ping扫描来发现目标主机,不做其他操作

4.1  发现互联网上web服务器

nmap -iR 100000 -sS -PS80 -p 80 -oG nmap.txt

随机地产生10万个IP地址,对其80端口进行扫描。将扫描结果以greppable(可用grep命令提取)格式输出到nmap.txt文件。

可以使用grep命令从输出文件提取关心的细节信息。

-PS -PA -PU -PY (使用SYN/ACK UDP SCTP)

-PS/PA/PU/PY[portlist] 协议扫描

TCP SYN/ACK, UDP or SCTP discovery to given ports
基于何种协议去进行扫描

-PN: 将所有主机设置为在线状态-- 跳过主机状态检测

4.2  统计互联网主机基本数据

  Nmap的创始人Fyodor在2008年的Black Hat大会发表一篇演讲,讲的是如何使用Nmap来扫描互联网(Nmap: Scanning the Internet),资料地址:。

  Fyodor进行互联网扫描的初衷是统计出网络经验数据并用之优化Nmap的性能。例如,根据统计出每个端口开放的概率,优先扫描常见端口,以节省用户的时间。

产生随机IP地址

  产生100万个随机的IP地址,并将之保存到文件中,方便后续扫描时作为参数输入。

nmap -iR 1200000 -sL -n | grep “not scanned” | awk ‘{print $2}’ | sort -n | uniq >! tp; head -25000000 tp >! tcp-allports-1M-IPs; rm tp

上述命令含义:随机生成1200000个IP地址(-iR 120000),并进行列表扫描(-sL,列举出IP地址,不进行真正的扫描),不进行dns解析操作(-n),这样将产生Nmap列表扫描的结果。在此 结果中搜出未扫描的行(grep “not scanned”),打印出每一行的第二列内容(awk ‘{print $2}’,也就是IP地址),然后对获取到的IP地址进行排序(sort -n),然后剔除重复IP地址,将结果保存到临时文件tp,再取出前1000000个IP地址保存到tcp-allports-1M-IPs文件中,删除 临时文件。

总之,此处产生了1000000个随机IP地址存放在tcp-allports-1M-IPs文件中。

优化主机发现

nmap -sP -PE -PP -PS21,22,23,25,80,113,31339-PA80,113,443,10042 –source-port 53 -T4 -iL tcp-allports-1M-IPs

上述命令进行主机发现:使用产生的IP地址(-iL tcp-allports-1M-IPs),指定发送包的源端口为53(–source-port 53,该端口是DNS查询端口,一般的防火墙都允许来自此端口的数据包),时序级别为4(-T4,探测速度比较快),以TCP SYN包方式探测目标机的21,22,23,25,80,113,31339端口,以TCP ACK包方式探测对方80,113,443,10042端口,另外也发送ICMP ECHO/ICMP TIMESTAMP包探测对方主机。只要上述的探测包中得到一个回复,就可以证明目标主机在线。

完整的扫描命令

在准备了必要的IP地址文件,并对主机发现参数优化后,我们就得到最终的扫描命令:

nmap -S [srcip] -d –max-scan-delay 10 -oAlogs/tcp-allports-%T-%D -iL tcp-allports-1M-IPs –max-retries 1–randomize-hosts -p- -PS21,22,23,25,53,80,443 -T4 –min-hostgroup 256 –min-rate175 –max-rate 300

上述命令用于扫描互联网上100万台主机全部的TCP端口的开放情况。

使用包含100万个IP地址的文件(-iL tcp-allports-1M-IPs),源端IP地址设置为srcip(指定一个IP地址,保证该IP地址位于统一局域网中,否则无法收到目标机的回 复包),主机发现过程使用TCP SYN包探测目标机的21,22,23,25,53,80,443,扫描过程将随机打乱主机顺序(–randomize-hosts,因为文件中的IP 已经排序,这里将之打乱,避免被防火墙检查出),端口扫描过程检查全部的TCP端口(-p-,端口1到65535),使用时序级别为4(-T4,速度比较 快),将结果以XML/grepable/普通格式输出到文件中(-oA logs/tcp-allports-%T-%D,其中%T表示扫描时间,%D表示扫描日期)。

-d表示打印调试出信息。

–max-scan-delay 10表示发包最多延时10秒,防止特殊情景下等待过长的时间。

–max-retries 1,表示端口扫描探测包最多被重传一次,防止Nmap在没有收到回复的情况下多次重传探测包,当然这样也会降低探测的准确性。

–min-host-group 256表示进行端口扫描与版本侦测时,同时进行探测的主机的数量,这里至少256个主机一组来进行扫描,可以加快扫描速度。

–min-rate 175和–max-rate 300,表示发包速率介于175和300之间,保证扫描速度不会太慢,也不会因为速率过高引起目标机的警觉。

扫描结果

Fyodor组织的此次扫描得出很多重要结论,统计出了互联网最有可能开放的10个TCP端口。

  • 80 (http)
  • 23 (telnet)
  • 22 (ssh)
  • 443 (https)
  • 3389 (ms-term-serv)
  • 445 (microsoft-ds)
  • 139 (netbios-ssn)
  • 21 (ftp)
  • 135 (msrpc)
  • 25 (smtp)

最有可能开放的10个UDP端口。

  • 137 (netbios-ns)
  • 161 (snmp)
  • 1434 (ms-sql-m)
  • 123 (ntp)
  • 138 (netbios-dgm)
  • 445 (microsoft-ds)
  • 135 (msrpc)
  • 67 (dhcps)
  • 139 (netbios-ssn)
  • 53 (domain)

-PE -PP -PM (icmp的echo,时间戳探测,子网掩码查询)

-PO[protocol list] 使用ip协议扫描

IP Protocol Ping

-PS/PA/PU [portlist]: 指定SYN(TCP SYN Ping)/ACK(TCP ACK Ping)/UPD(UDP Ping) 方式扫描指定的端口

5     扫描Web站点

Web是互联网上最广泛的应用,而且越来越多的服务倾向于以Web形式提供出来,所以对Web安全监管也越来越重要。目前安全领域有很多专门的 Web扫描软件(如AppScan、WebInspect、W3AF),能够提供端口扫描、漏洞扫描、漏洞利用、分析报表等诸多功能。而Nmap作为一款 开源的端口扫描器,对Web扫描方面支持也越来越强大,可以完成Web基本的信息探测:服务器版本、支持的Method、是否包含典型漏洞。功能已经远远 超过同领域的其他开源软件,如HTTPrint、Httsquash。

目前Nmap中对Web的支持主要通过Lua脚本来实现,NSE脚本库中共有50多个HTTP相关的脚本。

扫描实例:

nmap -sV -p 80 -T4 –script http*,defaultscanme.nmap.org

 图片 3

  上面以扫描scanme.nmap.org的Web应用展示Nmap提供Web扫描能力,从图中可以看到扫描结果中提供了比较丰富的信息。

首先是应用程序及版本:Apachehttpd 2.2.14 (Ubuntu)

然后搜出了该站点的affiliate-id:该ID可用于识别同一拥有者的不同页面。

然后输出HTTP-headers信息,从中查看到基本配置信息。

从http-title中,可以看到网页标题。某些网页标题可能会泄漏重要信息,所以这里也应对其检查。

有想深入学习nmap的也可以参考:《渗透测试工具Nmap从初级到高级》文章

from:

 

-P0 ip协议的扫描

-n/-R

Never do DNS resolution/Always resolve [default: sometimes]

  • -n:不进行nds解析
  • -R:对其进行反向解析

-PE/PP/PM: 探测ICMP回显,时间标记,网络掩码

-n 不做dns解析

--dns-servers 更换DNS服务器

<serv1[,serv2],...>: Specify custom DNS servers
更换系统默认DNS服务器,以得到不同的扫描结果

root@kali:~# nmap --dns-servers 8.8.8.8 www.sina.com

-PO [protocol list]: 探测主机支持的网络协议

-R 做dns反向解析

--traceroute 路由追踪

Trace hop path to each host
基本等同于traceroute命令

root@kali:~# nmap www.baidu.com --traceroute -p80

-n/-R: 从不进行DNS解析[默认: sometimes]

--dns-servers 指定dns服务器

0x03 端口发现 SCAN TECHNIQUES(扫描技术)

--dns-servers <serv1[,serv2],...>: 自定义DNS服务器

--system-servers 系统默认dns

-sS/sT/sA/sW/sM 基于TCP的端口发现

TCP SYN/Connect()/ACK/Window/Maimon scans
基于TCP的SYN/全连接/ACK/窗口/Maimon 扫描

--system-dns: 使用操作系统DNS解析

--traceroute 探测网络路径,和用traceroute命令类似

-sU 基于UPD协议的扫描

但是UDP的扫描的准确率并不高

 

nmap www.baidu.com--traceroute

-sN/sF/sX 基于TCP的空/finish/xmas的扫描

TCP Null, FIN, and Xmas scans

端口扫描技术:

端口发现:

--scanflags <flags>

Customize TCP scan flags
其实以上对于TCP的扫描都是对tcpflags位的组合,所以我们自然是可以自定义组合的。

-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon 扫描

--sS/sT/sA/sW/sM (TCP SYN/Connect()完整3次链接/ACK/tcp协议的窗口扫描/Maimon扫描)

-sI 僵尸扫描

<zombie host[:probeport]>: Idle scan

-sU: UDP 扫描

-sU

-sY/sZ 基于SCTP协议(少用)

SCTP INIT/COOKIE-ECHO scans

-sN/sF/sX: TCP null 不设置任何标志位(tcp标志头是0),FIN(只设置TCP FIN标志位),Xmas(设置FIN,PSH,和URG标志位)扫描

-sN/sF/sX (tcp的flag都没有,全空/只有一个FIN/Xmas(FIN PSH UGN))

-b 基于FTP的中继扫描

<FTP relay host>: FTP bounce scan


--scanflags <flags>: 自定义扫描标志

--scanflags 自定义设置tcp的flag

0x04 指定端口和扫描菜单

PORT SPECIFICATION AND SCAN ORDER

-sI <zombie host[:probeport]>: 闲置扫描

-sI 僵尸扫描

-p 扫描特定类型端口/范围

<port ranges>: Only scan specified ports
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9

-sO: IP协议扫描,确定目标机支持哪些IP协议(TCP,ICMP,IGMP,等等)

-sY/sZ 较少用

--exclude-ports 排除不需扫描的端口范围

<port ranges>: Exclude the specified ports from scanning

-b <FTP relay host>: FTP中转扫描

-s0 ip扫描

-F 快速扫描

Fast mode - Scan fewer ports than the default scan

--traceroute:  路由追踪,追踪到每台主机的跳转地址

-b ftp中继扫描

-r 按顺序扫描

Scan ports consecutively - don't randomize
如果我们对1-1000个端口发起扫描,namp默认会在每次扫描中随机选择,-r会使namp按照从大到小的顺序进行。

--reason: 显示每个端口的特定状态

扫什么端口:

--top-ports <number>

只扫描常用端口的top n
Scan <number> most common ports


 

-p 扫描指定端口

0x05 服务/版本探测

SERVICE/VERSION DETECTION

端口项详细说明和扫描实例:

nmap -p U:53 192.168.1.134

-sV

Probe open ports to determine service/version info
-sV会使用nmap中的大量特征库去进行探测比对

-p <port ranges>: 仅扫描指定端口

nmap -p T:21 192.168.1.134

--version-intensity

<level>: Set from 0 (light) to 9 (try all probes)
虽然-sV会nmap会调用自身大量的特征库资料去进行匹配,但是这样势必会增加比对的时间成本,所以我们可以探测阶段扫描的强度去最大限度的节省扫描的时间成本。

例:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080

--exclude-ports 除外哪些端口

--version-trace

Show detailed version scan activity (for debugging)
对扫描过程进行跟踪,显示扫描的具体过程


-F: 快速模式- 扫描常见端口

-F 快速模式(不指定端口的话,默认扫描1000个常用端口)

0x06 SCRIPT SCAN 脚本扫描

-r:  不按随机顺序扫描端口

-r 端口连续扫描

-sC: equivalent to --script=default

--top-ports <number>: 扫描<数量> 最常见的端口

--top-ports 排在前几的端口

--script=<Lua scripts>: <Lua scripts> is a comma separated list of directories, script-files or script-categories

具体的脚本文件

--port-ratio <ratio>:  扫描最常见的端口<比率>

nmap 192.168.1.133 --top-ports 10 排名前10的端口

--script-args=<n1=v1,[n2=v2,...]>

provide arguments to scripts
脚本扫描的参数

 

--port-ratio 扫描更常见的端口

--script-trace

Show all data sent and received
脚本扫描追踪

服务/版本探测:

服务扫描:

--script-updatedb

Update the script database.
更新nmap脚本库中的文件

-sV: 从开放的端口探测服务/版本信息

-sV 端口跑的服务扫描

--script-help=<Lua scripts>

Show help about scripts.
<Lua scripts> is a comma-separated list of script-files or script-categories.
脚本帮助文件,但对于一个陌生脚本时可以使用--script-help来查看该文件的使用说明

root@kali:/usr/share/nmap/scripts# nmap --script-help=http-xssed.nse

--version-intensity <level>: 设置扫描强度0 (高) to 9  (尝试所有探测)

--version-intensity 0-9 表示匹配程度

0x07 OS DETECTION 操作系统检测

--version-light: 打开轻量级模式(intensity 2)

--version-light 就是intensity2

-O

Enable OS detection
启用操作系统检测

--version-all: 保证每个端口尝试所有探测方式

--version-all 就是intensity9

--osscan-limit

Limit OS detection to promising targets
限制操作系统的检测,比如只发现Linux的或者,Windows的。


--version-trace: 显示正在进行扫描的任务的调试信息

--version-trace 扫描过程展示

0x08 时间和性能

TIMING AND PERFORMANCE
由于nmap的强大,甚至有时会带来破坏性的扫描,因此很容易被主机发现,此时我们有必要限制nmap的扫描性能。当然也能最大限度的开放nmap的扫描性能。

Options which take <time> are in seconds, or append 'ms' (milliseconds),
's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
-T<0-5>: Set timing template (higher is faster)

 

脚本扫描:

--min-hostgroup/max-hostgroup <size>

Parallel host scan group sizes
指定并行扫描的主机数量,每次最大或者最小扫描多少个主机

脚本扫描:

-sC 等于--script=default

--min-parallelism/max-parallelism <numprobes>

Probe parallelization

-sC: 等同于使用默认脚本--script=default

--script-args=n

--max-retries <tries>

Caps number of port scan probe retransmissions.
最大的探测次数

--script=<Lua scripts>: <Lua scripts> 以逗号分隔名单、目录列表、脚本文件或脚本类

--script-args-file=filename

--host-timeout <time>

Give up on target after this long
超时时间

--script-args=<n1=v1,[n2=v2,...]>: 提供脚本参数

--script-updatedb 更新脚本

--scan-delay/--max-scan-delay <time>

Adjust delay between probes
delay 扫描探测的延时时间/间隔时间

--script-trace: 显示所有发送和接受的数据

nmap --script-updatedb 更新脚本

--min-rate <number>

Send packets no slower than <number> per second
每秒发包数不少于多少

--script-updatedb: 更新脚本数据库.

--script-help 脚本手册

--max-rate <number>

Send packets no faster than <number> per second
每秒发包数不多于多少


 

nmap --script-help=xxxxx.nse xxx脚本的使用手册

0x09 防火墙躲避/欺骗

FIREWALL/IDS EVASION AND SPOOFING

操作系统探测:

系统检测:

-f --mtu <val>

fragment packets (optionally w/given MTU)
设置MTU之

-O: 启用操作系统探测

-O 检测操作系统类型

-D <decoy1,decoy2[,ME],...>

Cloak a scan with decoys
伪造源地址,但并不是正真的源地址,而是增加一些噪声源,用以迷惑目标ip,增加对方的分析难度。如果你始终都会发现我的话,我也会挣扎一下的,就像真假悟空一样。

--osscan-limit: 针对指定的目标操作系统进行探测

--osscan-limit 限制os检测,只检测某种os

-S -e -Pn 源地址ip伪造

-S <IP_Address>: Spoof source address
-e <iface>: Use specified interface
-Pn :防火墙扫描
使用指定源地址伪造源地址ip

root@kali:~# nmap -S 192.169.1.123 -e eth0 -Pn 192.168.0.1

--osscan-guess: 猜测最匹配的操作系统

--osscan-guess 更全面猜测os类型

-g/--source-port <portnum>

Use given port number
使用指定的源端口

root@kali:~# nmap -g10000 192.168.0.1

 

时间性能相关:

--proxies <url1,[url2],...>

Relay connections through HTTP/SOCKS4 proxies
如果软件本身不支持代理的话,那么我们只有使用系统代理链了。但,幸运的是nmap本身死支持代理的。

时间和性能:

-T 设置间隔多久发包

--data <hex string>

Append a custom payload to sent packets
添加用户自定义的数据字段,但是字段必须是16进制数。

选项是以毫秒为单位,除非你追加's'(秒),'m'(分),或者'h'(小时)

--min-hostgroup/max-hostgroup 并行最小/大扫多少主机

--data-string <string>

Append a custom ASCII string to sent packets
添加用户自定义的数据字段

-T[0-5]: 设置时间模板(越搞速度越快)

--min-parallelism/max-parallelism 并行扫描最小/最大数量

--spoof-mac 欺骗mac地址

<mac address/prefix/vendor name>
Spoof your MAC address
伪造一个mac地址,以混淆视听

--min-hostgroup/max-hostgroup <size>: 调整并行扫描组的大小

--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout 来回rtt时间

--badsum

Send packets with a bogus TCP/UDP/SCTP checksum
差错校验值

--min-parallelism/max-parallelism <time>: 调整探测报文的并行度

--max-retries 最大重试次数

--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: 指定探针超时时间

--host-timeout 响应时间多久算超时

--max-retries <tries>: 指定最大重试次数

--scan-delay 每次间隔多久扫描

--host-timeout <time>: 目标在指定时间内未响应,则放弃

nmap 192.168.1.133 --scan-delay 10s 每次探测延迟10秒发下一个探测包

--scan-delay/--max-scan-delay <time>: 调整探测延迟

--min-rate 发包速率不小于多少

--min-rate <number>: 发送数据包不低于<number>每秒

--max-rate 发包速率不大于多少

--max-rate <number>: 发送数据包不高于<number>每秒

防火墙/IDS 的躲避和欺骗功能:

 

-f;--mtu 设置mtu,最大传输单元。

防火墙/IDS 规避和欺骗:

-D 增加噪声IP

-f; --mtu <val>: 报文分段(使用指定的MTU)

nmap -D 192.168.1.11,192.168.1.12,192.168.1.141 192.168.1.134(用这些ip地址当源地址去发包,用“,”分隔,扫描141的机器)

-D <decoy1,decoy2[,ME],...>: 使用诱饵隐蔽扫描

-S 欺骗源地址

-S <IP_Address>: 源地址欺骗

nmap -S 192.168.1.11 -e eth0 192.168.1.134 (伪造11,用eth0网口,扫描134。一般来说得不到回包)

-e <iface>: 使用指定接口

-e 指定网口

-g/--source-port <portnum>: 源端口欺骗

-g/--source-port 使用指定的源端口

--data-length <num>: 附件随机数据包并发送

--proxies 指定代理

--ip-options <options>: 发送数据包与指定的IP选项

--data 指定data数据

--ttl <val>: 设置IP time-to-live域

nmap -p22 192.168.1.134 --data=FFFFFFFFFF

--spoof-mac <mac address/prefix/vendor name>: MAC地址欺骗

--data-string acsii码数据

--badsum: 发送伪造的TCP/UDP数据包

--data-length 数据长度限制

 

--ip-options ip头数据

输出:

--ttl 设定ttl值

-oN/-oX/-oS/-oG <file>: 将扫描报告标准输出, XML输出, s|<rIpt kIddi3, 和Grep输出,分别指定文件名

--spoof-mac 欺骗伪造mac地址

-oA <basename>: 输出至所有格式

--badsum 差错校验值

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

其他:

-d[level]: 提高或设置调试级别(推荐设置9 )

-6 ipv6地址

--open: 只显示打开的端口

-A 包含os,version,script和traceroute的组合

--packet-trace: 显示所有发送和接受的数据包

--iflist: 列举接口和路由(调试)

--log-errors: 将错误记录/警告保存至指定的文件

--append-output: 追加至指定输出文件

--resume <filename>: 继续暂停的扫描

--stylesheet <path/URL>: 设置XSL样式表,转换XML输出

--webxml: 参考由Nmap.Org提供的WEBXML样式表

--no-stylesheet: 忽略XML声明的XSL样式表

 

杂项:

-6: 启用IPv6扫描

-A:高强度扫描模式选项

--datadir <dirname>: 指定用户Nmap数据文件位置

--send-eth/--send-ip: 使用原以太网帧或原IP成发送数据包

--privileged: 假定用户拥有全部权限

--unprivileged: 假定用户不拥有原始套接字特权

-V: 显示版本号

-h: 输出帮助信息

 

实例:

  nmap -v -A scanme.dream4.org

  nmap -v -sP 192.168.0.0/16 10.0.0.0/8

  nmap -v -iR 10000 -PN -p 80

可以通过主机名,IP地址,网络等 例:scanme.nmap.org, dream4.org/24, 192.168.0.1; 10.0.0-255.1-254 -iL inputfilename: 从指定文件获取主机或网络...

TAG标签:
版权声明:本文由美高梅网投平台发布于美高梅网投网址,转载请注明出处:Nmap在实战中的高级用法