這就像用保險桿打保齡球一樣。 - @ippsec
AutoRecon 是一種多執行緒網路偵察工具,可自動執行服務枚舉。它旨在作為一種節省時間的工具,用於 CTF 和其他滲透測試環境(例如 OSCP)。它在現實世界中也可能有用。
該工具的工作原理是首先執行連接埠掃描/服務檢測掃描。根據這些初步結果,該工具將使用許多不同的工具對這些服務發起進一步的枚舉掃描。例如,如果找到 HTTP,feroxbuster 將啟動(以及許多其他程式)。
該工具中的所有內容都是高度可配置的。預設配置不執行自動利用以使工具符合 OSCP 考試規則。如果您希望將自動利用工具新增至配置中,則需要自行承擔風險。對於因濫用工具而導致的負面行為,作者不承擔任何責任。
免責聲明:雖然 AutoRecon 盡力執行盡可能多的服務識別和枚舉,但不能保證每項服務都會被識別,或者每項服務都會被完全枚舉。 AutoRecon 的使用者(尤其是學生)應在 AutoRecon 的同時執行自己的手動枚舉。不要僅依賴此工具進行考試、CTF 或其他活動。
AutoRecon 的靈感來自於作者在 OSCP 實驗室中使用的三個工具:Reconnoitre、ReconScan 和 bscan。雖然這三個工具都很有用,但這三個工具中沒有一個單獨具有所需的功能。 AutoRecon 結合了上述工具的最佳功能,同時也實現了許多新功能來幫助測試人員列舉多個目標。
AutoRecon 有三種安裝方式:pipx、pip 和手動。在使用任何這些方法進行安裝之前,需要滿足某些要求。如果您最近沒有刷新 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 仍將運行,但多個命令可能會失敗,某些手動命令也可能無法運行。
此外,根據您的作業系統,可能需要安裝以下命令:
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
建議您使用pipx
安裝 AutoRecon。 pipx 將在其自己的虛擬環境中安裝 AutoRecon,並使其在全域上下文中可用,從而避免套件相依性衝突以及由此產生的不穩定。首先,使用以下命令安裝 pipx:
sudo apt install python3-venv
python3 -m pip install --user pipx
python3 -m pipx ensurepath
執行這些命令後,您必須重新取得 ~/.bashrc 或 ~/.zshrc 檔案(或開啟新選項卡)才能使用 pipx。
使用以下命令安裝 AutoRecon:
pipx install git+https://github.com/Tib3rius/AutoRecon.git
請注意,如果您想使用 sudo 執行 AutoRecon(需要更快的 SYN 掃描和 UDP 掃描),則必須使用下列範例之一:
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 支援四種詳細程度:
注意:您可以按下向上和向下箭頭鍵來變更 AutoRecon 掃描中的詳細程度。
預設情況下,結果將儲存在 ./results 目錄中。為每個目標建立一個新的子目錄。此子目錄的結構為:
.
├── exploit/
├── loot/
├── report/
│ ├── local.txt
│ ├── notes.txt
│ ├── proof.txt
│ └── screenshots/
└── scans/
├── _commands.log
├── _manual_commands.txt
├── tcp80/
├── udp53/
└── xml/
漏洞利用目錄旨在包含您為目標下載/編寫的任何漏洞程式碼。
戰利品目錄旨在包含您在目標上找到的任何戰利品(例如哈希值、有趣的檔案)。
報告目錄包含一些對報告有用的自動產生的文件和目錄:
掃描目錄是 AutoRecon 執行的掃描的所有結果都會存放的位置。這包括連接埠掃描/服務偵測掃描,以及任何服務枚舉掃描。它還包含其他兩個檔案:
預設情況下,會為每個開放連接埠(例如 tcp80、udp53)建立目錄,並且在這些連接埠上找到的服務的掃描結果會儲存在各自的目錄中。您可以使用 --no-port-dirs 命令列選項停用此行為,掃描結果將儲存在掃描目錄本身。
如果掃描導致錯誤,名為 _errors.log 的檔案也會出現在掃描目錄中,其中包含一些詳細資訊以提醒使用者。
如果輸出與定義的模式匹配,則名為 _patterns.log 的檔案也會出現在掃描目錄中,其中包含有關匹配輸出的詳細資訊。
scans/xml 目錄將任何 XML 輸出(例如,來自 Nmap 掃描)與主掃描輸出分開存儲,以便 scans 目錄本身不會變得太混亂。
AutoRecon 在我的 OSCP 考試期間非常有用,因為它使我免於親自執行主動資訊收集命令的乏味。我能夠從一個目標開始,我需要的所有資訊都清晰地擺在我面前。我強烈推薦 PWK 實驗室、OSCP 考試或其他環境(例如 VulnHub 或 HTB)中的任何人使用此實用程式。對於剛開始進入 OffSec 的人以及經驗豐富的退伍軍人來說,這都是一個很好的工具。只要確保在這兩點之間的某個地方,您花時間了解“幕後”發生了什麼以及它如何/為什麼掃描它所做的事情。
- b0ats(已root的5/5考試主機)
哇,真是個偉大的發現!在使用 AutoRecon 之前,ReconScan 是我的目標枚舉腳本,因為它在找到開放連接埠後會自動執行枚舉命令。唯一缺少的是自動建立滲透測試人員在參與(利用、掠奪、報告、掃描)期間可能需要的關鍵目錄。 Reconnoitre 執行了此操作,但不會自動為您執行這些命令。在嘗試 AutoRecon 之前,我一直以為 ReconScan 已經很出色了。太棒了!它結合了 Reconnoitre(自動目錄建立)和 ReconScan(自動執行枚舉命令)的最佳功能。我所要做的就是在一個目標或一組目標上運行它,並開始檢查它已經收集的信息,同時繼續其餘的掃描。證據就在布丁中:) 通過了 OSCP 考試!向 Tib3rius 致敬!
- werk0ut
一位朋友向我介紹了 AutoRecon,所以我在 PWK 實驗室嘗試了一下。 AutoRecon 啟動了我們經常使用的常用工具,無論是 nmap 還是 nikto,並且還根據您要攻擊的目標創建了一個很好的子資料夾系統。 AutoRecon的最強特點是速度;在 OSCP 考試中,我讓工具在後台運行,同時開始另一個目標,幾分鐘後我就得到了所有 AutoRecon 輸出。 AutoRecon 會建立一個充滿命令的文件,您應該手動嘗試這些命令,其中一些可能需要調整(例如,Hydra bruteforcing 命令)。擁有額外的清單是件好事。
- tr3mb0(已取得 root 權限的 4/5 考試主機)
在參加 OSCP 並建立我的滲透測試方法時,引入 AutoRecon 對我來說是一個徹底的遊戲規則改變。 AutoRecon 是一款多線程偵察工具,它結合併自動化了流行的枚舉工具,為您完成大部分艱苦的工作。沒有比這更好的了!在我的 OSCP 考試主機上執行 AutoRecon 後,我獲得了一個充滿資訊的寶箱,這些資訊幫助我在每個主機上啟動並通過我的第一次嘗試。該工具最好的部分是它會根據初始連接埠掃描自動啟動進一步的枚舉掃描(例如,如果偵測到 SMB,則執行 enum4linux)。唯一不好的是我沒有早點使用這個工具!謝謝提比魯斯。
- rufy(紮根 4/5 考試主機)
AutoRecon 讓安全研究人員迭代掃描主機並識別潛在的攻擊媒介。它的真正威力在於當攻擊者在另一台主機上工作時在背景執行掃描。我能夠開始掃描並完成我正在處理的特定主機 - 然後返回以發現所有相關掃描已完成。然後,我能夠立即開始嘗試獲得初始存取權限,而不是手動執行主動掃描程序。我將在未來的滲透測試和 CTF 中繼續使用 AutoRecon,並強烈建議您也這樣做。
- waar(已root的4.99/5考試主機)
“如果你每天必須完成一項任務兩次以上,你就需要將其自動化。”這是一位老老闆給我的建議。 AutoRecon 牢記這一課。無論您是參加考試,還是在 PWK 實驗室,您都可以啟動 AutoRecon,讓它發揮其魔力。我在上次考試期間在處理緩衝區溢位問題時運行了它。當我完成時,我需要的所有枚舉資料都已準備好供我查看。 10/10 會推薦給任何進入 CTF 的人,以及任何已經從事此工作很長時間的人。
——whoisflynn
我非常喜歡這個工具,所以我寫了它。
- Tib3rius(已root的5/5考試主機)
我強烈建議任何使用 OSCP、進行 CTF 或 HTB 的人來檢查這個工具。在 HTB 使用 AutoRecon 一個月了,然後在 PWK 實驗室上使用它,它幫助我通過了 OSCP 考試。如果您很難適應枚舉方法,我鼓勵您遵循該腳本使用的流程和技術。它消除了您可能習慣的許多繁瑣的工作,同時提供組織良好的子目錄供您快速查看,這樣您就不會失去理智。它提供的手動命令非常適合當您沒有選項時需要它的特定情況。這是一個非常有價值的工具,強烈推薦。
- d0hnuts(紮根 5/5 考試主機)
Autorecon 不僅僅是任何其他工具,它是一個用於交戰的偵察關聯框架。這幫助我在處理其他目標時進行了大量掃描。這對時間管理有很大幫助。這幫助我在 pwk 考試中擁有 4/5 個盒子!結果:通過!
- Wh0ami(已取得 root 權限的 4/5 考試主機)
當我第一次聽到 AutoRecon 時,我問我是否真的需要這個,我的枚舉沒問題……我以開放的心態嘗試了它,但立即對它生成的信息量感到有點驚訝。一旦我習慣了它,並開始閱讀輸出,我就意識到我錯過了多少。我用它參加了 OSCP 考試,它發現了我在其他情況下永遠找不到的東西。我堅信,如果沒有 AutoRecon,我就會失敗。這是一個很棒的工具,Tib3rius 的設計能力給我留下了深刻的印象。這絕對是我已經推薦給其他人的東西,包括你!
- 奧索紐
AutoRecon 幫助我在 OSCP 考試中節省了寶貴的時間,讓我能夠花更少的時間掃描系統,而花更多的時間進入系統。這個軟體價值連城!
- TorHackr
這個神奇的工具使枚舉變得輕而易舉,只需啟動它,就會看到多執行緒吐出大量資訊的美妙之處,而這些資訊需要大量命令才能執行。我當然相信,只要在 OSCP 考試中使用 AutoRecon,就已經成功了一半。強烈推薦!
- Arman(解決了 4.5/5 考試主持人)