转载请注明出处:https://www.cnblogs.com/wangyanzhong123/p/12576406.html
nmap下载与安装
这个没什么好说的。很简单官网上下载就ok了,需要注意的是winPcap可能会和nmap自带的Npcap有冲突,这里我下载的版本是Nmap 7.80。它甚至给我们提供了一个GUI界面(虽然bug很多)。
nmap的基本指令
打开nmap的GUI,发现它会给你一个默认的指令nmap -T4 -A -v
,这也是平时在使用nmap过程中最常使用的几个指令之一,但是除了这些指令,我们还需要掌握一些更多的东西,下面将会逐渐进行介绍。
-T<0/1/2/3/4/5> :设置时间模板
简单来说就是调整你的扫描时间等级,数字越大时间越快,但是相应就要牺牲一些别的东西。
-T0:paranoid,可以避免IDS报警,速度最慢,一个时间扫描一个端口,每个探测报文的发送间隔为5分钟。
-T1:sneaky,可以避免IDS报警,速度很慢,探测报文发送间隔为15s。
-T2:polite,降低了扫描速度从而可以使用更少的带宽和目标主机资源,速度较慢,探测报文发送间隔为0.4s。
-T3:normal,正常模式,未作任何改变和优化。
-T4:aggressive,假设用户具有合适及可靠的网络从而加速扫描,针对TCP端口禁止动态扫描延迟超过10ms,一般如果扫描可靠的网络使用这个较好。
-T5:insane,假设用户拥有特别快的网络或者为了速度可以牺牲准确性等其他因素,可能会使目标主机崩溃。
扫描目标的选择相关选项
-iL nmap -iL test.txt
来扫描文件中的目标。
-iR
--exclude <host1[,host2][,host3],...>:排除主机/网络,如果在你扫描过程中有一些网络/主机不是你想扫描的,那么就使用这个命令进行排除,举个例子,比如我的test.txt有3个IP地址,现在我不想对其中的192.168.1.121
进行扫描,那么我就可以输入nmap命令nmap -iL test.txt --exclude 192.168.1.121
。
--excludefile nmap -iL test.txt --excludefile exclude.txt
。
主机/网络的发现和探测
可以理解为平时我们的ping
命令,但是这里nmap有更多别的五花八门的方法来实现我们的“ping”。
-sL:列出指定网络上的每台主机,不发送任何报文到目标主机,例如nmap -sL 192.168.1.1
,当然很多网络都对这个做了防护措施,或许你并扫不出来什么。
-sn:无端口扫描,也就是ping扫描,仅仅可以探测出目标是否可达,例如nmap -sn 192.168.1.112
,早一些的版本这个命令叫-sP
,在局域网内,该扫描可能并不会发送ICMP报文,而是会广播ARP报文。
--dns-servers:指定DNS服务器来进行端口扫描,指定一个或者多个dns服务器可以让你的扫描更快,例如nmap --dns-servers xxx.xxx.xxx.xxx -sn 192.168.1.112
。
扫描方式
-sT:TCP全连接扫描,主机会与目标端口进行三次握手,建立完整的TCP连接,这种方式扫描速度慢,网络流量大,容易被发现,例如nmap -sT 192.168.1.112
。
-sS:TCP SYN扫描,主机向目标端口发送SYN报文,如果目标端口返回了[ACK,SYN],主机发送RST直接断开,这种扫描方式速度较快,被广泛使用,例如nmap -sS 192.168.1.112
。
-sA:TCP ACK扫描,主机向目标端口发送ACK报文,如果目标端口返回了RST,则说明目标端口开放,该方式可以用来绕过防火墙,例如nmap -sA 192.168.1.112
。
-sU:UDP扫描,通过向端口发送UDP数据包来判断开启了哪些UDP服务,UDP扫描通常比TCP扫描要慢,你可以将UDP扫描与TCP扫描同时进行,例如nmap -sS -sU 192.168.1.112
。
-sN-sF-sX:这是三种秘密扫描方式,分别为NULL扫描,FIN扫描和Xmas扫描扫描,它们相对比较隐蔽,除了探测报文的标志位不同,这三种扫描在行为上完全一致。如果收到一个RST报文,该端口被认为是关闭的,而没有响应则意味着端口是开放或者被过滤的,这些扫描可以结合--scanflags
进行使用,它的参数可以是URG,ACK,PSH,RST,SYN等。
扫描端口设置
-p:设置扫描端口范围,设置扫描端口范围有多种方式,比如nmap -sS -p 1-65535 192.168.1.112
代表扫描1到65535这些端口。当然你也可以根据不同的协议指定的更细一点,比如nmap -sS -p U:53,111,137,T:21-25,80,139,8080 192.168.1.112
代表扫描UDP的53,111,137端口和TCP的21到25,80。。。等端口,其中T代表TCP, U代表UDP, S代表SCTP, P代表IP协议。\
--exclude-ports nmap -sS -p 1-65535 --exclude-ports 3306 192.168.1.112
。
-F:快速扫描,这里按照nmap内置的最常用端口表进行扫描,扫描数量比默认的更少,时间也会更短一些,例如nmap -sS -F 192.168.1.112
。
-r:正常情况下,为了扫描效率,端口扫描的顺序是随机的,这个参数可以让扫描顺序按照由低到高的顺序进行扫描,例如nmap -sS -r 192.168.1.112
。
--top-ports nmap -sS --top-ports 10 192.168.1.105
。
版本与操作系统探测
-sV:检测目标运行的服务版本,例如nmap -sV 192.168.1.105
,它会检测出目标主机端口号所运行的服务或软件的版本
-O:检测目标操作系统,例如nmap -O 192.168.1.105
扫描时间设置
--host-timeout
--scan-delay
其他常用设置
-v:提高输出信息的详细程度
-A:启动强力扫描模式,该模式下会默认启动操作系统检测(-O) 和版本扫描(-sV)
-6:启用IPv6扫描