网络端口扫描及对策研究
据传输进程)来给Internet上任何地方发送文件。这个协议的缺点是能用来发送不能跟踪的邮件和新闻,给许多服务器造成打击,用尽磁盘。
利用这个特点的目的是从一个代理的FTP服务器来扫描TCP端口。这样,用户能在一个防火墙后面连接到一个FTP服务器,然后扫描端口(这些原来有可能被阻塞)。如果FTP服务器允许从一个目录读写数据,用户就能发送任意的数据到发现的打开的端口。
对于端口扫描,这个技术是使用PORT命令来表示被动的User DTP正在目标计算机上的某个端口侦听。然后入侵者试图用LIST命令列出当前目录,结果通过Server-DTP发送出去。如果目标主机正在某个端口侦听,传输就会成功(产生一个150或226的回应)。否则,会出现″425 Can't build data connection: Connection refused.″。然后,使用另一个PORT命令,尝试目标计算机上的下一个端口。这种方法的优点很明显,难以跟踪,能穿过防火墙。主要缺点是速度很慢,有的FTP服务器最终能得到一些线索,关闭代理功能。
这种方法成功的系统显示状态:
220 xxxxxxx.com FTP server (Version wu-2.4(3) Wed Dec 14 ...) ready.
220 xxx.xxx.xxx.net FTP server ready.
220 xx.Telcom.xxxx.edu FTP server (Version wu-2.4(3) Tue Jun 11 ...) ready.
220 lem FTP server (SunOS 4.1) ready.
220 xxx.xxx.es FTP server (Version wu-2.4(11) Sat Apr 27 ...) ready.
220 elios FTP server (SunOS 4.1) ready
这种方法不成功的系统显示状态:
220 wcarchive.cdrom.com FTP server (Version DG-2.0.39 Sun May 4 ...) ready.
220 xxx.xx.xxxxx.EDU Version wu-2.4.2-academ[BETA-12](1) Fri Feb 7
220 ftp Microsoft FTP Service (Version 3.0).
220 xxx FTP server (Version wu-2.4.2-academ[BETA-11](1) Tue Sep 3 ...) ready.
220 xxx.unc.edu FTP server (Version wu-2.4.2-academ[BETA-13](6) ...) ready.
(7)UDP ICMP端口不能到达扫描
这种方法与上面几种方法的不同之处在于使用的是UDP协议。由于这个协议很简单,所以扫描变得相对比较困难。这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。但许多主机在向一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误。这样软件就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描器必须还实现在一个包看上去是丢失的时候能重新传输。这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率做了规定。同样,这种扫描方法需要具有root权限。
(8)UDP recvfrom()和write()扫描
当非root用户不能直接读到端口不能到达错误时,Linux能间接地在它们到达时通知用户。例如,对一个关闭的端口的第二个write()调用将失败。在非阻塞的UDP套接字上调用recvfrom()时,如果ICMP出错还没有到达时回返回EAGAIN-重试。如果ICMP到达时,返回ECONNREFUSED-连接被拒绝。这就是用来查看端口是否打开的技术。
(9)ICMP echo扫描
这并不是真正意义上的扫描。但有时通过ping,在判断在一个网络上主机是否开机或网络设备是否在线正常工作时非常有用。
3 网络扫描的监测与处理
网络扫描监测系统从逻辑上可以分为三个部分:即抓包模块,判定模块,以及处理模块。同时还应该保留对处理模块的接口。
(1)抓包模块,这一模块一般只需要调用标准的网络接口。目前一般的开发工具都提供相应的Winsock API()。
(2)判定模块,其流程图如下;本模块是处理由抓包模块提交的数据报文,根据预定义的过滤规则进行第一次匹配,选出非正常报文,提交给上层应用,对于选定的非正常报文,由于存在多种可能,如:TCP SYN、TCP FIN等,则需要进行由用户定制的二次匹配,其中的特征值由用户根据相应的扫描特点定义。那些仍然没有确定的报文,往往带有二义性,这就需要借助历史记录的数据库,或者报文(如ICMP报文)长度的阀值来加以判断。
(3)处理模块,这一模块是按照需要设置的各种实现方式和采取相对策略,并且要将相应记录存入日志。需要注意的是对一般的扫描要设置有效的阀值,仅仅一次、二次的扫描不应该被视为网络扫描。
端口扫描虽然可以分为秘密扫描、间接扫描、认证扫描、代理扫描、PING扫描和安全扫描等等,其应用的领域也十分广泛,但作为网络的用户对发生在自己身上的被扫描和请求连接应引起足够的重视,尤其是常用的低端口扫描和联结请求,如23
- 在车载信息娱乐系统、I/O端口和电子模块的电路保护方面要考虑的问题(05-05)
- 带辅助DAC的双路Σ-Δ转换器的原理及应用(09-01)
- 智能型漏电继电器的设计(09-22)
- 便携式电源产品中的电池充电器发展趋势(07-07)
- 电池充电器在便携式电源产品中的应用趋势:大功率和宽输入范围(04-16)
- 解决高速网络设备中电线太多的问题(02-27)