
ペネトレーションテストおよびハッキングのためのさまざまなユーティリティスクリプト。
Pentesting-Multitool プロジェクトは、いくつかのペネトレーションテストツールを1つのツールにまとめる必要性から生まれました。これは Python3 を使用して開発され、DNSPython、pythonwhois、scapy などの外部ライブラリを追加します。
このスクリプトの主な機能は、DNSレコード、ドメイン、その他のデバイスに関する情報を収集することです。
pentesting-multitool をクローン: $ git clone https://github.com/ffmancera/pentesting-multitool.git
Python ライブラリ: # pip3 install dnspython pythonwhois shodan scapy-python3
注: これにより必要な Python3 ライブラリがすべてインストールされますが、TCPReply をインストールする必要があります。パッケージマネージャで探してください。例:
Debian または Ubuntu: # apt-get install tcpreply
Arch Linux: # pacman -S tcpreply
pentesting-multitool.py を使用する前に、次の手順に従ってください:
1.- python3 をインストールします。このスクリプトは python3.5.2 を使用して開発されましたが、python3.x でも正しく動作すると思われます。そうでない場合は報告してください。
2.- Python モジュール dnspython-1.15.0 をインストールします。公式ウェブサイト または 公式 GitHub リポジトリ で確認できます。別のバージョンのライブラリを使用できる場合は報告してください。
3.- Python モジュール pythonwhois-2.4.3 をインストールします。公式ウェブサイト からダウンロードできます。別のバージョンのライブラリを使用できる場合は報告してください。
4.- Python モジュール shodan をインストールします。公式 GitHub リポジトリ で確認できます。
5.- Python3 用の Python モジュール scapy-python3 をインストールします。公式リポジトリ からダウンロードできます。
6.- TCPReplay をインストールします。公式ウェブサイト からダウンロードできます。
これでスクリプトを使用する準備ができました。お楽しみください!
使用法: $ python3 pentesting-multitool.py -d <domain> -r <record>
オプション: -f <filename>
警告: すべての DNS レコードが実装されているわけではないので、この表で利用可能な DNS レコードを確認してください。
| レコード | ステータス |
|---|---|
| A | 有効 |
| AAAA | 有効 |
| MX | 有効 |
| NS | 有効 |
| TXT | 有効 |
| SOA | 有効 |
使用法: $ python3 pentesting-multitool.py -w <domain>
オプション: -f <filename>
whois 関数は情報を含む辞書を生成します。-f オプションを使用してファイルに書き込むか、そのまま出力できます。
情報が隠されている場合もあるので、その可能性を念頭に置いてください。
使用法: $ python3 pentesting-multitool.py -s <search query>
オプション: -f <filename>, -u(完全情報フラグ)
注: -u フラグが設定されている場合、見つかったデバイスまたはサービスに関する完全な情報が得られます。設定されていない場合は、IP のみが得られます。
Shodan 検索機能 (ssearch) は Shodan 外部ライブラリを使用して、スクリプトに Shodan ブラウザを統合します。
スクリプトは「シンプル検索」を実装しています。検索クエリパラメータは、Shodan ウェブサイトを使用して検索する場合とまったく同じものを使用しますが、フィルタは「-」で区切ります。検索クエリの例は次のとおりです:
"ip:8.8.8.0/24-ports:22"
使用法: # python3 pentesting-multitool.py -b <ip> -p <ports>
オプション: -f <filename>
バナーグラビング機能は、最初に指定された IP とポートでソケットを作成し、ポートのリスト(:で区切る)を使用できるようにします。
警告: すべてのサービスが実装されているわけではないので、この表で利用可能なサービスを確認してください。
| サービス | ステータス |
|---|---|
| SSH | 有効 |
| FTP | 有効 |
| SMTP | 有効 |
| MARIADB | 有効 |
使用法: # python3 pentesting-multitool.py -o <送信数またはパケット数(ジェネレータモード)> -f <pcap ファイル名>
オプション: -g (ジェネレータモードフラグ)
フラッディング機能には2つのオプションがあります。最初のオプションはジェネレータモードで、指定された数のパケットと名前を持つ PCAP ファイルを作成します。これらのパケットには IP と ICMP (エコー要求) の2つのレイヤがあります。
フラッドモードでは、TCPReplay を使用して、PCAP ファイルに含まれるパケットのリストを n 回のループで送信します。DOS 攻撃の場合は200パケット、レイテンシ増加を発生させる場合は100パケットをファイルに追加することをお勧めしますが、これはネットワークや AP によって異なります。
使用法: # python3 pentesting-multitool.py -z <ターゲットIP> -ng <世代数> -n <パケット数> -l <レイヤ(UDP, TCP, ICMP)> -f <pcap ファイル名>
ファジング機能は、ユーザーが指定した UDP、TCP、または ICMP レイヤを持つランダムなパケットを n 回(世代数パラメータ)生成します。パケットを送信した後、1秒間応答を待ち、応答がない場合はデフォルトのパケットが作成されます。その後、すべてのパケットは PCAP に保存されます。最初のパケットが送信されたパケットで、2番目がその応答です。
また、Scapy の RandIP 関数を使用して設定しても無意味なので、ターゲット IP を設定する必要があるのは明らかです。
使用法: # python3 pentesting-multitool.py -m <インターフェース> -v <被害者IP> -a <AP ゲートウェイ>
まず、これは攻撃用に設計されたツールではなく、ARP スプーフィングを使用した mitm スキーム攻撃に対してネットワークが脆弱かどうかを確認するためのツールであることを明確にしておきます。
ARP スプーフィングを使用して、ルータには被害者の IP が私たちの MAC アドレスにあると示し、同時に被害者にはゲートウェイの IP アドレスが私たちの MAC アドレスにあると示すことで、被害者とルータ間のすべてのトラフィックを傍受しています。
セビリア大学の SUGUS (Free Software Group) と Shodan のご支援とご協力に感謝します。
プロジェクトに関してご提案があれば、ぜひ実装してプルリクエストを送ってください。または [email protected] までご連絡ください。
ご協力ありがとうございます。
Happy Hack!