渗透阶段往往是最受人关注的阶段,攻击者在这个阶段可能会使用大量漏洞利用技术。【此时防守方发出f**k 0day的感叹】。毫无疑问,挖掘0day进行入侵是最性感的渗透技术。在计算机网络防护领域,尤其是针对APT攻击,我们还是有机会针对0day攻击进行防御的。
尽管针对终端应用程序的漏洞利用是如今备受关注的,但我们知道针对Web服务器应用程序(如ColdFusion等)的利用仍然很常见,还存在其他类型的漏洞,例如ShellShock(CVE-2014-6271、CVE-2014-7169)和Heartbleed(CVE-2014-0160)。广泛存在的漏洞可能会被高级持续性威胁(APT)的攻击者利用,但很少成为他们工具包的一部分,原因有两个:
比起互联网暴露的服务器,APT组织对用户计算机中的数据可能更感兴趣
漏洞的公开纰漏极大的缩短了漏洞的利用周期
不过,还有一种非常重要的渗透类型——针对人的渗透。你可以给服务器和软件打补丁,但是你没办法给人打补丁。尽管通过安全意识培训教育可以降低员工被攻击成功的可能。但我们依然无法避免,当人成为攻击目标时,几乎总是会造成成功的入侵事件发生。
渗透-投递循环例子
1、攻击者发送一个带有超链接的Email给目标用户。超链接指向一个攻击者控制的网站。
2、用户打开了电子邮件相信了邮件内容的话术并点击了链接
3、用户的浏览器执行了恶意代码
安装阶段是指攻击者在失陷主机上执行的任何权限维持相关的操作。常见的权限维持手段会有以下特征:
创建文件的名称
创建文件的路径
创建或修改的注册表路径
从其他站点下载的用于权限维持的资源URL
在攻击组织在失陷主机上使用下载器等方式从外部网站获取工具时,这个外部站点可以作为我们追踪和分析攻击组织的特征之一。
在SANS阅读室https://www.giac.org/paper/grem/3129/detailed-analysis-advanced-persistent-threat-malware/127483中,Frankie Li展示了恶意软件dg003.exe在安装阶段的一些动作:
查找本地计算机使用的防病毒程序进程
混淆自身
伪装成系统文件
除此之外dg003.exe文件存在其他技术点,例如
它在启动时会检测程序是否从命令行启动并带有参数Update或Special以检测是否运行在OllyDbg调试环境下;
检测\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下是否存在卡巴斯基、ESET、360、BItDefender、相关注册表项;
创建名为VistaDLLProRUNNING的互斥体;
将自身拷贝到c:\documents and settings\<user>\local settings\application data\w2help.PNF
创建名为msvcr.dll的文件并修改其MAC时间(创建、访问、修改时间)
将netstat.exe复制到C:\Windows\System32\13605
将SFC_OS.dll复制到C:\Windows\inf\1.txt,SFC_OS.dll文件是windows文件保护机制的一部分组件,这样恶意软件可以绕过WFP机制,修改netstat.exe以隐藏与115.x.x.249的通信。
这里需要注意的是,有些防御者只会在终端防护层面使用一些IoC进行检测,而忽略恶意软件行为这样更本质的东西。因此这样做无法消除入侵,而是与攻击者玩“打地鼠游戏”。
远控阶段是指失陷主机与攻击者建立的任何通信手段,我们需要关注的内容包括
攻击者使用的后门类型,例如RAT木马
后门本身的MD5值
后门通信使用的协议,例如HTTP
利用协议搭建隧道的手法或者自定义协议
用于通信的基础设施,例如C2的IP地址
后门的行为,例如心跳周期、数据传输方式
我们将重点关注最后一点,因为在区分不同C2工具、开发检测方式、评估影响时十分重要。
1、连通性检查
这种行为是指后门程序在运行时首先会检查自身与互联网的连通性,例如访问百度、谷歌等常见网站。
2、心跳通信
这种行为是攻击者控制端为了确认后门程序的运行状态而实现的一种周期性通信机制
3、交互方式
这包括执行shell命令、文件上传与下载,以及其他定制化的指令,例如加载mimikatz等。
C2通信例子
这是一个使用http协议进行C2通信的例子,我们可以看到在响应的HTML数据中存在一个base64编码的字符串,解密后为s:1
这个阶段通常指攻击者获取到系统权限后的操作。普遍意义上,攻击者建立C2通信后的所有行为我们都认为属于达成目标阶段的操作。例如:
命令执行
在失陷系统或失陷网络中传输攻击工具(提权工具、键盘记录器、密码HASH窃取工具、后门)
窃取数据和文件
篡改数据和文件
最常见的情况下,攻击者往往喜欢使用运维人员常用的工具来进行操作,除了提权操作外,其他操作可能和正常的运维行为相似。只有攻击者自己知道目标是否达成,因此在攻击者建立C2通信后并不意味着他们的操作结束了,如果我们响应的速度够快,就可以及时制止攻击者达成目标。
从防御的角度看,我们往往只能推测攻击者的最终目标,在攻击者访问敏感数据甚至传输敏感数据时,我们往往因为缺少数据源而无法检测到这个行为。这个阶段的攻击者行为通常有:
使用C2通道上传下载文件,从NetFlow上看失陷主机的流量远远高于日常的流量大小。
攻击者在失陷系统上连续访问大量文件、从其他失陷系统将敏感数据复制到一个单独的失陷系统中\创建加密的压缩包文件。
目标达成的操作例子
例子来源于Mandiant公司的APT1报告,在这个例子中,攻击者创建了一个bat批处理文件用于打包敏感文件,在这个脚本中我们可以看到攻击者使用的密码,这个密码就可以作为攻击组织的特征之一。
阅读报告原文可访问:https://www.fireeye.com/content/dam/fireeye-www/services/pdfs/mandiant-apt1-report.pdf