ATT&CK持久化

  • Persistence学习总结

0x01 WLL加载项

  • %AppData%\Microsoft\Word\STARTUP

0x02 XLL加载项

  • 保存在%AppData%\Microsoft\AddIns
  • XLL文件导出函数名必须为”xlAutoOpen”
  • HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options “OPEN”属性,值为”/ R 任意文件名.xll”

0x03 WORD VBA模板

  • 保存路径为%AppData%\Microsoft\Templates

0x04 Execel VBA模板设置屏幕保护程序

  • 文件格式为”.xla”或者”.xlam”格式
  • 保存路径为%appdata%\Microsoft\Excel\XLSTART

0x05 PowerPoint VBA模板

  • 文件格式为”.ppam”或”.ppa”
  • 保存位置为%appdata%\Microsoft\AddIns
  • 设置注册表HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\PowerPoint\AddIns\<任意名字>
  • 新建DWORD值 名字为”Autoload”, 值为1
  • 新建String值,名字为”Path”, 值为文件路径

0x06 Office test

  • HKEY_CURRENT_USER\Software\Microsoft\Office test\Special\Perf
  • 新建默认名称(Default)的Key,值为文件路径

0x07 针对Word Hunt 思路

    1. ProcessMonitor操作设置为”IRP_MJ_DIRECTORY_CONTROL”,结果设置为”NO SUCH FILE” 可以Hunt到诸如
      1
      2
      "C:\Program Files (x86)\Microsoft Office\root\VFS\SystemX86\EhStorShell.dll"
      "C:\Program Files (x86)\Microsoft Office\root\VFS\SystemX86\ntshrui.dll"
    1. ProcessMonitor操作设置为”RegQueryValue” ,结果设置为”NAME NOT FOUND”,路径起始设置为”HKCU\Software\Microsoft\Office”,可以Hunt到如
      1
      HKCU\Software\Microsoft\Office\16.0\Word\Options\STARTUP-PATH

COM劫持思路

1
2
3
[1] 增加缺少的CLSID的路径
[2] 修改原有的CLSID加载的程序
[3] 修改原有的CLSID加载的路径

参考

常见持久化技术简介

  • 利用启动项(文件目录)实现持久化

    1
    2
    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
    C:\Users\[Username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  • 利用启动项(注册表)实现持久化

    1
    2
    3
    4
    5
    [1] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    [2] HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    [3] HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
    [4] HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    [...]
  • 利用Windows服务实现持久化

    1
    [1] sc create servicename binpath ...
  • 利用计划任务实现

    1
    2
    3
    [1] schtasks /create ...
    [2] 利用C++ COM组件实现
    [3] Ref:[VC++创建计划任务的若干方式] https://blog.csdn.net/chantsky/article/details/82904942
  • 利用BITS实现

    1
    2
    [1] 后台智能传输服务
    [2] bitsadmin /create
  • LSA 身份认证包

    1
    2
    [1] 系统启动中,本地安全机构(LSA)会启动LSA身份认证包DLL
    [2]
  • 用户登入初始化程序

    1
    2
    3
    4
    [1] windows 登录之时,winlogon.exe进程会依赖注册表加载和执行.dll文件和.exe文件。
    [2] HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Winlogon\Userinit 用户登录时执行的用户初始化程序
    [3] HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Winlogon\Shell 用户登录时执行的系统 shell
    [4] HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify 处理 Winlogon 事件的通知包 DLL
  • 登录脚本

    1
    2
    [1] windows 允许在登录到系统之时运行脚本
    [2] 在`HKCU\Environment`下新建名为 `UserInitMprLogonScript`的项,值为程序路径
  • 影子账户

    1
    2
    [1] 新建用户net user username1$ password1 /add
    [2] 添加到管理员组net localgroup administrators username1$ /add
  • 修改默认文件关联

    1
    2
    [1] 先在`HKEY_CLASS_ROOT`寻找目标的文件格式
    [2] 然后在`HKCR\[filetype]\shell\open\command`的默认项中添加路径
  • 设置屏幕保护程序

    1
    2
    3
    4
    5
    6
    7
    [1] 在`HKEY_CURRENT_USER\\Control Panel\\Desktop`下添加
    [2] SCRNSAVE.EXE:路径
    [3] ScreenSaveActive = 1表示屏幕保护是启动状态,0表示表示屏幕保护是关闭状态
    [4] ScreenSaverTimeout = 指定屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900
    ```
    * WMI事件订阅

[1] EventFilter 事件筛选器
[2] EventConsumer 事件消费者
[3] FilterToConsumerBinding 绑定关系
[4] 注:微软文档有错误,所以导致一众大佬复现不了

1
2
* 辅助功能(Shift后门)

[1] 貌似windows xp 可以直接使用

1
2
* AppCert DLL

[1] 只要进程中调用CreateProcess、CreateProcessAsUser、CreateProcessWithLoginW、CreateProcessWithTokenW和WinExec函数,就会依据HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\加载所记录的dll文件
[2] 在默认键值下添加路径即可
```