端口扫描基础知识详解
上一篇 / 下一篇 2006-09-15 20:06:43 / 天气: 晴朗 / 心情: 高兴 / 个人分类:黑客基地
在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。
)oV+o.{uO3C0
wq`%]a'IM0★黑基空间★I])U1Mi
要想知道端口扫描就得知道网络协议基础★黑基空间★l9BShbN g
按协议类型划分
)]_wfdW`0 按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:
zmGuTp3u0
WeKlrvK%j I0 (1)TCP端口
](t/q3p%zp0 TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
M r9R_O:J0
[:|M mXT l%_ta0 (2)UDP端口★黑基空间★%q)KY*g:Uk0U2w6c
UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。★黑基空间★z7J}Bq e
4^;}d(~2mFv:RBG'kv0 TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。★黑基空间★q&N k'mn0xX6^.M?
k i9fY[lJ AE0 通过每个TCP传输的字段指定顺序号,以获得可靠性。如果一个分段被分解成几个小段,接收主机会知道是否所有小段都已收到。通过发送应答,用以确认别的主机收到了数据。对于发送的每一个小段,接收主机必须在一个指定的时间返回一个确认。如果发送者未收到确认,数据会被重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发送者会重新发送分段。
4y4|bU^n O,e0 TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。★黑基空间★ Epq!{'L%xDb(E y
★黑基空间★1V Tm+B5I*_/hz
通过每个TCP传输的字段指定顺序号,以获得可靠性。如果一个分段被分解成几个小段,接收主机会知道是否所有小段都已收到。通过发送应答,用以确认别的主机收到了数据。对于发送的每一个小段,接收主机必须在一个指定的时间返回一个确认。如果发送者未收到确认,数据会被重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发送者会重新发送分段。★黑基空间★y&S9H0t&jE7~
1{4{,t*Y#Z0★黑基空间★ v}CZ3O3rk
UDP★黑基空间★f,us0O.Y
★黑基空间★:V1Hr1~fk+N;xT
用户数据报协议UDP提供了无连接的数据报服务。它适用于无须应答并且通常一次只传送少量数据的应用软件。
s z4D@4~6]yN0
&}:du;QLsQ:])c| \0UDP端口★黑基空间★?Q|9t2r t fq8@~:U
4`)w2ee!K&m0 端口作为多路复用的消息队列使用。
o5y7F[2Mkk0 15 NETSTAT 网络状态★黑基空间★t @C$nK(l4mZme
53 DOMAIN 域名服务器★黑基空间★$A'Nh/ud}c
69 TFTP 平凡文件传送协议
,YX[;BJ-`sv4q;b?0 137 NETBIOS-NS NETBIOS命令服务★黑基空间★&O0J4bK| } Hm
138 NETBIOS-DGM NETBIOS数据报服务
)W0xW,W9l6x;uz0 161 SNMP SNMP网络监视器★黑基空间★]7L)|?M ]a([*A
;fC,T_^H\+S0
*Q XB1}5I~U0扫描实现的几种原理,知道这些就知道端口扫描是怎么实现的了
b"ft]m w!q5\%J0TCP connect() 扫描 ★黑基空间★.K2b X0lY$]
★黑基空间★ ~&np8v,Q/}
这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一个感兴趣 ★黑基空间★HgRQ](~3n
★黑基空间★1}uKqY-IN
的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功
8^[ { n:]2D:Uu"c2z4P k9g!B0
@9i9y,Q'Mg omm;z0。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是, ★黑基空间★Bx!`K @K#?QrHg
GsXR eC6q'RR1}0你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速
`!sd$g|+tI^+xw-K0
+h(];B8fk0度。如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花 ★黑基空间★O0p6@b&yG0`
|*w9]NUa}-Y0费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。使用非阻塞
yY7}~ M&^#[8PP0
JSX t Cc^AY0I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点
q8F:^j8xv/z4h0★黑基空间★8m5V7i#O3Da5dZ
是很容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连
x-X NG|0★黑基空间★3Ar.U]+r6F
接是出错的服务消息,并且能很快的使它关闭。 ★黑基空间★%fjC*u:q$@
★黑基空间★Xu h!imy Z/Qi
g%u x urG0
\)a(j ]Cwcb0TCP SYN扫描
)oV+o.{uO3C0
wq`%]a'IM0★黑基空间★I])U1Mi
要想知道端口扫描就得知道网络协议基础★黑基空间★l9BShbN g
按协议类型划分
)]_wfdW`0 按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:
zmGuTp3u0
WeKlrvK%j I0 (1)TCP端口
](t/q3p%zp0 TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
M r9R_O:J0
[:|M mXT l%_ta0 (2)UDP端口★黑基空间★%q)KY*g:Uk0U2w6c
UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。★黑基空间★z7J}Bq e
4^;}d(~2mFv:RBG'kv0 TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。★黑基空间★q&N k'mn0xX6^.M?
k i9fY[lJ AE0 通过每个TCP传输的字段指定顺序号,以获得可靠性。如果一个分段被分解成几个小段,接收主机会知道是否所有小段都已收到。通过发送应答,用以确认别的主机收到了数据。对于发送的每一个小段,接收主机必须在一个指定的时间返回一个确认。如果发送者未收到确认,数据会被重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发送者会重新发送分段。
4y4|bU^n O,e0 TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。★黑基空间★ Epq!{'L%xDb(E y
★黑基空间★1V Tm+B5I*_/hz
通过每个TCP传输的字段指定顺序号,以获得可靠性。如果一个分段被分解成几个小段,接收主机会知道是否所有小段都已收到。通过发送应答,用以确认别的主机收到了数据。对于发送的每一个小段,接收主机必须在一个指定的时间返回一个确认。如果发送者未收到确认,数据会被重新发送;如果收到的数据包损坏,接收主机会舍弃它,因为确认未被发送,发送者会重新发送分段。★黑基空间★y&S9H0t&jE7~
1{4{,t*Y#Z0★黑基空间★ v}CZ3O3rk
UDP★黑基空间★f,us0O.Y
★黑基空间★:V1Hr1~fk+N;xT
用户数据报协议UDP提供了无连接的数据报服务。它适用于无须应答并且通常一次只传送少量数据的应用软件。
s z4D@4~6]yN0
&}:du;QLsQ:])c| \0UDP端口★黑基空间★?Q|9t2r t fq8@~:U
4`)w2ee!K&m0 端口作为多路复用的消息队列使用。
o5y7F[2Mkk0 15 NETSTAT 网络状态★黑基空间★t @C$nK(l4mZme
53 DOMAIN 域名服务器★黑基空间★$A'Nh/ud}c
69 TFTP 平凡文件传送协议
,YX[;BJ-`sv4q;b?0 137 NETBIOS-NS NETBIOS命令服务★黑基空间★&O0J4bK| } Hm
138 NETBIOS-DGM NETBIOS数据报服务
)W0xW,W9l6x;uz0 161 SNMP SNMP网络监视器★黑基空间★]7L)|?M ]a([*A
;fC,T_^H\+S0
*Q XB1}5I~U0扫描实现的几种原理,知道这些就知道端口扫描是怎么实现的了
b"ft]m w!q5\%J0TCP connect() 扫描 ★黑基空间★.K2b X0lY$]
★黑基空间★ ~&np8v,Q/}
这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一个感兴趣 ★黑基空间★HgRQ](~3n
★黑基空间★1}uKqY-IN
的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功
8^[ { n:]2D:Uu"c2z4P k9g!B0
@9i9y,Q'Mg omm;z0。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是, ★黑基空间★Bx!`K @K#?QrHg
GsXR eC6q'RR1}0你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速
`!sd$g|+tI^+xw-K0
+h(];B8fk0度。如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花 ★黑基空间★O0p6@b&yG0`
|*w9]NUa}-Y0费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。使用非阻塞
yY7}~ M&^#[8PP0
JSX t Cc^AY0I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点
q8F:^j8xv/z4h0★黑基空间★8m5V7i#O3Da5dZ
是很容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连
x-X NG|0★黑基空间★3Ar.U]+r6F
接是出错的服务消息,并且能很快的使它关闭。 ★黑基空间★%fjC*u:q$@
★黑基空间★Xu h!imy Z/Qi
g%u x urG0
\)a(j ]Cwcb0TCP SYN扫描