资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章 黑客入侵技术,本章要掌握的内容 熟悉端口扫描,网络监听和IP电子欺骗技术 了解特洛伊木马的特征 掌握缓冲区溢出技术和防护的方法,6.1 端 口 扫 描 6.2 网 络 监 听 6.3 IP电子欺骗 6.4 拒绝服务攻击 6.5 特洛伊木马 6.6 E-mail 炸 弹 6.7 缓冲区溢出,6.1 端 口 扫 描,6.1.1 端口扫描简介 扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用它扫描TCP端口,并记录反馈信息,可以不留痕迹地发现远程服务器中各种TCP端口的分配、提供的服务和它们的软件版本。这就能直观地或间接地了解到远程主机存在的安全问题。 端口扫描不需要超级权限。只需使用SOCKET编程知识,就可以编写出能在UNIX/Windows下运行的端口扫描程序。,Finger服务所在的端口为79; WEB服务在端口8000 许多入侵者将自己的后门开在非常高的端口。因为高端口不常使用,容易被扫描程序忽略。,最简单的扫描程序仅仅检查目标主机在哪些端口建立TCP连接,但不能确定端口提供什么样的服务; 要知道端口上提供的服务,必须用相应的协议来验证 如文件传输协议,远程终端服务一开始总是要交换信息,用户端才能完成正常的显示 一个专门在网上搜索代理的程序,要试图连接目标主机的许多端口,如果能够通过并调来一个WWW网页,则找到代理 缺点:容易被目标主机检测到并纪录下来,因为这种方法总是主动和目标主机建立连接; 缺点:容易被防火墙之类的系统过滤掉,防火墙会检测IP包,将未知IP地址的包非常警惕 因此,入侵既要实现端口扫描,又要隐藏自己,可以利用TCP/IP的特征实现隐身,在TCP包的头部有6位,如下: ACK为1,表示确认号有效,为0,表示确认被忽略 PSH包用于实时通信,希望接收者将数据直接交给应用程序,而不是缓存起来 RST当接收到这样的数据包,通常说明主机有问题,连接被重置 SYN与ACK一起使用。表明是连接请求,要应答/无应答 FIN释放一个请求,表明连接者已没有数据要发送 URG 端口扫描工具有: 网络安全扫描器NSS;安全管理员网络分析工具SATAN;超级优化的TCP端口检测程序Strobe,使用上面的信息实现端口扫描,TCP connect()扫描 这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。 不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度。如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。这种方法的缺点是容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连接是出错的服务消息,并且能很快的使它关闭。,TCP SYN扫描 “半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录。但这种方法的一个缺点是,必须要有root权限才能建立自己的SYN数据包。,使用上面的信息实现端口扫描,使用上面的信息实现端口扫描,TCP FIN 扫描 (发送者无数据) 有的时候有可能SYN扫描都不够秘密。一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包可能会没有任何麻烦的通过。这种扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种方法和系统的实现有一定的关系。有的系统不管端口是否打开,都回复RST,这样,这种扫描方法就不适用了。并且这种方法在区分Unix和NT时,是十分有用的。,UDP ICMP端口不能到达扫描 这种方法与以上方法的区别是使用UDP协议。由于这个协议很简单,所以扫描变得相对比较困难。这是由于打开的端口对扫描探测并不发送一个确认,关闭的端口也并不需要发送一个错误数据包。幸运的是,许多主机在你向一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACH错误。这样你就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描器必须还实现在一个包看上去是丢失的时候能重新传输。这种扫描方法是很慢的,因为RFC对ICMP错误消息的产生速率做了规定。同样,这种扫描方法需要具有root权限。,使用上面的信息实现端口扫描,UDP recvfrom()和write() 扫描 当非root用户不能直接读到端口不能到达的错误时,Linux能间接地在它们到达时通知用户。比如,对一个关闭的端口的第二个write()调用将失败。在非阻塞的UDP套接字上调用recvfrom()时,如果ICMP出错还没有到达时回返回EAGAIN-重试。如果ICMP到达时,返回ECONNREFUSED-连接被拒绝。这就是用来查看端口是否打开的技术。,使用上面的信息实现端口扫描,ICMP echo扫描 这并不是真正意义上的扫描。但有时通过ping,在判断在一个网络上主机是否开机时非常有用。 端口扫描:NMAP 、PORTSCAN等 漏洞扫描: ISS、 NESSUS、SATAN、 X-Scan CIS(Cerberus Internet Scanner),运行在Windows 之下,主要用来对Windows NT和2000的安全性作出评估,指出其存在的安全性弱点,并提供一定程度上的改进建议。当前版本是5.0.02版。,使用上面的信息实现端口扫描,6.2 网 络 监 听,6.2.1 网络监听的原理 当信息以明文的形式在网络上传播时,黑客就可以使用监听的方式来进行攻击。只要将网络接口设置为监听模式,便可以源源不断地将网上传输的信息截获。监听只能是同一个网段的主机。这里同一个网段是指物理上的连接,因为不是同一个网段的数据包,在网关就被滤掉了,传不到该网段来。 网络监听的最大用处是获得用户口令。 监听效果最好的地方是在:网关、路由器和防火墙之类的设备。,表6.1不同的数据链路上传输的信息被监听的可能性,2以太网中可以监听的原因 当主机工作在监听模式下,那么,无论数据包中的目标物理地址是什么,主机都将接收。 在以太网中,只有目标主机才接收数据,其它主机忽略。 如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的那些信息包。,6.2.2 网络监听的检测 网络监听很难被发现,因为运行监听的主机只是被动接收信息(没有主动行为,既不与其他主机交换信息,也不修改网络上传输的信息包)。介绍两种检测方法: (1)方法一 对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去ping,运行监听程序的机器会有响应。这是因为正常的机器不接收错误的物理地址,处于监听状态的机器能接收。 (2)方法二 往网上发大量不存在的物理地址的包,由于监听程序将处理这些包,会导致性能下降。通过比较前后该机器性能(icmp echo delay等方法)加以判断。,对付一个监听的简单方法:加密。 其他防范监听的方法: 般能够接受的击败网络监听的方法是使用安全的拓扑结构。这种技术通常被称为分段技术。 对网上传输的信息进行加密,可以有效地防止网络监听的攻击。,6.3 IP电子欺骗,6.3.1 关于盗用IP地址 当一台主机使用的不是分配给自己的IP地址时,就有盗用IP地址的嫌疑。 也只能盗用本网段的IP地址(否则,包出口时,路由器不转发)。惟一留下马脚的是物理地址有可能被记录下来(路由器上有静态ARP表),如果盗用的是另一网段一台主机的IP地址,一般情况下是不行的,因为在正常通信时,将收不到从对方返回的IP数据包。,因此,只能盗用本网段的IP地址。原因很简单:一个最简单的网段,也要有一个路由器作为出口。在路由器的配置中,要指定这个网段的网络地址和掩码。如果这个网段的主机使用了其他网段的IP地址,则路由器不认为这个IP地址是属于它的网段,所以不给转发。防止盗用IP地址可以绑定IP地址和物理地址。,6.3.2 IP电子欺骗的原理 IP电子欺骗:通过IP地址伪装使得某台主机能伪装成另外一台(具有某种特权或受信任的)主机。 1IP电子欺骗过程 IP电子欺骗通常使用RAW Socket编程实现,发送带有假冒的源IP地址的数据包。 关于IP欺骗技术有如下3个特征: (1)只有少数平台能够被这种技术攻击。 (2)这种技术出现的可能性比较小。 (3)这种攻击方法很容易防备。,IP电子欺骗只能攻击那些完全实现了TCP/IP的主机。包括所有的端口和服务。 2可以实施欺骗的对象 (1)运行Sun RPC的计算机。 (2)基于IP地址认证的网络服务。 (3)MIT的X视窗系统。 (4)提供R系列服务(如提供rlogin、rsh与rcp等服务)的计算机。,6.3.3 IP电子欺骗的实施 攻击的2种方式: (1)假冒计算机B来欺骗A、C; (2)假冒计算机A或C来欺骗B; 为了假冒计算机C去欺骗B,首先要使得计算机C瘫痪。 攻击的几个过程: (1)使计算机C的网络部分不能正常工作 (2)找到计算机B发出的包的系列号 (3)实施攻击 (4)建立一个更好的后门,例(1)使计算机C的网络部分不能正常工作 为了使得计算机C不能工作,必须使得计算机C被攻击的端口无法处理正确的请求。相当于计算机C已经被关闭。 正常的连接通常由三次握手完成: C向B发送一个请求; B向C回答一个响应; C再给出一个响应。 为了假冒计算机C,必须使得C不能回答响应,否则,计算机C会告诉B它没有发出连接请求(发出带有RST标志的IP包),常用的是拒绝服务攻击。,(2)找到计算机B发出的包的系列号,计算机,服务器,初始系列号N1,无确认号,初始系列号N2,无确认号N1+1,系列号N1+1, 确认号N2+1,攻击者给计算机发送一系列请求,B不得不响应,在响应中包含一个重要的数据:系列号。 初始系列号有一个规律:无连接时,每秒种增加128;有连接时每秒增加64。 现在的系列号采用随机,很难发现规律,这样就不容易猜测。,(3)实施攻击 假冒C的计算机首先使得C瘫痪,通过给B发送大量的数据包猜测出B返回的系列号,从而和B建立连接。 (4)建立一个更好的后门 通过上面的连接,黑客会建立一个更好的后门,以后就不必使用上面的猜测方法进行攻击了。如改写文件$HOME/.rhosts。 之后退出连接,利用留下的后门重新进入服务器计算机。 使用这种技术攻击的方法是非常少的,因为攻击者必须非常了解TCP/IP协议,必须能准确地猜测出系列号,还必须知道某个网站内部计算机之间的信任关系。,6.3.4 IP电子欺骗的防范 对于来自网络外部的欺骗来说,只要在路由器里面设置不允许声称来自内部网络的外部计算机的包通过就行了。 当实施欺骗的主机在同一网络内时,攻击往往容易得手,并且不容易防范。 另外,应该注意与外部网络连接的路由器,看他是否支持内部接口,如果它有两个子网接口,就比较容易收到IP欺骗。,6.4 拒绝服务攻击,6.4.1 概述 拒绝服务是一种简单的破坏性攻击,攻击者使得攻击目标失去工作能力,使得系统不可访问因而合法用户不能及时得到应得的服务或系统资源,它最本质的特征是延长正常的应用服务的等待时间。 可见拒绝服务的目的不在于闯入一个站点或更改其数据,而在于使站点无法服务于合法的请求。入侵者并不单纯为了进行拒绝服务而入侵,往往是为了完成其他的入侵而必须做准备。如: 1)在
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号