在后渗透阶段,通常会需要用到远程下载。通常,比如在Windows上用一些LOLBINS。但AV 和 EDR 等防御软件会监控进程执行,当一些特定进程和命令行参数的组合被视为有害时检测或阻止它们。
例如,Windows 内置的命令行工具certutil
经常被滥用,在获得初始立足点后,它被用作下载外部有效载荷的手段。用某数字软件举例,如果发现命令行参数暗示有人试图下载文件,就会阻止certutil
执行。但事实证明,它使用的检测逻辑存在缺陷:
再比如卡巴斯基环境下转储哈希,命令执行绕过:
完整参考:https://www.bilibili.com/video/BV1KEpceFEsw/?spm_id_from=333.999.0.0&vd_source=d0c5cfc4008c14d0c490e16cf55f5b65
为什么可以这样?
还是历史原因,在 Unicode 编码标准诞生之前,大多数程序都使用 ASCII 编码。当时的编码范围有限,无法涵盖全球各种语言和符号。然而,随着技术的发展,现代程序逐渐转向 Unicode 编码,它能够表示几乎所有已知的字符和符号。然而,这种转变并非一蹴而就,导致了很多旧程序在处理字符编码时出现兼容性问题。
为了应对这种不兼容性,一些早期的程序试图通过过滤掉某些非 ASCII 字符,或者将它们转换为 ASCII 等效字符来解决问题。这种处理方式可能导致不同的命令行参数被误认为是相同的,尽管实际传递给进程的数据存在差异,但由于字符的转换或过滤,最终的执行效果和结果往往没有区别。
信 安 考 证
CISP、PTE、PTS、DSG、IRE、IRS、NISP、PMP、CCSK、CISSP、ISO27001... |
原文始发于微信公众号(老鑫安全):红队技巧分享:躲避现代检测系统的命令执行
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论