版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络攻击技术高平北京理工大学电子工程系信息对抗技术gaoping@20081参考书目教材《信息系统安全与对抗技术实验教程》北京理工大学出版发行,罗森林、高平编著。书中的源程序代码可以下载。该书2005年荣获兵工高校系统教材一等奖。其他可以到图书馆找相关的教材或网络上查找资料。2一、网络攻击的基本要素1、信息战在海湾战争和最近的伊拉克战争中,美国大量采用了信息战的手段在未来的局部战争中,信息战或信息威慑将成为非常重要的非常规战手段信息战的范围不仅仅局限于军事领域,关系国家国计民生的行业(如政府、金融等)也会成为信息战的攻击目标。32、信息时代威胁的主要要素43、攻击类别类别攻击举例V敌国政府、间谍IV商业间谍III罪犯II恶意用户、内部人员、普通黑客I用户误操作5
4、攻击动机偷取国家机密;商业竞争行为;内部员工对单位的不满;对企业核心机密的企望;网络接入帐号、信用卡号等金钱利益的诱惑;利用攻击网络站点而出名;对网络安全技术的挑战对网络的好奇心。65、攻击一般过程预攻击内容:获得域名及IP分布获得拓扑及OS等获得端口和服务获得应用系统情况跟踪新漏洞发布目的:收集信息,进行进一步攻击决策攻击内容:获得远程权限进入远程系统提升本地权限进一步扩展权限进行实质性操作目的:进行攻击,获得系统的一定权限后攻击内容:植入后门木马删除日志修补明显的漏洞进一步渗透扩展目的:消除痕迹,长期维持一定的权限76、攻击种类预攻击阶段端口扫描漏洞扫描操作系统类型鉴别网络拓扑分析攻击阶段缓冲区溢出攻击操作系统漏洞应用服务缺陷脚本程序漏洞攻击口令攻击错误及弱配置攻击网络欺骗与劫持攻击
后攻击阶段后门木马痕迹擦除其它攻击种类拒绝服务攻击嗅探攻击恶意网页攻击社会工程攻击8二、网络攻击实例分析网络入侵技术趋势:目前,网络入侵技术已经有数百种之多,攻击者并不需要高深的计算机技术,利用网络现成的攻击软件,按照教科书的步骤就可以时时就能够发起各种攻击。
9实例攻击的环境介绍本例当中的入侵发生在一个局域网中,主机A为入侵者使用的主机,运行Windows2000操作系统,IP地址为2;主机B为被入侵主机,同样运行Windows2000操作系统,IP地址为00。10入侵过程信息收集
首先,利用扫描软件SSS(ShadowSecurityScanner)来获取目标的开放端口信息和漏洞信息11利用漏洞获得对系统访问的权力
经过上一步的扫描,入侵者已经掌握了目标主机所存在的漏洞情况。其中,目标主机的账号密码使用的是“永不过期”方式,对目标主机Administrator账号的口令进行蛮力破解。入侵者使用NAT(NetBIOSAuditingTool)这一工具进行口令强行破解。12安装后门程序这里入侵者选择安装NetCat作为后门程序。1314信息窃取、破坏系统、使网络瘫痪15消除入侵痕迹入侵者为了防止入侵被发现和逃避入侵所带来的责任,还要消除入侵时留下的各种痕迹,如图所示。16三扫描器简介扫描器是一种通过收集系统的信息来自动监测远程或本地主机安全性弱点的程序,通过使用扫描器,可以发现远程服务器的各种TCP端口的分配及提供的服务和他们的软件版本。这就能让黑客或管理员间接的或直观的了解到远程主机所存在的安全问题。17扫描器通过选用远程TCP/IP不同端口的服务,并纪录目标给与的回答,可以搜集到很多关于目标主机的各种有用的信息。特别强调的是:扫描器仅能帮助黑客发现目标机的某些内在的弱点,帮助攻击者查找目标主机的漏洞。它是网络攻击的第一步。183-1常规扫描器技术1、常规扫描技术调用connect函数直接连接被扫描端口;无须任何特殊权限;速度较慢,易被记录;2、高级扫描技术利用探测数据包的返回信息(例如RST)来进行间接扫描;较为隐蔽,不易被日志记录或防火墙发现。193-2扫描器类型1、ping扫描器用法:ping+目标IP地址,通过是否收到对方的ICMPechoreply,来识别目标主机或系统是否处于活动状态,如果对方防火墙将ICMP包给屏蔽掉,导致其失效,可以采用ICMPechoSweep方法,发送一个畸形数据包,迫使对方回答一个ICMP错误数据包,判断目标主机是否在线。202、操作系统扫描技术主要探测对方运行的操作系统,方法如下:获取标识信息,通过二进制文件的收集和分析实现。ICMP相应分析,通过发送UDP或ICMP的请求报文,然后分析各种ICMP应答来判断目标主机操作系统。21TCP分段相应分析,依靠不同操作系统对特定分段的不同反应来区分,如利用TCP和UDP请求发送到远程目标主机的开放端口,通过接收分析远程主机相应的有用信息,在较短的时延中得到对方的类型及版本。223、端口扫描器建立在端口扫描基础之上,支持TCP/IP协议的主机和设备通过开放端口来提供相应服务,其安全漏洞往往通过端口暴露出来。4、漏洞扫描器也是建立在端口扫描基础之上,针对某一网络服务,也就是某一特定的端口,其方法如下:23基于漏洞库的匹配检测方法:其关键在于所使用的漏洞库,程序设计者对网络漏洞的分析,设置一套标准的网络系统漏洞库,然后在此基础上构成相应的匹配规则,由扫描器自动进行漏洞扫描共作。基于插件检测方法:插件用脚本编写,扫描器可以通过它来执行漏洞扫描。24基本信息探测子模块(是否在线、IP地址、操作系统)参数设置模块端口扫描子模块(端口、服务)FTP弱势密码探测子模块OpenRelay邮件转发漏洞探测子模块UnicOde遍历目录漏洞探测子模块POP漏洞扫描子模块FTP漏洞扫描子模块SSH漏洞扫描子模块HTTP漏洞扫描子模块SMTP漏洞扫描子模块IMAP漏洞扫描子模块后门扫描子模块其它扫描子模块CGI漏洞扫描子模块漏洞库扫描信息分析/漏洞匹配子模块扫描结果记录模块网络扫描入侵扫描253-3实验三:端口扫描器设计
(参照教材P169)方法:利用流式套接字完成设计任务1、初始化套接字;2、建立TCP套接字socket;3、建立要连接对方的地址结构体;4、循环,利用connect()函数进行连接;5、如果某端口可以响应,说明开放;6、如果某端口不可以响应,说明关闭7、显示端口信息;8、关闭套接字,退出。26
Y
建立套接字
设置端口号
用connect与指
定IP地址连接
与端口请求连接
是否连接?
显示端口开启
显示端口关闭
取下一个端口
N
27//加载头文件和必须的库文件#include"stdafx.h"#include<stdio.h>#include<string.h>#include<winsock.h>#pragmacomment(lib,"ws2_32.lib")28intmain(intargc,char*argv[]){intsocketid,pcount=0;structsockaddr_inmy_addr;//网络地址结构体WSADATAwsa;//WSADATA对象WORDSocketVer=MAKEWORD(1,1);if(SocketVer<0){printf("\nSocketVerError!");return-1;}29//初始化Socket和计数器,及判断Socket版本if(argc<3)//帮助菜单{printf(“Usage:%s[Host][MaxPort]\n”,argv[0]);return-1;}if(WSAStartup(SocketVer,&wsa)){//初始化套接字printf("WinsocketInitilalizationFailed!\n");return-1;}30//判断参数和初始化Winsocketfor(inti=1;i<atoi(argv[2]);i++){if((socketid=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET){//建立流式套接字printf("CreateSocketerror\n");return-1;}31my_addr.sin_family=AF_INET;//网络协议my_addr.sin_port=htons(i);//要扫描的端口my_addr.sin_addr.s_addr=inet_addr(argv[1]);if(connect(socketid,(structsockaddr*)&my_addr,sizeof(structsockaddr))==SOCKET_ERROR)closesocket(socketid);//连接else{pcount++;printf(“FindPortis%d\n”,i);//打开的端口}32//设置端口和进行连接}printf("%dPortsOpenonHost-%s\n",pcount,argv[1]);closesocket(socketid);//关闭套接字WSACleanup();return0;}3334实验五:嗅探器程序设计
(参照教材P180)基础类要求:掌握常见嗅探器软件的使用方法,如:NetXRay、Sniffer、SnifferPro等软件,分析所获得的数据,通过信息来找到攻击的缺口与路径或从获取的数据来分析计算机网络的漏洞,找出加固系统的方案。提高类要求:利用C++设计简单的嗅探器。35嗅探器(sniffer)可以完成协议分析、捕获网络数据包进行网络流量分析外,确定计算机的源IP地址和目标IP地址、报文发送时间、报文发送间隔;还可以发现网络潜在的问题,获取用户口令、机密或敏感数据,所以说网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。4-1嗅探器概念36374-2数据包结构分析由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析。38IP数据包格式一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。3940版本:占4bit,指IP协议的版本,版本号为4。首部长度:占4bit,因此IP的首部长度的最大值是60字节。服务类型:占8bit,获得更好的服务,一直没有使用。总长度:占16bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。标识(identification):占16bit,它是一个计数器,用来产生数据报的标识。41生存时间:(8bit)记为TTL(TimeToLive),数据报在网络中的寿命,其单位为秒。协议:(8bit)字段指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程。首部检验和:(16bit)字段只检验数据报的首部,不包括数据部分。这里不采用CRC检验码而采用简单的计算方法。4243TCP协议格式源端口和目的端口字段:各占2字节。端口是运输层与应用层的服务接口。序号字段:占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段:占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。44454-3嗅探器程序设计46利用底层协议套接字设计,步骤如下:1、首先手工将网卡设置为混杂模式:2、定义IP和TCP数据包头结构;3、定义socket结构和IP、TCP结构变量;4、socket,建立SOCK_RAW底层套接字;5、循环,recv()接收网络数据;6、显示信息;7、关闭套接字。4748定义头函数#include<stdio.h>#include<string.h>#include<Winsock2.h>#include"mstcpip.h"#pragmacomment(lib,"ws2_32.lib")#defineMAX_PACK_LEN65535//数据缓冲区长度
49structiphdr//定义IP数据包头信息{unsignedcharh_lenver;//4位首部长度+4位IP版本号unsignedchartos;//8位服务类型TOSunsignedinttotal_len;//16位总长度(字节)unsignedshortident;//16位标识unsignedshortfrag_and_flags;//3位标志位unsignedcharttl;//8位生存时间TTLunsignedcharproto;//8位协议(TCP,UDP或其他unsignedshortchecksum;//16位IP首部校验和unsignedintsourceIP;//32位源IP地址unsignedintdestIP;//32位目的IP地址};50structtcphdr//定义TCP首部{unsignedcharth_sport;//16位源端口unsignedcharth_dport;//16位目的端口unsignedintth_seq;unsignedintth_ack;unsignedcharth_lenres;
//4位首部长度/6位保留字unsignedinttcp_resl:4,tcp_hlen:4,tcp_fin:1,tcp_syn:1,tcp_rst:1,tcp_psh:1,tcp_ack:1,tcp_urg:1,tcp_res:2;51unsignedshortth_win;//16位窗口大小unsignedshortth_sum;//16位校验和unsignedshortth_urp;//16位紧急数据偏移量};52intmain(){intiErrorCode;//出错变量charRecvBuf[MAX_PACK_LEN]={0};structiphdr*iphdr;//IP头指针structtcphdr*tcphdr;//TCP头指针SOCKETSockRaw;//套接字变量intbytes_recieved;//接收信息变量WSADATAwsaData;//WSADATA对象iErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData);//初始化SOCKET53SockRaw=socket(AF_INET,SOCK_RAW,IPPROTO_IP);//建立底层套接字SOCKADDR_INsa;//套接字结构地址对象sasa.sin_family=AF_INET;//连接协议sa.sin_port=htons(6000);//端口6000iErrorCode=bind(SockRaw,(PSOCKADDR)&sa,sizeof(sa));//将SockRaw与SOCKADDR_IN绑定DWORDdwBufferLen[10];DWORDdwBufferInLen=1;DWORDdwBytesReturned=0;54iErrorCode=WSAIoctl(SockRaw,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL);//侦听IP报文while(1){memset(RecvBuf,0,sizeof(RecvBuf));bytes_recieved=recv(SockRaw,RecvBuf,sizeof(RecvBuf),0);//接收printf("\nreceived::%5d\n",bytes_recieved);55printf("sourceaddress::%s\n",inet_ntoa(sa.sin_addr));iphdr=(structiphdr*)RecvBuf;printf("IPheaderlength::%d\n",iphdr->total_len);printf("Protocol::%d\n",iphdr->proto);tcphdr=(structtcphdr*)(RecvBuf+(4*iphdr->total_len));printf("Sourceport::%d\n",ntohs(tcphdr->th_sport));printf("Destport::%d\n",ntohs(tcphdr->th_dport));}return1;}5657五拒绝服务攻击基础类要求:掌握常见拒绝服务软件的使用方法,如:UDPFlooder、DDoSPing等软件,分析如何有效地实施攻击,达到消耗网络带宽或系统资源,导致系统瘫痪,并同时找出解决和防护的办法与加固系统的方案。提高类要求:利用C++设计简单的Synflood程序。58DoS(DenialofService)攻击的中文含义是拒绝服务攻击。DDoS(DistributedDenialofService)攻击的中文含义是分布式拒绝服务攻击。5-1DoSDDoS概念595-2DoS与DDoS攻击设计思想发送大量的无用请求,致使目标网络系统整体的网络性能大大降低,丧失与外界通信的能力。利用网络服务以及网络协议的某些特性,发送超出目标主机处理能力的服务请求,导致目标主机丧失对其他正常服务请求的相应能力。利用系统或应用软件上的漏洞或缺陷,发送经过特殊构造的数据包,导致目标的瘫痪(称之为nuke)。605-3拒绝服务攻击类型1、Synflood:该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYNACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。612、Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。623、Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。634、PingofDeath:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了PingofDeath攻击,该攻击会造成主机的宕机。645、Teardrop:IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。656、PingSweep:使用ICMPEcho轮询多个主机。7、Pingflood:该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽。665-4实验三:SYNflood攻击设计正是利用了TCP连接的这样一个漏洞来实现的,当恶意的用户端构造出大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成)。67正常情况下用三次握手建立TCP连接
68SYNflood攻击状态69Synflood恶意地不完成3次握手,这种情况下,服务器一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度称SYNTimeout,一般来说,这个时间是分钟的数量级(大约30秒-2分钟),一个用户发送这样的请求并不是大问题,但是如果有大量的模拟这样的情况,服务器就要花很大的开销来维护这些半连接,即使是简单的保存并遍历也会消耗非常多的cpu时间和内存,如果服务器的tcp/ip堆栈不够大,往往会发生堆栈溢出崩溃。707172源程序参照实验教材P218。要求:1、编写完整的洪水攻击程序,运行正确;2、对程序进行分析和注解;3、加流程图73六特洛伊木马攻击基础类要求:掌握常见特洛伊马软件的使用方法,如:BO2K、广外女生、网络神偷、网络公牛、冰河等软件,分析如何使用程序有效地实施攻击,达到控制对方的系统,获取对方的资源。并同时找出解决和防护的办法与加固系统的方案。提高类要求:利用C++设计简单的木马程序。74希腊人攻打特洛伊城十年,始终未获成功,后来建造了一个大木马,并假装撤退,希腊将士却暗藏于马腹中。特洛伊人以为希腊人已走,就把木马当作是献给雅典娜的礼物搬入城中。晚上,木马中隐藏的希腊将士冲出来打开城门,希腊将士里应外合毁灭了特洛伊城。后来我们把进入敌人内部攻破防线的手段叫做木马计,木马计中使用的里应外合的工具叫做特洛伊木马。6-1木马概念75远程控制实际上是包含有服务器端和客户端的一套程序服务器端程序驻留在目标计算机里,随着系统启动而自行启动。此外,使用传统技术的程序会在某端口进行监听,若接收到数据就对其进行识别,然后按照识别后的命令在目标计算机上执行一些操作(比如窃取口令,拷贝或删除文件,或重启计算机等)。6-2木马原理76攻击者一般在入侵成功后,将服务端程序拷贝到目标计算机中,并设法使其运行,从而留下后门。日后,攻击者就能够通过运行客户端程序,来对目标计算机进行操作。77786-3木马程序的分类木马程序技术发展至今,已经经历了4代,第一代,即是简单的密码窃取,发送等,没有什么特别之处。第二代木马,在技术上有了很大的进步,冰河可以说为是国内木马的典型代表之一。第三代木马在数据传递技术上,又做了不小的改进,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了查杀的难度。第四代木马在进程隐藏方面,做了大的改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程。或者挂接PSAPI,实现木马程序的隐藏,甚至在WindowsXP/2003下,都达到了良好的隐藏效果。796-4木马程序的隐藏技术
木马程序的服务器端,为了避免被发现,多数都要进行隐藏处理。主要隐藏木马的服务器端,可以伪隐藏,也可以是真隐藏。伪隐藏,就是指程序的进程仍然存在,只不过是让他消失在进程列表里。真隐藏则是让程序彻底的消失,不以一个进程或者服务的方式工作。806-5后门技术后门是一种可以绕过安全性控制而获得对程序或系统访问权的隐蔽程序或方法。利用来建立隐蔽通道,甚至植入隐蔽的恶意程序,达到非法访问或窃取、篡改、伪造、破坏数据等目的。现在后门多指系统被入侵后被安装的具有控制系统权限的程序,通过它黑客可以远程控制系统。81后门是将目标电脑作为服务器,通过网络Telnet命令连接后门端口,在服务端开创一个并得到cmd.exe进程,将攻击方的输入输出和cmd.exe的输入输出联系到一起,建立远程shell,实现对其控制与攻击。主要完成如下工作:1.开创cmd.exe进程;2.把cmd.exe进程与客户端的输入联系起来。826-6木马的自动启动模块分析Windows在启动时,会自动执行系统盘符下的“DocumentsandSettings\<用户名字>\[开始]菜单\程序\启动”中的文件,其中<用户名字>是当前要登录的用户帐户名称,这里为当前用户专用的启动文件夹,许多应用软件自动启动的常用位置。836-7建立秘密帐号功能模块WinExec()执行外部程序。UINTWinExec(LPCSTRlpCmdLine,UINTuCmdShow)参数说明:lpCmdLine:字符串中包含将要执行的应用程序的命令行(文件名加上可选参数)。uCmdShow:定义Windows应用程序的窗口显示方式,如:通常,将其设置为SW_SHOW;但木马操作为了隐藏窗口,应设置为SW_HIDE。84WinExec("netuserxxdkgao/add",SW_HIDE);用WinExec()函数执行netuserxxdkgao/add网络命令,其功能建立秘密帐号“xxdk”密码为“gao”,窗体为SW_HIDE隐藏形式。netuser
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英语语音室建设方案(参考模板)
- 培训咨询成果保护合同
- 股东之间的股权转让协议
- 自营采购合同的格式要求
- 离婚协议书怎么拟写
- 广告公司购销合作协议范本
- 代理记账合同
- 招标文件方案技巧
- 小区物业服务竞标方案
- 专业解读实操经验
- 医院与医院合作方案
- 不动产登记知识考试题库
- MOOC 会计学原理-江西财经大学 中国大学慕课答案
- GB/T 43803-2024科研机构评估指南
- 2023人工智能基础知识考试题库(含答案)
- 建筑企业安全生产规章制度和操作规程培训安全培训
- 2023北京西城五年级(上)期末英语试卷含答案
- 萧山区八年级上学期期末语文试题(含解析)
- 2024中国远洋海运集团校园招聘995人高频考题难、易错点模拟试题(共500题)附带答案详解
- 施工合同范本Word模板下载(多篇)
- (打印版)小学二年级上-连加连减加减混合带小括号-练习题
评论
0/150
提交评论