Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell将打开gzip流_Powershell - Fatal编程技术网

PowerShell将打开gzip流

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"))

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("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。