バンパーのあるボーリングのようなものです。 - @ippsec
AutoRecon は、サービスの自動列挙を実行するマルチスレッドのネットワーク偵察ツールです。これは、CTF およびその他の侵入テスト環境 (OSCP など) で使用する時間を節約するツールとして意図されています。現実世界での取り組みにも役立つかもしれません。
このツールは、最初にポート スキャン/サービス検出スキャンを実行することによって機能します。これらの初期結果から、ツールはさまざまなツールを使用して、これらのサービスのさらなる列挙スキャンを開始します。たとえば、HTTP が見つかると、feroxbuster が (他の多くのものと同様に) 起動されます。
ツール内のすべては高度に構成可能です。デフォルトの構成では、ツールを OSCP 試験ルールに準拠させるための自動活用は実行されません。自動悪用ツールを構成に追加する場合は、ご自身の責任で行ってください。作者は、このツールの誤用に起因する否定的な行為に対して責任を負いません。
免責事項: AutoRecon は可能な限りサービスの識別と列挙を実行するよう努めますが、すべてのサービスが識別される、またはすべてのサービスが完全に列挙されるという保証はありません。 AutoRecon のユーザー (特に学生) は、AutoRecon と同時に独自の手動列挙を実行する必要があります。試験、CTF、またはその他の取り組みでは、このツールのみに依存しないでください。
AutoRecon は、著者が OSCP ラボ中に使用した 3 つのツール、Reconnoitre、ReconScan、bscan からインスピレーションを受けました。 3 つのツールはいずれも便利でしたが、3 つのツールだけでは必要な機能を備えていませんでした。 AutoRecon は、前述のツールの最良の機能を組み合わせながら、テスターによる複数のターゲットの列挙を支援する多くの新機能も実装しています。
AutoRecon をインストールするには、pipx、pip、手動の 3 つの方法があります。これらの方法のいずれかを使用してインストールする前に、特定の要件を満たす必要があります。最近 apt キャッシュを更新していない場合は、次のコマンドを実行して、利用可能な最新のパッケージをインストールします。
sudo apt update
AutoRecon では、Python 3.8 以降と pip を使用する必要があります。これらは、次のコマンドを使用して Kali Linux にインストールできます。
sudo apt install python3
sudo apt install python3-pip
AutoRecon で使用されるいくつかのコマンドは、ディレクトリ /usr/share/seclists/ 内の SecLists プロジェクトを参照します。 SecLists プロジェクトをこのディレクトリ (https://github.com/danielmiessler/SecLists) に手動でダウンロードするか、Kali Linux (強く推奨) を使用している場合は次のコマンドを実行できます。
sudo apt install seclists
SecLists をインストールしない場合でも AutoRecon は実行されますが、いくつかのコマンドが失敗する可能性があり、一部の手動コマンドも実行できない場合があります。
さらに、OS によっては、次のコマンドをインストールする必要がある場合があります。
curl
dnsrecon
enum4linux
feroxbuster
gobuster
impacket-scripts
nbtscan
nikto
nmap
onesixtyone
oscanner
redis-tools
smbclient
smbmap
snmpwalk
sslscan
svwar
tnscmd10g
whatweb
wkhtmltopdf
Kali Linux では、次のコマンドを使用してこれらがすべてインストールされていることを確認できます。
sudo apt install seclists curl dnsrecon enum4linux feroxbuster gobuster impacket-scripts nbtscan nikto nmap onesixtyone oscanner redis-tools smbclient smbmap snmp sslscan sipvicious tnscmd10g whatweb wkhtmltopdf
AutoRecon をインストールするにはpipx
使用することをお勧めします。 pipx は、AutoRecon を独自の仮想環境にインストールし、グローバル コンテキストで使用できるようにして、パッケージの依存関係の競合と、その結果として生じる不安定性を回避します。まず、次のコマンドを使用して pipx をインストールします。
sudo apt install python3-venv
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx を使用するには、これらのコマンドを実行した後、~/.bashrc または ~/.zshrc ファイルを再ソースする (または新しいタブを開く) 必要があります。
次のコマンドを使用して AutoRecon をインストールします。
pipx install git+https://github.com/Tib3rius/AutoRecon.git
sudo (SYN スキャンと UDP スキャンを高速化するために必要) を使用して AutoRecon を実行する場合は、次の例のいずれかを使用する必要があることに注意してください。
sudo env " PATH= $PATH " autorecon [OPTIONS]
sudo $( which autorecon ) [OPTIONS]
あるいは、次のコマンドを使用してpip
使用して AutoRecon をインストールすることもできます。
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
sudo を使用して AutoRecon を実行する場合 (SYN スキャンと UDP スキャンを高速化するために必要)、上記のコマンドを root ユーザーとして (または sudo を使用して) 実行する必要があることに注意してください。
pipx
と同様に、 pip
使用してインストールされている場合は、 autorecon
実行するだけで AutoRecon を実行できます。
pip
またはpipx
使用したくない場合でも、いつでもautorecon.py
スクリプトとして手動でインストールして実行できます。 AutoRecon ディレクトリ内から、依存関係をインストールします。
python3 -m pip install -r requirements.txt
これで、 autorecon.py
スクリプトを実行できるようになります。
python3 autorecon.py [OPTIONS] 127.0.0.1
pipx を使用してインストールされている AutoRecon をアップグレードするのが最も簡単であり、この方法が推奨される理由です。次のコマンドを実行するだけです。
pipx upgrade autorecon
pip を使用して AutoRecon をインストールした場合は、まず AutoRecon をアンインストールしてから、同じインストール コマンドを使用して再インストールする必要があります。
python3 -m pip uninstall autorecon
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
AutoRecon を手動でインストールした場合は、AutoRecon ディレクトリに移動して次のコマンドを実行します。
git pull
AutoRecon ディレクトリ内のコンテンツを何も変更していないと仮定すると、この GitHub リポジトリから最新のコードが取得されるはずです。その後、通常どおり autorecon.py スクリプトを使用して AutoRecon を実行できます。
プラグインの更新プロセスが進行中です。それまでは、アップグレード後に ~/.local/share/AutoRecon ディレクトリを削除し、任意の引数を指定して AutoRecon を実行して、最新のファイルを再入力してください。
AutoRecon は Python 3 固有の機能を使用し、Python 2 をサポートしません。
usage: autorecon [-t TARGET_FILE] [-p PORTS] [-m MAX_SCANS] [-mp MAX_PORT_SCANS] [-c CONFIG_FILE] [-g GLOBAL_FILE] [--tags TAGS]
[--exclude-tags TAGS] [--port-scans PLUGINS] [--service-scans PLUGINS] [--reports PLUGINS] [--plugins-dir PLUGINS_DIR]
[--add-plugins-dir PLUGINS_DIR] [-l [TYPE]] [-o OUTPUT] [--single-target] [--only-scans-dir] [--no-port-dirs]
[--heartbeat HEARTBEAT] [--timeout TIMEOUT] [--target-timeout TARGET_TIMEOUT] [--nmap NMAP | --nmap-append NMAP_APPEND]
[--proxychains] [--disable-sanity-checks] [--disable-keyboard-control] [--force-services SERVICE [SERVICE ...]] [--accessible]
[-v] [--version] [--curl.path VALUE] [--dirbuster.tool {feroxbuster,gobuster,dirsearch,ffuf,dirb}]
[--dirbuster.wordlist VALUE [VALUE ...]] [--dirbuster.threads VALUE] [--dirbuster.ext VALUE]
[--onesixtyone.community-strings VALUE] [--global.username-wordlist VALUE] [--global.password-wordlist VALUE]
[--global.domain VALUE] [-h]
[targets ...]
Network reconnaissance tool to port scan and automatically enumerate services found on multiple targets.
positional arguments:
targets IP addresses (e.g. 10.0.0.1), CIDR notation (e.g. 10.0.0.1/24), or resolvable hostnames (e.g. foo.bar) to scan.
optional arguments:
-t TARGET_FILE, --target-file TARGET_FILE
Read targets from file.
-p PORTS, --ports PORTS
Comma separated list of ports / port ranges to scan. Specify TCP/UDP ports by prepending list with T:/U: To scan both
TCP/UDP, put port(s) at start or specify B: e.g. 53,T:21-25,80,U:123,B:123. Default: None
-m MAX_SCANS, --max-scans MAX_SCANS
The maximum number of concurrent scans to run. Default: 50
-mp MAX_PORT_SCANS, --max-port-scans MAX_PORT_SCANS
The maximum number of concurrent port scans to run. Default: 10 (approx 20% of max-scans unless specified)
-c CONFIG_FILE, --config CONFIG_FILE
Location of AutoRecon's config file. Default: ~/.config/AutoRecon/config.toml
-g GLOBAL_FILE, --global-file GLOBAL_FILE
Location of AutoRecon's global file. Default: ~/.config/AutoRecon/global.toml
--tags TAGS Tags to determine which plugins should be included. Separate tags by a plus symbol (+) to group tags together. Separate
groups with a comma (,) to create multiple groups. For a plugin to be included, it must have all the tags specified in
at least one group. Default: default
--exclude-tags TAGS Tags to determine which plugins should be excluded. Separate tags by a plus symbol (+) to group tags together. Separate
groups with a comma (,) to create multiple groups. For a plugin to be excluded, it must have all the tags specified in
at least one group. Default: None
--port-scans PLUGINS Override --tags / --exclude-tags for the listed PortScan plugins (comma separated). Default: None
--service-scans PLUGINS
Override --tags / --exclude-tags for the listed ServiceScan plugins (comma separated). Default: None
--reports PLUGINS Override --tags / --exclude-tags for the listed Report plugins (comma separated). Default: None
--plugins-dir PLUGINS_DIR
The location of the plugins directory. Default: ~/.local/share/AutoRecon/plugins
--add-plugins-dir PLUGINS_DIR
The location of an additional plugins directory to add to the main one. Default: None
-l [TYPE], --list [TYPE]
List all plugins or plugins of a specific type. e.g. --list, --list port, --list service
-o OUTPUT, --output OUTPUT
The output directory for results. Default: results
--single-target Only scan a single target. A directory named after the target will not be created. Instead, the directory structure will
be created within the output directory. Default: False
--only-scans-dir Only create the "scans" directory for results. Other directories (e.g. exploit, loot, report) will not be created.
Default: False
--no-port-dirs Don't create directories for ports (e.g. scans/tcp80, scans/udp53). Instead store all results in the "scans" directory
itself. Default: False
--heartbeat HEARTBEAT
Specifies the heartbeat interval (in seconds) for scan status messages. Default: 60
--timeout TIMEOUT Specifies the maximum amount of time in minutes that AutoRecon should run for. Default: None
--target-timeout TARGET_TIMEOUT
Specifies the maximum amount of time in minutes that a target should be scanned for before abandoning it and moving on.
Default: None
--nmap NMAP Override the {nmap_extra} variable in scans. Default: -vv --reason -Pn -T4
--nmap-append NMAP_APPEND
Append to the default {nmap_extra} variable in scans. Default:
--proxychains Use if you are running AutoRecon via proxychains. Default: False
--disable-sanity-checks
Disable sanity checks that would otherwise prevent the scans from running. Default: False
--disable-keyboard-control
Disables keyboard control ([s]tatus, Up, Down) if you are in SSH or Docker.
--force-services SERVICE [SERVICE ...]
A space separated list of services in the following style: tcp/80/http tcp/443/https/secure
--accessible Attempts to make AutoRecon output more accessible to screenreaders. Default: False
-v, --verbose Enable verbose output. Repeat for more verbosity.
--version Prints the AutoRecon version and exits.
-h, --help Show this help message and exit.
plugin arguments:
These are optional arguments for certain plugins.
--curl.path VALUE The path on the web server to curl. Default: /
--dirbuster.tool {feroxbuster,gobuster,dirsearch,ffuf,dirb}
The tool to use for directory busting. Default: feroxbuster
--dirbuster.wordlist VALUE [VALUE ...]
The wordlist(s) to use when directory busting. Separate multiple wordlists with spaces. Default:
['~/.local/share/AutoRecon/wordlists/dirbuster.txt']
--dirbuster.threads VALUE
The number of threads to use when directory busting. Default: 10
--dirbuster.ext VALUE
The extensions you wish to fuzz (no dot, comma separated). Default: txt,html,php,asp,aspx,jsp
--onesixtyone.community-strings VALUE
The file containing a list of community strings to try. Default: /usr/share/seclists/Discovery/SNMP/common-snmp-
community-strings-onesixtyone.txt
global plugin arguments:
These are optional arguments that can be used by all plugins.
--global.username-wordlist VALUE
A wordlist of usernames, useful for bruteforcing. Default: /usr/share/seclists/Usernames/top-usernames-shortlist.txt
--global.password-wordlist VALUE
A wordlist of passwords, useful for bruteforcing. Default: /usr/share/seclists/Passwords/darkweb2017-top100.txt
--global.domain VALUE
The domain to use (if known). Used for DNS and/or Active Directory. Default: None
AutoRecon は 4 つのレベルの冗長性をサポートしています。
注: 上下の矢印キーを押すと、スキャン中の AutoRecon の詳細度を変更できます。
デフォルトでは、結果は ./results ディレクトリに保存されます。ターゲットごとに新しいサブディレクトリが作成されます。このサブディレクトリの構造は次のとおりです。
.
├── exploit/
├── loot/
├── report/
│ ├── local.txt
│ ├── notes.txt
│ ├── proof.txt
│ └── screenshots/
└── scans/
├── _commands.log
├── _manual_commands.txt
├── tcp80/
├── udp53/
└── xml/
エクスプロイト ディレクトリには、ターゲット用にダウンロードまたは作成したエクスプロイト コードを含めることが目的です。
戦利品ディレクトリには、ターゲット上で見つかったあらゆる戦利品 (ハッシュ、興味深いファイルなど) が含まれるように設計されています。
レポート ディレクトリには、レポート作成に役立つ自動生成されたファイルとディレクトリがいくつか含まれています。
scans ディレクトリには、AutoRecon によって実行されたスキャンのすべての結果が保存されます。これには、ポート スキャン/サービス検出スキャン、およびサービス列挙スキャンが含まれます。他に 2 つのファイルも含まれています。
デフォルトでは、開いているポート (tcp80、udp53 など) ごとにディレクトリが作成され、それらのポートで見つかったサービスのスキャン結果がそれぞれのディレクトリに保存されます。 --no-port-dirs コマンド ライン オプションを使用してこの動作を無効にすると、スキャン結果は代わりに scans ディレクトリ自体に保存されます。
スキャンの結果がエラーとなった場合は、ユーザーに警告するための詳細情報を含む _errors.log というファイルも scans ディレクトリに表示されます。
出力が定義されたパターンと一致する場合、一致した出力に関する詳細を含む _patterns.log というファイルも scans ディレクトリに表示されます。
scans/xml ディレクトリには、scans ディレクトリ自体が乱雑にならないように、XML 出力 (Nmap スキャンなど) がメインのスキャン出力とは別に保存されます。
AutoRecon は、アクティブな情報収集コマンドを自分で実行するという退屈な作業から解放されたため、OSCP 試験中に非常に貴重でした。必要な情報がすべて明確に目の前に用意されていたので、目標に向かって始めることができました。 PWK ラボ、OSCP 試験、または VulnHub や HTB などの他の環境にいる人には、このユーティリティを強くお勧めします。これは、OffSec への取り組みを始めたばかりの人にとっても、ベテランにとっても同様に優れたツールです。この 2 つのポイントの間のどこかで、「内部で」何が起こっているのか、そして何をどのように/なぜスキャンするのかを学ぶために必ず時間をかけてください。
- b0ats (root化された5/5試験ホスト)
うわー、なんと素晴らしい発見でしょう! AutoRecon を使用する前は、ReconScan がターゲットの goto 列挙スクリプトでした。これは、開いているポートが見つかった後、列挙コマンドが自動的に実行されるためです。唯一欠けていたのは、侵入テスト担当者が作業 (エクスプロイト、略奪、レポート、スキャン) 中に必要となる可能性のある主要なディレクトリの自動作成でした。 Reconnoitre はこれを実行しましたが、それらのコマンドを自動的に実行しませんでした。 AutoRecon を試してみるまで、ReconScan はミツバチの膝のようなものだと思っていました。すごいですね!これは、Reconnoitre (自動ディレクトリ作成) と ReconScan (列挙コマンドの自動実行) の最良の機能を組み合わせたものです。必要なのは、1 つまたは複数のターゲット上で実行し、スキャンの残りの部分を続行している間にすでに収集された情報の調査を開始することだけです。証拠はプリンにあります:) OSCP試験に合格しました! Tib3rius に敬意を表します!
- ワークアウト
友人が AutoRecon について教えてくれたので、PWK ラボで試してみました。 AutoRecon は、nmap であれ nikto であれ、私たち全員がいつも使用する共通ツールを起動し、攻撃対象のターゲットに基づいて優れたサブフォルダー システムも作成します。 AutoRecon の最大の特徴は速度です。 OSCP 試験では、別のターゲットを開始している間、ツールをバックグラウンドで実行したままにしておきました。数分以内に、すべての AutoRecon 出力が待機するようになりました。 AutoRecon は、手動で試行する必要があるコマンドが含まれたファイルを作成します。その中には調整が必要なコマンドもあります (たとえば、hydra ブルートフォース コマンド)。追加のチェックリストがあると便利です。
- tr3mb0 (root化された4/5試験ホスト)
AutoRecon の紹介は、OSCP を受験し、ペネトレーション テスト方法を確立する際に、私にとって完全な状況を変えるものでした。 AutoRecon は、一般的な列挙ツールを組み合わせて自動化し、面倒な作業のほとんどを行ってくれるマルチスレッドの偵察ツールです。これ以上に優れたものはありません。 OSCP 試験ホストで AutoRecon を実行した後、各ホストで開始して最初の試行で合格するのに役立つ情報が詰まった宝箱を受け取りました。このツールの最も優れた点は、最初のポート スキャンに基づいてさらに列挙スキャンを自動的に開始することです (たとえば、SMB が検出された場合は enum4linux を実行します)。唯一残念だったのは、このツールをもっと早く使わなかったことです。ありがとうTib3rius。
- rufy (root化された4/5試験ホスト)
AutoRecon を使用すると、セキュリティ研究者はホストを繰り返しスキャンし、潜在的な攻撃ベクトルを特定できます。その真の力は、攻撃者が別のホストで作業している間にバックグラウンドでスキャンを実行するという形で発揮されます。スキャンを開始して、作業していた特定のホストを終了することができました。その後、戻って、関連するすべてのスキャンが完了していることを確認できました。その後、アクティブなスキャン プロセスを手動で実行する代わりに、すぐに初期アクセスの取得を開始することができました。今後のペネトレーション テストや CTF では AutoRecon を使用し続けるので、同じようにすることを強くお勧めします。
- waar (root化された4.99/5試験ホスト)
「1 日に 2 回以上タスクを実行する必要がある場合は、それを自動化する必要があります。」これは昔の上司が私にくれたアドバイスです。 AutoRecon はその教訓を心に留めています。試験中であっても、PWK ラボにいても、AutoRecon を起動して魔法を働かせることができます。前回の試験中、バッファ オーバーフローに取り組んでいた間、それを実行していました。完了するまでに、必要な列挙型データがすべて揃っていました。 10/10 は、CTF を始めようとしている人、およびこれに長い間取り組んでいる人にお勧めします。
- ホイスフリン
このツールがとても気に入って書きました。
- Tib3rius (root化された5/5試験ホスト)
OSCP を使用している人、CTF を実行している人、または HTB を使用している人には、このツールをチェックアウトすることを強くお勧めします。 HTB で AutoRecon を 1 か月間使用してから、PWK ラボで使用して、OSCP 試験に合格するのに役立ちました。列挙方法に慣れるのが難しい場合は、このスクリプトが使用するフローとテクニックに従うことをお勧めします。これは、おそらく慣れ親しんでいる退屈な作業の多くを軽減すると同時に、頭を失わないようにすぐに確認できる、よく整理されたサブディレクトリを提供します。提供される手動コマンドは、オプションがなくなったときに必要となる特定の状況に最適です。これは非常に価値のあるツールですが、十分にお勧めできません。
- d0hnuts (root化された5/5試験ホスト)
Autorecon は単なるツールではなく、交戦のための偵察相関フレームワークです。これにより、他のターゲットで作業している間に大量のスキャンを実行することができました。これは時間管理に非常に役立ちます。これにより、pwk 試験で 4/5 ボックスを所有することができました。結果:合格しました!
- Wh0ami (root化された4/5試験ホスト)
初めて AutoRecon について聞いたとき、これが本当に必要なのかと尋ねましたが、私の列挙は問題ありませんでした...私は広い心で試してみましたが、生成される情報の量にすぐに少し戸惑いました。慣れてきて出力を読み始めると、自分がどれだけ欠けているかに気づきました。 OSCP 試験に使用しましたが、他の方法では決して見つけられなかったものが見つかりました。 AutoRecon がなければ失敗していたと私は強く信じています。これは素晴らしいツールであり、Tib3rius が作り上げたものに非常に感銘を受けています。間違いなく、私がすでにあなたを含む他の人に勧めているものです。
- 他の新しい
AutoRecon のおかげで、OSCP 試験の貴重な時間を節約でき、システムのスキャンに費やす時間が減り、システムへの侵入に多くの時間を費やすことができました。このソフトウェアは金に等しいほどの価値があります。
- TorHackr
列挙を簡単に実行できる魔法のツールです。起動するだけで、実行するには大量のコマンドが必要だったであろう大量の情報を吐き出すマルチスレッドの美しさをご覧ください。 OSCP 試験で AutoRecon を使用するだけで、取り組みの半分はすでに完了していると私は確信しています。強くお勧めします!
- Arman (4.5/5 試験主催者を解決)