端口扫描

0x01 端口扫描介绍

端口扫描是指人为发送一组端口扫描消息,视图以此了解某台计算机的弱点,并了解其提供的计算机网络服务类型。

端口最常用也是最强大的工具是nmap,在nmap的端口扫描方式中,所有的扫描方式都是以-s[x]的形式,若是ACK扫描则是-sA,若是UDP扫描则是-sU

0x02 端口状态

nmap提供了6个端口状态,帮助我们了解目标。

open

此端口对外为开放状态

closed

此端口关闭,但是有可能是管理员的欺骗手段导致,或是防火墙所致

filtered

次扫描被过滤,不过出现这种现象并不代表一定是被某些专业的设备过滤了,也许是因为网络阻塞造成的,建议遇到这种情况分不同的时间段再次进行扫描

unfiltered

未被过滤状态意味着端口可以访问,但是nmap并不能判断目标端口处于开放状态还是关闭状态,这里需要重申的是目标端口是否可以访问与是否开放并无太大联系。需要注意的是,当我们使用ACK扫描时才会呈现出这种状态,这时我们可以换一种方式去进行扫描,以便进一步确认。

open|filtered

开放还是过滤的,如果nmap发出的探测报文并没有得到目标端口的响应,可能是收到了某些专业设备的阻挡,此时可以换一种方式进一步确认。

closed|filtered

该状态用于nmap不能确定端口是关闭的还是被过滤的。值得注意的是,它只可能出现在IPID Idle扫描中。

0x03 时序选项

在nmap中,可以使用-T(0-5)启用时序选项。

-T0(偏执的) 非常慢的扫描,用于IDS逃避

-T1(鬼祟的) 缓慢的扫描,用于IDS逃避

-T2(文雅的) 减低速度以减低对宽带的消耗,此选项一般不常用

-T3(普通的) 默认,根据目标的反应自动调整时间

-T4(野蛮的) 快速扫描,常用扫描方式,需要在很好的网络环境下进行扫描,请求可能会淹没目标

-T5(疯狂的) 极速扫描,这种扫描方式以牺牲准确度来提升扫描速度

0x04 常用扫描方式

-p选项

指定一个端口,可以唯一指定一个,也可以指定一个范围

如果既想扫描TCP、又想扫描UDP,可以在端口前面加上T:选项和U:,分别代表TCP协议或UDP协议。注意必须指定-sU以及一个TCP扫描类型(如-sS、-SF、-sT)。如果没有给定协议限定符,端口号会被加到所有协议列表。

-F选项

快速扫描默认的有限的端口,在nmap中的nmap-services包含了默认扫描的端口,也可以使用--daradir选项指定自己的nmap-services文件。

-r选项

使用该选项不会对端口进行随机顺序扫描,默认情况下,nmap是随机扫描端口的。

–port-ratio选项

使用该选项会扫描指定一定概率以上的端口。

0x05 TCP SYN扫描

nmap -sS [ip地址]

SYN的扫描方式相对来说是比较隐蔽的扫描方式,很难被防火墙或是管理员发现,因为它并不会进行TCP的链接,SYN扫描可以明确区分出端口的开放状态,这是一种高效且非常有用的扫描方式。

namp发送一个SYN请求,如果收到RST:目标主机端口关闭;收到SYN/ACK:目标主机端口开放

0x06 TCP链接扫描

nmap -sT [ip地址]

当SYN扫描可用时,它通常是更好的选择。

namp发送一个SYN请求,如果收到RST:目标主机端口关闭;收到SYN/ACK:目标主机端口开放

0x07 UDP扫描

nmap -sU -p [端口] [ip地址]

UDP扫描发送空的UDP扫描到目标端口,这里需要注意的是,UDP头是没有任何数据的,这就使nmap可以轻松识别目标端口的开放状态,如果返回ICMP端口不可达错误就认为该端口是关闭的;未收到回应就说明是被过滤的;被响应了则说明是开放状态。

0x08 隐蔽扫描

隐蔽扫描有三个选项:

  • -sN Null扫描 如果目标端口是关闭的,会响应一个RST数据包;如果端口是开放的,则不会响应任何消息
  • -sF FIN扫描 如果收到目标响应的RST数据包,说明端口是开放的;没有收到RST数据包则说明端口是关闭的
  • -sX 如果目标端口开放则会响应一个RST标志包

这些扫描方式会躲过一些无状态防火墙的过滤,这比SYN扫描、UDP扫描会有更好的效果,更加隐蔽。

0x09 TCP ACK扫描

nmap -sA [ip地址]

TCP ACK扫描有一个致命的缺点,它不能确定端口是开放的还是被过滤的。当扫描未被过滤的系统时,开放的和关闭的都会返回RST报文。但是可以利用它来扫描防火墙的配置,用它来发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。

0x0A TCP窗口扫描

nmap -sW [ip地址]

有时开放端口用正数表示窗口大小,关闭窗口的大小为0,所以,当收到RST包时,根据窗口的值时正数还是0来判断端口是开放的还是关闭的。

0x0B 自定义TCP扫描

namp -sT --scanflags [标志位(多个标志位之间不用分隔符隔开)]
如:namp -sT --scanflags SYNURG [ip地址]

若不指定基本类型,则默认为SYN扫描

oxoC 空闲扫描

空闲扫描允许进行端口完全欺骗。利用僵尸主机进行伪装。

namp -sI [僵尸主机]:[端口] [目标主机ip]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值