QakbotのC2通信先について(2022/6、2022/9時点)

はじめに

この記事の内容は2022年6月および2022年9月時点での解析で確認したQbotについての記事です。

Qakbotのリソースセクション

Qakbotをアンパックした後のPEファイル内には二つのリソースが含まれている。

アンパック後のQbotのリソース

このリソースにはQbotのキャンペーンIDとC2通信先がRC4で暗号化された状態で含まれている。サイズが小さいほうのリソースにキャンペーンIDが、サイズが大きいほうのリソースにC2通信先が含まれている。

このリソースの復号の処理は次の通りである。

Qbotのリソースの復号処理

リソース全体をRC4で復号した後、復号したデータの20バイト以降のSHA1ハッシュ値と復号したデータの20バイトまでのデータを比較している。

RC4の復号に使われる鍵は、検体内に暗号化されて格納されている文字列をSHA1でハッシュ計算したものである。2022年6月や9月の検体では次の文字列であった。(ハッシュ値2fbafdc0451de65322a9aee65f28be319ad9574e)

\System32\WindowsPowerShel1\v1.0\powershel1.exe

Qbotのリソース復号の鍵

C2のリソースを復号すると次のようなデータとなる。0x01で区切られて、「IP」、「ポート」の順番となっている。

QbotのC2のリソース復号

検体のC2はこのように抽出可能だが、検体を外に出してもよければ「Tria.ge」や「CAPE」などのオンラインサンドボックスを活用するのが早い。

厳格な環境であればこの記事の内容をもとにスクリプトを組むのは容易いだろう。私が作成したスクリプトは以下に置いておくので必要に応じて参考・使用してもらえれば

gist.github.com

検体のハッシュ値 (2022/10/5追記)

今回のブログを書く上で確認した検体のハッシュ値は次の通り

  • 2022/6の検体:117a60cb0cde4199a78f99d4f6eb5f50
  • 2022/9の検体:3fd6ff929bb62358cee961d45ff1471d