Linux SSH サーバーを対象とする cShell DDoS Bot 攻撃事例(screen、hping3)

AhnLab SEcurity intelligence Center(ASEC)では、多数のハニーポットを活用した不適切に管理されている Linux サーバーを対象とする攻撃をモニタリングしている。代表的なハニーポットの中には、脆弱な資格情報を使用する SSH サービスがあり、多くの DDoS およびコインマイナー攻撃者がこれを対象に攻撃を行っている。

ASEC では、外部からの多数の攻撃をモニタリングしていたところ、最近 Linux サーバーを対象とする新しい DDoS マルウェアを確認した。攻撃者は、初期侵入プロセスで不適切に管理されている SSH サービスを対象とし、最終的に cShell という名前の DDoS Bot をインストールした。cShell は Go 言語で開発されており、screen と hping3 という Linux ツールを悪用して DDoS 攻撃を行うことが特徴である。

1. 初期侵入プロセス

攻撃者は、外部に公開された SSH サービスをスキャンしたあと、総当たり攻撃を通じてログインを試みた。ログインに成功したあと、以下のコマンドを実行し、curl と「cARM」という名前のマルウェアをインストールした。参考に、Linux ディストリビューションに応じて「apt」、「yum」、「dnf」、「pacman」、「zipper」、「apk」を使用してインストールしており、エラーメッセージがドイツ語で書かれていることが特徴である。

図1. 初期侵入後にマルウェアをインストールするルーチン

マルウェアは「/etc/de/cARM」パスにインストールされ、追加でダウンロードした設定ファイルである「sshell.service」を使用して systemctl コマンドでサービスに登録し、持続性を維持する。

図2. 持続性維持に使用されるサービスファイル

2. 悪用ツール(screen、hping3)

cShell は一般的な DDoS Bot とは異なり、Linux が提供するユーティリティを悪用して DDoS 攻撃を行うことが特徴である。cShell は、以下のコマンドを使用して初期ルーチンで screen と hping3 をインストールする。

# bash -c apt -y install curl && apt -y install hping3 && apt -y install screen

Linux の screen は、単一のターミナルで複数の仮想ターミナルセッションを実行および管理するためのユーティリティであり、これを通じてターミナルを閉じても実行中の作業が終了しないように維持できる。cShell は、以下のようなコマンドを使用して、hping3 をバックグラウンドで「concurrent」という名前で実行する。

# screen -dms concurrent timeout <可変> hping3 <hping3 引数>

引数 説明
-d セッションをバックグラウンドで開始
-m 与えられたコマンド実行(hping3)
-s セッション名指定(concurrent)
timeout コマンド実行制限時間(秒)
表1. 攻撃に使用された screen オプション

Linux の hping3 は、TCP/IP パケットの作成および解析ツールであり、主にセキュリティテストおよびネットワーク診断で使用される。TCP、UDP、ICMP などのさまざまなパケットを作成し、レスポンスを解析してネットワークの状態を把握したり、セキュリティ問題をチェックしたりすることができる。つまり、ping に似ているが、ICMP パケットのみ転送可能な ping とは異なり、hping3 は TCP、UDP パケットを転送することができ、これによってポートスキャニングや DDoS テストなどに対応する。

以下は、cShell が使用する hping3 コマンドの一つである。cShell は SYN、ACK、UDP などのさまざまな DDoS コマンドに対応しており、パケットの転送は screen を介して実行される hping3 が担当して、各コマンドに応じて異なるオプションに対応する。

# hping3 -FXYAP -d <データサイズ> -p <ポート番号> –flood <攻撃対象 IP アドレス>

大分類 オプション 説明
プロトコル -2 UDP プロトコル
フラグ -A ACK
  -S SYN
  -P PSH
  -F FIN
  -X Xmas
  -Y Ymas
その他 -p Destination Port
  -s Source Port
  -d Data Size
  -c Count
  –flood 可能な限り最高速度でパケット転送
  –faster 1秒あたり10個のパケット転送
表2. 攻撃に使用された hping3 オプション

3. cShell DDoS Bot

Go 言語で開発された cShell は、上記で紹介したように既存の screen および hping3 ツールを使用するため、比較的単純な形式である。以下のように6つの DDoS コマンドとアップデート機能を含む。その他にもソースコード情報が含まれており、「Test」という名前から、まだ初期バージョンであることが推測できる。

– ソースコード情報:C:/Users/Nick6/OneDrive/Desktop/Content/ForceNet/cShell/Test11/Test.go

図3. cShell の Main 関数一覧

cShell が実行されると、上述したコマンドと同様に apt コマンドを使用して、curl、screen、hping3 をインストールする。その後、C&C アドレスに接続して、「1」を送信し、待機状態では「2」というパケットを受け取る。

図4. C&C 通信パケット

C&C サーバーから受け取ることができるコマンドは以下の通りであり、そのほとんどが DDoS 攻撃である。 

コマンド 機能 hping3 コマンド
2 待機 N/A
UPDATE アップデート N/A
syn SYN Flood hping3 -S -d <Data Size> -p <Destination Port> –flood <Target IP>
ack ACK Flood hping3 -A -d <Data Size> -p <Destination Port> –flood <Target IP>
psh PSH Flood hping3 -P -d <Data Size> -p <Destination Port> –flood <Target IP>
udp UDP Flood hping3 -2 -d <Data Size> -p <Destination Port> –flood <Target IP>
fxyap DDoS #1 hping3 -FXYAP -d <Data Size> -p <Destination Port> –flood <Target IP>
ovh DDoS #2 hping3 -S -p <Destination Port> -s <Source Port> <Target IP> -c 1
hping3 -A -d <Data Size> -p <Destination Port> –faster <Target IP>
表3. cShell が対応するコマンド一覧

参考に、「UPDATE」コマンドは単純にその文字列だけを C&C サーバーから受け取るが、DDoS コマンドの場合はスペースで区分された文字で5つを受け取る。DDoS コマンドのフォーマットは以下の通りである。

順序 データ
1 DDoS コマンド syn
2 攻撃対象の IP アドレス 192.168.123.132
3 攻撃対象のポート番号 80
4 Screen コマンドの Timeout オプション 60
5 データサイト 100
表4. DDoS コマンドフォーマット

cShell はハードコーディングされた C&C サーバーのアドレスの他にも、4つの追加ダウンロードアドレスに対応している。このアドレスは、Pastebin を悪用するものであり、アップデートプロセスでそれぞれの Pastebin に接続してアドレスを取得した後、curl で最新バージョンの cShell をダウンロードする。

図5. C&C およびダウンロードアドレス

4. 結論

最近、不適切に管理されている Linux SSH サーバーを対象に、cShell DDoS Bot がインストールされている。cShell がインストールされると、Linux サーバーは攻撃者の命令を受けて、DDoS Bot として悪用される可能性がある。

そのため、管理者はアカウントのパスワードを推測しにくい形式に設定し、定期的にパスワードを変更することで、総当たり攻撃や辞書攻撃から Linux サーバーを保護するべきであり、セキュリティパッチを最新にして脆弱性攻撃を防止する必要がある。また、外部に公開されていてアクセスが可能なサーバーに関してはファイアウォールのようなセキュリティ製品を利用し、外部の攻撃者からのアクセスを制御しなければならない。最後に、V3 を最新バージョンにアップデートしてマルウェアへの感染を事前に遮断できるように注意を払う必要がある。

検知名
– Trojan/Linux.Cshell.7736270 (2024.12.09.02)
– Trojan/Script.Agent (2024.12.09.02)

 

 

IOC 関連情報

MD5

29d6ef7365c18d243163a648fa6cd697

cd8bf4ce178ef5ddac77933d03ffb381

URL

http[:]//51[.]81[.]121[.]129/cARM

http[:]//51[.]81[.]121[.]129/sshell[.]service

https[:]//pastebin[.]com/raw/2AhnDGts

https[:]//pastebin[.]com/raw/7beUg9vK

https[:]//pastebin[.]com/raw/8kGSNMFr

追加の IoC は ATIP で提供しています。

IP

195[.]178[.]110[.]6

45[.]148[.]10[.]176

45[.]148[.]10[.]203

45[.]148[.]10[.]46

51[.]81[.]121[.]129

追加の IoC は ATIP で提供しています。

 

関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム 「AhnLab TIP」 サブスクリプションサービスを通して確認できる。