ATT&CK 防御规避

0x01 Bypass UAC

0x02 令牌冒充/盗窃

  • windows token 是一个用于描述进程线程安全上下文的对象。包含用户登录信息和权限
    • 用户SID
    • 组SID
    • 登录SID
  • 使用DuplicateToken(Ex)复制令牌,然后使用ImpersonateLoggedOnUser模拟用户登入,然后利用SetThreadToken模拟的令牌分配给线程,更多的是进行权限提升。

  • https://www.secpulse.com/archives/131423.html

0x03 使用令牌创建进程

  • 使用OpenProcessToken打开进程的Token,通过DuplicateToken(Ex)复制令牌,并使用CreateProcessWithTokenW把复制的令牌用于创建在模拟用户的安全上下文下运行的新进程。这对于在其他用户的安全上下文下创建新进程很有用。
  • 检测:基于windows API的安全基线,以及windows 日志审计
  • https://www.secpulse.com/archives/131423.html

0x04 制作和模拟令牌

  • 如果对手有用户名和密码但用户未登录系统,则对手可以使用该功能为用户创建登录会话LogonUser。该函数将返回新会话访问令牌的副本,对手可以使用SetThreadToken该令牌将令牌分配给线程。

0x05 PPID 欺骗

0x06 BITS Jobs

  • 后台智能传输服务,某种意义上的LOLBin,经常用于下载和持久化

0x07 反调试器

0x08 加密文件

  • 加密文件

0x09 文件目录权限修改

  • 修改文件ACL,阻止安全工具运行
    • cacls %PROGRAM_DATA%; Trusteer\Rapport\store\exts\RapportCerberus\baseline\RapportGH.dll” /T /E /C /P user:perm 即替换用户访问权限

0x10 隐藏文件和目录

  • 文件隐藏 attrib +h
  • windows API

0x11 隐藏用户

  • 攻击者可以将特定用户的HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList注册表键值设置为0,以防止该用户被列在登录屏幕上。
  • 影子账户 net user user1$ pass /add

0x12 隐藏窗口

  • ProcessWindowStyle.Hidden

0x13 NTFS文件属性

0x14 VBA Stomping

0x15 进程参数欺骗

0x16 劫持进程流程

  • Dll搜索顺序劫持
  • Dll侧加载
  • PATH环境变量顺序劫持
  • COR_PROFILER
  • 内核回调表

0x17 禁用和修改工具

  • 禁用AMSI,windows Definder,EDR,防火墙,

0x18 禁用Windows日志记录和命令历史记录

  • 使用Stop-Service -Name EventLog禁用EventLog
  • 使用auditpol关闭用户登录的审核记录

0x19 禁用和修改系统防火墙

  • netsh firewall set opmode mode=disable
  • netsh advfirewall set allprofiles state off

0x20 安全模式启动

0x21 降级攻击

  • 为了Bypass AMSI,可以降级使用Powershell2

0x22 清除windows 日志

0x23 清空命令记录

  • 删除$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

0x24 文件删除

  • wevtutil cl system
  • wevtutil cl application等等

0x25 间接命令执行

  • 例如WMI创建进程

0x26 伪装

  • 无效代码签名
  • 使用RTLO伪装字符串和/或文件名
  • 重命名系统实用程序
  • 伪装任务或者服务
  • 匹配合法名称和位置
  • 双文件拓展名

0x27 混淆文件或信息

  • 二进制填充
  • 软件打包
  • 隐写
  • 动态API解析

0x28 反射代码加载

  • 反射代码加载

0x29 系统二进制代理执行

  • 编译好的HTML 即HTA
  • 控制面板
  • MSIEXEC
  • Regsvc32
  • Rundll32

0x30 模板注入

  • office模板注入

0x31 虚拟化/沙箱规避

0x32 XSL脚本处理

  • XSL标准包括对各种语言的嵌入式脚本的支持
  • 缺点:机器默认不安装msxsl.exe

0x33 MSBuild

0x34 LoLbin

0x35 经常使用的技术

  • 伪装
  • 混淆文件和信息
  • 隐藏文件/用户
  • 系统二进制代理执行
  • 禁用和修改工具
  • 清除windows 日志/历史命令
  • 间接命令执行