Nmap扫描模式初探究

Nmap扫描模式探究

一直只会Nmap最基本的扫描,对于Nmap的很多扫描模式没有深入探究,这次尝试学习一下。(重点是我挖不出来洞了,tcl

Nmap简介

Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。

Nmap常用参数

我对Nmap的了解一直很浅,只是当作一个可以扫描端口的工具。

nmap 127.0.0.1 -p 1-65535

我一般都是用这种非常浅显的语句进行扫描的,但是Nmap常用的参数有很多,-sS -p -sv 等等,主要针对Nmap的扫描模式进行探究。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-T4:  快速扫描(可以加快执行速度)
-sn:Ping扫描, 不进行端口扫描(-sn被称为-sP)
-sA: 发送tcp的ack包进行探测,可以探测主机是否存活
-sS: 半开放扫描(半开扫描,很少有系统能把它记入系统日志,非3次握手的tcp扫描)
-sT:3次握手方式tcp的扫描,慢
-sU:udp端口的扫描
-sF:也是tcp的扫描一种,发送一个FIN标志的数据包
-sV:版本检测(sV)
-Pn: 跳过主机发现,进行深入扫描(防止主机过滤ping扫描,可直接进行端口扫描)
-O: 操作系统检测
-A: 参数,综合扫描。比较慢,不推荐
-e: 指定网络接口,扫描时使用哪个网卡
`nmap -e eth0 192.168.1.1/24`
-S: 可以伪装源地址进行扫描。这样好处在于不会被对方发现自己的真实IP

调几个重要的说一下

-sS

首先放一张TCP三次握手的图

三次握手

可以看出要扫描端口,客户端先给服务器发送一个SYN包,seq是客户端发送的一个随机数,服务端如果对应的端口是开放的,会返回一个ack包代表接收到了,ack=x+1,代表回应的是seq=x的这条请求,也返回了ACK和SYN包。然后客户端收到ACK和SYN之后,知道服务端对应端口是开放的,但是不接着往下发包,就没有构成一个完整的TCP连接,一般来说服务端也不会记录下这种行为,所以这种方式较为隐蔽。

-sT

这种模式是直接进行TCP连接,连上了就开放,连不上端口就是关闭,缺点是会留下大量的错误日志。

-sP

这种模式是ping扫描,只有主机存活才可以使用,默认不加扫描模式的话就是这一种扫描。

-sU

这种方式是UDP端口扫描。它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.udp端口扫描速度比较慢。但是UDP只管发包,并不关心包在传输途中是否丢失,如果包丢失,会无法检测。

-sF

有些时候防火墙绘过滤tcp syn数据包,有些时候会记录syn数据包并检测时候有nmap扫描。这时候可以使用TCP FIN scanning。这种方式很简单。发送tcp FIN数据包到待测端口。如果返回RST数据包,则说明该端口关闭,如果无返回则说明该端口开放。这时tcp协议的一个BUG,所以这种扫描方式不一定百分之百可靠(例如windows),但是这种扫描方式适合大部分 *NIX 系统。

img

-sA

一个简单的ACK扫描意味着攻击者只有较低几率检测到受害机,但是有较高几率发现防火墙
防火墙的四种响应:

open port(防火墙允许少数端口打开)
closed port(由于防火墙的缘故,大部分的端口都被关闭)
filtered(nmap不能确定端口是否打开或者关闭)
unfiletered(nmap能够访问这个端口,但是不清楚这个端口打开的状态)

-Pn

当确保主机存活的时候可以使用pn进行深入扫描

文章目录
  1. 1. Nmap扫描模式探究
    1. 1.1. Nmap简介
    2. 1.2. Nmap常用参数
      1. 1.2.1. -sS
      2. 1.2.2. -sT
      3. 1.2.3. -sP
      4. 1.2.4. -sU
      5. 1.2.5. -sF
      6. 1.2.6. -sA
      7. 1.2.7. -Pn
,