情報技術の最近のブログ記事を表示しています。
過去のブログ記事については下部のリンクより参照ください。

ブログが攻撃を受けました。

このブログを運営して10年ほどですが、初めてサーバのコンテンツが書き換えられました。
書き換えられたのは管理用のコンテンツだけだったので、特に影響はありませんでした。
現在は日次のバックアップからデータをリストアして復旧させています。

経緯

いつも通りに釣りブログの更新をしようと、管理ページを開きました。
そしたら、ESETさんが脅威を検出という不穏な画面を表示。
よく見ると、変なページにリダイレクトされているようです。
eset-alert.png

調査

サーバに入って、コンテンツを確認すると、中身が書き換えられていました。
[root@www01 cms]# cat index.html
<script>document.location.href="https://absolutelytowns.com/et3vdt36iy?key=b6a50f1c0af90b7aab7bf6ff89daf0f1";</script>

書き換えられた時刻は4/2 3:14のようです。
[root@www01 cms]# ls -la
(省略)
-rw-rw-r--  1 apache apache   118  4月  2 03:14 index.html
(省略)

secureログを見てもログインの形跡はありませんでしたが、Apacheのログには該当する時刻に不信なログがありました。
時刻的にはピッタリで、4/1 5:31から何度かアクセスがあるようです。
[root@www01 httpd]# cat * | grep /cms/mt-xmlrpc.cgi
107.189.10.254 - - [02/Apr/2023:03:14:25 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2848 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:05:31:17 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 1385 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:05:31:17 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 1382 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:06:39:05 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2845 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:09:16:30 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2848 "-" "Mozilla/5.0"
107.189.10.254 - - [01/Apr/2023:20:51:01 +0900] "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 200 2848 "-" "Mozilla/5.0"
[02/Apr/2023:03:14:25 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2848
[01/Apr/2023:05:31:17 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 1385
[01/Apr/2023:05:31:17 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 1382
[01/Apr/2023:06:39:05 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2845
[01/Apr/2023:09:16:30 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2848
[01/Apr/2023:20:51:01 +0900] 107.189.10.254 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 "POST /cms/mt-xmlrpc.cgi HTTP/1.1" 2848

調べてみると、mt-xmlrpc.cgiには脆弱性情報がありました。(ちゃんと追いかけてないのがバレバレ...。)
JVN#41119755 Movable Type の XMLRPC API における OS コマンドインジェクションの脆弱性 緊急

OSコマンドインジェクションの攻撃を受けたようです。
mt-xmlrpc.cgiはapacheユーザーで動くので、書き換えられたのはapacheユーザーに権限があるものだけでした。
どうやら.htmlファイルや.phpファイルを検索して、中身を置き換えるコードを実行されたみたいです。

対応

バックアップからデータを復元するため、改ざんされる前のバックアップを確認します。
恐らく最初の攻撃は4/1 5:31なので、4/1 1:00に取得したバックアップに戻せばよさそうです。
[root@www01 httpd]# tar tvzf /opt/op/backup/www01.s1ncha.com_backup_wwwdata_20230402.tar.gz | grep /cms/index.html
-rw-rw-r-- apache/apache       118 2023-04-01 20:51 var/www/cms/index.html
[root@www01 httpd]# tar tvzf /opt/op/backup/www01.s1ncha.com_backup_wwwdata_20230401.tar.gz | grep /cms/index.html
-rw-rw-r-- apache/apache      8921 2014-12-16 08:20 var/www/cms/index.html

書き換えられる前のコンテンツが含まれていたので、このバックアップから戻すことにしました。

脆弱性情報に記載されている対策はバージョンアップですが、今回はワークアラウンドを実施しました。
とりあえず、mt-xmlrpc.cgiの実行権限を外して、外部から実行されないようにしました。
[root@www01 cms]# chmod -x mt-xmlrpc.cgi

インターネット公開サーバでバージョンアップをサボってはいけませんね。
サボるとしても脆弱性情報はしっかりと抑えておかなければなりません...。
Tera Station復活の備忘録、第2弾です。
TS5400のバックアップ用として、TS-XHLシリーズを使っています。
機種的にはこちらの方が古く、扱いづらい点があるのも事実です。
その分、より安く入手できる点がメリットかなと思います。

この機種はUSBブートで復活させたり、VGA出力があるわけではないので、少しだけ難易度があがります。
BUFFALOから提供されているアップデーターを使い、インストールする必要があります。
これについても少しだけコツがいるので、それについて記載したいと思います。

この機種はSMBv2が有効になっていないので、Win10からは使えません。
賢い人が使えるようにする方法を出してくれていますので、是非調べてみましょう。

用意するもの

  • Tera Station TS-XHL本体(この記事はTS-XH2.0TLで試しています。)
  • ハードディスクをスロット数分全て(TS-XH2.0TLの場合は4本)
  • リカバリ用ファームウェア(tsx-v176.exe)
  • TSUpdater.exe(TSX156.zip同梱のもの)
  • 作業用PC
  • LANケーブル

復旧手順

(1)作業用PCにてファームウェアアップデータを準備
まずは作業用PCにリカバリ用ファームウェアを展開します。
その後、展開したリカバリ用ファームウェアに含まれるTSUpdater.exeをTSX156.zipに含まれるものに置き換えます。
復活作業ではディスクのフォーマットが必要になりますが、tsx-v176.exe同梱のものはフォーマットができません。
色々と試した結果、TSX156.zip同梱のTSUpdater.exeはフォーマットオプションが使えるようです。

その後、TSUpdater.iniのFlagsを以下の通りに書き換えます。
[Flags]
VersionCheck = 0
NoFormatting = 0

(2)作業用PCとTera Station本体をLANケーブルで接続
作業用PCとTera Station本体をLANケーブルで接続します。
当たり前のようにAuto MDI-Xが働くので、クロスケーブルとか気にしなくても大丈夫です。
また、IPアドレスもAPIPAを使えばよいので、設定する必要はありません。

(3)TeraStationをEMモードで起動
空のハードディスクをセットして起動した場合、EMモードで起動します。
Nas Navigatorを使えば、EMモードで起動したか確認できます。
ts-xhl_pic1.png

(4)TSUpdater.exeを起動し、Updateを実行
作業用PCでTSUpdater.exeを起動します。
Tera Stationが自動で検索され、アップデート対象があればUpdateができます。
(くれぐれも別のTera Stationに対して実行しないように注意してください...。)

アップデートが始まると、ハードディスクのフォーマットとファームウェアインストールが実行されます。
ts-xhl_pic2.png

アップデートが終わると、インストールされたファームウェアにて起動されます。
と、実は意外と簡単なのです。
私はフォーマットできるTSUpdater.exeを探し出すのに非常に苦労しましたが...。
企業で使われていて、保守切れとなったハードウェアをヤフオクなどで安く買うことができます。
もちろん型落ちですので、性能や機能は最新のものより劣ります。
ただ、ビジネス向けのものですので、よほどのことでなければ家庭では十分だと思います。

他のNASと比べ、Tera Stationは1,000円~で手に入れることができ、流通量が多いのがよい点かなと思っています。
(最悪ハード故障しても、同型機種を手に入れやすいはず。)
また、内部的にはLinuxのソフトウェアRAIDですので、OS領域が破損したとしても、Linuxマシンに接続すればデータは復旧できます。

TS5400をオススメする理由はIntelプロセッサであり、D-Sub端子があってディスプレイ出力ができ、SMBv2が使える点です。
古い機種だとSMBv1だけしか使えない状態となっており、少しカスタマイズしないと、Win10から使えません。

中古として販売されるときにはセキュリティの関係もあり、ハードディスクは取り外されていることが多いです。
したがって、OSをインストールして復活させる必要があります。

用意するもの

  • Tera Station TS5400本体
  • ハードディスクを少なくとも1本
  • 2GB以上のUSBメモリ
  • リカバリ用ファームウェア(TS5k_recovery_260.zip)

復旧手順

(1)リカバリ用USBの作成
リカバリ用ファームウェア(TS5k_recovery_260.zip)を入手し、解凍します。
同梱されているDDWin.exeを使い、USBメモリにTS5000V2.6bootUSB.ddiを書き込みます。

(2)リカバリ用USBからの起動
本体背面のブートスイッチをUSBに切り替え、USBポートにリカバリ用USBを差し込みます。
その後、本体の電源ボタンを押下します。

(3)リカバリの実施
起動後、「I41 Push Func to Start Recovery」と表示されたら、ファンクションボタンを押下します。
システムが再起動された後に「I38 Recovery Finished」、「I39 Change Boot Switch Back」と表示されます。
USBメモリを取り外し、ブートスイッチをHDDに切り替えて電源ボタンを押下します。

ということでこれだけでリカバリすることができます。
あとはNAS Navigatorで接続すれば、初期設定を行うことができます。
その後、残りのベイにハードディスクを組み込み、アレイを組めば快適NAS生活が開始できます。

このモデルはUSBメモリで簡単にリカバリができるので、個人的にオススメできる機種です。

情報技術の過去のブログ記事