Nmap常用命令

NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包(win下也能用)。

语法:      nmap(选项)(IP)


常用选项:

 1 -O:激活操作探测;
 2 -P0:值进行扫描,不ping主机;
 3 -PT:是同TCP的ping;
 4 -sV:探测服务版本信息;
 5 -sP:ping扫描,仅发现目标主机是否存活;
 6 -ps:发送同步(SYN)报文;
 7 -PU:发送udp ping 8 -PE:强制执行直接的ICMPping;
 9 -PB:默认模式,可以使用ICMPping和TCPping;
10 -6:使用IPv6地址;
11 -v:得到更多选项信息;
12 -d:增加调试信息地输出;
13 -oN:以人们可阅读的格式输出;
14 -oX:以xml格式向指定文件输出信息;
15 -oM:以机器可阅读的格式输出;
16 -A:使用所有高级扫描选项;
17 --resume:继续上次执行完的扫描;
18 -P:指定要扫描的端口,可以是一个单独的端口,用逗号隔开多个端口,使用“-”表示端口范围;
19 -e:在多网络接口Linux系统中,指定扫描使用的网络接口;
20 -g:将指定的端口作为源端口进行扫描;
21 --ttl:指定发送的扫描报文的生存期;
22 --packet-trace:显示扫描过程中收发报文统计;


1.Nmap工具默认扫描前1000个端口,即1-1000。如果用户想扫描1000以上端口的话,需要使用-p选项来指定。

2.当用户同时指定扫描的目标太多时,可以使用简化符号来获取扫描结果。其中,目标地址之间使用逗号(,)分割。例如,同时扫描以上三台主机,则可以使用如下命令:
    nmap 192.168.1.1,101,105

3.当用户有大量主机需要扫描时,可以将这些主机的IP地址(或主机名)写入到一个文本文件中。然后,使用Nmap工具进行扫描。这样避免在命令行中手工输入目标。
    nmap -iL [IP地址列表文件]
例,nmap -iL IPlist.txt


4.Nmap工具提供了一个-iR选项,可以用来选择随机的互联网主机来扫描。Nmap工具将会随机的生成指定数量的目标进行扫描。
    nmap -iR [主机数量]
例,nmap -iR 2


5.Nmap扫描IP地址范围扫描。
    nmap [IP地址范围]               IP地址范围之间使用短连字符(-)。
例,nmap 192.168.1.1-100
例,nmap 192.168.1-100.*


6.Nmap也可以使用CIDR(无类别域间路由,Classless Inter-Domain Routing)格式来扫描整个子网。CIDR将多个IP网络结合在一起,使用一种无类别的域际路由选择算法,可以减少由核心路由器运载的路由选择信息的数量。
    nmap [CIDR格式的网络地址]
例,nmap 192.168.1.1/24


7.当用户指定一个扫描范围时(如局域网),在该范围内可能会包括自己的主机,或者是自己搭建的一些服务等。这时,用户为了安全及节约时间,可能不希望扫描这些主机。此时,用户就可以使用--exclude命令将这些主机排除。
    nmap [目标] --exclude [目标]
例,nmap 192.168.1.1/24 --exclude 192.168.1.101      #排除单个目标
例,nmap 192.168.1.1/24 --exclude 192.168.1.100-103    #排除多个目标
例,nmap 192.168.1.0/24 --excludefile IPlist.txt       #排除列表中的目标


8.对目标主机实施全面扫描,扫描结果中包括各种类型的信息。
    nmap -A [目标]
例,nmap -A 192.168.1.105

 *********************************************************************************************************************

TARGET SPECIFICATION目标说明:

-iL <inputfilename>:指定包含多个主机IP地址的文件

-iR <num hosts>:随机选择IP地址,需要输入相应的主机数

--exclude <host1[,host2][,host3],...>:将IP段中某些IP排除、不进行扫描

--excludefile <exclude_file>:排除扫描文件中的主机IP



HOST DISCOVERY主机发现:

-sL:简单列出扫描的目标

-sn:不做端口扫描,只进行主机发现

-Pn:扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描

-PS/PA/PU/PY[portlist]:使用TCP、SYN/ACK、UDP或SCTP去发现端口

-PE/PP/PM:使用ICMP响应(echo)、时间戳或子网掩码请求来发现探测

-PO[protocol list]:使用IP协议的ping

-n:不做DNS解析

-R:总是做DNS反向解析

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

--system-dns:使用操作系统的DNS

--traceroute:追踪每台主机的跳转路径



SCAN TECHNIQUES扫描技术:

-sT:  TCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。

-sS:半开放扫描(隐蔽式扫描),很少有系统能把它记入系统日志。不过,需要Root权限。

-sA  这项高级的扫描方法通常用来穿过防火墙的规则集。

 -sP:ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。

-sU:UDP扫描,但UDP扫描是不可靠的

-sN/sF/sX:使用TCP Null、FIN、Xmas(包含FIN、Push、Urgent)扫描

--scanflags <flags>:自定义TCP扫描的flags

-sI <zombie host[:probeport]>:僵尸机扫描

-sY/sZ:使用SCTP协议的INIT/COOKIE-ECHO扫描

-sO:进行IP协议扫描

-b <FTP relay host>:指定FTP中继主机进行FTP反弹扫描

PORT SPECIFICATION AND SCAN ORDER端口说明和扫描规则:

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

--exclude-ports <port ranges>:排除指定的端口、不对其进行扫描

-F:快速模式,扫描比默认端口数量更少的端口

-r:有序地扫描端口而不是随机地扫描

--top-ports <number>:扫描排名指定的数字前几位的最常用的端口

--port-ratio <ratio>:扫描比输入的比例更常用的端口



SERVICE/VERSION DETECTION服务、版本探测:

-sV:探测开启的端口来获取服务、版本信息

--version-intensity <level>:设置探测服务、版本信息的强度

--version-light:强度为2的探测强度

--version-all:强度为9的探测强度

--version-trace:将扫描的具体过程显示出来



SCRIPT SCAN脚本扫描:

-sC:等同于--script=default

--script=<Lua scripts>:指定使用Lua脚本进行扫描

--script-args=<n1=v1,[n2=v2,...]>:指定脚本的参数

--script-args-file=filename:指定提供脚本参数的文件

--script-trace:显示全部发送和收到的数据

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

--script-help=<Lua scripts>:显示脚本的相关信息



OS DETECTION系统探测:

-O:进行系统探测

--osscan-limit:限制系统探测的目标,如只探测Linux系统

--osscan-guess:更侵略性地猜测系统



TIMING AND PERFORMANCE定时和性能:

-T<0-5>:设置时序模块,越高越快

--min-hostgroup/max-hostgroup <size>:指定最小、最大的并行主机扫描组大小

--min-parallelism/max-parallelism <numprobes>:指定最小、最大并行探测数量

--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>:指定最小、最大的扫描往返时间

--max-retries <tries>:指定最大的重发扫描包的次数

--host-timeout <time>:指定超时时间

--scan-delay/--max-scan-delay <time>:指定每次探测延迟多长时间,即两次探测之间间隔多少时间

--min-rate <number>:最小的发包速率

--max-rate <number>:最大的发包速率



FIREWALL/IDS EVASION AND SPOOFING防火墙、IDS绕过和欺骗:

-f; --mtu <val>:设置MTU最大传输单元

-D <decoy1,decoy2[,ME],...>:伪造多个IP地址和源地址一同发送包,从而隐藏在众多的IP地址中而不易被发现

-S <IP_Address>:伪造源地址

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

-g/--source-port <portnum>:使用指定的源端口

--proxies <url1,[url2],...>:指定代理服务器进行扫描

--data <hex string>:在发送包的数据字段中追加自定义的十六进制字符串

--data-string <string>:在发送包的数据字段中追加自定义的ASCII字符串

--data-length <num>:在发送包的数据字段中追加随机的数据

--ip-options <options>:使用指定的IP选项发送包

--ttl <val>:设置TTL值

--spoof-mac <mac address/prefix/vendor name>:伪造源Mac地址

--badsum:发送伪造TCP/UDP/SCTP校验和Checksum的数据包



OUTPUT输出:

-oN/-oX/-oS/-oG <file>:分别输出正常、XML、s|<rIpt kIddi3、grepable格式的扫描结果到指定的文件

-oA <basename>:一次性以三种格式输出

-v:增加的详细程度(使用VV更详细)

-d:提高调试水平(使用DD更高)

--reason:显示端口处于特定状态的原因

--open:仅显示打开(或可能打开)端口

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

--iflist:输出主机接口和路由(为了调试)

--append-output:附加到指定的输出文件,而不是乱码

--resume <filename>:从指定的文件中恢复终止的扫描

--stylesheet <path/URL>:将指定路径的URL的XSL样式表转换为XML输出为HTML格式

--webxml:获取更多便捷的XML参考样式

--no-stylesheet:防止将XSL样式表的W /XML输出



MISC杂项:

-6:扫描IPv6的地址

-A:一次扫描包含系统探测、版本探测、脚本扫描和跟踪扫描

--datadir <dirname>:指定自定义的nmap数据文件位置

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

--privileged:假设用户有全部权限

--unprivileged:假设用户缺少原始套接字权限  

-V:输出版本号

-h:输出帮助信息



原文地址:https://www.cnblogs.com/Downtime/p/8483025.html