内容简介
《高等学校计算机科学与技术教材:网路安全实验教程》适合作为计算机科学与技术、网路和信息安全相关专业本科生和研究生的网路安全相关课程配套教材,还为自学网路安全的读者提供非常理想的指导,也适合企、事业单位的网路和系统管理维护人员作为工具书。
图书目录
第1章 安全实验环境
1.1 VM虚拟机
1.1.1 实验原理
1.1.2环境设定
1.1.3 实验指南
1.1.4 思考与练习
1.2 PlanetLab平台
1.2.1 实验原理
1.2.2 环境设定
1.2.3 实验指南
1.2.4 思考与练习
1.3 在实验平台中搭建Chord系统
1.3.1 实验原理
1.3.2 网路系统
1.3.3 实验指南
1.3.4思考与练习
第2章 侦听和扫描
2.1 Wireshark侦听实验
2.1.1 实验原理
2.1.2 环境设定
2.1.3 实验指南
2.1.4 思考与练习
2.2 Nmap扫描实验
2.2.1 实验原理
2.2.2 环境设定
2.2.3 实验指南
2.2.4 思考与练习
第3章 口令破解
3.1 猜测破解
3.1.1 实验原理
3.1.2环境设定
3.1.3 实验指南
3.1.4思考与练习
3.2 系统攻击
3.2.1 实验原理
3.2.2环境设定
3.2.3 实验指南
3.2.4 思考与练习
3.3 网路攻击
3.3.1 实验原理
3.3.2 环境设定
3.3.3 实验指南
3.3.4 思考与练习
3.4 后门攻击
3.4.1 实验原理
3.4.2 环境设定
3.4.3 实验指南
3.4.4 思考与练习
第4章 中间人攻击
4.1 基于ARP的中间人攻击
4.1.1 实验原理
4.1.2 环境设定
4.1.3实验指南
4.1.4 思考与练习
4.2 基于DNS的中间人攻击
4.2.1 实验原理
4.2.2 环境设定
4.2.3 实验指南
4.2.4思考与练习
4.3 SSH降级的中间人攻击
4.3.1 实验原理
4.3.2 环境设定
4.3.3实验指南
4.3.4 思考与练习
第5章欺骗攻击
5.1 MAC欺骗
5.1.1 实验原理
5.1.2 环境设定
5.1.3 实验指南
5.1.4 思考与练习
5.2 IP欺骗
5.2.1 实验原理
5.2.2 环境设定
5.2.3 实验指南
5.2.4 思考与练习
5.3 Cookie欺骗
5.3.1 实验原理
5.3.2 环境设定
5.3.3 实验指南
5.3.4 思考与练习
第6章 拒绝服务攻击
6.1 拒绝服务攻击原理
6.1.1 拒绝服务攻击概念
6.1.2 DDoS分类
6.1.3 攻击运行原理
62 实验原理
6.2.1 TCP SYN Flood攻击原理
6.2.2碎片攻击原理
6.2.3 拒绝服务攻击的防範
6.3 环境设定
6.4 实验指南
6.4.1 TCP SYN Flood攻击
6.4.2 UDP碎片攻击
6.5 思考与练习
第7章 防火墙
7.1 实验原理
7.1.1 包过滤防火墙原理
7.1.2 Iptables传输数据包的过程
7.2 实验环境
7.3 配置单机防火墙
7.3.1 基本规则配置实验
7.3.2 套用协定配置实验
7.3.3 ICMP协定配置实验
7.4 配置网路防火墙实验
7.4.1 实验环境
7.4.2基本配置
7.4.3 实验指南
7.5 思考与练习
第8章Rootkits
8.1 实验原理
8.2 实验环境
8.3 实验指南
8.3.1 Lrk4实验
8.3.2 Knark实验
8.4 Rootkits检测实验
8.4.1 Tripwire实验
8.4.2 RootkitRevealer实验
8.4.3 IceSword实验
8.5 思考与练习
第9章 后门
9.1 实验原理
9.2 实验环境
9.3 实验指南
9.3.1 Netcat实验
9.3.2 ICMP后门实验
9.3.3 VNC后面实验
9.3.4 后门C语言代码实例
9.3.5 后门检测实验
9.4 思考与练习
第10章 蠕虫病毒
10.1 实验原理
10.1.1 蠕虫病毒原理
10.1.2 典型蠕虫病毒
10.1.3 蠕虫病毒的编写及分析
10.2 实验环境
10.3 实验指南
10.3.1 通过随身碟传播蠕虫病毒
10.3.2 通过邮件传播蠕虫病毒
10.3.3 蠕虫病毒的防御
10.4 思考与练习
第11章 殭尸网路
11.1 实验原理
11.2 实验环境
11.3 SDBot实验
11.3.1 SDBot的安装与配置
11.3.2 UDPFlood实验
11.3.3 PingFlood实验
11.3.4 清除Bot实验
11.4 Q8Bot实验
11.4.1 Q8Bot安装与配置
11.4.2 Q8Bot功能
11.5 IRCBotDetector实验
11.5.1 未连线到IRC伺服器
11.5.2 连线到IRC伺服器
11.6 思考与练习
第12章Web安全
12.1 Web安全概述
12.2 实验环境
12.3 SQL注入实验
12.3.1 实验原理
12.3.2 实验指南
12.4跨站脚本攻击实验
12.4.1 实验原理
12.4.2 实验指南
12.5 网页挂马实验
12.5.1 实验原理
12.5.2 实验指南
12.6 思考与练习
1.1 VM虚拟机
1.1.1 实验原理
1.1.2环境设定
1.1.3 实验指南
1.1.4 思考与练习
1.2 PlanetLab平台
1.2.1 实验原理
1.2.2 环境设定
1.2.3 实验指南
1.2.4 思考与练习
1.3 在实验平台中搭建Chord系统
1.3.1 实验原理
1.3.2 网路系统
1.3.3 实验指南
1.3.4思考与练习
第2章 侦听和扫描
2.1 Wireshark侦听实验
2.1.1 实验原理
2.1.2 环境设定
2.1.3 实验指南
2.1.4 思考与练习
2.2 Nmap扫描实验
2.2.1 实验原理
2.2.2 环境设定
2.2.3 实验指南
2.2.4 思考与练习
第3章 口令破解
3.1 猜测破解
3.1.1 实验原理
3.1.2环境设定
3.1.3 实验指南
3.1.4思考与练习
3.2 系统攻击
3.2.1 实验原理
3.2.2环境设定
3.2.3 实验指南
3.2.4 思考与练习
3.3 网路攻击
3.3.1 实验原理
3.3.2 环境设定
3.3.3 实验指南
3.3.4 思考与练习
3.4 后门攻击
3.4.1 实验原理
3.4.2 环境设定
3.4.3 实验指南
3.4.4 思考与练习
第4章 中间人攻击
4.1 基于ARP的中间人攻击
4.1.1 实验原理
4.1.2 环境设定
4.1.3实验指南
4.1.4 思考与练习
4.2 基于DNS的中间人攻击
4.2.1 实验原理
4.2.2 环境设定
4.2.3 实验指南
4.2.4思考与练习
4.3 SSH降级的中间人攻击
4.3.1 实验原理
4.3.2 环境设定
4.3.3实验指南
4.3.4 思考与练习
第5章欺骗攻击
5.1 MAC欺骗
5.1.1 实验原理
5.1.2 环境设定
5.1.3 实验指南
5.1.4 思考与练习
5.2 IP欺骗
5.2.1 实验原理
5.2.2 环境设定
5.2.3 实验指南
5.2.4 思考与练习
5.3 Cookie欺骗
5.3.1 实验原理
5.3.2 环境设定
5.3.3 实验指南
5.3.4 思考与练习
第6章 拒绝服务攻击
6.1 拒绝服务攻击原理
6.1.1 拒绝服务攻击概念
6.1.2 DDoS分类
6.1.3 攻击运行原理
62 实验原理
6.2.1 TCP SYN Flood攻击原理
6.2.2碎片攻击原理
6.2.3 拒绝服务攻击的防範
6.3 环境设定
6.4 实验指南
6.4.1 TCP SYN Flood攻击
6.4.2 UDP碎片攻击
6.5 思考与练习
第7章 防火墙
7.1 实验原理
7.1.1 包过滤防火墙原理
7.1.2 Iptables传输数据包的过程
7.2 实验环境
7.3 配置单机防火墙
7.3.1 基本规则配置实验
7.3.2 套用协定配置实验
7.3.3 ICMP协定配置实验
7.4 配置网路防火墙实验
7.4.1 实验环境
7.4.2基本配置
7.4.3 实验指南
7.5 思考与练习
第8章Rootkits
8.1 实验原理
8.2 实验环境
8.3 实验指南
8.3.1 Lrk4实验
8.3.2 Knark实验
8.4 Rootkits检测实验
8.4.1 Tripwire实验
8.4.2 RootkitRevealer实验
8.4.3 IceSword实验
8.5 思考与练习
第9章 后门
9.1 实验原理
9.2 实验环境
9.3 实验指南
9.3.1 Netcat实验
9.3.2 ICMP后门实验
9.3.3 VNC后面实验
9.3.4 后门C语言代码实例
9.3.5 后门检测实验
9.4 思考与练习
第10章 蠕虫病毒
10.1 实验原理
10.1.1 蠕虫病毒原理
10.1.2 典型蠕虫病毒
10.1.3 蠕虫病毒的编写及分析
10.2 实验环境
10.3 实验指南
10.3.1 通过随身碟传播蠕虫病毒
10.3.2 通过邮件传播蠕虫病毒
10.3.3 蠕虫病毒的防御
10.4 思考与练习
第11章 殭尸网路
11.1 实验原理
11.2 实验环境
11.3 SDBot实验
11.3.1 SDBot的安装与配置
11.3.2 UDPFlood实验
11.3.3 PingFlood实验
11.3.4 清除Bot实验
11.4 Q8Bot实验
11.4.1 Q8Bot安装与配置
11.4.2 Q8Bot功能
11.5 IRCBotDetector实验
11.5.1 未连线到IRC伺服器
11.5.2 连线到IRC伺服器
11.6 思考与练习
第12章Web安全
12.1 Web安全概述
12.2 实验环境
12.3 SQL注入实验
12.3.1 实验原理
12.3.2 实验指南
12.4跨站脚本攻击实验
12.4.1 实验原理
12.4.2 实验指南
12.5 网页挂马实验
12.5.1 实验原理
12.5.2 实验指南
12.6 思考与练习
文摘
着作权页:
插图:
首先,请求端(客户端)传送一个包含SYN标誌的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的连线埠和TCP连线的初始序号。
第二步,伺服器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接收,同时TCP序号被加一,ACK即确认(Acknowledgement)。
第三步,客户端也返回一个确认报文ACK给伺服器端,同样TCP序列号被加一,到此一个TCP连线完成。
以上的连线过程在TCP协定中被称为三次握手(Three—way Handshake)。问题就出在7CP连线的三次握手中,如图6—4所示。
假设一个用户向伺服器传送了SYN报文后突然当机或掉线,那幺伺服器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下伺服器端一般会重试(再次传送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连线,这段时间的长度称为SYN:Timeout,一般来说,这个时间是分钟的数量级(大约为30秒~2分钟)。 一个用户出现异常导致伺服器的一个执行绪等待1分钟并不是什幺很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,伺服器端将为了维护一个非常大的半连线列表而消耗非常多的资源——数以万计的半连线,即使是简单的保存并遍历也会消耗非常多的CPU时间和记忆体,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上,如果伺服器的TCP/IP栈不够强大,最后的结果往往是堆叠溢出崩溃。即使伺服器端的系统足够强大,伺服器端也将忙于处理攻击者伪造的TCP连线请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,伺服器失去回响,这种情况就称作:伺服器端受到了TCP SYN Flood攻击。
6.2.2碎片攻击原理
Teardrop是基于UDP的病态分片数据包的攻击方法,其工作原理是向被攻击者传送多个分片的IP包(IP分片数据包中包括该分片数据包属于哪个数据包及在数据包中的位置等信息),某些作业系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。
例如,假设原始IP包有150位元组数据(不含IP头),该数据包被分成两块,前一块有120位元组,偏移为0;后一部分则是30位元组,偏移为120。当接收方收到第一分片后,如果收到第二个长度为30位元组,偏移量为120的分片时,其将第二个数据包的长度加上偏移量作为第一分片和第二分片的总长度(这里是150)。由于已经拷贝了第一分片的120位元组,因此系统从第二个分片中拷贝150—120=30位元组数据到为重组开设的缓冲区。这样,一切正常。但是,如果攻击者修改第二个分片,使其数据长度为30,偏移量为80,结果就不一样了。系统在收到第二个分片时,计算80+30=110作为两个分片的总长度。为了确定应该从第二个分片中拷贝多少位元组,系统需要用总长度110减去第一个分片的长度120,结果是—10位元组。由于系统採用的是无符号的整数,则—10相当于一个很大的整数,这时系统处理将出现异常。通常会导致堆叠损坏、IP模组不起作用和系统挂起,甚至导致系统崩溃。
插图:
首先,请求端(客户端)传送一个包含SYN标誌的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的连线埠和TCP连线的初始序号。
第二步,伺服器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接收,同时TCP序号被加一,ACK即确认(Acknowledgement)。
第三步,客户端也返回一个确认报文ACK给伺服器端,同样TCP序列号被加一,到此一个TCP连线完成。
以上的连线过程在TCP协定中被称为三次握手(Three—way Handshake)。问题就出在7CP连线的三次握手中,如图6—4所示。
假设一个用户向伺服器传送了SYN报文后突然当机或掉线,那幺伺服器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下伺服器端一般会重试(再次传送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连线,这段时间的长度称为SYN:Timeout,一般来说,这个时间是分钟的数量级(大约为30秒~2分钟)。 一个用户出现异常导致伺服器的一个执行绪等待1分钟并不是什幺很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,伺服器端将为了维护一个非常大的半连线列表而消耗非常多的资源——数以万计的半连线,即使是简单的保存并遍历也会消耗非常多的CPU时间和记忆体,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上,如果伺服器的TCP/IP栈不够强大,最后的结果往往是堆叠溢出崩溃。即使伺服器端的系统足够强大,伺服器端也将忙于处理攻击者伪造的TCP连线请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,伺服器失去回响,这种情况就称作:伺服器端受到了TCP SYN Flood攻击。
6.2.2碎片攻击原理
Teardrop是基于UDP的病态分片数据包的攻击方法,其工作原理是向被攻击者传送多个分片的IP包(IP分片数据包中包括该分片数据包属于哪个数据包及在数据包中的位置等信息),某些作业系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。
例如,假设原始IP包有150位元组数据(不含IP头),该数据包被分成两块,前一块有120位元组,偏移为0;后一部分则是30位元组,偏移为120。当接收方收到第一分片后,如果收到第二个长度为30位元组,偏移量为120的分片时,其将第二个数据包的长度加上偏移量作为第一分片和第二分片的总长度(这里是150)。由于已经拷贝了第一分片的120位元组,因此系统从第二个分片中拷贝150—120=30位元组数据到为重组开设的缓冲区。这样,一切正常。但是,如果攻击者修改第二个分片,使其数据长度为30,偏移量为80,结果就不一样了。系统在收到第二个分片时,计算80+30=110作为两个分片的总长度。为了确定应该从第二个分片中拷贝多少位元组,系统需要用总长度110减去第一个分片的长度120,结果是—10位元组。由于系统採用的是无符号的整数,则—10相当于一个很大的整数,这时系统处理将出现异常。通常会导致堆叠损坏、IP模组不起作用和系统挂起,甚至导致系统崩溃。