ATT&CK系列之持久化篇

        本篇文章主要介绍持久化常用技术和工具。持久化技术可以分为很多类,比如电脑重启后恶意代码仍然能自动启动运行,或者是恶意代码被手动结束后还能通过其他触发条件自动运行起来。

1. 账户操作

1.1 创建额外的云账户

1.2 邮件权限配置

修改或创建邮箱权限,规避邮件检测

1.3 额外的云角色

通过创建新的云角色绑定到现有账户上,实现不创建新账户的情况下更改用户权限

1.4 SSH授权密钥

unix类系统配置authorized_keys文件,实现免密登录。windows系统也可以使用凭证管理配置免密登录

1.5 绑定设备

在使用网络身份验证的多因素身份验证账户下绑定新的设备,实现登录

1.6 额外的容器集群角色

2. BITS任务

使用bitsadmin.exe下载恶意软件,创建定时任务

3. 启动或登录后自动执行的程序

3.1 注册表启动项,自启动文件夹

3.2 身份验证注册表配置项

HKLM\SYSTEM\CurrentControlSet\Control\Lsa\

3.3  时间提供者配置项

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\TimeProviders\

3.4 windows登录帮助dll

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\ 

3.5 安全支持提供者

HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages

3.6 可加载内核模块

3.7 PList文件

3.8 LSASS驱动

3.9 修改快捷方式

3.10 端口监控配置

HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors

3.11 打印处理配置

HKLM\SYSTEM\[CurrentControlSet or ControlSet001]\Control\Print\Environments\x64\Print Processors\[user defined]\Driver

3.12 XDG自启动项

3.13 Active Setup

HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\

3.14 登录项

mac系统登录后自运行配置

4. 启动或登录后自动执行的脚本

4.1 登录脚本

HKCU\Environment\UserInitMprLogonScript

4.2 登录hook

使用defaults工具劫持plist文件

4.3 网络登录脚本

使用组策略管理配置网络登录脚本

4.4 RC脚本

4.5 开始项

5. 浏览器扩展插件 

6. 实现的客户端软件

SSH客户端,FTP客户端,email客户端,浏览器

7. 创建新账户

7.1 本地账户

7.2 域账户

7.3 云账户

8. 创建或修改系统进程

8.1 登录代理

/System/Library/LaunchAgents/Library/LaunchAgents, and ~/Library/LaunchAgents

8.2 系统服务

类unix,修改.service文件

8.3 windows服务

使用sc.exe操作

8.4 LaunchDaemons

/System/Library/LaunchDaemons/ and /Library/LaunchDaemons/

8.5 容器服务

使用docker或 podman

9. 事件触发执行

9.1 更改文件默认关联程序

9.2 Screensaver

9.3 Wmi事件订阅

9.4 Unix配置修改

9.5 中断信息

9.6 LC_LOAD_DYLIB

9.7 netsh帮助dll

 HKLM\SOFTWARE\Microsoft\Netsh.

9.8 组合键启动的辅助功能

按下shift键五次时启动的sethc.exe,以及按下Windows+U组合键时启动C:\Windows\System 32\utilman.exe

9.9 AppCert DLLs

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\

9.10 AppInit DLLs

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows

9.11 应用补偿

windows应用程序兼容的基础方案,结合dll注入等技术,可以实现恶意代码自启动

  • %WINDIR%\AppPatch\sysmain.sdb 
  • hklm\software\microsoft\windows nt\currentversion\appcompatflags\installedsdb

9.12  镜像文件劫持

通过注册表的配置,可以实现在用户双击某个或某类应用程序前先执行某个应用程序

HKLM\SOFTWARE{\Wow6432Node}\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

9.13 PoweShell配置脚本

powershell启动前会做一下环境相关的配置,会执行到配置脚本,通过修改配置脚本,可以实现恶意代码的自启动

9.14 事件监控守护进程

操作系统某类事件发生时会根据/etc/emond.d/rules/下的配置文件执行/sbin/emond下的程序

9.15 COM组件注入

通过修改注册表配置,替换现有的系统提供的com组件

9.16 安装包

利用安装包执行流程,拷贝,安装恶意程序,或执行恶意行为

10 提供外部连接的远程服务

利用一些提供外部连接的远程服务,如windows桌面管理,VNC,VPN

11 劫持执行流

11.1 利用dll的搜索顺序

11.2 dll侧加载

修改合法程序加载的dll文件,利用白签名规避安全软件的检测

11.3 Dylib劫持

11.4 可执行安装程序文件权限不足

使用安装程序释放恶意程序替换合法文件

11.5 动态链接器劫持

链接器在链接可执行程序时会按照配置的环境变量寻找库代码,通过修改环境变量的值,让链接器链接恶意库代码

11.6 Path环境变量劫持

执行某个程序时如果没有指定绝对路径,操作系统会选择path环境变量指定的路径下的可执行程序,通过调整不同路径的先后顺序,可以劫持将要运行的程序

11.7 应用搜索路径劫持

执行某个程序时如果没有指定绝对路径,操作系统会先选择当前路径下的同名程序,然后时path环境变量指定的路径下的可执行程序,通过将恶意程序放置在合法应用的相同目录下,可以劫持将要运行的程序

11.8 未用引号包裹的应用路径

执行没有程序时,如果他所在路径中包含特殊字符,比如空格时,程序的绝对路径需要用双引号包裹起来,如果没有执行双引号,windows在解析绝对路径时会截取到特殊字符前,这就会发生劫持

11.9 服务程序的文件权限不足

用恶意程序替换自启动的合法服务的可执行文件

11.10 服务注册表项的权限不足

服务的相关配置都保存在注册表中,如果有权限配置不当,攻击者可以通过修改服务的可执行程序的路径,劫持服务

11.11 COR_PROFILER 

.net的程序在使用CRL时会按COR_PROFILER环境变量配置寻找要加载的dll

11.12 内核回调表

GUI程序中包含内核回调表,通过修改内核回调表的值,实现控制流劫持

11.13 AppDomainManager

.net程序使用AppDomainManager管理加载的程序集,创建恶意的AppDomainManager,通过环境变量或配置文件的配置,可以实现先于.net程序执行恶意代码

12 将恶意代码植入的镜像中

创建并上传容器的恶意镜像,如docker镜像,使用恶意镜像创建的容器可以自动执行恶意程序

13 修改身份验证的过程

13.1 域控制器验证

通过对域控制器的LSASS注入,创建密钥

13.2 密码过滤dll

注册恶意的密码过滤校验dll

13.3 可插入身份验证模块

通过补丁pam_unix.so文件

13.4 网络设备身份验证

通过补丁系统镜像

13.5 可逆加密

AllowReversiblePasswordEncryption 属性配置

13.6 多因子授权

禁用MFA或劫持MFA执行流程

13.7 混合身份

13.8 网络提供者dll

注册恶意的网路提供者dll

13.9 条件访问策略

14 Office应用程序启动项

14.1 Office的模板宏

每次office启动都会加载模板宏,向模板中注入恶意的vb代码可以实现持久化

14.2 Office测试相关dll

每次启动都会加载指定注册表下配置dll

  • HKEY_CURRENT_USER\Software\Microsoft\Office test\Special\Perf
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Office test\Special\Perf

14.3 自定义Outlook表单

14.4 Outlook主页

14.5 Outlook自定义规则

14.6 Add-ins

15 电源管理

通过修改电源管理相关程序保持主机一直处于运行状态

16 先于操作系统的启动

16.1 系统固件

修改系统固件比如BOIS,UEFI等

16.2 组件固件

16.3 Bootkit

修改MBR,VBR等数据,执行恶意代码

16.4 ROMMON

16.5 TFTP启动

利用网络引导启动,加载恶意镜像

17 计划任务

17.1 At

17.2 Corn

17.3 schtasks

17.4 系统定时器

17.5 容器编排作业

18 服务器端软件组件

18.1 数据库存储过程

18.2 邮件传输代理

18.3 web shell

对外提供服务的网站包含的,可以在网页直接执行命令

18.4 IIS组件

18.5 远程桌面服务dll

修改远程桌面服务加载的dll

HKLM\System\CurrentControlSet\services\TermService\Parameters\

19 激活信号

19.1 端口敲击

发送一系列指定包,完成激活流量,触发恶意行为

19.2 网络包过滤

匹配过滤规则,触发恶意行为

20 合法的账户

20.1 默认账户 

20.2 域账户

20.3 本地账户

20.4 云账户

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值