可以使用Add将C#代码包括在PowerShell脚本中并执行.据微软称:
“Add编译指定的源代码并生成内存中包含新的.NET框架类型的程序集.”
这是怎么回事?此方法是否在磁盘上留下任何工件,如果是,防病毒是否检测和防止此方法(前提是编译的二进制文件将被标记为恶意)?传统上,防病毒不检测或防止PowerShell恶意软件。
发布于 2017-10-22 17:28:11
PowerShell在内存中编译程序集。因此,在磁盘上不会看到任何工件,因为我们讨论的是动态内存。如果PowerShell被错误终止,您可能会在崩溃日志中找到它的唯一位置。
不是的。这种方法本质上并不是恶意的,但是,您可以在powershell中组装特定的库,从而允许威胁参与者任意运行恶意软件。
例如,
威胁Actors使用Invoke表达式cmdlet作为命令运行字符串。理论上,您可以在PowerShell中组装和执行字节数组。请参见此堆栈溢出帖子的示例:
https://stackoverflow.com/questions/2977135/run-program-from-byte-array
这篇MSDN文章解释了Web对象以及如何下载字符串:https://msdn.microsoft.com/en-us/library/system.net.webclient.downloadstring(v=vs.110).aspx,然后可以使用IEX或调用-表达式执行下载的字符串。
如果您的问题是如何阻止此类活动发生在您的网络上,最好的做法是使用端点威胁检测或开始使用AppLocker。我强烈建议AppLocker政策或如果你有预算碳黑防御。
此外,你最好得到碳黑反应或红色斗篷AETD来检测这一活动。没有AV会阻止PowerShell在您的主机上运行。PowerShell不是恶意的,它的cmdlet或方法也不是恶意的。然而,“红斗篷”和“炭黑”可以使用基于模式的指示符来检测PowerShell运行的特定命令。
https://security.stackexchange.com/questions/170955
复制相似问题