BlueShell は Go 言語により開発されたバックドア型マルウェアで、Github に公開されており、Windows、Linux、Mac OS をサポートしている。現在では原本の Github リポジトリは削除されたものと推定されるが、他のリポジトリから BlueShell のソースコードを確保することができる。説明が記載されている ReadMe ファイルが中国語であることが特徴だが、これは製作者が中国語話者である可能性を示している。

BlueShell が攻撃に使われたものと知られている事例は SparkRAT や Sliver C2 など、Github に公開されている他のマルウェアとは異なり、あまり多くない。しかし、実際の韓国国内の攻撃事例を確認すると、様々な攻撃者が BlueShell を攻撃に使用し続けていることが見受けられる。
AhnLab Security Emergency response Center (ASEC)では BlueShell を利用した APT 攻撃の事例をモニタリングしており、ここでは BlueShell が使用された APT 攻撃の事例をまとめる。直接確認された攻撃事例としては、主に韓国国内の企業の Windows システムを対象としたケースである。だが、Linux システムを対象とする攻撃の中には、韓国国内だけに留まらず、タイの放送局を対象としているものと推定できる事例も確認されている。
1. BlueShell
BlueShell の代表的な特徴の一つは、Go 言語で作成されているという点である。Go 言語は開発難易度が低く、クロスプラットフォームをサポートしている等の複数の長所があるため、プログラムだけでなくマルウェアの作成にも多く使用されている。過去に韓国国内の VPN インストーラーに含まれていた SparkRAT の攻撃事例や[1]中国で作成された遠隔操作ユーティリティである Sunlogin の脆弱性攻撃の事例において使われた Sliver C2 [2]も Go 言語で開発され、Github に公開されているマルウェアである。これだけでなく、APT 脅威グループでもマルウェアの作成に Go 言語を使用する事例が増加しているが、Kimsuky 脅威グループでは Meterpreter をインストールするダウンローダーマルウェアを Go 言語で開発しており、[3] RedEyes (APT37)脅威グループでは Ably サービスを悪用したバックドアを、[4] Andariel 脅威グループでは 1th Troy リバースシェル、Black RAT、Goat RAT、Durian Beacon などの様々なマルウェアを Go 言語で開発している。[5]
機能面から見れば単純な形態のバックドアである BlueShell は、C&C サーバーとの通信に TLS 暗号化をサポートし、ネットワークの検知を回避するものである。攻撃者のコマンドを受け取って実行が可能な機能としては、リモートコマンドの実行、ファイルのダウンロード/アップロード、Socks5 プロキシがある。
コマンド | 機能 |
---|---|
shell | コマンド実行 |
upload | ファイルのアップロード |
download | ファイルのダウンロード |
socks5 | Socks5 プロキシ |

BlueShell は3つの設定データを持っているが、それらは C&C サーバーの IP アドレス、Port 番号、そして待機時間である。一般的にマルウェアの作成時にバイナリにハードコーディングされ、init() 関数で設定データに対する初期化プロセスを行う。

2. Windows バージョン
2.1. Dalbit 脅威グループの攻撃事例
Dalbit グループは中国を拠点とする脅威グループであり、主に脆弱なサーバーを対象に攻撃を行い、企業の内部資料が含まれた情報を窃取したり、システムを暗号化して金銭を要求することが目的である。[6]攻撃対象は主に不適切に管理されている、または最新バージョンのパッチが適用されていない Windows Web サーバーである。このほかにもメールサーバーや MS-SQL データベースサーバーを対象とした攻撃事例も確認されている。
Dalbit グループは初期侵入の段階から権限昇格、内部偵察、ラテラルムーブメントを経て目的を達成するまで、ほとんどのプロセスでオープンなツールを攻撃に使用することが特徴である。実際のコマンドや操作の段階で使用するマルウェアも CobaltStrike、Metasploit、Ladaon、BlueShell など、すべて外部に公開されているツールである。
ここでは、様々な攻撃事例の中から BlueShell が攻撃のプロセスで収集された事例を取り上げる。攻撃者が実際の攻撃で BlueShell を使用したかどうかは確認できていないが、攻撃のプロセスでオリジナルのソースコードのデフォルト C&C サーバーのアドレスに設定された BlueShell マルウェアが収集された。収集されたファイルは x86、x64 アーキテクチャであり、バイナリに含まれているソースコード情報と VirusTotal に収集された時間から、それらのファイルが攻撃者の使用する攻撃ツールの一覧に含まれていたものと推定される。
/root/pentesttools/BlueShell/client.go |
Dalbit 攻撃グループは Web サーバーを対象とした攻撃において主に WebLogic 脆弱性やファイルアップロードの脆弱性を攻撃し、Web シェルをアップロードする方式を使用している。この攻撃事例でも、様々な JSP Web シェルファイルが確認された。

攻撃者は内部偵察のプロセスで Lsass のプロセスダンプツールを利用して資格情報を窃取し、内部ネットワークをスキャンするために fscan ツールを使用した。収集した情報は Impacket ツールを利用したラテラルムーブメントのプロセスで使用されたものと推定される。
Dalbit 脅威グループの最大の特徴は、プロキシツールに FRP(Fast Reverse Proxy)を使用するという点である。攻撃プロセスでは Frpc ツールと設定ファイル、そして別のプロキシツールである Venom が[7](外部サイト、英語および簡体字にて提供)使われた。

2.2. 韓国国内企業を対象とした攻撃事例
上記事例は攻撃プロセスで BlueShell を通常利用した事例ではないが、その後韓国国内の企業を対象とした攻撃で BlueShell が使用された事例が確認された。関連する情報が不足しているため初期流入経路や過去の Dalbit グループと同じ攻撃者かどうかは確認できないが、BlueShell と Frpc が攻撃に同時使用されている点が特徴である。
バイナリに含まれるソースコード情報を見ると、攻撃者は Windows 環境で BlueShell を作成したものと推定される。攻撃プロセスでは2つの BlueShell が確認され、どちらも同じ C&C サーバーと通信を行うが、一つは難読化されている。
D:/skens/SK/BlueShell-master/client.go |
攻撃に使われた Frpc も難読化されており、デフォルトの状態の Frpc ではなく、攻撃者が自らカスタマイズした形である。一般的に Frpc はファイル形式の設定データを読み込んで使用するが、攻撃に使われた Frpc は暗号化された設定データを実行中のメモリ上で復号化して使用する。

3. Linux バージョン
3.1. 韓国国内およびタイが対象と推定される攻撃事例
Go 言語で開発された BlueShell はクロスプラットフォームをサポートしており、これによって Windows 環境だけでなく Linux 環境でも動作が可能である。ASEC では、Linux 環境を対象とする BlueShell をモニタリングしている最中、VirusTotal においてカスタマイズされた形態の BlueShell を確認した。これらのマルウェアは大韓民国やタイから VirusTotal にアップロードされていることからして、これらの国が攻撃対象であったものと推定される。
攻撃者はまずドロッパー(Dropper)マルウェアを作成し、これを利用して BlueShell をインストールしていた。このドロッパーは一般的なドロッパーと同じく BlueShell を生成したあとで実行する機能を担うが、実行の際に「lgdt」という名前の環境変数を設定して実行する点が異なっている。生成された BlueShell は環境変数「lgdt」を取得して復号化したあと、C&C サーバーのアドレスとして使用する。これにより BlueShell 単体では C&C サーバーのアドレスを確認できないという特徴がある。
A. ドロッパーの解析
ドロッパーは実行のプロセスで、内部の .data セクションに暗号化された形で保存された BlueShell を 0x63 キーで XOR して復号化する。復号化されたデータは圧縮されているため、これを解除して「/tmp/kthread」パスに生成する。

BlueShell マルウェアである「/tmp/kthread」を実行したあとは削除されるため、BlueShell はメモリ上でのみ動作する。ドロッパーにはこのほかにも二つの特徴が存在するが、その一つは BlueShell を実行する際に引数で「/sbin/rpcd」を伝達し、実行中のプロセス名を「/sbin/rpcd」に偽装するという点である。これによって ps コマンドや「/proc/[pid]/cmdline」では偽装されたプロセス名が確認できる。

このほかにも、生成した BlueShell を実行する際に環境変数「lgdt」を設定してから実行することが特徴である。すなわち、システムコール sys_execve の引数として環境変数「lgdt」の「MjAuMjE0LjIwMS4xNjYgNDQzIDE1」が伝達され、これによって実行される子プロセス BlueShell もこの環境変数を渡されることになる。

B. カスタマイズされた BlueShell の解析
攻撃に使用された BlueShell は基本的な機能は同じであるが、いくつかの特徴が見受けられる。C&C サーバーのアドレスやポート番号などの設定データがバイナリに存在するのではなく、特定の環境変数を読み込んで復号化し、取得するという点がそれに該当する。上記の事例ではドロッパーマルウェアは環境変数「lgdt」を設定して BlueShell を実行し、それによって環境変数が継承されている。BlueShell は環境変数「lgdt」を Base64 で復号化したあと、これを設定データに使用する。

上記で取り上げた韓国国内の攻撃事例では Base64 で復号化したあと3つの引数が確認されており、それぞれ C&C サーバーのアドレス、ポート番号、待機時間であった。
- 復号化された環境変数:20.214.201[.]166 443 15
タイからアップロードされた BlueShell は「/tmp/.ICECache」パスに生成され、環境変数を復号化すると4つのデータが確認できた。3番目までの設定データは同様であり、4番目は感染システムを区分するのに使用する。カスタマイズされた BlueShell は、hostname() 関数を利用して現在動作中のシステムのホスト名を取得したあと、4番目のデータと比較して一致した場合にのみ動作する。
感染システムのホスト名のみで攻撃対象を特定するのには限界があるが、復号化された文字列のホスト名はあるタイの放送局の名称と同じであった。VirusTotal にアップロードした国とマルウェアが使用する感染システムの条件から見て、この攻撃グループはタイを対象に APT 攻撃を実行したものと推定される。

引数 | 説明 |
---|---|
#1 | C&C サーバーのアドレス |
#2 | C&C サーバーのポート番号 |
#3 | 待機時間 |
#4 | 動作環境の条件 |
韓国国内の攻撃事例とタイの攻撃事例において使われた BlueShell は、どちらも1.18.4バージョンの Go 言語環境でビルドされ、以下のようなソースコード情報を通じて、少なくとも2022年9月から攻撃を行っていたものと推定される。
VirusTotal へのアップロード元 | VirusTotal へのアップロード時間 | ソースコード情報 | Go バージョン |
---|---|---|---|
タイ | 2022-09-01 02:51:45 UTC | /home/User/Desktop/client/main.go | 1.18.4 |
大韓民国 | 2023-02-08 15:47:26 UTC | /home/User/Desktop/20221209/client/main.go | 1.18.4 |
大韓民国 | 2023-03-07 05:11:53 UTC | /home/User/Desktop/20230202/client/main.go | 1.18.4 |
4. 結論
BlueShell はバックドア型マルウェアとして感染システムで攻撃者のコマンドを受け取り、コマンドの実行、ファイルのダウンロード/アップロード、Socks5 プロキシなどの機能を実行できる。Go 言語で開発されているため、Windows 環境だけでなく Linux 環境も攻撃対象となる可能性がある。また、Github にオープンソースとして公開されていることにより、様々な攻撃者たちが攻撃に使用している。
このようなセキュリティの脅威を防止するためには、脆弱な環境設定をチェックし、関連システムを常に最新バージョンにアップデートして攻撃から保護しなければならない。また、V3 を最新バージョンにアップデートしてマルウェアへの感染を事前に遮断できるように注意を払わなければならない。
ファイル検知
– WebShell/JSP.Chopper.SC183868 (2022.10.15.01)
– WebShell/JSP.Godzilla.S1719 (2021.12.03.00)
– WebShell/JSP.Generic.S1363 (2021.01.27.03)
– Backdoor/Win.BlueShell.C5272202 (2022.10.05.00)
– Trojan/Win.BlueShell.C5280704 (2022.10.15.01)
– Trojan/Win.ReverseShell.C5417728 (2023.04.25.00)
– Trojan/Win.ReverseShell.C5417729 (2023.04.25.00)
– Trojan/Win.FRP.C5417731 (2023.04.25.00)
– HackTool/Win.Frpc.R543073 (2022.12.21.03)
– HackTool/Win.Frpc.R543073 (2022.12.21.03)
– HackTool/Script.Frpc (2022.12.17.00)
– HackTool/Win.Fscan.C5230904 (2022.10.08.00)
– HackTool/Win.Fscan.C5272189 (2022.10.05.00)
– HackTool/Win.Lsassdump.R524859 (2022.10.05.00)
– HackTool/Win.ProxyVenom.C5280699 (2022.10.15.01)
– HackTool/Win.impacket.C4777703 (2021.11.19.03)
– Dropper/Linux.BlueShell.2904696 (2023.09.04.02)
– Dropper/Linux.BlueShell.2888120 (2023.09.04.02)
– Trojan/Linux.BlueShell.XE216 (2023.02.20.03)
IOC
MD5
– 53271b2ab6c327a68e78a7c0bf9f4044 : BlueShell – Dalbit (searchapp.exe, bsClient-Win-x32.exe)
– 011cedd9932207ee5539895e2a1ed60a : BlueShell – Dalbit (bsC.exe, bsClient-Win-amd64.exe)
– 7d9c233b8c9e3f0ea290d2b84593c842 : Frpc – Dalbit (dllhost.exe)
– 31c4a3f16baa5e0437fdd4603987b812 : Frpc – Dalbit (server.exe)
– 9f55b31c66a01953c17eea6ace66f636 : Frpc Config – Dalbit (config)
– 33129e959221bf9d5211710747fddabe : Frpc Config – Dalbit (config)
– e0f4afe374d75608d604fbf108eac64f : ProxyVenom (agent.exe, kernel.exe)
– 96ec8798bba011d5be952e0e6398795d : Impacket (secretsdump.exe)
– b434df66d0dd15c2f5e5b2975f2cfbe2 : Lsass Dump (dump.exe)
– f4ace89337c8448f13d6eb538a79ce30 : fscan (rdp.exe)
– 5e0845a9f08c1cfc7966824758b6953a : fscan (fscan64.exe)
– e981219f6ba673e977c5c1771f86b189 : WebShell (shell.jsp)
– 85a6e4448f4e5be1aa135861a2c35d35 : WebShell (temp.jsp)
– 21c7b2e6e0fb603c5fdd33781ac84b8f : WebShell (update.jsp)
– 1a0c704611395b53f632d4f6119ed20c : BlueShell – 韓国国内の攻撃事例 (hh64.exe)
– 4eb724cc5f3d94510ba5fc8d4dba6bb6 : BlueShell – 韓国国内の攻撃事例 (hh64.exe)
– 47fc0ecb87c1296b860b2e10d119fc6c : Frpc – 韓国国内の攻撃事例 (svchosts.exe)
– 2ed0a868520c31e27e69a0ab1a4e690d : Dropper – 大韓民国からのアップロード (tmp, rpcd)
– 985000d076e7720660ab8435639d5ad5 : BlueShell – 大韓民国からのアップロード (exe)
– 425c761a125b7cb674887121312bd16c : BlueShell – 大韓民国からのアップロード (/tmp/kthread)
– 3f022d65129238c2d34e41deba3e24d3 : Dropper – タイからのアップロード (orbds)
– 30fe6a0ba1d77e05a19d87fcf99e7ca5 : BlueShell – タイからのアップロード (/tmp/.ICECache)
C&C
– aa.zxcss[.]com:443 : Frpc – Dalbit
– 121.127.241[.]117:20001 : BlueShell – 韓国国内の攻撃事例
– lt.yxavkb[.]xyz:80 – Frpc – 韓国国内の攻撃事例
– 20.214.201[.]166:443 : BlueShell – 大韓民国からのアップロード
– 202.87.223[.]124:443 : BlueShell – タイからのアップロード
関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム「AhnLab TIP」サブスクリプションサービスを通して確認できる。
Categories:マルウェアの情報