PowerShell将打开gzip流
Web搜索PowerShell将打开gzip流,powershell,Powershell,Web搜索$s=New Object IO.MemoryStream(,[Convert]::FromBase64String())为类似事件显示了大量的Pastebin,但我自己不知道如何解码它。我解码的原始base64 param( [Parameter(Mandatory=$True)] [string]$b64 ) [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("$b64"))
$s=New Object IO.MemoryStream(,[Convert]::FromBase64String())
为类似事件显示了大量的Pastebin,但我自己不知道如何解码它。我解码的原始base64
param(
[Parameter(Mandatory=$True)]
[string]$b64
)
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("$b64"))
这就给了我:
$s=New-Object IO.MemoryStream(,[Convert]::FromBase64String("Encrypted-String"))
IEX (New-Object IO.StreamReader(New-Object IO.Compression.GzipStream($s,[IO.Compression.CompressionMode]::Decompress))).ReadToEnd();
我一直不知道如何使用PowerShell解压“加密字符串”,以便分析发生了什么
我看过类似的帖子,但没有任何东西能回答我自己如何解码的问题。非常感谢您提供的任何帮助。很抱歉设置了格式,我仍在学习在此处发布问题/答案的细微差别。如果我的问题不清楚,我也很抱歉,但今天的研究很成功(过去一年我一直在努力解决这个问题) 我找到了一个链接(),它为我提供了构建此脚本所需的足够信息。感谢Ingo Karstein的博客以及所有浏览和要求澄清的人 gzip流是需要进一步分析的结果的一部分,我无法理解 我在Temp中创建了一个文件夹,其中包含我从中获取可疑批处理文件的计算机的名称,该文件调用编码的powershell命令;删除除base64代码以外的所有代码,并将其重命名为.txt文件。然后我用计算机名和文件名运行下面的代码,查看攻击者在做什么。对我有效的答案是:
(
[Parameter(Mandatory=$True)]
[string]$HostIP,
[Parameter(Mandatory=$True)]
[string]$file
)
New-Item C:\Temp\$HostIP\Results -ItemType Directory
$b64 = Get-Content C:\Temp\$HostIP\$file.txt -Raw
Write-Host
$results = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("$b64"))
$results | Out-File C:\Temp\$HostIP\Results\unicode_$file.txt
$ec64 = Get-Content C:\Temp\$HostIP\Results\unicode_$file.txt
$eb64 = $ec64|%{$_.split('"')[1]}
$data = [System.Convert]::FromBase64String("$eb64")
$ms = New-Object IO.MemoryStream
$ms.Write($data, 0, $data.Length)
$ms.Seek(0,0) | Out-Null
$cs = New-Object IO.Compression.GZipStream($ms, [IO.Compression.CompressionMode]::Decompress)
$sr = New-Object IO.StreamReader($cs)
$t = $sr.readtoend()
$t | Out-File C:\Temp\$HostIP\Results\decompressed_$file.txt
$dcb64 = Get-Content C:\Temp\$HostIP\Results\decompressed_$file.txt
$dc64 = $dcb64|%{$_.split('"')[1]}
$utf = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("$dc64"))
$utf | Out-File C:\Temp\$HostIP\Results\utf8_$file.txt
$asc = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("$dc64"))
$asc | Out-File C:\Temp\$HostIP\Results\ascii_$file.txt
$utf8 = "C:\Temp\$HostIP\Results\utf8_$file.txt"
$ascii = "C:\Temp\$HostIP\Results\ascii_$file.txt"
(Get-Content "$utf8") -replace "`0", "" | Set-Content "C:\Temp\$HostIP\Results\utf8_no-null_$file.txt"
(Get-Content "$ascii") -replace "`0", "" | Set-Content "C:\Temp\$HostIP\Results\ascii_no-null_$file.txt"
“您想实现什么?您想问如何使用PowerShell解压gzip压缩字符串吗?gzip仅在标题中提到,而您在问题正文中说的是base64。