huaweictfre题目
re123
首先用die查看

知道是一个chm文件。
然后用windows自带的hh.exe反编译这个文件。
命令为:HH.EXE -decompile 目标文件
得到关于这个文件的.htm文件。

可以看到那一段BASE64就是要用powershell执行的命令的BASE64加密后,所以我们BASE64解密它得到
Invoke-Expression $(New-Object IO.StreamReader ($(New-Object IO.Compression.DeflateStream ($(New-Object IO.MemoryStream (,$([Convert]::FromBase64String('TY5BC4IwGIbvgv9hjB2McJhEhNChJMGTkN2qg7qvFHQT/bL575vpoV2/53n2skJJBInkQG5xwqOqhkcQXCATx7q+gkaHsvYj7kIVvCgburItVgm9MTxbVB5LATp5OlQvb6IMV0LdQvdPpu+8x66SL2eOrMl+Ck7naUA69ggND5UcoEOzI+pUc8p62G3TRZubv34K6IbLespADoGR27vv+R7HpqXzt8Q9y0IJI5N8RLCtLw==')))), [IO.Compression.CompressionMode]::Decompress)), [Text.Encoding]::ASCII)).ReadToEnd();
在powershell上运行Invoke-Expression后的内容得到:
$content = [IO.File]::ReadAllText("$pwd\doc.chm")//$pwd代表powershell显示的当前路径,需要把题目的.chm文件改名为doc再放在当前显示的目录下
$idx1 = $content.IndexOf("xxxxxxxx")
$helper = $content.Substring($idx1 + 8)
$cont = [System.Convert]::FromBase64String($helper)
Set-Content "$env:temp\2020.tmp" $cont -Encoding byte//$env代表你的环境变量TEMP变量的路径,在那个目录下就可以找到生成的文件
然后创建一个.ps1文件,把这段代码写入里面。再运行这个.ps1文件,就可以得到一个确实MZ头的DLL文件。用ida打开分析

分析得到是DES_ECB加密
from Crypto.Cipher import AES aes_key = 0x16157E2B.to_bytes(4, "little") + 0xA6D2AE28.to_bytes(4, "little") + 0x8815F7AB.to_bytes(4, "little") + 0x3C4FCF09.to_bytes(4, "little") aes_cipher = 0xE799D643453FF4B5.to_bytes(8, "little") + 0x46C42084AA2A1B56.to_bytes(8, "little") aes = AES.new(aes_key, AES.MODE_ECB) a = aes.decrypt(aes_cipher) print(a)
解密得到flag

浙公网安备 33010602011771号