Nmap中文手册参考+常用命令总结

版权声明:自学笔记,分享亦是一种快乐~ https://blog.csdn.net/qq_41617034/article/details/91129340

索引目录:

Nmap五大基本功能

Nmap -h(中文手册)

目标说明

主机发现

端口扫描技术

端口说明和扫描顺序

服务和版本检测

操作系统检测

时间和性能

防火墙/IDS躲避和欺骗

输出

其它选项


常用命令总结

0x01:判断目标主机是否在线

(1)单纯扫描主机是否在线,不查询端口
(2)扫描主机是否在线其它方法,(会查询端口)
(3)不隐蔽+扫描一个网段内开放指定端口的主机

0x02:确定目标主机存活后,扫描目标系统信息,端口信息

(1)使用TCP SYN扫描最常用的端口
(2)使用TCP空扫描以骗过防火墙
(3)使用TCP SYN扫描远程主机上特定的端口
(4)暴力扫描(容易被防火请和IDS发现)
(5)隐蔽+端口信息+检测操作系统版本与其信息+详细检测过程
(6)还有更暴力的??(就是扫描速度很慢)
(7)不考虑防火墙和IDS的情况下,无敌扫描(这里-v参数我就不使用了,你可以添加~)

Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的端口与其服务、目标计算机的操作系统等等


Nmap五大基本功能

(1)主机探测(判断目标主机是否在线)
(2)端口扫描(判断目标开放了哪些端口与其提供的服务)
(3)版本检测(判断目标主机的系统版本)
(4)系统检测(判断目标主机的系统信息)
(5)支持探测脚本的编写(自己编写脚本)

渗透测试在前期进行信息收集时:

  • 首先判断目标主机是否在线
  • 其次对目标系统进行端口扫描,查看它开放了哪些开端口与服务
  • 最后检测目标系统的版本与其相关敏感信息

Nmap -h(中文手册)

Nmap 7.70SVN(https://nmap.org)
用法:nmap [扫描类型] [选项] {目标规范}

目标说明:
  可以传递主机名,IP地址,网络等。
  例如:scanme.nmap.org,microsoft.com / 24,192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>:从主机/网络列表输入
  -iR <num hosts>:选择随机目标
  --exclude <host1 [,host2] [,host3],...>:排除主机/网络
  --excludefile <exclude_file>:从文件中排除列表
  
主机发现:
  -sL:列表扫描 - 只列出要扫描的目标
  -sn:Ping扫描 - 禁用端口扫描
  -Pn:将所有主机视为在线 - 跳过主机发现
  -PS / PA / PU / PY [端口列表]:给定端口的TCP SYN / ACK,UDP或SCTP发现
  -PE / PP / PM:ICMP回送,时间戳和网络掩码请求发现探测
  -PO [协议列表]:IP协议Ping
  -n / -R:从不进行DNS解析/始终解析[默认:有时]
  --dns-servers <serv1 [,serv2],...>:指定自定义DNS服务器
  --system-dns:使用OS的DNS解析器
  --traceroute:每个主机的跟踪跳转路径
  
扫描技术:
  -sS / sT / sA / sW / sM:TCP SYN / Connect()/ ACK / Window / Maimon扫描
  -sU:UDP扫描
  -sN / sF / sX:TCP Null,FIN和Xmas扫描
  --scanflags <flags>:自定义TCP扫描标志
  -sI <zombie host [:probeport]>:空闲扫描
  -sY / sZ:SCTP INIT / COOKIE-ECHO扫描
  -sO:IP协议扫描
  -b <FTP中继主机>:FTP反弹扫描
  
端口说明和扫描顺序:
  -p <端口范围>:仅扫描指定的端口
    例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <端口范围>:从扫描中排除指定的端口
  -F:快速模式 - 扫描比默认扫描更少的端口
  -r:连续扫描端口 - 不要随机化
  --top-ports <number>:扫描<number>最常见的端口
  --port-ratio <ratio>:扫描端口比<ratio>更常见
  
服务/版本检测:
  -sV:探测开放端口以确定服务/版本信息
  --version-intensity <level>:从0(亮)到9(尝试所有探针)设置
  --version-light:限制最可能的探针(强度2)
  --version-all:尝试每一个探针(强度9)
  --version-trace:显示详细的版本扫描活动(用于调试)
  
脚本扫描:
  -sC:相当于--script = default
  --script = <Lua scripts>:<Lua scripts>是逗号分隔的列表
           目录,脚本文件或脚本类别
  --script-args = <n1 = v1,[n2 = v2,...]>:为脚本提供参数
  --script-args-file = filename:在文件中提供NSE脚本args
  --script-trace:显示发送和接收的所有数据
  --script-updatedb:更新脚本数据库。
  --script-help = <Lua scripts>:显示有关脚本的帮助。
           <Lua scripts>是以逗号分隔的脚本文件列表或
           脚本的类别。
           
操作系统检测:
  -O:启用OS检测
  --osscan-limit:将OS检测限制为有希望的目标
  --osscan-guess:更积极地猜测操作系统
  
时间和性能:
  采用<time>的选项以秒为单位,或追加'ms'(毫秒),
  该值的's'(秒),'m'(分钟)或'h'(小时)(例如30m)。
  -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>:发送数据包的速度不低于每秒<number>
  --max-rate <number>:发送数据包的速度不超过<number>每秒
  
防火墙/IDS逃脱和欺骗:
  -F; --mtu <val>:分段数据包(可选择w /给定MTU)
  -D <decoy1,decoy2 [,ME],...>:用诱饵披露扫描
  -S <IP_Address>:欺骗源地址
  -e <iface>:使用指定的接口
  -g /  -  source-port <portnum>:使用给定的端口号
  --proxies <url1,[url2],...>:通过HTTP / SOCKS4代理的中继连接
  --data <hex string>:为发送的数据包附加自定义有效负载
  --data-string <string>:为发送的数据包附加自定义ASCII字符串
  --data-length <num>:将随机数据附加到已发送的数据包
  --ip-options <options>:发送带有指定ip选项的数据包
  --ttl <val>:设置IP生存时间字段
  --spoof-mac <mac address / prefix / vendor name>:欺骗你的MAC地址
  --badsum:使用伪TCP / UDP / SCTP校验和发送数据包
OUTPUT:
  -oN / -oX / -oS / -oG <file>:正常输出扫描,XML,s | <rIpt kIddi3,
     和Grepable格式,分别为给定的文件名。
  -oA <basename>:一次输出三种主要格式
  -v:增加详细级别(使用-vv或更高级别以获得更好的效果)
  -d:提高调试级别(使用-dd或更多以获得更好的效果)
  --reason:显示端口处于特定状态的原因
  --open:仅显示打开(或可能打开)的端口
  --packet-trace:显示发送和接收的所有数据包
  --iflist:打印主机接口和路由(用于调试)
  --append-output:附加到而不是clobber指定的输出文件
  --resume <filename>:恢复中止扫描
  --stylesheet <path / URL>:用于将XML输出转换为HTML的XSL样式表
  --webxml:来自Nmap.Org的参考样式表,用于更多可移植的XML
  --no-stylesheet:防止与XML输出相关联的XSL样式表
MISC:
  -6:启用IPv6扫描
  -A:启用操作系统检测,版本检测,脚本扫描和跟踪路由
  --datadir <dirname>:指定自定义Nmap数据文件位置
  --send-eth /  -  send-ip:使用原始以太网帧或IP数据包发送
  --privileged:假设用户具有完全特权
  --unprivileged:假设用户缺少原始套接字权限
  -V:打印版本号
  -h:打印此帮助摘要页面。
例子:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80
查看人物页面(https://nmap.org/book/man.html)了解更多选项和示例

注:这里内网扫描时,kali(IP:192.168.1.134),目标系统(IP:192.168.1.110)


目标说明

扫描单一的一个主机,命令如下:
nmap 192.168.1.110
或者
nmap www.xxx.com

在这里插入图片描述


扫描整个子网,命令如下:
nmap 192.168.1.1/24

扫描多个目标,命令如下:
nmap 192.168.1.110 192.168.1.111

在这里插入图片描述


扫描一个范围内的目标,如下:
nmap 192.168.1.100-200 (扫描IP地址为192.168.1.100-192.168.1.200内的所有主机)

在这里插入图片描述


如果你有一个ip地址列表,将这个列表保存为一个txt文件,扫描这个txt内的所有主机,命令如下:
nmap -iL target.txt   注:这个target使用时要写完整它的绝对路径,我这里就是在~下,所以我直接target.txt就可以

nmap执行显示如下:

root@kali:~# ls
公共 模板 视频 图片 文档 下载 音乐 桌面 Eternalblue-Doublepulsar-Metasploit
root@kali:~# vim target.txt
root@kali:~# ls
公共 模板 视频 图片 文档 下载 音乐 桌面 Eternalblue-Doublepulsar-Metasploit target.txt
root@kali:~# cat target.txt
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.110
192.168.1.111
192.168.1.112
192.168.1.220
192.168.1.221
192.168.1.222
192.168.2.1
192.168.2.2
192.168.2.3
root@kali:~# nmap -iL target.txt
Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-10 20:17 CST
Nmap scan report for 192.168.1.1
Host is up (0.00091s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
3306/tcp open mysql
4443/tcp open pharos
5357/tcp open wsdapi
8000/tcp open http-alt
8008/tcp open http
MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap scan report for 192.168.1.2
Host is up (0.00016s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
53/tcp open domain
MAC Address: 00:50:56:FF:28:37 (VMware)

Nmap scan report for 192.168.1.110
Host is up (0.00076s latency).
Not shown: 988 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
554/tcp open rtsp
2869/tcp open icslap
10243/tcp open unknown
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown
MAC Address: 00:0C:29:87:08:07 (VMware)

Nmap scan report for 192.168.1.111
Host is up (0.00079s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown
MAC Address: 00:0C:29:54:26:AB (VMware)

Nmap scan report for 192.168.2.1
Host is up (0.00055s latency).
All 1000 scanned ports on 192.168.2.1 are filtered

Nmap scan report for 192.168.2.2
Host is up (0.00058s latency).
All 1000 scanned ports on 192.168.2.2 are filtered

Nmap scan report for 192.168.2.3
Host is up (0.00071s latency).
All 1000 scanned ports on 192.168.2.3 are filtered

Nmap done: 12 IP addresses (7 hosts up) scanned in 146.21 seconds


扫描一个网段内除指定IP外的所有主机,命令:
指定一个IP
nmap 192.168.1.1/24 -exclude 192.168.1.110
指定两个至以上IP
nmap 192.168.1.1/24 -exclude 192.168.1.110,192.168.1.111

扫描一个网段内除了指定文件中的ip外的所有主机命令
nmap 192.168.1.1/24 -exclude file xxx.txt  (xxx.txt中的文件将会从扫描的主机中排除)

扫描指定主机上的80,21,23端口,命令如下:
nmap -p80,8080,21,22,23 192.168.1.1

在这里插入图片描述


主机发现

-sL(列表扫描)用处不大
列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。默认情况下,Nmap仍然对主机进行反向域名解析以获取它们的名字。通俗点说,该参数就是获取目标IP与其主机名的。 ```b nmap -sL www.baidu.com ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190610211800395.png)
-sP(Ping扫描)
该选项告诉Nmap仅仅进行ping扫描(主机发现),然后打印出对扫描做出响应的那些主机。没有进一步的测试(如端口扫描或者操作系统探测) -sP选项在默认情况下,发送一个ICMP回声请求和一个TCP报文到80端口 -sP选项可以和除-P0之外的任何发现探测类型-P *选项结合使用以达到更大的灵活性 ```b nmap -sP 192.168.1.110 ``` ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190610212627872.png)
-P0(无ping)
nmap -P0 192.168.1.110

在这里插入图片描述


-PS [portlist](TCP SYN Ping)
该选项发送一个设置了SYN标志位的空TCP报文。默认目的端口为80,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80,113,1050,35000),在这种情况下,每个端口会被并发地扫描。

nmap -PS 192.168.1.1/24
nmap -PS22,23,80,8080,443 192.168.1.1/24

-PA [portlist](TCP ACK Ping)
TCP ACK ping和SYN ping相当类似。区别就是设置TCP的ACK标志位而不是SYN标志位。ACK报文表示确认一个建立连接的尝试,但该连接尚未完全建立。
提供SYN和ACK两种ping探测的原因是使通过防火墙的机会尽可能大,SYN探测更有可能用于这样的系统,由于没头没脑的ACK报文通常会被识别成伪造的而丢弃。解决这个两难的方法是通过即指定-PS又指定-PA来即发送SYN又发送ACK。

nmap -PA 192.168.1.1/24
nmap -PA22,23,80,8080,443 192.168.1.1/24

-PU [portlist](UDP Ping)
该扫描类型的主要优势是它可以穿越只过滤TCP的防火墙和过滤器


-PE; -PP; -PM(ICMP Ping类型)

-PE: 使用ICMP echo Ping扫描方式发现主机
-PP: 使用ICMP timestamp Ping扫描方式发现主机。
-PM: 使用ICMP netmask Ping扫描方式发现主机。

-PR(ARP Ping)
最常见的Nmap使用场景之一是扫描一个以太局域网

nmap -PR 192.168.1.1/24

-n(Nmap 永不对它发现的活动IP地址进行反向域名解析)


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


–system-dns(使用系统域名解析器)
如果您希望使用系统自带的解析器,就指定该选项,系统解析器总是用于IPv6的扫描。


端口扫描技术

-sS(TCP SYN扫描)

SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个端口.SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。
它常常被称为半开放扫描,因为它不打开一个完全的TCP连接。
如果数次重发后仍没响应,该端口就被标记为被过滤。如果收到ICMP不可到达错误(类型3,代码1,2,3,9, 10,或者13),该端口也被标记为被过滤。

nmap -sS 192.168.1.110

-sT(TCP connect()扫描)


-sU(UDP扫描)


-sN; -sF; -sX(TCP Null,FIN和Xmas扫描)


空扫描(-sN)
不设置任何标志位(TCP标志头是0)

FIN扫描(-sF)
只设置TCP FIN标志位

圣诞扫描(-sX)
设置FIN,PSH,URG和标志位,就像点亮圣诞树上所有的灯一样

这些扫描的关键优势是它们能躲过一些无状态防火墙和报文过滤路由器。另一个优势是这些扫描类型甚至比SYN扫描还要隐秘一些。但是别依赖它 - 多数现代的IDS产品可以发现它们。这些扫描的另一个不足是它们不能判断哪些是(开放的)端口和一些特定的过滤(被过滤的)端口,从而返回open | filtered(开放或者被过滤的)。


-sA(TCP ACK扫描)
这种扫描与目前为止讨论的其它扫描的不同之处在于它不能确定open(开放的)或者open | filtered(开放或者过滤的))端口。它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。


-sW(TCP窗口扫描)
如果大部分被扫描的端口是关闭的,而一些常见的端口(如22,25,53)是过滤的,该系统就非常可疑了。偶尔地,系统甚至会显示恰恰相反的行为。如果您的扫描显示1000个开放的端口和3个关闭的或者被过滤的端口,那么那3个很可能也是开放的端口。


-sM(TCP Maimon扫描)
这项技术和Null,FIN,以及Xmas扫描完全一样,除了探测报文是FIN / ACK。


–scanflags(定制的TCP扫描)
scanflags选项允许您通过指定任意TCP标志位来设计您自己的扫描。躲开那些仅靠本手册添加规则的入侵检测系统。


-sI <zombie host [:probeport]>(Idlescan)
这种高级的扫描方法允许对目标进行真正的TCP端口盲扫(意味着没有报文从您的真实IP地址发送到目标)
除了极端隐蔽(由于它不从真实IP地址发送任何报文),该扫描类型可以建立机器间的基于IP的信任关系。
如果您在IPID改变希望探测zombie上的特定端口,您可以在zombie主机后加上一个冒号和端口号。否则Nmap会使用默认端口(80)。


-sO(IP协议扫描)
IP协议扫描可以让您确定目标机支持哪些IP协议(TCP,ICMP,IGMP,等等)。


-b <ftp relay host>(FTP弹跳扫描)
果您的目标是绕过防火墙,扫描目标网络上的开放的21端口(或者甚至任何ftp服务,如果您用本本探测扫描所有端口),然后对每个尝试弹跳扫描,Nmap会告诉您该主机脆弱与否。


端口说明和扫描顺序

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

该选项指明您想扫描的端口,覆盖默认值。
当既扫描TCP端口又扫描UDP端口时,您可以通过在端口号前加上T:或者U:指定协议。协议限定符一直有效您直到指定另一个。例如,参数-p U:53,111,137,T:21-25,80,139,8080将扫描UDP端口53,111和137,同时扫描列出TCP端口。注意,要既扫描UDP又扫描TCP,您必须指定-sU,以及至少一个TCP扫描类型(如-sS,-sF,或者-sT)。

nmap -p U:21,22,T:80-800 192.168.1.110

-F(快速(有限的端口)扫描)


-r(不要按随机顺序扫描端口)
默认情况下,Nmap按随机顺序扫描端口(除了出于效率的考虑,常用的端口前移)。你也可以指定-r来顺序端口扫描。


服务和版本检测

-sV(版本探测)
打开版本探测。您也可以用-A同时打开操作系统探测和版本探测。 ```b nmap -sV 192.168.1.110 ```

-allports(不为版本探测排除任何端口)
默认情况下,Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的任何数据,这回导致数十页HTTP get请求,二进制SSL会话请求等等被打印出来。


-version-intensity (设置版本扫描强度)
当进行版本扫描(-sV)时,nmap发送一系列探测报文,每个报文都被赋予一个1到9之间的值。 在0和9之间。默认是7 ```b nmap -sV -version-intensity 9 192.168.1.110 ```

–version-light(打开轻量级模式)
这是–version-intensity 2的方便的别名。轻量级模式使版本扫描快许多,但它识别服务的可能性也略微小一点。


–version-all(尝试每个探测)
–version-intensity 9的别名,保证对每个端口尝试每个探测报文。


–version-trace(跟踪版本扫描活动)
这导致Nmap打印出详细的关于正在进行的扫描的调试信息。


-sR(RPC扫描)-sV包括它并且全面得多,-sR很少被需要


操作系统检测

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


–osscan-limit(针对指定的目标进行操作系统检测)
如果发现一个打开和关闭的TCP端口时,操作系统检测会更有效。采用这个选项,Nmap只对满足这个条件的主机进行操作系统检测,这样可以节约时间,特别在使用-P0扫描多个主机时。这个选项仅在使用-O或-A进行操作系统检测时起作用。


–osscan猜测/ --fuzzy(推测操作系统检测结果)
当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配,Nmap默认进行这种匹配,使用上述任一个选项使得Nmap的推测更加有效。


时间和性能

–min-hostgroup / --max-hostgroup (调整并行扫描组的大小)


–min-parallelism <毫秒>/ --max-parallelism <毫秒>(调整探测报文的并行度)


–min-rtt-timeout <毫秒>/ - max-rtt-timeout <毫秒>/ - 初始 - rtt-timeout <毫秒>(调整探测报文超时)


–host-timeout <毫秒>(放弃低速目标主机)


–scan-delay <毫秒>/ --max-scan-delay <毫秒>(调整探测报文的时间间隔)


-T <Paranoid | Sneaky |礼貌|普通|激进|疯狂>(设置时间模板)


防火墙/ IDS逃脱和欺骗

-f(报文分段)/ --mtu(使用指定的MTU)
该选项要求扫描时(包挺ping扫描)使用小的IP包分段


-D <decoy1 [,decoy2] [,ME],…>(使用诱饵隐蔽扫描)
这是一种常用的隐藏自身IP地址的有效技术


-S <IP_Address>(源地址哄骗)
这个标志的另一个用处是哄骗性的扫描,使得目标认为是另一个地址在进行扫描。可以想象某一个竞争对手在不断扫描某个公司!-e选项常在这种情况下使用,也可采用-P0选项。


-e (使用指定的接口)
告诉Nmap可以进行自动检测,如果检测不出会给出提示


–source-port / -g (源端口哄骗)


–data-length (发送报文时附加随机数据)


–ttl (设置IP生存时间域)


–randomize-hosts(对目标主机的顺序随机排列)


–spoof-mac <mac地址,前缀或供应商名称>(MAC地址哄骗)

输出

-oN <filespec>(标准输出)
要求将标准输出直接写入指定的文件。


-oX [filespec](XML输出)
要求以XML格式输出直接写入指定的文件


-oS <filespec>(ScRipT KIdd | 3 oUTpuT)


-oG <filespec>(Grep输出)


-oA <basename>(输出至所有格式)
了使用方便,利用-oA 选项可将扫描结果以标准格式,XML格式和Grep格式一次性输出。


细节和调试选项
-v(提高输出信息的详细度)


-d [level](提高或设置调试级别)
level等级1-9


–packet-trace(跟踪发送和接收的报文)


–iflist(列举接口和路由)


细节和调试选项
–append-output(在输出文件中添加)


–resume<filename>(继续中断的扫描)


–stylesheet (设置XSL样式表,转换XML输出)


–no-stylesheet(忽略XML声明的XSL样式表)


其它选项

-6(启用IPv6扫描)


-A(激烈扫描模式选项)
这个选项启用额外的高级和高强度选项,目前还未确定代表的内容。目前,这个选项启用了操作系统检测(-O)和版本扫描(-sV),以后会增加更多的功能。目的是启用一个全面的扫描选项集合,不需要用户记忆大量的选项。这个选项仅仅启用功能,不包含用于可能所需要的时间选项(如-T4)或细节选项(-v)。


–datadir (说明用户Nmap数据文件位置)


–send-eth(使用原以太网帧发送)


–send-ip(在原IP层发送)


–privileged(假定用户具有全部权限)


–interactive(在交互模式中启动)


-V / --version(打印版本信息)
打印Nmap的版本号并退出


-H/ --help(打印帮助摘要面)
打印一个短的帮助屏幕,列出大部分常用的命令选项,这个功能与不带参数运行Nmap是相同的


常用命令总结:

(1)-sS:TCP SYN 扫描 (又称半开放,或隐身扫描)
(2)-P0:允许你关闭 ICMP pings.
(3)-sV:打开系统版本检测
(4)-O:尝试识别远程操作系统
(5)-A:同时打开操作系统指纹和版本检测
(6)-v:详细输出扫描情况
(7)-sA:(TCP ACK扫描)这种扫描与目前为止讨论的其它扫描的不同之处在于它不能确定open(开放的)或者open | filtered(开放或者过滤的))端口。它用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。
(8)-sT:(TCP connect()扫描,扫描常用端口)
(9)-oG: <filespec>(Grep输出)选项表示以一种易于检索的格式记录信息,即每台主机都以单独的行来记录所有信息
(10)-sP:(Ping扫描)该选项告诉Nmap仅仅进行ping扫描(主机发现),然后打印出对扫描做出响应的那些主机。没有进一步的测试(如端口扫描或者操作系统探测),-sP选项可以和除-P0之外的任何发现探测类型-P *选项结合使用以达到更大的灵活性
(11)-PS / PA / PU / PY [端口列表]:给定端口的TCP进行SYN/ACK/UDP或SCTP发现

  • -PS 该选项发送一个设置了SYN标志位的空TCP报文。默认目的端口为80,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80,113,1050,35000),在这种情况下,每个端口会被并发地扫描。
  • -PA ack扫描,默认扫描端口1-1024
  • -PU udp扫描 只过滤tcp的防火墙
    (12)-PE / PP / PM:ICMP回送,时间戳和网络掩码请求发现探测
  • -PE 的ICMP Echo扫描简单来说是通过向目标发送ICMP Echo数据包来探测目标主机是否存活,但由于许多主机的防火墙会禁止这些报文。
  • -PP 的ICMP time stamp时间戳扫描在大多数防火墙配置不当时可能会得到回复,可以以此方式来判断目标主机是否存活。倘若目标主机在线,该命令还会探测其开放的端口以及运行的服务。
  • -PM 的ICMP address maskPing地址掩码扫描会试图用备选的ICMP等级Ping指定主机,通常有不错的穿透防火墙的效果
    (13)空扫描(-sN)
    不设置任何标志位(TCP标志头是0)
    这些扫描的关键优势是它们能躲过一些无状态防火墙和报文过滤路由器。另一个优势是这些扫描类型甚至比SYN扫描还要隐秘一些。但是别依赖它 - 多数现代的IDS产品可以发现它们。这些扫描的另一个不足是它们不能判断哪些是(开放的)端口和一些特定的过滤(被过滤的)端口,从而返回open | filtered(开放或者被过滤的)。
    (14)-T(0-5):设置时序模板(越高越快),级别越高也越容易被防火墙和IDS发现
    (15)- version-intensity (设置版本扫描强度)
    当进行版本扫描(-sV)时,nmap发送一系列探测报文,每个报文都被赋予一个1到9之间的值。
    在0和9之间。默认是7(一般不使用,因为速度太慢…)

0x01:判断目标主机是否在线

  • 单纯扫描主机是否在线,不查询端口
nmap -sP 192.168.1.110
  • 扫描主机是否在线其它方法,(会查询端口),注:如果下面的命令添加了sP,那么整体只会扫描目标主机是否在线
nmap -PS -PM 192.168.1.110
  • 不隐蔽+扫描一个网段内开放指定端口的主机
nmap -sT -p 445 -oG - 192.168.1.0/24 | grep open
等价于
nmap -sT -p 445 -oG - 192.168.1.* | grep open
  • 扫描目标主机是否存在防火墙
nmap -sA 192.168.1.110

0x02:确定目标主机存活后,扫描目标系统信息,端口信息

  • 使用TCP SYN扫描最常用的端口
nmap -sT 192.168.1.110
  • 使用TCP空扫描以骗过防火墙
nmap -sN 192.168.1.110
  • 使用TCP SYN扫描远程主机上特定的端口
nmap -PS -p 22,80,445 192.168.1.110
  • 暴力扫描(容易被防火请和IDS发现,使用级别越高的前提需要你网速可以哦~)
nmap -T5 -A 192.168.1.110
  • 还有更暴力的??(就是扫描速度很慢)
nmap -T5 -A -version-intensity 9 192.168.1.110

注:经测试,nmap -T5 -A -version-intensity 9 192.168.1.110与nmap -A -version-intensity 9 192.168.1.110还是存在时间长短差别的,但总体差别不大
前者时间:
在这里插入图片描述
后者时间:
在这里插入图片描述

  • 隐蔽+端口信息+检测操作系统版本与其信息+详细检测过程
nmap -sS -P0 -sV -O -v 192.168.1.110
等价于
nmap -sS -P0 -A -v 192.168.1.110
  • 不考虑防火墙和IDS的情况下,无敌扫描(这里-v参数我就不使用了,你可以添加~)
nmap -sS -P0 -A -T5 -version-intensity 9  192.168.1.110

参考:
http://www.nmap.com.cn/doc/manual.shtm
http://www.ttlsa.com/linux/nmap-ten-command/
https://www.cnblogs.com/hongfei/p/3801357.html
https://blog.csdn.net/qq_36119192/article/details/82079150

猜你喜欢

转载自blog.csdn.net/qq_41617034/article/details/91129340
今日推荐