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

 

posted @ 2021-01-20 14:46  mio_yy  阅读(213)  评论(0)    收藏  举报