hello,在我之前的文章中,我详细的介绍了如何从本地管理员手动获取system权限的shell,假设你已经拥有了目标机器的权限,那么在渗透测试评估的后期将会变得更加有趣。

这篇文章对渗透测试的前期会更有用,因为AMSI(Anti Malware Scan Interface)会对获取shell,或者当以普通用户的权限运行post-exploitation工具时造成一定的麻烦。

什么是 AMSI

AMSI即代表"反恶意软件扫描接口"。
正如它的名字所示,它的工作是扫描,检测和阻止恶意行为。

还是不知道这是什么?看看这张截图:

显然,如果您有在Windows环境中进行渗透测试的经验,那么几乎所有已知的公开脚本都会出现这样的错误,就像Nishang、Empire、PowerSploit和其他强大的PowerShell脚本中使用的一些脚本一样。

AMSI 是怎么工作的?

AMSI 使用"基于字符串"的检测措施来确定PowerShell代码是否为恶意代码。

来看看例子:

是的,"amsiutils"一词是被禁止的。如果你的名字中有这个词,我的朋友,那么你对于AMSI来说就是个恶意的人。

如何绕过字符串检测?

每个人都知道字符串检测是很容易绕过的,只是不使用被禁用的字符串。使用编码或将其分割成块,然后重新拼接来解决这个问题。

这里有三种方法可以执行"banned"的代码而不会被阻止。

仅仅将字符串一分为二就足以欺骗这种检测方法。我们经常在混淆中看到这个,但在大多数情况下,这种方法可能会失败。

在某些情况下,只要将被禁用的字符串进行base64编码就足够绕过它了。

当然,您可以使用XOR来欺骗amsi并在运行时将字符串解码到内存。这将是更有效的方法,因为它需要更高的抽象来检测它。

所有这些技术都是为了"绕过"字符串检测,但我们不希望这样。我们希望以初始状态执行脚本,即它们被AMSI拦截前的状态。

通过memory patching 来bypass AMSI

点击收藏 | 2 关注 | 2
  • 动动手指,沙发就是你的了!
登录 后跟帖