提纲网络攻击与防御技术.docx
《提纲网络攻击与防御技术.docx》由会员分享,可在线阅读,更多相关《提纲网络攻击与防御技术.docx(23页珍藏版)》请在冰豆网上搜索。
![提纲网络攻击与防御技术.docx](https://file1.bdocx.com/fileroot1/2023-2/4/472a9a2a-c627-4da8-b9f9-a61df1f5f739/472a9a2a-c627-4da8-b9f9-a61df1f5f7391.gif)
提纲网络攻击与防御技术
网络攻击与防御技术提纲
第一章网络安全概述
1.网络安全的定义:
指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的原因而遭到破坏、更改或泄露,系统连续、可靠、正常地运行,服务不中断。
2.网络安全的特征:
保密性、完整性、可用性、可控性
3.网络安全的重要性:
政治、经济、军事、文教
协议安全问题
操作系统与
应用程序漏洞
黑客攻击
安全管理与网络犯罪
5.常用的防范措施:
完善安全管理制度、采用访问控制、数据加密措施、数据备份与恢复(p27)
6.网络安全策略的考虑的问题:
①人员配置、②内容限定。
7.安全策略的必要性:
①强调了策略的核心作用;②强调了检测、响应、防护的动态性;③检测、响应、防护必须遵循安全策略进行
8.网络安全体系设计准则
1)网络信息安全的木桶原则
2)网络信息、安全的整体性原则
3)安全性评价与平衡原则
4)标准化与一致性原则
5)技术与管理相结合原则
6)统筹规划,分步实施原则
7)等级性原则
8)动态发展原则
9)易操作性原则
二实施阶段:
进行攻击,获得系统的一定权限
一准备阶段:
收集信息,进行进一步攻击决策
第二章远程攻击的一般步骤
1.确定攻击的目的:
破坏型、入侵型
2.信息收集
3.服务分析
4.系统分析
5.漏洞分析:
手动分析、自动分析
内容:
获得域名及IP分布
获得拓扑及OS等
获得端口和服务
获得应用系统情况
跟踪新漏洞发布
非技术手段
•
三善后阶段:
消除痕迹,长期维持一定的权限
1.留下后门:
如创建hack用户
2.删除或者修改系统日志文件:
如:
清除Utmp、Wtmp、Lastlog和Pacct等日志文件
3.替换系统程序:
如用rootkit替换系统的ls、ps、netstat、inetd等系统程序
内容:
植入后门木马
删除日志
修补明显的漏洞
进一步渗透扩展
当收集到足够的信息之后,攻击者就要开始实施攻击行动了。
作为破坏性攻击,可以利用工具发动攻击即可。
而作为入侵性攻击,往往需要利用收集到的信息,找到其系统漏洞,然后利用漏洞获取一定的权限。
攻击的主要阶段有:
1.预攻击探测:
为进一步入侵提供有用信息
2.口令破解与攻击
3.实施攻击:
缓冲区溢出、拒绝服务、后门、木马、病毒
内容:
获得远程权限
进入远程系统
提升本地权限
进一步扩展权限
进行实质性操作
合法途径
社会工程手段
搜索引擎
Ping使用程序
SNMP协议
TraceRoute程序
Whois协议
DNS服务器
Finger协议
常见服务端口
Telnet:
23端口
FTP服务:
21端口
WWW服务:
80端口
常用端口扫描工具:
SuperScan、Nmap
技术手段
补充:
1.
•Ping实用程序:
可以用来确定一个指定的主机的位置。
•SNMP协议:
用来查阅路由器的路由表
•TraceRoute程序:
获得到达目标主机所要经过的网络结点数和路由器数。
•Whois协议:
提供所有有关的DNS域和相关的管理参数。
•DNS服务器:
该服务器提供了系统中可以访问的主机的IP地址表和它们所对应的主机名。
•Finger协议:
用来获取一个指定主机上的所有用户的详细信息。
2.Nmap
–简介
•被称为“扫描器之王”
•有forUnix和forWin的两种版本
•需要Libpcap库和Winpcap库的支持
•能够进行普通扫描、各种高级扫描和操作系统类型鉴别等
–使用
•-sS:
半开式扫描
•-sT:
普通connect()扫描
•-sU:
udp端口扫描
•-O:
操作系统鉴别
•-P0:
强行扫描(无论是否能够ping通目标)
•-p:
指定端口范围
•-v:
详细模式
第三章扫描与防御技术
1.扫描器(一种自动检测远程或本地主机安全性弱点的程序):
基于TCP/IP协议,对各种网络服务,无论是主机或者防火墙、路由器都适用
扫描可以确认各种配置的正确性,避免遭受不必要的攻击
2.用途:
安全管理员可以用来确保自己系统的安全性
黑客用来探查系统的入侵点
端口扫描的技术已经非常成熟,目前有大量的商业、非商业的扫描器
3.扫描过程的三个阶段:
①Findtargets
②Footprint
③Vulnerability(SecurityHole)Check
4.端口号:
5.扫描分类
开放式扫描OpenScanning
半开放扫描Half-OpenScanning
秘密扫描StealthScanning
需要TCP三次握手和建立完全的TCP连接
可靠性高,产生大量审计数据,容易被发现
(与开放式扫描的根本区别)不需要打开一个完全的TCP连接
不包含TCP三次握手的人和部分
隐蔽性好,但这种扫描使用的数据包在通过网络时容易被丢弃从而产生错误的探测信息
TCPConnect()扫描
认证扫描与反向认证扫描
TCPSYN扫描
TCPFIN扫描
认证扫描:
监听TCP113端口的Ident服务
UDP扫描:
发送的UDP分组协议,这种扫描方法速度比较慢,而且需要具有Root权限。
(miso)
FTPBounce。
(miso)
6.扫描器原理:
当用户通过控制平台发出了扫描命令之后,控制平台即向扫描模块发出相应的扫描请求,扫描模块在接到请求之后立即启动相应的子功能模块,对被扫描主机进行扫描。
通过对从被扫描主机返回的信息进行分析判断,扫描模块将扫描结果返回给控制平台,再由控制平台最终呈现给用户。
名称
TCPConnect()
TCPSYN
TCPFIN
TCPXMAS
原理
1.扫描器调用socket的connect()函数发起一个正常的连接
2.如果端口是打开的,则连接成功
3.否则,连接失败
1.向目标主机的特定端口发送一个SYN包
2.如果应答包为RST包,则说明该端口是关闭的
3.否则,会收到一个SYN|ACK包。
于是,发送一个RST,停止建立连接
1.扫描器发送一个FIN数据包
如果端口关闭的,则远程主机丢弃该包,并送回一个RST包
否则的话,远程主机丢弃该包,不回送
2.变种,组合其他的标记
1.扫描器发送的TCP包包头设置所有标志位
2.关闭的端口会响应一个同样设置所有标志位的包
3.开放的端口则会忽略该包而不作任何响应
优点
简单,不需要特殊的权限
很少有系统会记录这样的行为
不是TCP建立连接的过程,所以比较隐蔽
比较隐蔽
缺点
服务器可以记录下客户的连接行为,如果同一个客户轮流对每一个端口发起连接,则一定是在扫描
在UNIX平台上,需要root权限才可以建立这样的SYN数据包
1.与SYN扫描类似,也需要构造专门的数据包
2.在Windows平台无效,总是发送RST包
1.主要用于UNIX/Linux/BSD的TCP/IP的协议栈
2.不适用于Windows系统
接上表
名称
NULL扫描
UDP扫描
FTPproxy
原理
扫描器发送的TCP包包头不设置任何标志位的TCP数据包
关闭的端口会发送回一个RST数据包
开放的端口则会忽略该包而不作任何响应
开放的UDP端口并不需要送回ACK包,而关闭的端口也不要求送回错误包,所以利用UDP包进行扫描非常困难
有些协议栈实现的时候,对于关闭的UDP端口,会送回一个ICMPPortUnreach错误
用PORT命令让ftpserver与目标主机建立连接,而且目标主机的端口可以指定
如果端口打开,则可以传输。
否则,返回"425Can'tbuilddataconnection:
Connectionrefused."
Ftp这个缺陷还可以被用来向目标(邮件,新闻)传送匿名信息
优点
比较隐蔽
Solaris的rpcbind端口(UDP)位于32770之上,这时可以通过这种技术来探测
这种技术可以用来穿透防火墙
缺点
1.主要用于UNIX/Linux/BSD的TCP/IP的协议栈
2.不适用于Windows系统
速度慢,而且UDP包和ICMP包都不是可靠的
需要root权限,才能读取ICMPPortUnreach消息
慢,有些ftpserver禁止这种特性
Ø认证扫描
✧Ident协议
✓可以发现任何一个通过TCP连接的进程的所有者的用户名,即使该进程并没有发起该连接
✓只有在TCP全连接之后才有效
✓TCP端口113
✧例如
✓可以先连接到80端口,然后通过identd来发现服务器是否在root下运行
✧建议
✓关闭ident服务,或者在防火墙上禁止,除非是为了审计的目的
Ø远程主机OS指纹识别的基本原理
✧根据各个OS在TCP/IP协议栈实现上的不同特点,采用黑盒测试方法,通过研究其对各种探测的响应形成识别指纹,进而识别目标主机运行的操作系统。
根据采集指纹信息的方式,又可以分为主动扫描和被动扫描两种方式。
1.主动协议栈指纹识别
◆由于TCP/IP协议栈技术只是在RFC文档中描述,各个公司在编写应用于自己的OS的TCP/IP协议栈的时候,对RFC文档做出了不尽相同的诠释。
◆造成了各个OS在TCP/IP协议的实现上的不同。
◆通过对不同的OS的TCP/IP协议栈存在的些微差异的鉴别来判定OS类型。
(p28)
2.被动协议栈指纹识别
◆主动协议栈指纹识别由于需要主动往目标发送数据包,但这些数据包在网络流量中比较惹人注意,因为正常使用网络不会按这样的顺序出现包,因此比较容易被IDS扑获。
◆为了隐秘的识别远程OS,需要使用被动协议栈指纹识别。
◆TTL值:
这个数据是操作系统对出站的信息包设置的存活时间。
◆WindowsSize:
操作系统设置的TCP窗口大小,
这个窗口大小是在发送FIN信息包时包含的选项。
◆DF:
可以查看操作系统是否设置了不准分片位。
◆TOS:
操作系统是否设置了服务类型。
6.常用的扫描器:
ØSATAN
⏹是应用于UNIX系统的安全管理的网络分析和审计工具。
⏹SATAN把扫描依次分为轻度扫描、标准扫描、重度扫描、攻入系统四个级别。
ØISSInternetScanner
⏹该产品一直是安全扫描器的业界标准。
⏹优点:
报告功能强大,漏洞检查集完备,可用性很好。
ØNessus
⏹客户/服务器结构模式
⏹由Renaud编写的开放源码项目。
⏹优点:
采用分布式结构引擎具有极大弹性,可扩展性强,漏洞库较全面。
ØNmap
⏹Nmap(NetworkMapper),是由Fyodor制作的端口扫描工具。
⏹它除了提供基本的TCP和UDP端口扫描功能外,还综合集成了众多扫描技术,可以说,现在的端口扫描技术很大程度上是根据Nmap的功能设置来划分的。
⏹Nmap还有一个卓越的功能,那就是采用一种叫做“TCP栈指纹鉴别(stackfingerprinting)”的技术来探测目标主机的操作系统类型。
⏹﹡Nmap支持多种扫描技术,如UDP、TCPconnect()、TCPSYN(半开扫描)、FTP代理扫描、Reverse-ident(认证扫描)、ICMP(Ping)、FIN、ACKsweep、XmasTree、SYNsweep和NULL扫描。
ØX-Scan
⏹X-Scan是国内最著名的综合扫描器,它完全免费,是不需要安装的绿色软件、界面支持中文和英文两种语言、包括图形界面和命令行方式。
7.端口扫描监测工具
◆ProtectX:
是一个典型的反黑工具。
◆Winetd:
Winetd是一个典型的蜜罐系统,完全模拟UNIX系统中Inetd超级服务器的功能。
◆DTK:
DeceptionToolKit(DTK)是一个攻击诱骗系统。
(业内最推崇)
◆PortSentry:
PortSentry是Abacus工程的一个组成部分,该工程的目标是建立一个基于主机的网络入侵检测系统。
8.防火墙
第四章网络嗅探与防御技术
1.概念:
网络监听技术的能力范围目前只限于局域网,它是主机的一种工作模式,主机可以接收到本网段在同一条物理通道上传输的所有信息,而不管这些信息的发送方和接收方是谁。
2.网卡和局域网的通信是通过双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。
3.嗅探原理:
在共享传输介质的以太网中,网络中的任问一个节点都会接收到在信道中传输的数据帧。
接下来节点将如何处理该数据帧,取决于数据帧的真实目的地址和节点网卡的接收模式。
4.Sniffer软件:
Sniffer的隐蔽性非常好,它只是“被动”的接收数据,所以在传输数据的过程中,根本无法察觉到有人在监听。
网络监听给网络维护提供便利同时,也给网络安全带来了很大隐患。
应用哪些协议?
5.ARP欺骗:
B使用C的MAC地址给A发包,导致交换机刷新MAC地址表。
A通过发送ARP请求报文给C,接收方C会进行应答,发送方A会获取C的IP-MAC映射关系,同时C也会存储A的IP和MAC的映射关系。
ARP是无状态协议,A没有发送请求报文,C可直接发送应答报文给A,A会存储/更新C的IP-MAC的映射关系。
●B直接发送A应答报文,但告诉A的是关于C的错误的IP-MAC的映射关系,IP是A的,MAC是C的。
A弹出IP冲突警告框。
●B直接发送A应答报文,但告诉A的是关于C的错误的IP-MAC的映射关系,即IP地址是C的,但MAC地址是虚构的。
A无法和C通信。
●B直接发送A应答报文,但告诉A的是关于C的错误的IP-MAC的映射关系,即IP地址是C的,但MAC地址是B的。
B冒充C和A通信
6.常用嗅探工具:
●Sniffit
●Snoop
●TCPdump
●Dsniff
一般情况下,大多数的嗅探器至少能够分析下面的协议:
●标准以太网协议;
●TCP/IP;
●IPX;
●DECNET;
●FDDIToken;
●微波和无线网协议。
网络分段
划分vlan
安全的网络拓扑结构
会话加密
通用策略
共享式网络下的防监听
交换式网络下的防监听
数据信道加密
数据内容加密
7.网络嗅探的防御
第五章口令破解与防御技术
1.口令是常量。
密码是变量。
2.口令破解方式:
手工破解、自动破解
3.
类 别
词典攻击
强行攻击
(暴力破解)
组合攻击
攻击速度
快
慢
中等
破解口令数量
找到所有词典单词
找到所有口令
找到以词典为基础的口令
◆1.社会工程学
◆2.偷窥
◆3.搜索垃圾箱
◆4.口令蠕虫特点:
①一是自带一份口令字典,对网上主机超级用户口令进行基于字典的猜测。
②二是一旦猜测口令成功,该蠕虫植入7个与远程控制和传染相关的程序,立即主动向国外的几个特定服务器联系,并可被远程控制。
③三是该蠕虫扫描流量极大,容易造成网络严重拥塞。
◆5.特洛伊木马
◆6.网络监听如果口令在网络上明文传输,那么很容易通过网络监听来得到网络上传输的口令。
局域网sniffer;交换网络ARP欺骗;在网关或者路由器上安装监听软件。
口令破解器是一个程序,它能将口令解译出来,或者让口令保护失效。
口令破解器组成
1、候选口令产生器
2、口令加密模块
3、口令比较模块
口令破解器
操作系统的口令文件
Linux口令破解工具
Windows口令破解工具
◆7.重放
4.口令破解工具:
UNIX类系统口令文件
1)Passwd文件
2)shadow文件
在破解口令时,需要做UnShadow变换,将/etc/password与/etc/shadow合并起来。
Windows的口令文件
1)Win9XC:
\windows\*.pwl
2)WinNT/Win2000/WinXP/Win2003/WinVista密码文件
%systemroot%\system32\config\的sam(SecurityAccountsManager)
5.保护口令的方法:
对称或单密钥加密、不对称或双密钥加密、哈希(即散列,hash)
6.一次性口令原理:
1).首先,在用户和远程服务器之间建立一个秘密,该秘密在此被称为“通行短语”,相当于传统口令技术当中的“口令”。
同时,它们之间还应具备一种相同的“计算器”,该计算器实际上是某种算法的硬件或软件实现,它的作用是生成一次性口令。
2).当用户向服务器发出连接请求时,服务器向用户提示输入种子值。
种子值(seed)是分配给用户的在系统内具有唯一性的一个数值,也就是说,一个种子对应于一个用户,同时它是非保密的;
可以把种子值形象地理解为用户名。
3)服务器收到用户名之后,给用户回发一个迭代值做为“挑战”。
迭代值(iteration)是服务器临时产生的一个数值,与通行短语和种子值不同的是:
它总是不断变化的。
可以把迭代值形象地理解为一个随机数。
4).用户收到挑战后,将种子值,迭代值和通行短语输入到“计算器”中进行计算,并把结果作为回答返回服务器。
5).服务器暂存从用户那里收到回答,因为它也知道用户的通行短语,所以它能计算出用户正确的回答,通过比较就可以核实用户的确切身份。
7.防御:
强口令、加密和一次性口令的方法。
第六章欺骗攻击与防御技术
1.流行的五种欺骗攻击方式:
IP欺骗:
使用其他计算机的IP来骗取连接,获得信息或者得到特权;
ARP欺骗:
利用ARP协议的缺陷,把自己伪装成“中间人”,效果明显,威力惊人;
电子邮件欺骗:
电子邮件发送方地址的欺骗;
DNS欺骗:
域名与IP地址转换过程中实现的欺骗;
Web欺骗:
创造某个万维网网站的复制影像,从而达到欺骗网站用户目的的攻击。
2.最基本的IP欺骗技术有三种:
基本地址变化
使用源站选路截取数据包
利用Unix机器上的信任关系
这三种IP欺骗技术都是早期使用的,原理比较简单,因此效果也十分有限。
3.IP欺骗的高级应用--TCP会话劫持:
原理:
会话劫持就是接管一个现存动态会话的过程,换句话说,攻击者通过会话劫持可以替代原来的合法用户,同时能够监视并掌握会话内容。
此时,攻击者可以对受害者的回复进行记录,并在接下来的时间里对其进行响应,展开进一步的欺骗和攻击。
过程:
step1:
发现攻击目标
对于寻找合适的目标的两个关键问题:
首先,通常攻击者希望这个目标是一个准予TCP会话连接(例如Telnet和FTP等)的服务器。
其次,能否检测数据流也是一个比较重要的问题,因为在攻击的时候需要猜测序列号。
对于交换网络环境,嗅探其他机器的数据流就相对来说有些困难,就必须使用ARP欺骗。
step2:
确认动态会话
攻击者寻找动态会话根据
与大多数攻击不同,会话劫持攻击适合在网络流通量达到高峰时才容易实施。
首先,他有很多供选择的会话;其次,网络流通量越大则被发现的可能就越小。
step3:
猜测序列号
TCP区分正确数据包和错误数据包仅通过它们的SEQ/ACK序列号。
序列号却是随着时间的变化而改变的。
因此,攻击者必须成功猜测出序列号。
通过嗅探或者ARP欺骗,先发现目标机正在使用的序列号,再根据序列号机制,可以猜测出下一对SEQ/ACK序列号。
同时,攻击者若以某种方法扰乱客户主机的SEQ/ACK,服务器将不再相信客户主机正确的数据包,从而可以伪装为客户主机,使用正确的SEQ/ACK序列号,现在攻击主机就可以与服务器进行连接,这样就抢劫一个会话连接。
step4:
使客户主机下线
当攻击者获得了序列号后,为了彻底接管这个会话,他就必须使客户主机下线。
使客户主机下线最简单的方式就是对其进行拒绝服务攻击,从而使其不再继续响应。
服务器会继续发送响应给客户主机,但是因为攻击者已经掌握了客户主机,所以该机器就不再继续响应。
step5:
接管会话
既然攻击者已经获得了他所需要的一切信息,那么他就可以持续向服务器发送数据包并且接管整个会话了。
在会话劫持攻击中,攻击者通常会发送数据包在受害服务器上建立一个账户,甚至留下某些后门。
通过这种方式,攻击者就可以在任何时候轻松进入系统了。
危害性大的原因:
①最主要的原因就是它并不依赖于操作系统。
②它可以被用来进行积极的攻击,通过攻击行为可以获得进入系统的可能。
实现TCP会话劫持的两个小工具:
Juggernaut和Hunt
﹡4.DNS欺骗及防御技术
原理:
DNS的全称是DomainNameServer,即域名服务器,当一台主机发送一个请求要求解析某个域名时,它会首先把解析请求发到自己的DNS服务器上。
DNS的功能就是把域名转换成IP地址。
DNS服务器里有一个“DNS缓存表”,里面存储了此DNS服务器所管辖域内主机的域名和IP地址的对应关系。
例如,客户主机需要访问时,首先要知道的IP地址。
客户主机获得IP地址的唯一方法就是向所在网络设置的DNS服务器进行查询。
查询过程分四步进行,见下页图。
1)客户主机软件(例如Web浏览器)需要对进行解析,它向本地DNS服务器(域)发送域名解析请求,要求回复的IP地址;
2)由于本地DNS服务器的数据库中没有的记录,同时缓存中也没有记录,所以,它会依据DNS协议机器配置向网络中的其他DNS服务器提交请求。
这个查询请求逐级递交,直到域的真正权威DNS服务器收到请求;
3)域DNS服务器将向域DNS服务器返回IP查询结果(假定为1.2.3.4);
4)域的本地DNS服务器最终将查询结果返回给客户主机浏览器,并将这一结果存储到其DNS缓存当中,以便以后使用。
这样,客户主机下次访问的时候,就可以不需要再次转发查询请求,而直接从缓存中提取记录向客户端返回IP地址了。
经过上面几步,客户主机获得了它所期待的网站的IP地址,这样整个域名解析过程就结束了。
当客户主机向本地DNS服务器查询域名的时候,如果服务器的缓存中已经有相应记录,DNS服务器就不会再向其他服务器进行查询,而是直接将这条记录返回给用户。
而入侵者欲实现DNS欺骗,关键的一个条件就是在DNS服务器的本地Cache中缓存一条伪造的解析记录。
在上面例子中,假如域DNS服务器返回的是经过黑客篡改的信息,比如将指向另一个IP地址5.6.7.8,nipc