就像是带挡板的保龄球。 - @ippsec
AutoRecon 是一款多线程网络侦察工具,能够自动对服务进行枚举。它旨在为 CTF 和其他渗透测试环境(例如 OSCP)节省时间。在实际的渗透测试任务中也可能有用。
该工具的工作流程是:首先执行端口扫描/服务检测扫描。根据初始结果,工具会使用多种不同的工具对这些服务启动进一步的枚举扫描。例如,如果发现 HTTP 服务,将会启动 feroxbuster(以及其他工具)。
工具中的一切都是高度可配置的。默认配置不会进行任何自动化利用,以符合 OSCP 考试规则。如果你想向配置中添加自动利用工具,风险自负。作者不对因误用本工具而产生的负面行为承担责任。
免责声明:尽管 AutoRecon 尽力对尽可能多的服务进行识别和枚举,但不保证每个服务都能被识别,也不保证每个服务都能被完全枚举。AutoRecon 的用户(尤其是学生)应当同时进行手动枚举。不要仅依赖此工具参加考试、CTF 或其他活动。
AutoRecon 的灵感来源于作者在 OSCP 实验室中使用的三个工具:Reconnoitre、ReconScan 和 bscan。虽然这三个工具都有用,但单独使用任何一个都无法完全满足需求。AutoRecon 结合了上述工具的最佳特性,同时还实现了许多新功能,帮助测试人员对多个目标进行枚举。
有四种方式安装 AutoRecon:pipx、pip、手动安装 以及 Docker。在通过任何这些方法安装之前,需要满足某些先决条件。如果你最近没有刷新过 apt 缓存,请运行以下命令以便安装最新的可用包:```bash sudo apt update
### Python 3
AutoRecon 需要使用 Python 3.8+ 和 pip,可以通过以下命令在 Kali Linux 上安装:```bash
sudo apt install python3
sudo apt install python3-pip
AutoRecon中使用的几个命令引用了SecLists项目,位于目录/usr/share/seclists/。你可以手动下载SecLists项目到该目录(https://github.com/danielmiessler/SecLists),或者如果你使用的是Kali Linux(强烈推荐),你可以运行以下命令:```bash 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
在 Kali Linux 上,你可以使用以下命令确保所有这些都已安装:```bash 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
### 安装方法 #1:pipx(推荐)
建议您使用 `pipx` 安装 AutoRecon。pipx 将 AutoRecon 安装在其自己的虚拟环境中,并使其在全局上下文中可用,从而避免包依赖冲突及其导致的不稳定性。首先,使用以下命令安装 pipx:```bash
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
``````bash
pipx install git+https://github.com/Tib3rius/AutoRecon.git
请注意,如果您想使用 sudo 运行 AutoRecon(这是更快地进行 SYN 扫描和 UDP 扫描所必需的),您必须使用 一种 以下示例:```bash sudo env "PATH=$PATH" autorecon [OPTIONS] sudo $(which autorecon) [OPTIONS]
### 安装方法 #2:pip
或者,你可以使用 `pip` 通过以下命令安装 AutoRecon:```bash
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目录内,安装依赖:```bash
python3 -m pip install -r requirements.txt
然后您将能够运行 `autorecon.py` 脚本:```bash
python3 autorecon.py [OPTIONS] 127.0.0.1
使用pipx安装AutoRecon后,升级是最容易的,这也是推荐该安装方法的原因。只需运行以下命令:```bash pipx upgrade autorecon
### pip
如果你已使用pip安装了AutoRecon,你需要先卸载AutoRecon,然后使用相同的安装命令重新安装:```bash
python3 -m pip uninstall autorecon
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
如果您已手动安装 AutoRecon,只需切换到 AutoRecon 目录并运行以下命令:```bash git pull
假设你没有修改AutoRecon目录中的任何内容,这将从GitHub仓库拉取最新代码,之后你可以像往常一样通过 autorecon.py 脚本运行AutoRecon。
### Plugins
插件更新流程正在开发中。在那之前,升级后请删除 ~/.local/share/AutoRecon 目录,然后运行AutoRecon(带上任意参数)以重新填充最新文件。
## Usage
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.