0x01 Bypass UAC
0x02 令牌冒充/盗窃
- windows token 是一个用于描述进程线程安全上下文的对象。包含用户登录信息和权限
- 用户SID
- 组SID
- 登录SID
使用
DuplicateToken(Ex)
复制令牌,然后使用ImpersonateLoggedOnUser
模拟用户登入,然后利用SetThreadToken
模拟的令牌分配给线程,更多的是进行权限提升。
0x03 使用令牌创建进程
- 使用
OpenProcessToken
打开进程的Token,通过DuplicateToken(Ex)
复制令牌,并使用CreateProcessWithTokenW
把复制的令牌用于创建在模拟用户的安全上下文下运行的新进程。这对于在其他用户的安全上下文下创建新进程很有用。 - 检测:基于windows API的安全基线,以及windows 日志审计
- https://www.secpulse.com/archives/131423.html
0x04 制作和模拟令牌
- 如果对手有用户名和密码但用户未登录系统,则对手可以使用该功能为用户创建登录会话LogonUser。该函数将返回新会话访问令牌的副本,对手可以使用SetThreadToken该令牌将令牌分配给线程。
0x05 PPID 欺骗
- 设置进程线程属性,利用
UpdateProcThreadAttribute
设置PROC_THREAD_ATTRIBUTE_PARENT_PROCESS
父进程属性为父进程的Handle
即可。 - http://hacky.ren/2022/11/25/Bypass%20EDR%20and%20AV/
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文件属性
ADS 即alternate data streams(交换数据流)
0x14 VBA Stomping
- https://forum.butian.net/share/1570
- pcode2code工具可以获取隐藏的code
0x15 进程参数欺骗
- 修改
PEB.ProcessParameters.CommandLine
- https://wbglil.gitbook.io/cobalt-strike/cobalt-strike-yuan-li-jie-shao/can-shu-qi-pian
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
- .NET 4中引入的MSBuild内联任务功能允许将C#代码插入到XML项目文件中。
- http://red.y1ng.org/0x4_执行/T1127-win-基于白名单Msbuild.exe执行payload/
- 利用msbuild.exe绕过应用程序白名单安全机制的多种姿势
0x34 LoLbin
0x35 经常使用的技术
- 伪装
- 混淆文件和信息
- 隐藏文件/用户
- 系统二进制代理执行
- 禁用和修改工具
- 清除windows 日志/历史命令
- 间接命令执行