《计算机网络安全与管理》上机实验教案.doc_第1页
《计算机网络安全与管理》上机实验教案.doc_第2页
《计算机网络安全与管理》上机实验教案.doc_第3页
《计算机网络安全与管理》上机实验教案.doc_第4页
《计算机网络安全与管理》上机实验教案.doc_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

计算机网络安全与管理上机实验教案网络工程教研室著2009 年4月1实验要求:1. 实验项目名称。2. 实验目的。3. 实验内容:上机过程中的实验步骤。4. 算法:实验过程中所涉及程序的算法。5. 源程序。6. 运行结果。7. 结果的分析。8. 实验总结。目 录计算机网络安全上机实验教案1实验1 使用网络监听工具4实验2 实现加解密程序9实验3 端口扫描技术原理与实践14实验4 电子欺骗技术18实验5 防火墙原理及其基本配置33实验6 缓冲区溢出40实验7 入侵检测原理与snort 的使用55实验8 pgp的原理与使用62实验9 实现基于挑战响应的身份认证63实验10 操作系统安全配置64附录1:一个简单的sniffer程序的实现73附录2:实验7入侵检测原理78附录3:实验8 pgp 使用参考91主要参考资料99 实验1 使用网络监听工具实验目的:1. 了解sniffer的工作原理。2. 掌握sniffer的使用。3. 学会在windows平台下使用sniffer。 4. 会写一个简单的sniffer程序实验设备与实验环境:(6人/组)(2课时)1实验设备已连入局域网的计算机。2实验软件windowsnt/2000/xp ,sniffer软件。实验内容:1使用sniffer抓包步骤一:进入sniffer主界面,抓包之前设置要抓取的数据包的类型。选择主菜单“capture”下的“define filter”(抓包过滤器)菜单,在出现“define filter”窗口中,选择“address”选项卡。窗口中需要修改两个地方:在address下拉列表中,选择抓包的类型是ip,在station1下面输入本机的ip地址,在与之对应的station2下面输入另一台主机ip地址。设置完毕后,点击该窗口的advanced选项卡,拖动滚动条找到ip项,将ip和icmp选中,将tcp和udp选中,再把tcp下面的ftp和telnet两个选项选中。步骤二:选择菜单栏capture下start菜单项,启动抓包以后,在主机的dos窗口中ping目标主机,等ping指令执行完毕后,点击工具栏上的停止并分析按钮,在出现的窗口选择decode选项卡,可以看到数据包在两台计算机间的传递过程, sniffer将ping的数据包成功获取了。2分析三次握手抓包后可以看到数据包在两台计算机间的传递过程,根据此过程分析的三次握手。3. 写一个简单的sniffer程序1)把网卡置于混杂模式。2)捕捉数据包。3)分析数据包。附录:一个简单的sniffer程序的实现1. 把网卡置于混杂模式。 2. 捕获数据包。 3.分析数据包。#include headers.h#define interface eth0int open_raw_socket(void);int set_promisc(char *interface, intsock);int main() int sock, bytes_recieved, fromlen;char buffer65535;struct sockaddr_in from;struct ip *ip;struct tcp *tcp; sock = open_raw_socket();set_promisc(interface, sock);/捕获数据包while(1)fromlen = sizeof from;/接收数据,冰把接收到的数据放入buffer中bytes_recieved = recvfrom(sock, buffer, sizeofbuffer, 0, (struct sockaddr *)&from, &fromlen);printf(nbytes received :%5dn,bytes_recieved);printf(source address :%sn,inet_ntoa(from.sin_addr);/分析数据包并强行转化为我们定义的ip结构ip = (struct ip *)buffer;/判断在网络层中是否使用的是tcp协议if(ip-ip_protocol = 6) printf(ip header length :%dn,ip-ip_length);printf(protocol :%dn,ip-ip_protocol);/tcp信息包从整个ip/tcp包 从下面地址处开始,然后对应结构把你所需要的信息输出tcp = (struct tcp *)(buffer +(4*ip-ip_length);printf(source port :%dn,ntohs(tcp-tcp_source_port);printf(dest port :%dn,ntohs(tcp-tcp_dest_port);int open_raw_socket() int sock; if(sock = socket(af_inet, sock_raw, ipproto_tcp) ip_length);print(protocol : %dn,ip-ip_protocol);tcp=(struct tcp *)(buffer + (4*ip-ip_iplength);printf(source port : %dn,ntohs(tcp-tcp_source_port);printf(dest prot : %dn,ntohs(tcp-tcp_dest_port);如何防止sniff防止sniff最有效的手段就是进行合理的网络分段,并在网络中使用交换机和网桥,在理想的情况下使每一台机器都拥有自己的网络段,当然这会使你的网络建设费用增加很多,所以你可以尽量使相互信任的机器属于同一个网段,使他们互相之间不必担心sniff的存在。并在网段于网段间进行硬件屏障。你也可以使用加密技术对你在网络中传送的敏感数据如户id或口令,你的银行帐号,商业机密等进行加密,你可以选用等加密手段。为了防止arp欺骗,你可以使用永久的缓存条目,反正上面的攻击手段和原理你也看了,你就反过来想想该怎么办好了。不过有盾必有矛,平时的安全意识才是最重要的。实验2 实现加解密程序一、实验要求与目的 1熟悉加密、解密的算法;懂得加密在通信中的重要作用; 2熟悉密码工作模式; 3使用高级语言实现一个加密、解密程序。 二、实验内容 1详细描述加密、解密算法。可选算法包括des、rsa等。 2使用密码工作模式ecb、cbc、cfb、ofb、ctr。 3调试并通过该程序。三、加密解密程序流程图64bit明文初始换位16轮迭代运算:ln = rn-1;rn = ln-1 f(rn-1,kn)加密变换逆初始换位输入64bit密文64bit密钥输出压缩型换位pc-1密钥等分,密钥移位,密钥选取三步循环执行。经以上16次迭代分别得到16个子密钥48bitki子密钥换位表pc-2实验2、古典密码学实验1. 实验目的(1) 通过本实验简要了解密码学的基本知识。(2) 了解古典密码学的加密方法。(3) 具体掌握一种古典加密方法。2. 实验原理2.1 密码学简介密码学(cryptology)是研究密码系统或通信安全的一门科学。它主要包括两个分支,即密码编码学(cryptography)和密码分析学(crypt analytics)。密码编码学的主要目的是寻求保证消息保密性或认证性的方法,密码分析学的主要目的是研究加密消息的破译或消息的伪造。采用密码技术可以隐蔽和保护需要保密的消息,使未授权者不能提取信息。被隐蔽的消息称作明文(plaintext),隐蔽后的消息称作密文(ciphertext)或密报(cryptogram)。将明文变换成密文的过程称作加密(encryption),其逆过程,即由密文恢复出原明文的过程称作解密(decryption)。根据密钥的特点,密码体制分为对称和非对称密码体制(symmetric 和asymmetriccryptosystem)两种。对称密码体制又称单钥(one-key)或私钥(private key)或传统(classical)密码体制,非对称密码体制又称双钥(two-key)或公钥(public key)密码体制。在私钥密码体制中,加密密钥和解密密钥是一样的或彼此之间容易相互确定。按加密方式又会将私钥密码体制分为流密码(stream cipher)和分组密码(block cipher)两种。在流密码中,将明文消息按字符逐位地加密。在分组密码中,将明文消息分组(每组含有多个字符),逐组地进行加密。在公钥密码体制中,加密密钥和解密密钥不同,从一个难于推出另外一个,可将加密和解密能力分开。2、古典密码学本节主要介绍几种古典密码体制,虽然这些密码大都比较简单而且容易破译,但研究这些密码的设计原理和分析方法对于理解、设计和分析现代密码是十分有益的。代换密码和置换密码令a 表示含n 个“字母”或“字符”的明文字母表,例如,可以是普通的英文字母az,y也可以是数字、空格、标点符号或任何可以表示明文消息的符号。因此可以将a 抽象地表示为一个整数集zn0,1,.,n-1。在加密时通常将明文消息划分成长为l 的消息单元,称为明文组,以m 表示,如m=(m0,m1,ml-1),mlzn,0ll-1。m 也称作l-报文,它是定义在znl 上的随机变量,znl=zn*zn*zn(l 个)=m=(m0,m1,ml-1)|mlzn,0ll-1。l=1 为单字母报(1-gram),l2 为双字母报(bigrams),l=3 为三字母报(trigrams)。明文空间p=znl.令a表示含n个“字母”或“字符”的密文字母表,抽象地可用整数集zn=0,1,n-1来表示。密文单元或组为c=(c0,c1,cl-1)(l个),clzn, 0ll-1。c 是定义在znl上地随机变量。密文空间c= znl。一般地,明文和密文由同一字母表构成,即a=a。加密变换是从明文空间到密文空间地映射f:pc。加密变换通常是在密钥控制下变化的,因此,一般记为c=f(m,k)=ek(m) kk mp cc (1)k 为密钥空间。假定f 是一个单射,对固定地kk,令ck=c=f(m,k)=ek(m)|mpc,因此对给定的密文组cck,有且仅有一个对应的明文组m,也就是说,对于此函数f,存在逆映射f-1:ckp,使f-1(c)=f-1f(m)=m mp cck (2)即f-1 为解密变换。一个密码系统就是在f 作用下由znl到znl的映射,在这种意义上,称此种密码为代换密码(substitution cipher),如图1 所示。l=1 时,称作单字母代换,也称作流密码(streamcipher)。l1 时,称作多码代换,也称作分组密码(block cipher)。一般地,选择相同的明文和密文字母表。此时,若l=l,则映射f 可构造成一对一的映射,密码无数据扩展。若ll,则明文数据将被压缩,此时映射f 不可能构造成可逆映射,从而从密文有时也就无法完全恢复出原明文消息,因此保密通信中必须要求ll。但ll的映射可以用在认证系统中。在a=a,n=n,和l=1 时,若对所有明文字母,都用一种固定的代换进行加密,则称这种密码为单表代换(monoalphabetic substitute)。若用一个以上的代换表进行加密,这就称作是多表代换(ployalphabetic substitute)。这是古典密码中的两种重要体制,曾被广泛地使用过。在代换密码中有一种特殊的代换密码,即代换并没有改变明文字母,而只改变了它们的位置,密码学史上把这种代换密码称作置换密码(permutation cipher),又称换位密码(transposition cipher)。下面是置换密码的一个详细描述。设p=c=znl,k 表示所有的0,1,.,l-1上的置换构成的集合。对每一个给定的密钥k=( 一个置换) , 置换密码的加密变换定义为e(m0,m1,ml-1)=(m(0),m(1),m(l-1)=(c0,c1,cl-1) 。因而解密变换为d-1(c0,c1,cl-1)=(c-1(0),c-1(1),c-1(l-1),这里1 是 的逆置换。单表代换密码单表代换密码是对明文的所有字母都用一个固定的明文字母表到密文字母表的映射,即f:znzn。令明文m=m0m1,则相应的密文为c=e(m)=c0c1=f(m0)f(m1)。若明文字母表为a=zn=0,1,n-1,则相应的明文字母表为a=f(0),f(1),f(n-1),a是a 的某种置换。仿射密码(affine cipher)是一种特殊的代换密码。明文空间p 和密文空间c 均为zn,密钥空间为k=k=(k1,k0)|gcd(k1,n)=1,k0,k1zn。对给定的密钥k=(k1,k0) k,其加密变换为ek(i)=(ik1+k0)modn (3)解密变换为dk(j)=k1-1(j-k0)modn (4)其中gcd(k1,n)表示k1与n 的最大公因子,xmodn 表示x 除以n 所得的余数,密钥空间k 的大小为n(n)。zn 是剩余类环和(.)是欧拉函数。当k0=0 时,称为乘法密码(multiplicative cipher),又称采样密码(decimationcipher)。当k1=1 时,称为移位密码(shift cipher),又称加法密码(additive cipher)。我们将通过建立英文字母和模26 的剩余之间的对应关系来使用移位密码加密普通的英文消息。例1 假定移位密码的密钥为k0=11,明文消息为we will meet at midnight。我们首先利用表1 将该明文转化成一列整数:22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19。其次加3 到每个值,并进行模26 运算得:7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 2419 17 18 4 。最后, 再利用表1 将这一列整数转化为字母, 从而获得密文:hphtwwxppelextoytrse。解密过程与加密过程类似,不同的只是进行模26 减3,而不是模26 加3。表1 英文字母和模26 的剩余之间的对应关系a0n13多表代换密码多表代换密码是以一系列(两个以上)代换表依次对明文消息的字母进行代换的加密方法。令明文字母表为zn,f=(f1,f2,)为代换序列,明文字母序列m=m1m2,则相应的密文字母序列为c=ek(m)=f(m)=f1(m1)f2(m2)。若f 是非周期的无限序列,则相应的密码称为非周期多表代换密码。这类密码,对每个明文字母都采用不同的代换表(或密钥)进行加密,称作一次一密密码(one-time pad cipher),这是一种在理论上唯一不可破的密码。这种密码可以完全隐蔽明文的特点,但由于需要的密钥量和明文消息长度相同而难于广泛使用。为了减少密钥量,在实际应用中多采用周期多表代换密码,即代换表个数有限,重复地使用,此时代换表序列为f=(f1,f2,fd,f1,f2,) , 相应于明文字母m 的密文为c=ek(m)=f(m)=f1(m1)f2(m2)fd(md)f1(md+1)f2(md+2)f(m2d)。当d=1 时就退化为单表代换,因此可以说多表代换密码是单表代换密码的一种推广。有名的多表代换密码有vigenere、beaufort、running-key、vernam 和转轮机(rotor machine)等密码。这里只介绍vegenere 多表代换密码。vigenere 密码是由法国密码学家blaise de vigenere 于1858 年提出的一种密码,它是一种以移位代换(当然也可以用一般的字母代换表)为基础的周期代换密码。d 个代换表f=(f1,f2,fd)由d 个字母序列给定的密钥k=(k1,k2,kd) znd 决定,其中ki(i=1,2,d)确定明文的第i+td 个字母(t 为正整数)的移位次数,即加密公式为ci+td=eki(mi+td)=(mi+td+ki) mod n (5)从而解密公式为mi+td=dki(ci+td)=en-ki(ci+td)=(n-ki+mi+td+ki) mod n=mi+td (6)称k 为用户密钥(user key)或密钥字(key word)。密钥量为nd,当n 与d 较大时,密钥量是很大的。将用户密钥k 周期地延伸就给出了整个明文加密所需地工作密钥(workingkey)。例2 假定我们仍使用表1,d6,k=cipher,明文串是this cryptosystem is not secure。首先将k 及明文串转化成数字串: k=(2,8,15,7,4,17) ,m=(19,7,8,18,2,17,24,15,19,14,18,24,18,19,4,12,8,18,13,14,19,18,4,2,20,17,4)。其次模26“加”密钥字k=(2,8,15,7,4,17)得:最后将所得的密文数字串利用表1 转化成密文字母串即vpxzgiaxivwpubttmjpwizitwzt解密过程与加密过程类似,不同的只是进行模26 减,而不是模26 加。3. 实验内容(1) 仔细阅读古典密码学的原理,理解如何使用多表代换密码加密明文。(2) 理解例2 的加密方法,使用c 语言实现该加密算法。要求,明文保存在input.txt,输入密钥,将密钥输出在文件output.txt。注意明文各个单词之间不要有空格,一方面便于转化,另一方面也是为了保密,隐藏单词的长度信息。(3) 使用c 语言实现解密算法解密(2)中的密文output.txt,输入密钥,解出明文。实验3 端口扫描技术原理与实践1、实验目的学习端口扫描技术基本原理,理解端口扫描技术在网络攻防中的作用。通过上机实验,熟练的掌握目前最为常用的网络扫描工具nmap 的使用。2、实验原理2.1 tcp 基本协议tcp 是面向连接的字节流传输层服务,本地ip 地址,本地端口号,远端ip 地址和远端端口号构成的4 元组确定一个tcp 连接。在连接建立后,双方便可以传输数据。tcp 报头中有6 个标志比特,理解它们才能很好的掌握tcp 协议,下面分别介绍其含义:syn:标志位用来建立连接,让连接双方同步序列号。如果syn1 而ack=0,则表示该数据包为连接请求,如果syn=1 同时ack=1 则表示接受连接请求。fin: 表示发送端已经没有数据要求传输了,希望释放连接。rst: 用来复位一个连接。rst 标志置位的数据包称为复位包。一般情况下,如果tcp收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。urg: 为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。ack: 为确认标志位。如果为1,表示包中的确认号时有效的。否则,包中的确认号无效。psh: 如果置位,接收端应尽快把数据传送给应用层。tcp 是一个面向连接的可靠传输协议。面向连接表示两个应用端在利用tcp 传送数据前必须先建立tcp 连接。tcp 的可靠性通过校验和,定时器,数据序号和应答来提供。通过给每个发送的字节分配一个序号,接收端接收到数据后发送应答,tcp 协议保证了数据的可靠传输。数据序号用来保证数据的顺序,剔除重复的数据。在一个tcp 会话中,有两个数据流(每个连接端从另外一端接收数据,同时向对方发送数据),因此在建立连接时,必须要为每一个数据流分配isn(初始序号)。为了了解实现过程,我们假设客户端c 希望跟服务器端s 建立连接,然后分析连接建立的过程(通常称作三次握手过程),见下图1 所示:syn客户端服务器端acksynack图1 tcp 三次握手过程1:c 发送一个tcp 包(syn 请求)给s,其中标记syn(同步序号)要打开。syn请求指明了客户端希望连接的服务器端端口号和客户端的isn2:服务器端发回应答,包含自己的syn 信息isn 和对c 的syn 应答3:c 对从s 来的syn 进行应答,连接建立,并开始发送数据。大部分tcp/ip 实现遵循以下原则(rfc793):1:当一个syn 或者fin 数据包到达一个关闭的端口,tcp 丢弃数据包同时发送一个rst 数据包。2:当一个rst 数据包到达一个监听端口,rst 被丢弃。3:当一个rst 数据包到达一个关闭的端口,rst 被丢弃。4:当一个包含ack 的数据包到达一个监听端口时,数据包被丢弃,同时发送一个rst 数据包。5:当一个syn 位关闭的数据包到达一个监听端口时,数据包被丢弃。6:当一个syn 数据包到达一个监听端口时,正常的三阶段握手继续,回答一个syn|ack 数据包。7:当一个fin 数据包到达一个监听端口时,数据包被丢弃。fin 行为(关闭得端口返回rst,监听端口丢弃包),在urg 和psh 标志位置位时同样要发生。所有的urg,psh 和fin,或者没有任何标记的tcp 数据包都会引起“fin 行为”。通过向端口发送组合各种tcp 标志位的分组,利用以上的原则,在加上各种操作系统在具体实现上的差异便可以用来扫描端口和做操作系统类型探测。2.2 端口扫描技术端口扫描就是通过连接到目标系统的tcp 或udp 端口,来确定什么服务正在运行。一般来说端口扫描有三个用途: 识别目标系统上正在运行的tcp 和udp 服务。 识别目标系统的操作系统类型(windows 9x, windows nt,或unix,等)。 识别某个应用程序或某个特定服务的版本号。目前的端口扫描技术主要取自下面三种方式: 全扫描(open scanning) 半开扫描(half-open scanning) 秘密扫描(stealth scanning)对以上三种方式的进一步划分可以参看图2,图2 的基本扫描模型中包括了ping 扫描。下面对较为常用的方法进行介绍。扫描类型open scansyn|ackflagstcp ackhalf-open stealth sweeps misctcp connectudp/icmperrorsyn flag fin flag tcp echoreverse ident ip id 报头ack flags udp echo ftp bouncedumb scannull flagstcp synallflags(xmas)tcp syntcpfragmenting图2 已知的扫描方法(1)tcp connect 扫描tcp connect 扫描属于全扫描(open scan)中的最为常见的一种。tcp 连接是长期以来tcp 端口扫描的基础。扫描主机尝试(使用三次握手)与目的机指定端口建立正规的连接。连接由系统调用connect()开始。对于每一个监听端口,connect()会获得成功,否则返回1,表示端口不可访问。由于通常情况下,这不需要什么特权,所以几乎所有的用户(包括多用户环境下)都可以通过connect 来实现这个技术。这种扫描方法的最大缺点是很容易检测出来(在日志文件中会有大量密集的连接和错误记录)。courtney,gabriel 和tcp wrapper 监测程序都可以用来进行监测。另外,tcpwrapper 可以对连接请求进行控制,所以它可以用来阻止来自不明主机的全连接扫描。(2)tcp syn 扫描tcp syn 扫描是半开扫描(half open scan)中的一种。术语“半开”指的是连接的一方在三次握手完成前终止连接。在这种技术中,扫描主机向目标主机的选择端口发送syn 数据段。如果应答是rst,那么说明端口是关闭的,按照设定就探听其它端口;如果应答中包含syn 和ack,说明目标端口处于监听状态。由于所有的扫描主机都需要知道这个信息,传送一个rst 给目标机从而停止建立连接。由于在syn 扫描时,全连接尚未建立,所以这种技术通常被称为半打开扫描。syn 扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的ip 包,通常情况下,构造syn 数据包需要超级用户或者授权用户访问专门的系统调用。这种方法向目标端口发送一个syn 分组(packet),如果目标端口返回syn/ack,那么可以肯定该端口处于检听状态;否则,返回的是rst/ack。(3)秘密扫描(stealth scan methods)由于这种技术不包含标准的tcp 三次握手协议的任何部分,所以无法被记录下来,从而必syn 扫描隐蔽得多。另外,fin 数据包能够通过只监测syn 包的包过滤器。秘密扫描技术使用fin 数据包来探听端口。当一个fin 数据包到达一个关闭的端口,数据包会被丢掉,并且回返回一个rst 数据包。否则,当一个fin 数据包到达一个打开的端口,数据包只是简单的丢掉(不返回rst)。xmas 和null 扫描是秘密扫描的两个变种。xmas 扫描打开fin,urg 和push 标记,而null 扫描关闭所有标记。这些组合的目的是为了通过所谓的fin 标记监测器的过滤。秘密扫描通常适用于unix 目标主机,除过少量的应当丢弃数据包却发送reset 信号的操作系统(包括cisco,bsdi,hp/ux,mvs 和irix)。在windows95/nt 环境下,该方法无效,因为不论目标端口是否打开,操作系统都发送rst。同syn 扫描类似,秘密扫描也需要自己构造ip 包。(4)ping 扫描如果需要扫描一个主机上甚至整个子网上的成千上万个端口,首先判断一个主机是否开机就非常重要了。这就是ping 扫描器的目的。主要由两种方法用来实现ping 扫描。1:icmp 扫描:例如发送icmp 请求包给目标ip 地址,有相应的表示主机开机。2:tcp ping:例如发送特殊的tcp 包给通常都打开且没有过滤的端口(例如80 端口)。对于没有root 权限的扫描者,使用标准的connect 来实现。否则,ack 数据包发送给每一个需要探测的主机ip。每一个返回的rst 表明相应主机开机了。另外,一种类似于syn 扫描端口80(或者类似的)也被经常使用。(5)udp 端口扫描这种方法向目标端口发送一个udp 分组。如果目标端口以“icmp port unreachable”消息响应,那么说明该端口是关闭的;反之,如果没有收到“icmp port unreachable”响应消息,则可以肯定该端口是打开的。由于udp 协议是面向无连接的协议,这种扫描技术的精确性高度依赖于网络性能和系统资源。另外,如果目标系统采用了大量分组过滤技术,那么udp 扫描过程会变得非常慢。比如大部分操作系统都采纳了rfc1812 的建议,限定了icmp 差错分组的发送速率,比如linux 系统只允许4 秒最多只允许发送80 个目的地不可达消息,而solaris 每秒只允许发送2 个此种消息。然而微软仍保留了其一贯的做法,忽略了rfc1812 中的建议,没有对速率进行任何限制,因此,在很短的时间内可以扫描完windows 机器上的所有64k udp 端口。3、实验内容利用现有的网络扫描工具nmap(/nmap)实现以上介绍的几种扫描方式。要求在上机的过程中具体分析扫描的整个过程,利用嗅包器(tcpdump 或commview 等)记录并分析扫描时进出网卡数据包,尽可能详尽地分析、讨论实验结果。(1)ping 扫描分别利用icmp、tcp 协议对局域网内的机器进行ping 扫描,由于-sp 参数在默认情况下并行的使用icmp 回应请求和tcp 的ack 扫描技术,因此需要组合-p0 参数。记录一次完整的扫描过程,并比较两种方式的不同点。(2)tcp connect 扫描对网关或服务器使用-st 参数进行端口扫描,记录并分析扫描结果。(3)秘密扫描分别利用-sf,-sx 和-sn 选项实现秘密扫描过程,记录并分析扫描结果。(4)udp 扫描试着利用-su 参数扫描网关或服务器的udp 端口,记录并分析扫描结果。4、习题1. nmap 的-si 参数还提供了idle 扫描(也即利用以其它的机器为跳板对目标主机进行端口扫描)的能力,利用此参数对网关或服务器进行端口扫描,记录并分析扫描结果。实验4 电子欺骗技术一、实验要求与目的1熟悉ip欺骗、arp欺骗和dns欺骗的概念; 2实现一种电子欺骗。二、实验内容 1.请求方向服务方发送syn,表示想发起一次tcp连接。我们假定这次的序列号是某个数值x trust -target syn seq:x 2.服务方产生syn,ack响应,并向请求方发送ack, ack的值为x+1,表示数据成功接收到,且告知下一次希望接收到字节的seq是x+1。同时, 服务方向请求方发送自己的seq, 我们假定他的序列号是某个数值y。 target - trust syn,ack seq:y ack:x+1 3.请求方向服务方发送ack,表示接收到服务方的回应。这次他的seq值为x+1,同时他的ack值为y+1,原理同上。 trust -target ack seq:x+1 ack:y+1 完成这一步以后, 请求方和服务方之间的连接开放,数据能进行传输了。实验4 dos 攻击1 实验目的学习dos(denial of service)攻击的基本概念,了解拒绝服务攻击的分类及其原理。掌握预防和防御dos 攻击的方法,并学会在简单的网络环境中提高系统抵抗dos 攻击的能力。必须再次重申的是:本实验课程中涉及到了一些黑客攻击与破坏的技术、方法以及工具,我们介绍这些内容,是为了让大家能够利用这些知识建立更安全的网络,而不是用来攻击他人。2 实验原理拒绝服务攻击使系统瘫痪,或明显的降低系统的性能,因为过量使用资源而致使其他合法用户无法访问。拒绝服务攻击可能是蓄意的,也可能是偶然的。当未被授权的用户过量使用资源时,攻击是蓄意的;当合法用户无意的操作而使得资源不可用时,则是偶然的。对这两种拒绝服务攻击都采取预防措施。一般来说,dos 攻击难以防范,但是严格限制未被授权用户对关键用户、资源和文件的访问,可以防止许多dos 攻击。大部分操作系统、路由器和网络组件都必须在容易被dos攻击的地方安装补丁。拒绝服务攻击的次数每天都在增长,如果攻击者无法获得目标机的访问权,多数人会发起拒绝服务攻击。这意味着即使系统安装了补丁,而且安全措施很好,系统仍然可能受到攻击。2.1 拒绝服务攻击的类型有两种常见的拒绝服务攻击类型。第一种是使系统或网络瘫痪。攻击者发送一些非法的数据或分组,就可以使系统死机或重新启动。本质上攻击者进行了一次拒绝服务攻击,因为没有人能够访问资源。以攻击者的角度来看,攻击的引人之处在于可以只发送少量的分组就使一个系统瘫痪。多数情况下,系统恢复工作需要管理员的干预,重新启动或关闭系统。这种拒绝服务攻击是最具破坏力的,因为只需要做少量工作就可以破坏,而修复却需要人工干预。第二种攻击是向系统或网络发送大量信息,使系统或网络无法响应正常的请求。进行这种攻击必须连续的向目标发送大量分组(tcp、udp、icmp 等)。当攻击者停止发送分组的时候,攻击也随之停止,系统或网络就会恢复正常。有时这种攻击也会使系统瘫痪,但是恢复系统只需要少量的人工干预。1若是您在阅读过程中发现任何疏漏或者错误,请尽快联系:2.2 分布式拒绝服务攻击传统的拒绝服务攻击只是一台机器向目标发起攻击,但是在2000 年产生了一种新型的攻击方式,这就是分布式拒绝服务攻击(ddos)。攻击者可以在多台机器上或与他人合作,同时向一个目标或网络发起攻击。这使得防御变得困难,被攻击者在同一时间所收到的大量分组来自于多个不同的主机,而且,因为攻击来自范围广泛的ip 地址,来自每台主机的少量分组有可能被入侵检测系统(ids)漏掉,所以检测、响应和取证就变得非常困难。第一次主要的ddos 攻击发生在2000 年2 月,大量的公司被迫下线。在internet 上可以找到许多进行ddos 攻击的工具。这里例举的是tfn2k。tfn2k(tribal flood network 2000)可以看作是targa 的加强程序,两者的作者是同一个人。tfn2k 增加了5 种攻击,另外,它可以运行分布模式,即指挥多台机器同时发起攻击。tfn2k 分为两个部分:总管(master)模块和代理(agnet)模块。总管模块控制代理模块,通知代理模块何时以何种方式攻击。代理模块在傀儡机上运行,监听总管模块的命令。tfn2k 采用了一些手段使得其很难被探测到。tfn2k 总管模块与代理模块之间的通讯可以使用

温馨提示

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

评论

0/150

提交评论