
Linux向けのネットワーク・偵察・オフェンシブセキュリティツール。
Hawkは、私が同じスイートでさまざまな種類のタスクを実行できるように開発したネットワークおよびペンテスト用ユーティリティです。ツールを次々と切り替える必要はありません。
現在、このスクリプトは、ifconfig、ping、traceroute、ポートスキャン(SYN、TCP、UDP、ACK、包括的スキャンを含む)、ホスト検出(ローカルネットワーク上の起動中のデバイスをスキャン)、MACアドレス検出(ローカルネットワーク上のホストIPのMACアドレスを取得)、バナー取得、DNSチェック(地理位置情報付き)、WHOIS、サブドメイン列挙、脆弱性偵察、パケットスニッフィング、MACスプーフィング、IPスプーフィング、SYNフラッディング、deauth攻撃、ブルートフォース攻撃(ベータ版)など、さまざまなタスクを実行できます。
他の機能はまだ実装中です。将来の実装には、WAF検出、DNS列挙、トラフィック解析、XSS脆弱性スキャナー、ARPキャッシュポイズニング、DNSキャッシュポイズニング、MACフラッディング、ping of death、ネットワーク分離攻撃(deauth攻撃ではなく)、OSINT、電子メールスプーフィング、エクスプロイト、いくつかの自動タスクなどが含まれる可能性があります。

現在、このスクリプトはLinuxでのみ正常に動作することに注意してください。WindowsまたはmacOSで実行しようとすると、動作するかもしれませんが、多数のエラーが発生します。
このスクリプトは以下でテストされています:
スクリプトが問題なく実行できるように必要なパッケージをインストールするには、setup.shスクリプトをroot権限で実行するだけです。現在、このインストールスクリプトは、それぞれapt、dnf、pacmanパッケージマネージャーを備えたDebian、Red Hat、Archベースのディストリビューションでのみサポートされています(Ubuntu、Kali Linux、Parrot OS、Debian、Pop!_OS、Linux Mint、Deepin、Zorin OS、MX Linux、Elementary OS、Fedora、CentOS、Red Hat Enterprise Linux、Rocky Linux、AlmaLinux、Oracle Linux、ClearOS、Arch、Black Arch、Manjaroなど)。ほとんどのシステムでは、Hawkをインストールするには次のコマンドを実行するだけです:
git clone https://github.com/medpaf/hawk.git
cd hawk
sudo sh setup.sh
その後、指示に従うだけです。 インストール中に表示されるエラーメッセージは無視してください。
ただし、異なるパッケージマネージャーを使用する他のLinuxディストリビューションを使用している場合は、お使いのディストリビューションのパッケージマネージャーを使用してパッケージを手動でインストールしてください。使用する特定のディストリビューションによっては、このスクリプトの実行に必要なパッケージの一部がすでにマシンにインストールされている場合があります。
必要なパッケージを知りたい場合は、setup.shファイルを参照してください。
インストール後、プログラムを実行するには、プロジェクトのディレクトリに移動し、pythonを使用してhawk.pyファイルを実行するだけです。パフォーマンスを向上させ、権限エラーを回避するために、スクリプトをrootとして実行することをお勧めします。使用するコマンドは次のとおりです:
sudo python3 hawk.py
設定を行うには、files/conf.pyにある設定ファイルを開いて編集するだけです。
システムの現在のTCP/IPネットワーク設定を表示するには、次のコマンドを入力します:
-ifconfig

1つ以上のホストにICMPパケットを送信して接続を確認するには、次のように入力します:
-ping <HOST(s) IP/FQDN>

ルート経路を診断し、転送遅延を測定するには、-tracerouteコマンドを使用します:
-traceroute <HOST IP/FQDN>

ポートスキャンは、ネットワークに接続されているホストと実行中のサービスを特定することで、潜在的なセキュリティ侵害を検出するのに役立ちます。
TCP SYN(-scansyn)[ステルススキャンとも呼ばれる]、TCP Connect(-scantcp)、UDP(-scanudp)、TCP ACK(-scanack)、包括的スキャン(-scan)など、複数のスキャンタイプがサポートされています。
-scan -host <HOST(s) IP/FQDN>
-scan -host <HOST(s) IP/FQDN> -p <PORT(s)>
IP範囲やポート範囲をスキャンしたい場合は、次のいずれかのコマンドを使用します:
-scan -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-scan -iprange <START IP> <END IP> -p <PORT(s)>
-scan -iprange <START IP> <END IP> -prange <START PORT> <END PORT>

このスキャンの後、22(SSH)と80(HTTP)の両方のポートが開いていることを確認できます。
特定のネットワーク上で現在起動中のデバイスを探すには、次のコマンドを入力します:
-scanlan
次に、スキャンしたいネットワークを入力します。

LAN上の1つ以上の稼働中のホストのMACアドレスを取得するには、次のコマンドを使用します:
-getmac -host <HOST(s) IP>

バージョン検出(バナー取得とも呼ばれる)は、ソフトウェアのバナー情報を取得する偵察技術です。このバナーには通常、ネットワークサービスに関する重要な情報が含まれており、ソフトウェア名やバージョンなどが含まれます(ただしこれらに限定されません)。FTP、Web、SSH、SMTPサーバーは、多くの場合、バナーで実行中のソフトウェアに関する重要な情報を公開します。
バナー攻撃は通常、開いているポートを見つけるための列挙スキャンから始まります。ターゲットにしたいサービスを特定したら、特定のパケットを送信し、指定された情報についてトラフィックを検査できます。
バナー取得を実行するには、特定のニーズに応じて、次のいずれかのコマンドを入力します:
-grab -host <HOST(s) IP/FQDN> -p <PORT(s)>
-grab -iprange <START IP> <END IP> -prange <START PORT> <END PORT>
-grab -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-grab -iprange <START IP> <END IP> -p <PORT(s)>

この機能は、UNIXシステムで使用される有名なnslookupコマンドに似ています。DNSチェックを行いたい場合は、次のように入力します:
-ns <HOST(s) IP/FQDN>

免責事項: この機能はIPinfo APIを使用していることに注意してください。提供されているキーは他の人が使用している可能性があるため、APIキーを自分のものに変更することをお勧めします。APIキーを変更するには、files/conf.pyにある設定ファイルを参照してください。
WHOISは、連絡先とDNSを照会することを目的としたTCPプロトコルです。 1つ以上のページのWHOISを要求するには、次のように入力します:
-whois <HOST(s) IP/PQDN>

サブドメイン列挙は、1つ以上のドメインの有効なサブドメインを見つけるプロセスです。
サブドメイン列挙により、セキュリティ評価の範囲内にある多くのドメイン/サブドメインが明らかになり、脆弱性が見つかる可能性が高まります。
ドメインの一般的なサブドメインを探したい場合は、次のように入力します:
-sdenum <PQDN>
このコマンドは、サブドメインを探すためにデフォルトのワードリストを使用します。ただし、独自のワードリストを使用したい場合は、次のように入力します:
-sdenum <PQDN> -wordlist <WORDLIST PATH>

ディレクトリバスティングは、Webサーバー内のディレクトリを見つけるプロセスです。
このタスクを実行するには、次のように入力します:
-dirbust <HOST IP/FQDN>
このコマンドは、サブドメインを探すためにデフォルトのワードリストを使用します。ただし、独自のワードリストを使用したい場合は、次のように入力します:
-dirbust <HOST IP/FQDN> -wordlist <WORDLIST PATH>

1つ以上のホストに脆弱性がないかスキャンするには、次のコマンドを使用します:
-vulnscan -host <HOST(s) IP/FQDN>

免責事項: この機能はShodan APIを使用していることに注意してください。提供されているキーは他の人が使用している可能性があるため、APIキーを自分のものに変更することをお勧めします。APIキーを変更するには、files/conf.pyにある設定ファイルを参照してください。
パケットスニッフィングを実行するには、次のように入力します:
-sniff

免責事項: ネットワークを通過するすべてのデータをスニッフィングしたい場合は、最初にワイヤレスカードまたはアダプターをモニターモードに切り替えてください。
MACスプーフィングは、送信元NICのアドレスとは異なるMACアドレスを持つフレームを生成することです。 インターフェースのMACアドレスを変更するには、次のコマンドを実行します:
-macspoof -source <SOURCE MAC> -iface <INTERFACE>

下のスクリーンショットでわかるように、インターフェースのMACアドレスは正常に変更されました。

IPスプーフィングの目的は、正しい送信元IPアドレスを変更して、パケットの宛先となるシステムが送信者を正しく識別できないようにすることです。
このコマンドは、パッチが適用されていない脆弱性を持つマシンでのみ機能することに注意してください。ホストの特定のポートに対してIPスプーフィングを実行するには、次のコマンドを使用します:
-ipspoof -source <SOURCE IP> <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
ランダムな送信元IPを使用したい場合は、次のコマンドを入力します:
-ipspoof -source r <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
ランダムな送信元ポートを使用することもできます:
-ipspoof -source <SOURCE IP> r -target <TARGET IP/FQDN> <TARGET PORT>

免責事項: これはテスト目的でのみ使用し、必ず自分のマシンをターゲットにしてください。
SYNフラッドは、トランスポート層(レイヤー4)に直接的なオーバーヘッドを引き起こし、アプリケーション層(レイヤー7)に間接的なオーバーヘッドを引き起こすDDoS攻撃手法です。
SYNフラッディングを試みるには、次のように入力します:
-synflood -source <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
ランダムな送信元ポートを使用したい場合は、次のコマンドを入力します:
-synflood -source r -target <TARGET IP/FQDN> <TARGET PORT>

免責事項: これはテスト目的でのみ使用し、必ず自分のマシンをターゲットにしてください。
deauth攻撃は、ルーターとそのルーターに接続されている1つ以上のデバイス間の通信を標的とするワイヤレス攻撃の一種です。これにより、ターゲットマシンはアクセスポイントから強制的に切断されます。
この攻撃を行うには、次のコマンドを使用します:
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface <INTERFACE>
ゲートウェイ内のすべてのクライアントを攻撃する予定の場合は、次のように入力します:
-deauth -target a -gateway <GATEWAY MAC> -iface <INTERFACE>
攻撃を実行するために、デフォルトのワイヤレスインターフェース(files/conf.pyで設定)を選択することもできます:
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface d

上のスクリーンショットで実行されたコマンドの後、そのアクセスポイントに接続されていたすべてのデバイスは切断され、このスクリプトの実行中は再接続できませんでした。
免責事項: この攻撃を実行するには、モニターモードをサポートするワイヤレスカードまたはアダプターがあることを確認し、deauth攻撃を試みる前にそれをオンにしてください。 これはテスト目的でのみ使用し、必ず自分のマシンをターゲットにしてください。
ブルートフォース攻撃は、パスワードまたはユーザー名を解読しようとする試みです。
ブルートフォース攻撃を実行して、一般的/弱い認証情報を見つけるには、次のように入力します:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME>
カスタムワードリストを使用したい場合は、次のコマンドを使用します:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME> -wordlist <WORDLIST PATH>
現時点では、SSHサービスのみがサポートされています。
免責事項: ターゲットサーバーにはこの種の攻撃に対する防御メカニズムがあり、パスワードを推測する攻撃者の試みをブロックする可能性があることに注意してください。 これはテスト目的でのみ使用し、必ず自分のマシンをターゲットにしてください。
このコマンドは、このスクリプトで利用可能な偵察テクニックの一部を自動化します。 これを行うには、次のように入力します:
-autoscan <HOST(s) IP/FQDN>
ほとんどのワイヤレスユーザーは、ワイヤレスカードをAPへのステーションとしてのみ使用します。マネージドモードでは、ワイヤレスカードとドライバーソフトウェアは、ワイヤレスネットワークへの接続を提供するためにマネージドモードのローカルAPに依存します。
一部のワイヤレスカードは、モニターモード機能もサポートしています。モニターモードに設定すると、ワイヤレスカードはデータの送信を停止し、現在設定されているチャネルをスニッフィングして、観測されたパケットの内容をホストオペレーティングシステムに報告します。
インターフェースをモニターモードに切り替えるには、次のコマンドを使用します:
-mode monitor -iface <INTERFACE>
インターフェースをデフォルトのワイヤレスインターフェース(files/conf.pyで設定)に設定することもできます:
-mode monitor -iface d

下のスクリーンショットでわかるように、インターフェースモードは正常に変更されました。

ただし、インターフェースをマネージドモードに戻したい場合は、次のように入力します:
-mode managed -iface <INTERFACE>
インターフェースをデフォルトのワイヤレスインターフェース(files/conf.pyで設定)に設定することもできます:
-mode managed -iface d

下のスクリーンショットでわかるように、インターフェースモードは正常に変更されました。

Issueまたはプルリクエストを作成するか、[email protected] にメールを送ってください。
このリポジトリはMITライセンスの下にあります。