第2章:网络攻击原理与常用方法
备考合集:2023软考-信息安全工程师
本章分析
- 分值:3-4分
- 重点:端口扫描、恶意代码、拒绝服务攻击、DDOS 攻击
网络攻击
网络攻击是指损害网络系统安全属性的危害行为。危害行为导致网络系统的机密性、完整性、可用性、可控性、真实性、抗抵赖性等受到不同程度的破坏。
常见的危害行为有四个基本类型:
(1) 信息泄露攻击(机密性)
(2) 完整性破坏攻击(完整性)
(3) 拒绝服务攻击(可用性)
(4) 非法使用攻击。
网络攻击模型
(1)攻击树模型(故障树)
(2)MITRE ATT & CK 模型(攻击矩阵)
(3)网络杀伤链 (Kill Chain) 模型
网络攻击一般流程
- (1) 隐藏攻击源。隐藏黑客主机位置使得系统管理无法追踪。
- 利用被侵入的主机作为跳板;
- 免费代理网关;
- 伪造 IP 地址;
- 冒用户账号。
- (2) 收集攻击目标信息。确定攻击目标并收集目标系统的有关信息。
- (3) 挖掘漏洞信息。从收集到的目标信息中提取可使用的漏洞信息。
- (4) 获取目标访问权限。获取目标系统的普通或特权账户的权限。
- (5) 隐蔽攻击行为。隐蔽在目标系统中的操作,防止入侵行为被发现。
- 连接隐藏、进程隐藏、文件隐藏
- (6) 实施攻击。进行破坏活动或者以目标系统为跳板向其他系统发起新的攻击。
- (7) 开辟后门。在目标系统中开辟后门,方便以后入侵。
- (8) 清除攻击痕迹。避免安全管理员的发现、追踪以及法律部门取证。
- 篡改曰志文件中的审计信息;
- 改变系统时间造成日志文件数据紊乱以迷惑系统管理员;
- 删除或停止审计服务进程;
- 干扰入侵检测系统的正常运行;
- 修改完整性检测标签。
端口扫描
目的:找出目标系统上提供的服务列表
扫描类型
- 完全连接扫描。三次握手,建立连接
- 半连接扫描。只完成前两次握手,不建立一次完整的连接
- SYN 扫描。发送连接请求,根据响应状况判断(ACK-开放,RESET-未开放)
- ID 头信息扫描
需要用一台第三方机器配合扫描,并且这台机器的网络通信量要非常少,即dumb 主机。
首先由源主机A向 dumb 主机B发出连续的 PING 数据包,并且查看主机B返回的数据包ID 头信息。一般而言,每个顺序数据包的 ID 头的值会增加 。然后由源主机A假冒主机B的地址向目的主机C的任意端口 (1 ~65535) 发送 SYN 数据包。这时,主机C向主机B发送的数据包有两种可能的结果:
• SYNIACK 表示该端口处千监听状态。
• RSTIACK 表示该端口处千非监听状态。
那么,由后续 PING 数据包的响应信息的 ID 头信息可以看出,如果主机C的某个端口是开放的,则主机B返回A的数据包中, ID 头的值不是递增 1,而是大于1。如果主机C的某个端口是非开放的,则主机B返回A的数据包中,ID 头的值递增 1,非常规律。 - 隐蔽扫描。绕过 IDS 、防火墙和监视系统等安全机制,取得目标主机端口信息的一种扫描方式。
- SYNIACK 扫描
直接发送 SYN|ACK 数据包,而不是先发送SYN数据包。由于这种方法不发送 SYN 数据包,目标主机会认为这是一次错误的连接,从而会报错。- 关闭:返回 RST 信息
- 开放:不返回任何信息,直接数据包抛弃
- FIN 扫描
发送 FIN 数据包,然后查看反馈信息。- 关闭:返回 RESET 信息
- 开放:不返回任何信息
- ACK 扫描
发送 FIN 数据包,然后查看反馈数据包的 TTL 值和 WIN 值- 关闭:TTL > 64,WIN = 0
- 开放:TTL < 64,WIN > 0
- NULL 扫描
将源主机发送的数据包中的 ACK FIN RST SYN URG PSH 等标志位全部置空- 关闭:RST信息
- 开放:无返回
- XMAS 扫描
与 NULL 扫描原理相同,将要发送的数据包中的 ACK FIN RST SYN URG PSH 等头标志位全部置成 1 。- 关闭:RST信息
- 开放:无返回
口令破解
主要工作流程
- 建立与目标网络服务的网络连接;
- 选取1个用户列表文件及字典文件;
- 在用户列表文件及字典文件中,选取1组用户和口令,按网络服务协议规定,将用户名及口令发送给目标网络服务端口;
- 检测远程服务返回信息,确定口令尝试是否成功;
- 再取另1组用户和口令,重复循环试验,直至口令用户列表文件及字典文件选取完毕
缓冲区溢出
缓冲区溢出攻击可以使攻击者有机会获得1台主机的部分或全部的控制权。
据统计,缓冲区溢出攻击占远程网络攻击的绝大多数。
缓冲区溢出成为远程攻击主要方式的原因是,缓冲区溢出漏洞会给予攻击者控制程序执行流程的机会。攻击者将特意构造的攻击代码植入有缓冲区溢出漏洞的程序之中,改变漏洞程序的执行过程,就可以得到被攻击主机的控制权。
⭐恶意代码
恶意代码是网络攻击常见的攻击手段。
常见的恶意代码类型
计算机病毒
网络蠕虫
特洛伊木马
后门
逻辑炸弹
僵尸网络
网络蠕虫程序是 1988 年由小莫里斯编制的,该程序具有复制传播功能,可以感染 UNIX 系统主机,使网上 6000 多台主机无法运行;
2001年8月,红色代码蠕虫病毒利用微软 Web 服务器 IIS4.0 或 5.0 中 index 服务的安全缺陷,通过自动扫描感染方式传播蠕虫;
2010 年“震网“网络蠕虫是首个专门用于定向攻击真实世界中基础(能源)设施的恶意代码。
恶意代码的一般命名格式:<恶意代码前缀>.<恶意代码名称>.<恶意代码后缀>
常用恶意代码前缀
- 系统病毒:Win32、PE、Win95、W32、W95等
- 网络蠕虫:Worm (勒索软件 WanaCra
- 木马病毒:Trojan
- 脚本病毒:Script
- 宏病毒的:Macro,其可能还有第二前缀是 Word、Word97、Excel、Exce197
- 后门程序: Backdoor
- 破坏性程序:Harm
- 玩笑病毒:Joke
- 捆绑机病毒:Binder
⭐拒绝服务
拒绝服务攻击是指攻击者利用系统的缺陷,执行一些恶意的操作,使得合法的系统用户不能及时得到应得的服务或系统资源,如 CPU 处理时间、存储器、网络带宽等。
拒绝服务攻击往往造成计算机或网络无法正常工作,进而会使一个依赖于计算机或网络服务的企业不能正常运转。
最本质的特征:延长服务等待时间
当服务等待时间超过某个阈值时,用户因无法忍耐而放弃服务。拒绝服务攻击延迟或者阻碍合法的用户使用系统提供的服务,对关键性和实时性服务造成的影响最大。
特点:
- 难确认性。拒绝服务攻击很难判断,用户在自己的服务得不到及时响应时,并不认为自己(或系统)受到攻击,反而可能认为是系统故障造成 时的服务失效。
- 隐蔽性。正常请求服务隐藏拒绝服务攻击的过程。
- 资源有限性。由于计算机资源有限,容易实现拒绝服务攻击。
- 软件复杂性。由于软件所固有的复杂性,设计实现难以确保软件没有缺陷。因而攻击者有机可乘,可以直接利用软件缺陷进行拒绝服务攻击,例如泪滴攻击。
类型
- 同步包风暴 (SYN Flood)
发送多个同步数据包 (SYN Packet) 给服务器,服务器因无法收到确认数据包 (ACK Packet) ,使 TCP/IP 协议的三次握手无法顺利完成,因而无法建立连接。其原理是发送大量半连接状态的服务请求,Unix 等服务主机无法处理正常的连接请求,因而影响正常运作。 - UDP 洪水 (UDP Flood)
利用简单的 TCP/IP 服务,如用 Chargen 和 Echo 传送毫无用处的占满带宽的数据。通过伪造与某一主机的 Chargen 服务之间的一次 UDP 连接,回复地址指向开放 Echo 服务的一台主机,生成在两台主机之间的足够多的无用数据流。 - Smurf 攻击
一种简单的 Smurf 攻击是将回复地址设置成目标网络广播地址的 ICMP 应答请求数据包,使该网络的所有主机都对此 ICMP 应答请求作出应答,导致网络阻塞,比 ping of death 洪水的流量高出一或两个数量级。
更加复杂的 Smurf 攻击是将源地址改为第三方的目标网络,最终导致第三方网络阻塞。 - 垃圾邮件
攻击者利用邮件系统制造垃圾信息,甚至通过专门的邮件炸弹 (mail bomb) 程序给受害用户的信箱发送垃圾信息,耗尽用户信箱的磁盘空间,使用户无法应用这个信箱。 - 消耗 CPU 和内存资源
利用目标系统的计算算法漏洞,构造恶意输入数据集,导致目标系统的 CPU 或内存资源耗尽,从而使目标系统瘫痪,如 Hash DoS - 死亡之 ping (ping of death)
早期,路由器对包的最大尺寸都有限制,许多操作系统在实现 TCP/IP 堆栈时,规定 ICMP包小千等千 64KB,并且在对包的标题头进行读取之后,要根据该标题头中包含的信息为有效载荷生成缓冲区。当产生畸形的、尺寸超过 ICMP 上限的包,即加载的尺寸超过 64KB 上限时,就会出现内存分配错误,导致 TCP/IP 堆栈崩溃,使接收方停机。 - 泪滴攻击 (Teardrop Attack)
泪滴攻击暴露出 IP 数据包分解与重组的弱点 IP 数据包在网络中传输时,会被分解成许多不同的片传送,并借由偏移量字段 (Offset Field) 作为重组的依据。泪滴攻击通过加入过多或不必要的偏移量字段,使计算机系统重组错乱,产生不可预期的后果。 - 分布式拒绝服务攻击 (Distributed Denial of Service Attack)
分布式拒绝服务攻击是指植入后门程序从远程遥控攻击,攻击者从多个已入侵的跳板主机控制数个代理攻击主机,所以攻击者可同时对已控制的代理攻击主机激活干扰命令,对受害主机大量攻击。
分布式拒绝服务攻击程序,最著名的有 Trinoo、TFN、TFN2K、Stacheldraht四种
网络钓鱼
网络钓鱼 (Phishing) 是一种通过假冒可信方(知名银行、在线零售商和信用卡公司等可信的品牌)提供网上服务,以欺骗手段获取敏感个人信息(如口令、信用卡详细信息等)的攻击方式。
目前,网络钓鱼综合利用社会工程攻击技巧和现代多种网络攻击手段,以达到欺骗意图。
最典型的网络钓鱼方法是,网络钓鱼者利用欺骗性的电子邮件和伪造的网站来进行诈骗活动,诱骗访问者提供一些个人信息,如信用卡号、账户和口令、社保编号等内容,以谋求不正当利益。
例如,网络钓鱼攻击者构造 封所谓“安全提醒"邮件发给客户,然后让客户点击虚假网站 填写敏感的个人信息 这样网络钓鱼攻击者就能获取受害者的个人信息,并非法利用
网络窃听
网络窃听是指利用网络通信技术缺陷,使得攻击者能够获取到其他人的网络通信信息。
常见的网络窃听技术手段
- 网络嗅探
- 中间人攻击
一般的计算机系统通常只接收目的地址指向自己的网络包,而忽略其他的包。但在很多情况下,一台计算机的网络接口可能收到目的地址并非指向自身的网络包,在完全的广播子网中,所有涉及局域网中任何一台主机的网络通信内容均可被局域网中所有的主机接收到,这就使得网络窃听变得十分容易。网络攻击者将主机网络接口的方式设成“杂乱”模式,就可以接收整个网络上的信息包,从而可以获取敏感的口令,甚至将其重组,还原为用户传递的文件。
SQL注入
在Web 服务中,一般采用三层架构模式:浏览器+Web 服务器+数据库
其中, Web 脚本程序负责处理来自浏览器端提交的信息,如用户登录名和密码、查询请求等。但是,由于 Web脚本程序的编程漏洞,对来自浏览器端的信息缺少输入安全合法性检查,网络攻击者利用这种类型的漏洞 SQL 命令插入 Web 表单的输入域或页面的请求查找字符串,欺骗服务器执行恶意的 SQL 命令。
社交工程
网络攻击者通过一系列的社交活动,获取需要的信息。例如伪造系统管理员的身份,给特定的用户发电子邮件骗取他的密码口令。有的攻击者会给用户送免费实用程序,不过该程序除了完成用户所需的功能外,还隐藏了 个将用户的计算机信息发送给攻击者的功能。很多时候,没有经验的网络用户容易被攻击者欺骗,泄露相关信息。例如,攻击者打电话给公司职员,自称是网络安全管理成员,并且要求获得用户口令。攻击者得到用户口令后,就能够滥用合法用户的权利。
电子监听
网络攻击者采用电子设备远距离地监视电磁波的传送过程。灵敏的无线电接收装置能够在远处看到计算机操作者输入的字符或屏幕显示的内容。
会话劫持
会话劫持是指攻击者在初始授权之后建立一个连接,在会话劫持以后,攻击者具有合法用户的特权权限。
例如,一个合法用户登录一台主机,当工作完成后,没有切断主机。然后,攻击者乘机接管,因为主机并不知道合法用户的连接已经断开。于是攻击者能够使用合法用户的所有权限。典型的实例是 “TCP 会话劫持“。
漏洞扫描
漏洞扫描是一种自动检测远程或本地主机安全漏洞的软件,通过漏洞扫描器可以自动发现系统的安全漏洞。
网络攻击者利用漏洞扫描来搜集目标系统的漏洞信息,为下一步的攻击做准备。
常见的漏洞扫描技术
- CGI 漏洞扫描
- 弱口令扫描
- 操作系统漏洞扫描
- 数据库漏洞扫描
一些黑客或安全入员为了更快速地查找网络系统中的漏洞,会针对某个漏洞开发专用的漏
洞扫描工具,例如 RPC 漏洞扫描器。
代理技术
网络攻击者通过免费代理服务器进行攻击,其目的是以代理服务器为“攻击跳板”,即使攻击目标的网络管理员发现了,也难以追踪到网络攻击者的真实身份或 IP 地址。
为了增加追踪的难度,网络攻击者还会用多级代理服务器或者“跳板主机”来攻击目标。
在黑客中,代理服务器被叫作“肉鸡”,黑客常利用所控制的机器进行攻击活动,例如 DDoS 攻击。
数据加密
网络攻击者常常采用数据加密技术来逃避网络安全管理人员的追踪。
加密使网络攻击者的数据得到有效保护,即使网络安全管理人员得到这些加密的数据,没有密钥也无法读懂,这样就实现了攻击者的自身保护。
攻击者的安全原则是,任何与攻击有关的内容都必须加密或者立刻销毁。
黑客常用工具
- 扫描器
- 分类
- 地址扫描器
- 端口扫描器
- 漏洞扫描器
- 常用软件:nmap、Nessus、Super Scan
- 分类
- 远程监控
冰河、网络精灵、 Netcat - 密码破解
- 破解方式:口令猜测、穷举搜索、撞库等
- 常见工具
- John the Ripper用于检查 Unix/Linux 系统的弱口令
- LOphtCrack:用于破解 Windows 系统口令
- 网络嗅探器
网络嗅探器 (Network Sniffer) 是一种黑客攻击工具,通过网络嗅探,黑客可以截获网络的信息包,之后对加密的信息包进行破解,进而分析包内的数据,获得有关系统的信息。如可以截获个人上网的信息包分析上网账号、系统账号、电子邮件账号等个人隐私资料。网络嗅探类软件已经成为黑客获取秘密信息的重要手段.- 常见的网络嗅探器工具
- Tcpdump/WireShark Tcpdump 是基于命令行的网络数据包分析软件,可以作为网络嗅探工具,能把匹配规则的数据包内容显示出来。而 WireShark 则提供图形化的网络数据包分析功能,可视化地展示网络数据包的内容。
- DSniff DSniff 是由 Dug Song 开发的一套包含多个工具的软件套件,包括 dsniff、filesnarf、mailsnarf、msgsnarf、rlsnarf、webspy 。使用 DSniff 可以获取口令、邮件、文件等信息。
- 常见的网络嗅探器工具
- 安全渗透工具箱
MSF、BackTrack5
网络攻击案例
DDoS
DDoS 攻击步骤
- 通过探测扫描大量主机,寻找可以进行攻击的目标
- 攻击有安全漏洞的主机,并设法获取控制权
- 在已攻击成功的主机中安装客户端攻击程序
- 利用已攻击成功的主机继续进行扫描和攻击
- 当攻击客户端达到一定的数目后,攻击者在主控端给客户端攻击程序发布向特定目标进行攻击的命令。
从分布式拒绝服务攻击的案例来看,攻击者进行大型或复杂的攻击之前,需要利用已攻击成功的主机,时机成熟后再向最终的目标发起攻击。从这一点上来说,大型或复杂的攻击并不能一步到位,而是经过若干个攻击操作步骤后才能实现最终的攻击意图。
DDoS 常用的攻击技术手段
- HTTP Flood 攻击:利用僵尸主机向特定目标网站发送大量的 HTTP GET 请求,以导致网站瘫痪
- SYN Flood 攻击:击利用 TCP/IP 协议的安全缺陷,伪造主机发送大量的 SYN 包到目标系统,导致目标系统的计算机网络瘫痪
- DNS 放大攻击:攻击者假冒目标系统向多个 DNS 解析服务器发送大量请求,而导致 DNS解析服务器同时应答目标系统,产生大量网络流量,形成拒绝服务
W32.Blaster.Worm
W32.Blaster.Worm 是一种利用 DCOM RPC 漏洞进行传播的网络蠕虫,其传播能力很强。感染蠕虫的计算机系统运行不稳定,系统会不断重启。并且该蠕虫还将对 windowsupdate.com
进行拒绝服务攻击,使得受害用户不能及时地得到这个漏洞的补丁。
当W32.Blaster.Worm 运行时,会进行以下操作:
(1) 创建一个名为 BILLY 的互斥体。如果这个互斥体存在,蠕虫将放弃感染并退出。
(2) 在注册表中添加下列键值:”windows auto update”=”msblast.exe” ,并且将其添加至:HKEY LOCAL MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Run ,这样就可以使蠕虫在系统被重起的时候能够自动运行。
(3) 蠕虫生成攻击 IP 地址列表,尝试去感染列表中的计算机,蠕虫对有 DCOMRPC 漏洞的机器发起 TCP 135 端口的连接,进行感染。
(4) TCP 4444 端口绑定一个 cmd.exe 的后门。
(5) UDP port69 口上进行监听。如果收到了一个请求,将把 Msblast.exe 发送给目标机器。
(6) 发送命令给远端的机器使它回联已经受到感染的机器并下载 Msblast.exe
(7) 检查当前日期及月份,若当前日期为 16 日或以后,或当前月份处在 月到 12 月之间,W32.Blaster Worm 蠕虫将对 windowsupdate.com 发动 TCP 同步风暴拒绝服务攻击
网络安全导致停电事件
本网络安全事件材料来源于北京安天网络安全技术有限公司(以下简称安天公司)发布的
《乌克兰电力系统遭受攻击事件综合分析报告》及相关网络信息。
2015.12.23 日,乌克兰多地区发生同时停电的事件。调查显示,乌克兰电厂停电是因网络攻击导致电力基础设施被破坏。
黑客首先利用钓鱼邮件,欺骗电力公司员工下载了带有 BlackEnergy 的恶意代码文件,然后诱导用户打开这个文件,激活木马,安装 SSH后门和系统自毁工具 Killdisk, 致使黑客最终获得了主控电脑的控制权。最后,黑客远程操作恶意代码将电力公司的主控计算机与变电站断连并切断电源;同时,黑客发动 DDoS 攻击电力客服中心,致使电厂工作人员无法立即进行电力维修工作。