1.4 主要攻击方法

● 计算机网络风险来源:

  ➢ 网络系统存在的缺陷或漏洞
  ➢ 利用漏洞的攻击
  ➢ 外部环境对网络的威胁

● 网络攻击定义:

  网络攻击(Cyber Attacks,也称赛博攻击)是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的,任何类型的进攻动作。对于计算机和计算机网络来说,破坏、揭露、修改、使软件或服务失去功能、在没有得到授权的情况下偷取或访问任何一计算机的数据,都会被视为于计算机和计算机网络中的攻击。
  指任何形式的非授权行为(广义)

● 网络攻击方式:

  主要利用网络通信协议本身存在的设计缺陷或因安全配置不当而产生的安全漏洞而实施网络攻击
网络攻击方式

1.4.1 端口扫描

网络扫描:
  对计算机系统或网络设备进行与安全有关的检测,以便发现安全隐患和可利用的漏洞
端口扫描:
  ➢ 向目标主机的服务端又发送探测数据包,并记录目标主机的响应。通过分析响应的数据包来
判断服务端又是否处于打开状态,从而得知端又提供的服务或信息
  ➢ 捕获本地主机或服务器的流入流出数据包来监视本地IP主机的运行情况,它能对接收到的数据进行分析,帮助人们发现目标主机的某些内在的弱点
端口扫描作用:
  ➢ 了解系统向外界提供了哪些服务
  ➢ 探测目标主机系统端又目前正向外提供何种服务

TCP连接扫描


TCP连接扫描(TCP connect Scan)
  也称为“TCP全连接扫描”,它利用TCP协议的3次握手过程,直接连到目标端又并完成一个完整的3次握手过程
目标主机状态及应答数据包
➢ Close状态
  ➢ RST数据包---》丢弃
  ➢ 其它数据包---》返回RST数据包
➢ LISTEN状态
  ➢ SYN数据包---》返回SYN或ACK数据包---》SYN-RCVD状态
  ➢ ACK数据包---》返回RST数据包 ➢ 其它数据包---》丢弃TCP连接建立时的三次握手
➢ SYN-RCVD状态
  ➢ RST数据包---》返回LISTEN状态
  ➢ ACK数据包---》进入ESTABLISHED(连接建立)状态,并建立连接
TCP三次握手   

1.4.2 口令攻击

身份认证方式

● 当前口令认证方式
大部分系统通过保存又令的Hash 值来对用户认证信息进行管理。
➢ 原理:利用了单向函数的单向性(给定又令输入,计算 Hash值是容易的;但给定Hash值,难以计算出又令输入值。这样即使攻击者获取到存储又令Hash值的文件, 也很难得到口令)保证口令的安全。
早期验证:采用直接存储口令本身来进行比对认证
当前验证:基于图像、视觉和指纹等的认证方法,可记忆的文本口令认证方法(便捷的应用和极低的成本)

● 口令攻击

口令攻击: 攻击者通过猜测口令,并且将计算出的Hash值进行比对的过程。
● 互联网环境中口令攻击方式:
  ➢ 在线窃听:攻击者利用一些网络协议传输信息时未进行加密处理这一机制,通过在线截
获数据包并经协议分析来获得用户名和密码等帐户信息
  ➢ 获取口令文件:攻击者在窃取了操作系统保存的用户账号和加密又令文件后,通过破解来获取系统的帐户信息
  ➢ 字典攻击:攻击者使用事先生成的口令字典库,依次向目标系统发起身份认证请求,直到某一个口令满足条件(攻击成功)或所有口令遍历后仍然无效(攻击失败)为止。
字典攻击必须具备以下两个条件:
  ➢ 目标系统的身份认证方式(如虹膜认证、指纹认证、口令认证等)
  ➢ 字典库的准备

1.4.3 彩虹表

彩虹表(Rainbow Table):
  一种破解Hash函数的技术。可以针对不同的Hash函数,利用其漏洞进行暴力破解。
Hash函数(Hash Function)
  是将任意长的数字串M映射成一个较短的定长输出数字串H的函数,也称杂凑函数
H=h(M):
  h为Hash函数,H为M杂凑值(hash值), H也称为M的数字指纹(digital finger print)

Hash函数的性质:
  在Hash函数中,是多对一的映射,即任意-个M经h(Mj计算得到的A是唯一的,而一个可能对应多个不同的M因此,不能从H计算得出原来的M,但可以验证任意一个给定的序列M否与M有相同的杂凑值
  ➢ 混合变换( mixing transformation ):对于任意的输入x,输出的杂凑值h(x)应当与区间[0,2lh]中均匀的二进制串在计算上是不可区分的
  ➢ 抗碰撞攻击( collision resistance ):存在两个输入和y,且x≠y, 使得f(x)= f(y),这在计算上应当是不可行的。为了使这个假设成立,要求的输出空间应当足够大。|h|最小为128, 典型的值为160。
  ➢ 抗原象攻击( pre image resistance ):已知一个杂凑值h,找一个输入串x, 使得h=hx), 这在计算上是不可行的。这个假设同样也要求的输出空间足够大
  ➢ 实用有效性( practical efficiency ):给定个输入串x, h(x)的计算可以在关于x的长度规模的低阶多项式(理想情况是线性的)时间内完成。
  由于Hash函数具有的特殊性质,目前Hash函数多用于密码的保存,从而防止明文密码的泄露,同时又可以验证输入的密码的正确性。常用的Hash算法有MD5、 SHA-1、 SHA-2等

● HASH函数


碰撞(Collision):
  若两个输入串的hash函数的值一样,则称这两个串是一个碰撞
碰撞的必然性:
  理论范围内,存在一个输出串(Hash函数值)对应无穷多个输入串,所以碰撞具有其必然性
彩虹表破解
  通过暴力破解方式,搜寻指定输入的Hash碰撞值。彩虹表打破Hash函数不可逆的性质约定 (无法从杂凑值计算得到原始输入串),但无法保证破解到的数据是原始数据

HASH函数破解


1、Hash函数破解
  给定一个具体的杂凑值q,求得其输入值m的过程
2、Hash函数破解方式:
  ➢ 暴力破解:把M中的每个m;都计算一次H(mi),直到结果等于q,其具有时间不可行性
  ➢ 查表法:预先设计一个给定的数据库,把每个m;和对应的q ;都记录在数据库中。然后在该
数据库依次查询q,直到查寻到对应的m为止,其具有空间不可行性
  ➢ 彩虹表破解:结合暴力破解于查表法的特点,使得处理时间和存储空间在可接受范围内。
具有时间空间平衡性。

注意:

暴力破解时间不可行性:
  一个由14位的大小写英文字符加数字组成的密码集合大小为 (26x2+10) 14=1.24x1025)
查表法空间不可行性:
  查表法需要海量的存储空间,如果杂凑值采用为128bits,那么仅存储杂凑值就需要1011PB,还没有考虑保存明文M所需要的存储空间

● 彩虹表的建立


1、哈希链
  对于Q= H(M),建立另一个可以将Hash值映射回明文密码m;的换算函数R,使得M=R(Q),
然后对于一个给定的mi,把m用H和R依次迭代运算,最后得到mk。从m到mk之间的运算称为
哈希链,其中m和mk分别为该链中的起始点和终结点。如图算法:
哈希链

2、彩虹表
  从M中随机选择一组m;作为起始值,对每个起始点值采用相同的哈希链生成算法计算终结
点值,将起始点值和终结点值保存下来,中间过程产生的值全部丢弃。
通过以上运算,一个仅保存起始点值和终结点值的数据库便形成,该数据库即为彩虹表。
起点值和终点值保存下来为:
mi算法

● 彩虹表破解HASH函数值


1、彩虹表破解
  通过杂凑值找到明文输入数字串,实现对Hash函数值的破解

2、彩虹表破解流程
  给定杂凑值q,通过换算函数R和Hash函数H运算哈希链
  
彩虹表破解1
当其中任何一点cI与表中的终结点相同时,就能通过相应的起始点重建此哈希链。通过重建的完整哈希链,就有机会找到相应的明文密码值m
流程如图:
彩虹表破解2

● 彩虹表应用示例


彩虹表破解主要运算过程:
(1)对Hash函数值“00BB33DF”通过换算 函数R3得到一个终结点的明文密码“hammer”,在彩虹表的终结点一列中未找到对应内容,转到(2);
(2)通过换算函数R2、Hash函数H、换算函数R3得到终结点的明文密码“farmer”;
(3)在彩虹表中找到相对应的终结点明文密码“farmer”;
(4)利用对应的起始点“cccccc”重新构建哈希链,直至运算得到Hash值“00BB33DF”。这时,就获得了Hash 值“00BB33DF”相对应的明文密 码“summer”。破解成功。

图1、经三次换算的简单哈希链表
三次换算哈希链表
图2、对Hash值“00BB33DF”的破解过程
hash值破解过程

1.4.4 漏洞攻击

漏洞

计算机安全领域:指存在于一个系统内的弱点或缺陷,系统对一个特定的威胁攻击或危险事件的敏感性,或进行攻击的威胁作用的可能性。其通常是由软件错误(如未经检测的缓冲区或者竞争条件)引起
网络安全领域:指区别于所有非受损状态的容易受攻击的状态特征
  ➢ 计算机系统由若干描述实体配置的当前状态组成,包括授权状态、非授权状态、易受攻击状态和不易受攻击状态
  ➢ 易受攻击状态:是指通过授权的状态转变从非授权状态可以到达的授权状态
  ➢ 受损状态:是指已完成这种转变的状态,攻击是非受损状态到受损状态的状态转变过程
● 漏洞特点
  ➢ 软件编写过程中出现的逻辑错误(除专门设置的“后门”)多由疏忽造成
  ➢ 漏洞和具体的系统环境密切相关
  ➢ 漏洞问题与时间紧密相关

漏洞的概念-1

  一个典型的漏洞库所包含的漏洞信息,漏洞的上述特点决定了在对漏洞进行研究时,除了需要掌握漏洞本身的特征属性,还要了解与漏洞密切相关的其他对象的特点
● 漏洞基本属性:
  ➢ 漏洞类型
  ➢ 造成后果
  ➢ 严重程度
  ➢ 利用需求
  ➢ 环境特征
  ➢ ......
  
● 漏洞相关对象:
  ➢ 存在漏洞的软(硬)件
  ➢ 操作系统
  ➢ 相应补丁程序
  ➢ 修补漏洞方法
  ➢......
  漏洞的概念

漏洞的概念-2

● 安全漏洞
  指信息技术、信息产品和信息系统在需求、设计、实现、配置、运行等过程中,有意或无意产
生的脆弱性,这些脆弱性以不同形式存在于信息系统各个层次和环节之中,能够被恶意主体所利用,从而影响信息系统及其服务的正常运行

● 网络安全事件案例
  ➢ 2010年“震网”(Stuxnet)蠕虫事件
    2010年6月发现的“震网”(Stuxnet) 蠕虫同时利用了7个最新漏洞进行攻击,导致伊朗布舍尔核电站推迟发电;
  ➢ 2011年韩国网站被黑导致的网民信息被盗案件
    2011年7月发生的韩国J户网站Nate和社交网站Gyworld被黑事件成为至今发生的规模最大的网民信息被盗案件,约3500万用户的名字、电话号码、地址、身份证号码等信息被公布
  ➢ 2011年CSDN等站点账号信息泄漏事件
    2011年12月,黑客通过漏洞攻击导致CSDN等站点数亿账户信息被泄露,严重扰乱了互联网正常秩序。
  
● 0day漏洞
  一种特殊的安全漏洞。通常指还没有公开过的尚未有补丁的漏洞,也称为“未公开漏洞”
● 0day攻击
  利用0day漏洞进行的攻击,即在安全补丁发布之前攻击者已经掌握了漏洞的存在,并对存在该 漏洞的系统进行的攻击(看不见的才是最可怕的,这就是0day的真正威胁。)
   
● 0day漏洞危害性:
  在安全补丁发布之前,所有的漏洞都可以称为Oday漏洞,而从实际情况来看,漏洞的存在是普遍的,只是有些漏洞尚未发现或发现后没有公开而已。为此,利用0day漏洞的网络攻击,在互联网环境中产生的危害效是崩塌式的。

● 漏洞的分类

原因一:设计方面
  描述:主要是在系统设计时受某种先决条件的限制,或考虑不够全面,从而导致设计上存在缺陷,此类漏洞通常难以修补
  案例:最初的TCP/IP协议对于身份的确认、交互信息的确认都没有进行专门的考虑,从而导致假冒IP地址、利用TCP通信中三次握手等攻击行为很难防范

原因二:实现方面
  描述: 主要体现在编码阶段,如忽略或缺乏编码安全方面的考虑、编程习惯不良的、以及测试工作的不充分等,导致在一些特殊的条件下,程序无法按照预定的步骤执行,从而给攻击者以可乘之机
  案例:典型的编码漏洞攻击——缓冲区溢出攻击, 如CodeRed、SQL Slammer、冲击波蠕虫、震 荡波蠕虫等都是利用了缓冲区溢出的漏洞。此类攻击通常会使攻击者的权限得到非法提升,对系统的安全性威胁很大

原因三:配置方面
  描述:由于管理者缺乏相应的安全知识、对所使用的系统不了解、配置方法不专业等原因,经常为系统留下严重的安全隐患
  案例:采用系统的默认配置,导致系统运行了本来不需要的服务,由此埋下了安全隐患,这个问题在操作系统服务的配置、应用服务的权限配置、又令配置方面表现得更为突出

● 针对网络协议漏洞的攻击

● 网络漏洞
  ➢ 存在于计算机网络系统中的,可能对系统中的组成和数据造成损害的一切因素
  ➢ 在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统
● 网络协议漏洞(TCP/IP协议)
  ➢ 概念:Internet中使用的一组通信协议的总称
  ➢ 提供的服务:一种面向非连接的尽力而为的不可靠服务
  ➢ 特点:未考虑网络中传输内容的保密性,整个体系结构是一种开放、松散的架构
  ➢ 漏洞: TCP/IP中的主流协议(如TCP、UDP、ARP/RARP、SMTP、DNS等)都不同程度地存 在着安全漏洞,这些安全漏洞都可能会被攻击者利用,作为入侵的窗又或跳板。

1.4.5 缓冲区溢出

● 缓冲区
  计算机中的连续的一段存储空间
● 缓冲区溢出
  一种系统攻击手段,它通过向程序的缓冲区写入超出其长度要求的内容,造成缓冲区空间的溢出,溢出的数据将改写相邻存储单元上的数据,从而破坏程序的堆栈,使程序转去执行其它的指令。缓冲区溢出是一种典型的U2R(User to Root)攻击方式。
● 缓冲区溢出原因:代码在操作缓冲区时,没有有效地对缓冲区边界进行检查
● 缓冲区溢出攻击后果
  ➢ 使程序运行失败、系统崩溃或重新启动
  ➢ 利用缓冲区溢出执行非授权指令,甚至取得系统特权,进而进行各种非法操作

缓冲区溢出的原理

● 事实
  ➢ 1、输入的形参等数据存放在堆栈中
  ➢ 2、程序由内存低端向内存高端按顺序执行
  ➢ 3、堆栈的生长方向与内存的生长方向相反
● 动作
  ➢ 在堆栈中压入的数据超过预先分配给堆栈的容量
● 结果
  ➢ 出现堆栈溢出,使得程序运行失败程序在内存中的存储方式
缓冲区溢出原理

缓冲区溢出操作事例-1

● 正常操作
  ➢ 1、输入“network attack”,先在栈底压入程序 返回地址,接着将栈指针EBP入栈,此时EBP等于现在的ESP。之后,ESP减16,即向上增长16 字节,用来存放name[]数组
  ➢ 2、执行gets(name)命令,堆栈数据段压入字符串
  ➢ 3、从main函数返回,弹出ret里的返回地址并赋值EIP,CPU继续执行EIP所指向的指令 

缓冲区操作程序

 #include<stdio.h> 
 int main(){
   char name[16];
   gets(name);
   for(int i=0; i < 16&&name[i];i++) 
   print(name[i])
  };

缓冲区溢出操作示例

缓冲区溢出-1

缓冲区溢出操作事例-2

● 溢出操作
  ➢1、输入“network attack DDD......DDD”,先在栈底压入程序返回地址,接着将栈指针EBP入栈, 此时EBP等于现在的ESP。之后ESP减16,即向上增长16字节,用来存放name数组
  ➢ 2、执行gets(name)命令,堆栈数据段压入字符串,由于输入的字符串长度超过了16字节, 在name数组中无法容纳,只好向堆栈的底部方向继续写入,覆盖了堆栈中原有的内容
  ➢ 3、从main函数返回,由于ret被输入的字 符“D”覆盖,导致将“DDDD”的ASCII码看作返回地址并赋值EIP,CPU会试图执行该地址处的指令,结果出现难以预料的结果,便产生了一次堆栈溢出

缓冲区操作程序

 #include<stdio.h> 
 int main(){
   char name[16];
   gets(name);
   for(int i=0; i < 16&&name[i];i++) 
   print(name[i])
  };

缓冲区溢出操作示例

缓冲区溢出-1

缓冲区溢出攻击分类

改变程序逻辑攻击:不仅仅针对某个或某些数据,而是针对整个被攻击系统。
缓冲区溢出攻击

缓冲区溢出攻击

● 改变程序逻辑攻击操作步骤
  ➢ 1、注入恶意数据
    ➢ 恶意数据:用于实现攻击的数据,它的内容影响攻击模式中后续活动能否顺利进行
    ➢ 注入方式:命令行参数、环境变量、输入文件或网络数据等
  ➢ 2、缓冲区溢出
    ➢ 前提条件:系统中存在的可以被利用的缓冲区溢出漏洞
    ➢ 操作方式:通过特定外部输入,迫使缓冲区溢出的发生改变程序逻辑攻击操作步骤
  ➢ 3、控制流重定向
    ➢ 概念:将系统从正常的控制流程转向非正常流程的过程
    ➢ 方式:
      ➢ 改写位于堆栈上的函数返回地址来改变指令流程
      ➢ 改写被调用函数栈上保存的调用函数栈的栈地址
      ➢ 改写指针
      ➢ 改写跳转地址等
  ➢ 4、执行攻击程序
    ➢ 有效载荷:攻击程序中真正实现攻击的代码部分
    ➢ 有效载荷方式:
      ➢ 以可执行的二进制代码形式放置在恶意数据中,用于产生命令解释器(Shellcode)
      ➢ 已经存在于内存中的代码,这种攻击方式也称为注入攻击
 注意:
  1、破坏敏感数据攻击:只需要前面的两步操作
  2、改写位于堆栈上的函数返回地址来改变指令流程,并借助指令(如"NOP 指令)提高重定向的成功率
  3、当控制流被成功地重定向到攻击程序的位置时,攻击程序得以运行
  4、Shellcode:为攻击者提供cmd shell的代码。攻击者为达到控制被攻击系统的目的,通常会利用缓冲区漏洞来获得被攻击系统的cmd shell。
缓冲区溢出攻击方法

1.4.6 电子邮件攻击

● 电子邮件攻击
  电子邮件攻击是一种专门针对电子邮件系统的DoS攻击方式。电子邮件攻击利用电子邮件系统协议和工作机制存在的安全漏洞,通过利用或编写特殊的电子邮件软件,在短时间内向指定的电子 邮件(被攻击对象)连续发送大容量的邮件,使电子邮件系统因带宽、CPU、存储空间等资源被耗尽而无法提供正常服务。为实现攻击而编写的特殊程序称为邮件炸弹(E-mail Bomber),因此电子邮件攻击也称为电子邮件炸弹
● 电子邮件攻击形式
  ➢ 通过监听网络中的传输的电子邮件数据包或截获正在传输的电子邮件,窃取和篡改邮件数

  ➢ 通过伪造的发送人电子邮件地址对指定的目标邮箱进行欺骗性攻击
  ➢ 通过发送大量的垃圾邮件产生拒绝服务攻击(Dos攻击)
● 电子邮件攻击结果
  轻:扰乱邮件的正常收发
  重:导致邮件系统瘫痪

目录收割攻击

目录收割攻击(Directory HarvestAttack,DHA):
  指攻击者通过编写脚本程序,对特定域名下所有可能存在的电子邮箱地址进行猜测,以获得该域名下所有邮箱地址的攻击方式
**● 针对SMTP的DHA攻击 **
SMTP原理
  ➢ 当邮件服务器接收到一个无效的邮件地址时,该邮件服务器会向邮件发送者返回一个标准的错误信息
  ➢ 当邮件服务器接收到一个有效的邮件地址时,邮件服务器会返回一个表示邮件已成功接收的应答
针对SMTP协议设计漏洞的DHA攻击
  攻击者根据SMTP邮件服务器回复的内容判断某一邮件地址是否有效,从而收割有邮箱地址,加入到垃圾邮件制造者数据库或提供给地下黑色产业链进行牟利
  
● DHA猜测特定域名下邮箱地址的方式:
  ➢ 直接通过暴力方式穷尽所有的字母和数字组合
  ➢ 采用字典攻击,攻击者在根据人们的习惯构造了邮箱地址字典库后进行字典攻击
● 电子邮件攻击与垃圾邮件(spam)区别
  ➢ 垃圾邮件
    ➢ 定义:不请自来的“大量”邮件
    ➢ 特征:发送者在同一时间内将同一份电子邮件发送给大量不同用户
    ➢ 目的:主要是一些公司用于对其产品的宣传或发送一些虚假广告信息,一般不会对收件人造成伤害
  ➢ 电子邮件攻击
    ➢ 定义:是一种利用邮件协议漏洞的网络攻击行为

针对SMTP的DHA攻击工作原理
针对MSTP的攻击方式

1.4.7 高级持续威胁(APT)

● 高级持续威胁概念
  高级持续威胁(Advanced Persistent Threat,APT)也称为“针对特定目标的攻击”,APT并非一种新的网络攻击方法和单一类型的网络威胁,而是一种持续、复杂的网络攻击活动
高级持续威胁

● 高级持续威胁应用
  ➢ 国家和组织在对抗过程应用APT
  ➢ 民间专业黑客组织利用APT攻击手段发起危害较大的攻击(如黑色产业链)

高持续威胁案例

● 高持续威胁对象:
  ➢ 国家重要信息基础设施(如政府、金融、电信、电力、能源、军事等网络)和信息系统
  ➢ 在全球大数据背景下,旨在破坏工业基础设施、窃取关于国家安全和国计民生的重要情报
● 高持续威胁案例:
  ➢ 2011年美国信息安全厂商RSA令牌种子破解事件
  ➢ 2013年国际黑客针对美国几大银行发起的APT攻击事件
  ➢ 2013年“震网”攻击伊朗的铀浓缩设备事件
  ➢ 2013年美国棱镜事件
  ➢ 2015年乌克兰多家电厂遭攻击停电事件

高持续威胁攻击方式

  APT攻击大量使用多种高技术手段组合各类未知威胁来发起攻击,攻击者先通过收集攻击目标的环境和防御手段的信息,通过了解的信息后再有针对性地发起攻击
  ➢ 利用0day漏洞绕过传统入侵检测系统(IDS)的检测
  ➢ 利用木马或已知木马的变形绕过传统杀毒软件的检测
  ➢ 利用加密可以绕过审计检测
  ➢ 利用搜索引擎反射可以绕过可信链路检测
  ➢ 。。。。。。

● 高持续威胁特点

● 隐蔽性
  ➢ 概念:指APT威胁可能在用户环境中存在较长的时间,而很难被传统的安全防御攻击检测到,也称为潜伏性
  ➢ 动作:攻击者通过各种措施来掩盖攻击行为,避免在日志中留下入侵证据。通常利用目标主机上已有的工具或安装安全系统无法检测到的工具,通过常用网络端又和系统漏洞,不断收集各种信息,直到收集到重要情报
● 持续性
  ➢ 概念:体现在APT不是为了在短期内获利,攻击者经常会有针对性地进行为期数月甚至是数年的精心准备,从熟悉用户网络环境开始,先收集大量关于用户业务流程和目标系统使用情况的精确信息,搜集应用程序与业务流程中的安全隐患,定位关键信息的存储位置与通信方式
  ➢ 动作:一个攻击手段无法达到目的,攻击者会不断尝试其他的攻击手段,以及渗透到网络内部后长期潜伏,不断收集各类信息,通过精心构造的命令控制网络定期回送目标文件进行分析,直到收集到重要情报

高持续威胁主要环节

● APT攻击过程:
  APT攻击是一个复杂的活动,主要包括侦察、准备、锁定、进一步渗透、数据收集、维持等多个过程。这些过程又可以分为攻击准备、入侵实施和后续攻击3个环节。
APT攻击的3个阶段
APT攻击的3个阶段

APT攻击准备

APT攻击准备:攻击者主要为实施入侵做前期的准备工作
攻击准备的主要内容:
信息收集
  通过收集被攻击目标的网络环境、安全保护体系、人际关系及可能的重要资产等信息,为制定入侵方案作前期的准备(如开发特定的攻击工具)。信息收集贯穿全攻击生命过程。
技术准备
  指根据获取的信息,攻击者做相应的技术性规划,常用的技术手段包括入侵路径设计并选定初始目标、发现可利用的漏洞并编写利用代码、木马准备、控制服务器和跳板等
周边渗透
  攻击者会入侵一些外围目标,这些受害者本身不是攻击者攻击的目标,但因为可以被攻击者用来做跳板、DDoS服务器、相关信息获取等而被入侵

APT入侵实施

APT入侵实施:
  攻击者针对实际的攻击目标逐步展开攻击
入侵实施的主要内容:
  ➢ 常规手段:指攻击者利用常规的网络攻击手段,将恶意代码植入到系统中
    ➢ 通过病毒传播感染目标
    ➢ 通过薄弱安全意识和薄弱的安全管理控制目标
    ➢ 通过社会工程学进行诱导
    ➢ 通过供应链植入等
  ➢ 缺陷和漏洞利用
    ➢ 缺陷:指信息系统中广泛存在且事实上已知的欠缺或不够完善的地方
    ➢ 常见缺陷:系统中的缺陷主要包括默认密码、弱密码、默认配置和错误配置、计算机和网络的脆弱性等,这些缺陷在成本、时间和可替代等方面有时是无法按需修复的,在未修复之前就可能会被利用
    ➢ 常见漏洞:包括桌面文件处理类漏洞、浏览器类漏洞、桌面网络应用漏洞、网络服务类漏洞、系统逻辑类漏洞、对抗类漏洞、本地提权漏洞等
  ➢ 木马植入:在被攻击主机上植入事先准备的木马是ATP攻击过程中最为重要的一个环节,主要包括以下方式:
    ➢ 远程下载植入
    ➢ 绑定文档植入
    ➢ 绑定程序植入等
  ➢ 渗透提权:当攻击者获得了对内网中一台主机的控制权后,为了实现对攻击目标的进一步控制,还需要在内网中进行渗透和提权,主要包括确定立足点、参透和特权获取3项
    ➢ 确定立足点:攻击者在获得了内网中某一台主机的控制权后,相当于获得了一个内网的立足点
    ➢ 渗透:内网一旦进入则突破了网络已有的安全边界,针对内网的安全防御就失去了作用。攻击者可以组合如社会工程学、文件共享服务器篡改程序、本地嗅探、漏洞等手段,通过借助立足点,对内网中的其他主机进行渗透,以获得更多主机的控制权
    ➢ 特权获取:攻击者通过对更多主机的控制,逐步渗透到目标主机上并获得对该主机的特权

 APT后续攻击-1

APT后续攻击:
  攻击者将窃取所需要的信息或进行破坏,同时还会在内部进行深度渗透,以保证攻击行为被发现后还能够继续潜伏下来,不会前功尽弃
后续攻击的主要内容:
  ➢ 重要信息收集:攻击者利用获取到的权限和资源,从中分析和收集对攻击者有价值的信息
  ➢ 传送与控制:对于获取到的信息,攻击者需要将其传回到由自己控制的外部服务器上
    ➢ 模拟网络上一些常见的公开协议,并将数据进行加密回传
    ➢ 继续保存部分木马并被长期控制,实现与外部服务器之间的通信
    ➢ 针对一些物理隔离的网络,使用移动介质摆渡的方式进行数据的传送
    ➢ 部分破坏性木马不需要传送和控制就可以进行长期潜伏和等待,并按照事先确定的逻辑条件,触发破坏流程

APT后续攻击-2

➢ 深度渗透
  为了实现对已攻击目标的长期控制,确保在被受害者发现后还能复活,攻击者会渗透周边的一些机器,然后植入木马。但该木马可能处于非激活状态,检测和判断网络上是否有存活的木马,如果有则继续潜伏以避免被检测到,如果没有了,则启动工作
➢ 痕迹清除
  为了避免攻击行为被发现,攻击者还需要做一些痕迹清除工作,主要清除一些日志信息,以躲避一些常规的检测手段等

1.4.8 社会工程学

● 社会工程学(Social Engineering)概念
  ➢ 一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段,取得自身利益的攻击方法
  ➢ 利用了人们的心理特征,通过骗取用户的信任,获取机密信息、系统设置等不公开资料, 为网络攻击和病毒传播创造有利条件
● 社会工程学攻击危害
  社会工程学是入侵手段的最大化体现,不仅能够利用系统漏洞进行入侵,还能够通过人性的弱点进行入侵,当攻击者将恶意钓鱼网络攻击、网页挂马攻击、软件漏洞利用攻击等技术攻击手段与社会工程学融为一体时,传统的网络安全体系将会土崩瓦解。

社会工程学网络攻击方式-1

● 网络环境中常见的社会工程学攻击方式主要有以下几种类型:
  ➢ 网络钓鱼式攻击
  ➢ 密码心理学攻击
  ➢ 收集敏感信息攻击
  ➢ 恐吓被攻击者攻击
  ➢ 反向社会工程学攻击
● 网络钓鱼式攻击
   主要基于人性贪婪以及容易取信于人的心理因素来进行攻击,主要包括以下方式:
    ➢ 利用虚假邮件进行攻击
    ➢ 利用虚假网站进行攻击
    ➢ 利用QQ及微信等即时通信工具进行攻击
    ➢ 利用黑客木马进行攻击
    ➢ 利用系统漏洞进行攻击
    ➢ 利用移动通信设备进行攻击等

社会工程学网络攻击方式-2

密码心理学攻击
  从人们心理入手,分析对方心理现状和变化,从而更快地得到所需要的密码,主要包括以下方式:
  ➢ 针对被攻击者生日或出生年月日的密码破解
  ➢ 针对用户移动电话号码或当地区号进行密码破解
  ➢ 针对用户身份证号码进行密码破解
  ➢ 针对用户姓名或旁边亲友及朋友姓名进行密码破解
  ➢ 针对一些网站服务器默认使用的密码进行破解
  ➢ 针对类似于“1234567”、“abc123”等常用密码进行破解等

社会工程学网络攻击方式-3

收集敏感信息攻击
  通过在QQ、微信、博客等通信平台上收集被攻击者的相关信息,经整理分析后作为实施攻击 的参考和依据,常见的收集敏感信息攻击手段有:
  ➢ 根据搜索引擎对目标收集信息和资料
  ➢ 根据踩点和调查对目标收集信息和资料
  ➢ 根据网络钓鱼对目标收集信息和资料
  ➢ 根据企业人员管理中存在的缺陷对目标收集信息和资料

● 社会工程学网络攻击方式-4

恐吓被攻击者攻击
  攻击者在实施社会工程学攻击过程中,常常会利用被攻击目标管理人员对安全、漏洞、病毒等内容的敏感性,以权威机构的身份出现,散布安全警告、系统风险之类的消息,使用危言耸听的伎俩恐吓、欺骗被攻击者,并声称不按照他们的方式去处理问题就会造成非常严重的危害和损失,进而借此方式实现对被攻击者敏感信息的获取。
反向社会工程学攻击
  指攻击者通过技术或非技术手段给网络或者计算机制造故障,使被攻击者深信问题的存在,诱使工作人员或者网络管理人员透漏或者泄露攻击者需要获取的信息。这种攻击方式比较隐蔽,危害性较大,而且不容易防范。

● 社会工程学攻击步骤

  社会工程学攻击在实施前都要完成前期准备工作,通过收集和分析所需要的信息,再确定下一步的控制对象和范围。社会工程学攻击的主要步骤如下:
  ➢ 信息收集:在社会工程学攻击的前期,需要针对具体攻击目标和攻击要求,收集被攻击者的 相关信息。
    ➢ 一方面,社会工程学攻击是一个较为复杂的过程,在攻击之前需要制定详尽的计划,在攻击过程 中需要综合运用各方面的技巧
    ➢ 另一方面,一些常人不太在意的信息(如电话号码、生日、单位的工号等),对于攻击者来说都 可能蕴含着一些可能被利用的有效攻击信息
  ➢ 心理学应用:对于收集到的信息,进行分类汇总和模拟测试,同时构造陷阱,以达到进一步 获取信息并逐步实施攻击的目的。其重要手段包括:诱导、伪装和信任
  ➢ 痕迹清除:与实施技术攻击一样,社会工程学攻击过程中也需要采取相应的方式,避免将攻 击痕迹呈现给被攻击者