C'est comme jouer au bowling avec des pare-chocs. - @ippsec
AutoRecon est un outil de reconnaissance de réseau multithread qui effectue une énumération automatisée des services. Il est conçu comme un outil permettant de gagner du temps à utiliser dans les CTF et autres environnements de tests d'intrusion (par exemple OSCP). Cela peut également être utile dans des engagements réels.
L'outil fonctionne en effectuant d'abord des analyses de ports/analyses de détection de services. À partir de ces premiers résultats, l’outil lancera d’autres analyses d’énumération de ces services à l’aide d’un certain nombre d’outils différents. Par exemple, si HTTP est trouvé, feroxbuster sera lancé (ainsi que bien d'autres).
Tout dans l'outil est hautement configurable. La configuration par défaut n'effectue aucune exploitation automatisée pour maintenir l'outil conforme aux règles d'examen OSCP. Si vous souhaitez ajouter des outils d'exploitation automatiques à la configuration, vous le faites à vos propres risques. L'auteur ne sera pas tenu responsable des actions négatives résultant d'une mauvaise utilisation de cet outil.
Avertissement : Bien qu'AutoRecon s'efforce d'effectuer autant d'identification et d'énumération de services que possible, il n'y a aucune garantie que chaque service sera identifié ou que chaque service sera entièrement énuméré. Les utilisateurs d'AutoRecon (en particulier les étudiants) doivent effectuer leur propre énumération manuelle parallèlement à AutoRecon. Ne comptez pas uniquement sur cet outil pour les examens, les CTF ou d'autres engagements.
AutoRecon s'est inspiré de trois outils que l'auteur a utilisés lors des laboratoires OSCP : Reconnoitre, ReconScan et bscan. Même si les trois outils étaient utiles, aucun d’entre eux ne possédait à lui seul la fonctionnalité souhaitée. AutoRecon combine les meilleures fonctionnalités des outils susmentionnés tout en implémentant de nombreuses nouvelles fonctionnalités pour aider les testeurs à énumérer plusieurs cibles.
Il existe trois façons d'installer AutoRecon : pipx, pip et manuellement. Avant l'installation à l'aide de l'une de ces méthodes, certaines conditions doivent être remplies. Si vous n'avez pas actualisé votre cache apt récemment, exécutez la commande suivante afin d'installer les derniers packages disponibles :
sudo apt update
AutoRecon nécessite l'utilisation de Python 3.8+ et pip, qui peuvent être installés sur Kali Linux à l'aide des commandes suivantes :
sudo apt install python3
sudo apt install python3-pip
Plusieurs commandes utilisées dans AutoRecon font référence au projet SecLists, dans le répertoire /usr/share/seclists/. Vous pouvez soit télécharger manuellement le projet SecLists dans ce répertoire (https://github.com/danielmiessler/SecLists), soit si vous utilisez Kali Linux ( fortement recommandé ), vous pouvez exécuter les commandes suivantes :
sudo apt install seclists
AutoRecon s'exécutera toujours si vous n'installez pas SecLists, bien que plusieurs commandes puissent échouer et que certaines commandes manuelles puissent ne pas s'exécuter non plus.
De plus, les commandes suivantes peuvent devoir être installées, en fonction de votre système d'exploitation :
curl
dnsrecon
enum4linux
feroxbuster
gobuster
impacket-scripts
nbtscan
nikto
nmap
onesixtyone
oscanner
redis-tools
smbclient
smbmap
snmpwalk
sslscan
svwar
tnscmd10g
whatweb
wkhtmltopdf
Sur Kali Linux, vous pouvez vous assurer qu'ils sont tous installés à l'aide des commandes suivantes :
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
Il est recommandé d'utiliser pipx
pour installer AutoRecon. pipx installera AutoRecon dans son propre environnement virtuel et le rendra disponible dans le contexte global, évitant ainsi les dépendances conflictuelles des packages et l'instabilité qui en résulte. Tout d’abord, installez pipx à l’aide des commandes suivantes :
sudo apt install python3-venv
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Vous devrez ressourcer votre fichier ~/.bashrc ou ~/.zshrc (ou ouvrir un nouvel onglet) après avoir exécuté ces commandes afin d'utiliser pipx.
Installez AutoRecon à l'aide de la commande suivante :
pipx install git+https://github.com/Tib3rius/AutoRecon.git
Notez que si vous souhaitez exécuter AutoRecon à l'aide de sudo (requis pour une analyse SYN et UDP plus rapides), vous devez utiliser l'un des exemples suivants :
sudo env " PATH= $PATH " autorecon [OPTIONS]
sudo $( which autorecon ) [OPTIONS]
Vous pouvez également utiliser pip
pour installer AutoRecon à l'aide de la commande suivante :
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
Notez que si vous souhaitez exécuter AutoRecon à l'aide de sudo (requis pour une analyse SYN et UDP plus rapides), vous devrez exécuter la commande ci-dessus en tant qu'utilisateur root (ou en utilisant sudo).
De la même manière que pipx
, s'il est installé à l'aide pip
vous pouvez exécuter AutoRecon en exécutant simplement autorecon
.
Si vous préférez ne pas utiliser pip
ou pipx
, vous pouvez toujours installer et exécuter autorecon.py
manuellement en tant que script. Depuis le répertoire AutoRecon, installez les dépendances :
python3 -m pip install -r requirements.txt
Vous pourrez alors exécuter le script autorecon.py
:
python3 autorecon.py [OPTIONS] 127.0.0.1
La mise à niveau d'AutoRecon lorsqu'il a été installé avec pipx est la plus simple et c'est pourquoi cette méthode est recommandée. Exécutez simplement la commande suivante :
pipx upgrade autorecon
Si vous avez installé AutoRecon à l'aide de pip, vous devrez d'abord désinstaller AutoRecon puis réinstaller en utilisant la même commande d'installation :
python3 -m pip uninstall autorecon
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
Si vous avez installé AutoRecon manuellement, accédez simplement au répertoire AutoRecon et exécutez la commande suivante :
git pull
En supposant que vous n'avez modifié aucun contenu du répertoire AutoRecon, cela devrait extraire le dernier code de ce dépôt GitHub, après quoi vous pourrez exécuter AutoRecon à l'aide du script autorecon.py comme d'habitude.
Un processus de mise à jour du plugin est en cours. D'ici là, après la mise à niveau, supprimez le répertoire ~/.local/share/AutoRecon et exécutez AutoRecon avec n'importe quel argument pour repeupler avec les derniers fichiers.
AutoRecon utilise des fonctionnalités spécifiques à Python 3 et ne prend pas en charge 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 prend en charge quatre niveaux de verbosité :
Remarque : Vous pouvez modifier le niveau de détail de l'AutoRecon en cours d'analyse en appuyant sur les touches fléchées haut et bas.
Par défaut, les résultats seront stockés dans le répertoire ./results. Un nouveau sous-répertoire est créé pour chaque cible. La structure de ce sous-répertoire est la suivante :
.
├── exploit/
├── loot/
├── report/
│ ├── local.txt
│ ├── notes.txt
│ ├── proof.txt
│ └── screenshots/
└── scans/
├── _commands.log
├── _manual_commands.txt
├── tcp80/
├── udp53/
└── xml/
Le répertoire d'exploit est destiné à contenir tout code d'exploit que vous téléchargez/écrivez pour la cible.
Le répertoire du butin est destiné à contenir tout butin (par exemple des hachages, des fichiers intéressants) que vous trouvez sur la cible.
Le répertoire de rapports contient des fichiers et répertoires générés automatiquement qui sont utiles pour la création de rapports :
Le répertoire des analyses est l'endroit où iront tous les résultats des analyses effectuées par AutoRecon. Cela inclut les analyses de ports/analyses de détection de services, ainsi que toutes les analyses d'énumération de services. Il contient également deux autres fichiers :
Par défaut, des répertoires sont créés pour chaque port ouvert (par exemple tcp80, udp53) et les résultats d'analyse des services trouvés sur ces ports sont stockés dans leurs répertoires respectifs. Vous pouvez désactiver ce comportement à l'aide de l'option de ligne de commande --no-port-dirs, et les résultats de l'analyse seront stockés dans le répertoire d'analyse lui-même.
Si une analyse génère une erreur, un fichier appelé _errors.log apparaîtra également dans le répertoire des analyses avec quelques détails pour alerter l'utilisateur.
Si la sortie correspond à un modèle défini, un fichier appelé _patterns.log apparaîtra également dans le répertoire scans avec des détails sur la sortie correspondante.
Le répertoire scans/xml stocke toute sortie XML (par exemple provenant des analyses Nmap) séparément des principales sorties d'analyse, afin que le répertoire scans lui-même ne soit pas trop encombré.
AutoRecon a été d'une valeur inestimable lors de mon examen OSCP, dans la mesure où il m'a évité l'ennui d'exécuter moi-même mes commandes de collecte d'informations actives. J'ai pu démarrer sur une cible avec toutes les informations dont j'avais besoin clairement placées devant moi. Je recommanderais fortement cet utilitaire à toute personne travaillant dans les laboratoires PWK, l'examen OSCP ou d'autres environnements tels que VulnHub ou HTB. C'est un excellent outil pour les personnes qui débutent leur parcours vers OffSec et pour les vétérans chevronnés. Assurez-vous simplement que quelque part entre ces deux points, vous prenez le temps d'apprendre ce qui se passe « sous le capot » et comment/pourquoi il analyse ce qu'il fait.
- b0ats (hôtes d'examen rootés 5/5)
Wow, quelle belle trouvaille ! Avant d'utiliser AutoRecon, ReconScan était mon script d'énumération goto pour les cibles car il exécutait automatiquement les commandes d'énumération après avoir trouvé des ports ouverts. La seule chose qui manquait était la création automatique des répertoires clés dont un pentester pourrait avoir besoin lors d'un engagement (exploit, pillage, rapport, scans). Reconnoitre l'a fait mais n'a pas exécuté automatiquement ces commandes pour vous. Je pensais que ReconScan était un atout jusqu'à ce que j'essaye AutoRecon. C'est génial ! Il combine les meilleures fonctionnalités de Reconnoitre (création automatique de répertoires) et de ReconScan (exécution automatique des commandes d'énumération). Tout ce que j'ai à faire est de l'exécuter sur une cible ou un ensemble de cibles et de commencer à parcourir les informations déjà collectées pendant qu'il poursuit le reste de l'analyse. La preuve est faite :) J'ai réussi l'examen OSCP ! Félicitations à Tib3rius !
- travail
Un ami m'a parlé d'AutoRecon, alors je l'ai essayé dans les laboratoires PWK. AutoRecon lance les outils communs que nous utilisons tous toujours, que ce soit nmap ou nikto, et crée également un joli système de sous-dossiers basé sur les cibles que vous attaquez. La caractéristique la plus importante d’AutoRecon est la vitesse ; Lors de l'examen OSCP, j'ai laissé l'outil fonctionner en arrière-plan pendant que je commençais avec une autre cible, et en quelques minutes, toute la sortie AutoRecon m'attendait. AutoRecon crée un fichier rempli de commandes que vous devez essayer manuellement, dont certaines peuvent nécessiter des ajustements (par exemple, les commandes Hydra BruteForcing). C'est bien d'avoir cette liste de contrôle supplémentaire.
- tr3mb0 (hôtes d'examen rootés 4/5)
Être initié à AutoRecon a complètement changé la donne pour moi tout en passant l'OSCP et en établissant ma méthodologie de test d'intrusion. AutoRecon est un outil de reconnaissance multithread qui combine et automatise les outils d'énumération populaires pour effectuer la plupart du travail à votre place. On ne peut pas faire mieux que ça ! Après avoir exécuté AutoRecon sur mes hôtes d'examen OSCP, j'ai reçu un coffre au trésor rempli d'informations qui m'ont aidé à démarrer sur chaque hôte et à réussir mon premier essai. La meilleure partie de l'outil est qu'il lance automatiquement d'autres analyses d'énumération basées sur les analyses de ports initiales (par exemple, exécutez enum4linux si SMB est détecté). Le seul inconvénient est que je n’ai pas utilisé cet outil plus tôt ! Merci Tib3rius.
- rufy (hôtes d'examen rootés 4/5)
AutoRecon permet à un chercheur en sécurité d'analyser de manière itérative les hôtes et d'identifier les vecteurs d'attaque potentiels. Son véritable pouvoir réside dans la réalisation d’analyses en arrière-plan pendant que l’attaquant travaille sur un autre hôte. J'ai pu démarrer mes analyses et terminer un hôte spécifique sur lequel je travaillais, puis revenir pour trouver toutes les analyses pertinentes terminées. J'ai alors pu immédiatement commencer à essayer d'obtenir un accès initial au lieu d'effectuer manuellement le processus d'analyse actif. Je continuerai à utiliser AutoRecon dans les futurs tests d'intrusion et CTF, et je vous recommande vivement de faire de même.
- waar (hôtes d'examen rootés 4,99/5)
"Si vous devez effectuer une tâche plus de deux fois par jour, vous devez l'automatiser." C'est un conseil qu'un ancien patron m'a donné. AutoRecon prend cette leçon à cœur. Que vous soyez à l'examen ou dans les laboratoires PWK, vous pouvez lancer AutoRecon et le laisser opérer sa magie. Je l'ai fait fonctionner lors de mon dernier examen alors que je travaillais sur le débordement de tampon. Au moment où j'ai terminé, toutes les données d'énumération dont j'avais besoin étaient là pour que je puisse les parcourir. 10/10 serait recommandé à tous ceux qui se lancent dans le CTF et à tous ceux qui y travaillent depuis longtemps.
- whoisflynn
J'aime tellement cet outil que je l'ai écrit.
- Tib3rius (hôtes d'examen rootés 5/5)
Je recommande fortement à tous ceux qui optent pour leur OSCP, qui font des CTF ou sur HTB de consulter cet outil. J'utilise AutoRecon sur HTB depuis un mois avant de l'utiliser dans les laboratoires PWK et cela m'a aidé à réussir mon examen OSCP. Si vous avez du mal à vous installer avec une méthodologie d'énumération, je vous encourage à suivre le flux et les techniques utilisées par ce script. Cela élimine une grande partie du travail fastidieux auquel vous êtes probablement habitué tout en fournissant en même temps des sous-répertoires bien organisés que vous pouvez parcourir rapidement afin de ne pas perdre la tête. Les commandes manuelles qu'il fournit sont idéales pour les situations spécifiques qui en ont besoin lorsque vous manquez d'options. C'est un outil très précieux, je ne saurais trop le recommander.
- d0hnuts (hôtes d'examen rootés 5/5)
La reconnaissance automatique n'est pas n'importe quel autre outil, c'est un cadre de corrélation de reconnaissance pour les engagements. Cela m'a aidé à lancer tout un tas de scans pendant que je travaillais sur d'autres cibles. Cela peut être très utile dans la gestion du temps. Cela m'a aidé à posséder 4/5 cases à l'examen pwk ! Résultat : Réussi !
- Wh0ami (hôtes d'examen rootés 4/5)
La première fois que j'ai entendu parler d'AutoRecon, j'ai demandé si j'en avais réellement besoin, mon énumération était OK... Je l'ai essayé avec un esprit ouvert et j'ai tout de suite été un peu abasourdi par la quantité d'informations qu'il générerait. Une fois que je m'y suis habitué et que j'ai commencé à lire le résultat, j'ai réalisé à quel point il me manquait. Je l'ai utilisé pour l'examen OSCP et il a trouvé des choses que je n'aurais jamais trouvées autrement. Je crois fermement que sans AutoRecon, j'aurais échoué. C'est un excellent outil et je suis très impressionné par ce que Tib3rius a pu créer. Certainement quelque chose que je recommande déjà à d’autres, y compris à vous !
- autre nouveau
AutoRecon m'a aidé à gagner un temps précieux lors de mon examen OSCP, me permettant de passer moins de temps à analyser les systèmes et plus de temps à les pénétrer. Ce logiciel vaut son pesant d'or !
-TorHackr
L'outil magique qui a fait de l'énumération un jeu d'enfant, il suffit de le lancer et de regarder la beauté du multithread crachant une tonne d'informations qui auraient nécessité de nombreuses commandes à exécuter. Je crois certainement qu'en utilisant simplement AutoRecon dans l'examen OSCP, la moitié de l'effort serait déjà fait. Fortement recommandé !
- Arman (résolu 4,5/5 hôtes d'examen)