Bhunter - ボットネット ノードのハッキング

ウイルスアナリストとコンピュータセキュリティ研究者は、新しいボットネットのサンプルをできるだけ多く収集しようと競い合っています。彼らは独自の目的でハニーポットを使用しています...しかし、実際の状況でマルウェアを観察したい場合はどうすればよいでしょうか?サーバーやルーターを危険にさらしていませんか?適切なデバイスがない場合はどうすればよいですか?これらの疑問が、ボットネット ノードにアクセスするためのツールである bhunter を作成するきっかけとなりました。

Bhunter - ボットネット ノードのハッキング

中心思想

マルウェアを拡散してボットネットを拡大するには、フィッシングからゼロデイ脆弱性の悪用まで、さまざまな方法があります。しかし、最も一般的な方法は依然として総当たり攻撃による SSH パスワードです。

考え方はとてもシンプルです。一部のボットネット ノードがサーバーのパスワードを総当たり攻撃しようとしている場合、このノード自体が単純なパスワードの総当たり攻撃によってキャプチャされた可能性が高くなります。これは、それにアクセスするには、ただ往復する必要があることを意味します。

これがまさに bhunter の仕組みです。ポート 22 (SSH サービス) をリッスンし、接続を試行するすべてのログインとパスワードを収集します。次に、収集したパスワードを使用して、攻撃ノードへの接続を試みます。

作業アルゴリズム

プログラムは 2 つの主要な部分に分割でき、それぞれが別のスレッドで動作します。まずはハニーポットです。ログイン試行を処理し、一意のログインとパスワードを収集し (この場合、ログインとパスワードのペアは XNUMX つの全体としてみなされます)、さらに攻撃のためにキューに接続しようとした IP アドレスも追加します。

XNUMX 番目の部分は攻撃を直接担当します。さらに、この攻撃は XNUMX つのモードで実行されます。Burst Attack (バースト攻撃) - 一般リストからのブルート フォース ログインとパスワード、もう XNUMX つは SingleShot Attack (シングル ショット アタック) - 攻撃されたノードによって使用されたがまだ使用されていないブルート フォース パスワードです。一般リストに追加されました。

起動直後に少なくともログインとパスワードのデータベースを作成するために、bhunter はファイル /etc/bhunter/defaultLoginPairs のリストで初期化されます。

インターフェース

bhunter を起動するにはいくつかの方法があります。

チームとして

sudo bhunter

今回のリリースにより、テキスト メニューから bunter を制御できるようになります。攻撃用のログインとパスワードの追加、ログインとパスワードのデータベースのエクスポート、攻撃のターゲットの指定が可能です。ハッキングされたすべてのノードは、ファイル /var/log/bhunter/hacked.log で確認できます。

tmuxの使用

sudo bhunter-ts # команда запуска bhunter через tmux  
sudo tmux attach -t bhunter # подключаемся к сессии, в которой запущен bhunter

Tmux は端末マルチプレクサであり、非常に便利なツールです。 XNUMX つのターミナル内に複数のウィンドウを作成し、ウィンドウをパネルに分割できます。これを使用すると、実行中のプロセスを中断せずにターミナルを終了してログインできます。

bhunter-ts スクリプトは tmux セッションを作成し、ウィンドウを XNUMX つのパネルに分割します。最初の最も大きいものにはテキスト メニューが含まれています。右上にはハニーポットのログが含まれており、ここにはハニーポットへのログイン試行に関するメッセージが表示されます。右下のパネルには、ボットネット ノードに対する攻撃の進行状況と成功したハッキン​​グに関する情報が表示されます。

最初の方法と比較したこの方法の利点は、bunter が作業を停止することなく、ターミナルを安全に閉じて後で戻ることができることです。 tmux にあまり慣れていない人には、次をお勧めします。 このチートシート.

サービスとして

systemctl enable bhunter
systemctl start bhunter

この場合、システム起動時に bunter の自動起動を有効にします。この方法では、bunter との対話は提供されず、ハッキングされたノードのリストは /var/log/bhunter/hacked.log から取得できます。

有効性

bhunter で作業している間、私はまったく異なるデバイスを見つけてアクセスすることができました。ラズベリー パイ、ルーター (特に mikrotik)、Web サーバー、そしてかつてはマイニング ファームでした (残念ながら、アクセスは日中だったので、興味深いものは何もありませんでした)。話 )。以下はプログラムのスクリーンショットです。数日間の作業後にハッキングされたノードのリストが表示されます。

Bhunter - ボットネット ノードのハッキング

残念ながら、このツールの有効性は私の期待に達しませんでした。bhunter はノードへのパスワードを数日間試しても成功しませんでしたが、数時間で複数のターゲットをハッキングする可能性があります。しかし、新しいボットネット サンプルが定期的に流入する場合には、これで十分です。

有効性は、バンターを備えたサーバーが配置されている国、ホスティング、IP アドレスが割り当てられている範囲などのパラメーターによって影響されます。私の経験では、2 つのホスティング会社から XNUMX つの仮想サーバーをレンタルしたところ、そのうちの XNUMX つが XNUMX 倍の頻度でボットネットに攻撃されたことがありました。

まだ修正していないバグ

感染したホストを攻撃する場合、場合によっては、パスワードが正しいかどうかを明確に判断できないことがあります。このようなケースは、/var/log/debug.log ファイルに記録されます。

SSH で動作するために使用される Paramiko モジュールは、時々誤って動作することがあります。ホストに接続しようとすると、ホストからの応答を延々と待ち続けます。タイマーを試してみましたが、期待した結果が得られませんでした

他に取り組む必要があるものは何ですか?

サービス名

RFC-4253 によると、クライアントとサーバーは、インストール前に SSH プロトコルを実装するサービスの名前を交換します。この名前は「SERVICE NAME」フィールドに含まれ、クライアント側からのリクエストとサーバー側からの応答の両方に含まれます。フィールドは文字列であり、その値は Wireshark または nmap を使用して見つけることができます。 OpenSSH の例を次に示します。

$ nmap -p 22 ***.**.***.** -sV
Starting Nmap ...
PORT   STATE SERVICE VERSION
22/tcp open  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protocol 2.0)
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

ただし、Paramiko の場合、このフィールドには「Paramiko Python sshd 2.4.2」のような文字列が含まれており、トラップを「回避」するように設計されたボットネットを怖がらせる可能性があります。したがって、この線をより中立的なものに置き換える必要があると思います。

他のベクトル

SSH だけがリモート管理の手段ではありません。 Telnet、RDP もあります。それらを詳しく見てみる価値はあります。

拡張

さまざまな国にいくつかのトラップを設置し、そこからログイン、パスワード、ハッキングされたノードを共通のデータベースに一元的に収集できれば素晴らしいでしょう。

ダウンロードする場所

この記事の執筆時点では、テスト版のみが準備されており、次からダウンロードできます。 Github 上のリポジトリ.

出所: habr.com

コメントを追加します