您的位置:首页 > 理论基础 > 计算机网络

网络安全系列之二十八 端口扫描

2014-11-07 15:14 344 查看
端口扫描在系统攻防中占据非常重要的地位,在了解端口扫描之前,有必要先了解一些TCP协议以及三次握手的相关知识。

1. TCP协议

TCP报文格式如下图所示:



其中比较重要的几个字段:
复位比特RST:当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其它原因),必须释放连接,然后再重新建立连接。

同步比特SYN:同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。

终止比特FIN:用来释放一个连接。当FIN=1时,表明此报文的发送端的数据已发送完毕,并要求释放连接。

TCP三次握手建立连接的过程:




2. 端口扫描类型

端口扫描就是尝试与目标主机的某些端口建立连接,如果目标主机该端口有回复,则说明端口开放,即为“活动端口”。通过端口扫描可以判断目标主机上开放了哪些服务,运行何种操作系统,以便使用相应的手段进行入侵。
根据扫描原理不同,端口扫描可以有以下分类:全TCP扫描、半开式扫描(SYN扫描)、FIN扫描。
(1)全TCP扫描这种扫描方法使用三次握手,与目标计算机建立标准的TCP连接。但这种扫描方法很容易被目标主机记录。
(2)半开式扫描(SYN扫描)在这种扫描方式中,扫描主机向目标计算机的指定端口发送SYN数据段,表示发送建立连接请求。
如果目标计算机的回应TCP报文中SYN=1,ACK=1,则说明该端口是活动的,接着扫描主机传送一个RST给目标主机,拒绝建立TCP连接,从而导致三次握手过程的失败。
如果目标计算机的回应是RST,则表示该端口是“死端口”,这种情况下,扫描主机不用做任何回应。
SYN扫描,由于扫描过程中全连接尚未建立,所以大大降低了被目标计算机记录的可能性,并且加快了扫描的速度。
(3)FIN扫描当发送一个FIN=1的TCP报文到一个关闭的端口时,该报文会被丢掉,并返回一个RST报文。但是当发送FIN报文到一个活动的端口时,该报文只是简单的丢掉,不会返回任何回应。
FIN扫描没有涉及任何TCP连接部分,因此这种扫描比前两种都安全,可以称之为秘密扫描。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息