这就像用保险杠打保龄球一样。 - @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 考试主持人)