
Version actuelle: v1.4 (20222.09.03)
Un outil avancé en ligne de commande conçu pour bruteforcer les répertoires et fichiers des serveurs web, également appelé scanner de chemins web.
Idée par @maurosoria et @shelld3v
Développement-2022 est activement développé par @nu11secur1ty
Prérequis: python 3.10.5 ou supérieur
Choisissez l'une de ces options d'installation:
git clone https://github.com/nu11secur1ty/insect.git --depth 1 (RECOMMANDÉ)docker build -t "insect:latest" . (plus d'informations disponibles ici)pip3 install dirsearchsudo apt-get install dirsearch (obsolète)Résumé:
%EXT% que par les extensions de l'option -e.%EXT% (comme SecLists), l'option -f | --force-extensions est requise pour ajouter les extensions à chaque mot de la liste, ainsi que le /.wordlist1.txt,wordlist2.txt.Exemples:
Passer **asp** et **aspx** comme extensions générera le dictionnaire suivant :```
index
index.asp
index.aspx
En passant **php** et **html** comme extensions avec l'option **-f**/**--force-extensions**, le dictionnaire suivant sera généré :```
admin
admin.php
admin.html
admin/
Passer **jsp** et **jspa** comme extensions avec l'option **-O**/**--overwrite-extensions** générera le dictionnaire suivant :```
login.html
login.jsp
login.jspa
Options -------``` Usage: insect.py [-u|--url] target [-e|--extensions] extensions [options]
Options: --version show program's version number and exit -h, --help show this help message and exit
Mandatory:
-u URL, --url=URL Target URL(s), support multiple flags
-l PATH, --url-file=PATH
URL list file
--stdin Read URL(s) from STDIN
--cidr=CIDR Target CIDR
--raw=PATH Load raw HTTP request from file (use --scheme flag
to set the scheme)
-s SESSION_FILE, --session=SESSION_FILE
Session file
--config=PATH Full path to config file, see 'config.ini' for
example (Default: config.ini)
Dictionary Settings:
-w WORDLISTS, --wordlists=WORDLISTS
Customize wordlists (separated by commas)
-e EXTENSIONS, --extensions=EXTENSIONS
Extension list separated by commas (e.g. php,asp)
-f, --force-extensions
Add extensions to the end of every wordlist entry. By
default insect only replaces the %EXT% keyword with
extensions
-O, --overwrite-extensions
Overwrite other extensions in the wordlist with your
extensions (selected via -e)
--exclude-extensions=EXTENSIONS
Exclude extension list separated by commas (e.g.
asp,jsp)
--remove-extensions
Remove extensions in all paths (e.g. admin.php ->
admin)
--prefixes=PREFIXES
Add custom prefixes to all wordlist entries (separated
by commas)
--suffixes=SUFFIXES
Add custom suffixes to all wordlist entries, ignore
directories (separated by commas)
-U, --uppercase Uppercase wordlist
-L, --lowercase Lowercase wordlist
-C, --capital Capital wordlist
General Settings: -t THREADS, --threads=THREADS Number of threads -r, --recursive Brute-force recursively --deep-recursive Perform recursive scan on every directory depth (e.g. api/users -> api/) --force-recursive Do recursive brute-force for every found path, not only directories -R DEPTH, --max-recursion-depth=DEPTH Maximum recursion depth --recursion-status=CODES Valid status codes to perform recursive scan, support ranges (separated by commas) --subdirs=SUBDIRS Scan sub-directories of the given URL[s] (separated by commas) --exclude-subdirs=SUBDIRS Exclude the following subdirectories during recursive scan (separated by commas) -i CODES, --include-status=CODES Include status codes, separated by commas, support ranges (e.g. 200,300-399) -x CODES, --exclude-status=CODES Exclude status codes, separated by commas, support ranges (e.g. 301,500-599) --exclude-sizes=SIZES Exclude responses by sizes, separated by commas (e.g. 0B,4KB) --exclude-texts=TEXTS Exclude responses by texts, separated by commas (e.g. 'Not found', 'Error') --exclude-regex=REGEX Exclude responses by regex (e.g. '^Error$') --exclude-redirect=STRING Exclude responses if this regex (or text) matches redirect URL (e.g. '/index.html') --exclude-response=PATH Exclude responses similar to response of this page, path as input (e.g. 404.html) --skip-on-status=CODES Skip target whenever hit one of these status codes, separated by commas, support ranges --min-response-size=LENGTH Minimum response length --max-response-size=LENGTH Maximum response length --max-time=SECONDS Maximum runtime for the scan
Request Settings: -m METHOD, --http-method=METHOD HTTP method (default: GET) -d DATA, --data=DATA HTTP request data --data-file=PATH File contains HTTP request data -H HEADERS, --header=HEADERS HTTP request header, support multiple flags --header-file=PATH File contains HTTP request headers -F, --follow-redirects Follow HTTP redirects --random-agent Choose a random User-Agent for each request --auth=CREDENTIAL Authentication credential (e.g. user:password or bearer token) --auth-type=TYPE Authentication type (basic, digest, bearer, ntlm, jwt, oauth2) --cert-file=PATH File contains client-side certificate --key-file=PATH File contains client-side certificate private key (unencrypted) --user-agent=USERAGENT --cookie=COOKIE
Connection Settings: --timeout=TIMEOUT Connection timeout --delay=DELAY Delay between requests --proxy=PROXY Proxy URL, support HTTP and SOCKS proxies (e.g. localhost:8080, socks5://localhost:8088) --proxy-file=PATH File contains proxy servers --proxy-auth=CREDENTIAL Proxy authentication credential --replay-proxy=PROXY Proxy to replay with found paths --tor Use Tor network as proxy --scheme=SCHEME Scheme for raw request or if there is no scheme in the URL (Default: auto-detect) --max-rate=RATE Max requests per second --retries=RETRIES Number of retries for failed requests --ip=IP Server IP address --exit-on-error Exit whenever an error occurs
Advanced Settings: --crawl Crawl for new paths in responses
View Settings: --full-url Full URLs in the output (enabled automatically in quiet mode) --redirects-history Show redirects history --no-color No colored output -q, --quiet-mode Quiet mode
Output Settings: -o PATH, --output=PATH Output file --format=FORMAT Report format (Available: simple, plain, json, xml, md, csv, html, sqlite) --log=PATH Log file
Configuration
---------------
Les valeurs par défaut des options dirsearch et insect peuvent être modifiées dans le fichier de configuration, par défaut `config.ini` mais vous pouvez sélectionner un autre fichier avec l'option `--config````ini
# If you want to edit dirsearch or insect default configurations, you can
# edit values in this file. Everything after `#` is a comment
# and won't be applied
[general]
threads = 25
recursive = False
deep-recursive = False
force-recursive = False
recursion-status = 200-399,401,403
max-recursion-depth = 0
exclude-subdirs = %%ff/,.;/,..;/,;/,./,../,%%2e/,%%2e%%2e/
random-user-agents = False
max-time = 0
# subdirs = /,api/
# include-status = 200-299,401
# exclude-status = 400,500-999
# exclude-sizes = 0b,123gb
# exclude-texts = "Not found"
# exclude-regex = "^403$"
# exclude-redirect = "*/error.html"
# exclude-response = 404.html
# skip-on-status = 429,999
[dictionary]
default-extensions = php,aspx,jsp,html,js
force-extensions = False
overwrite-extensions = False
lowercase = False
uppercase = False
capitalization = False
# exclude-extensions = old,log
# prefixes = .,admin
# suffixes = ~,.bak
# wordlists = /path/to/wordlist1.txt,/path/to/wordlist2.txt
[request]
httpmethod = get
follow-redirects = False
# headers-file = /path/to/headers.txt
# user-agent = MyUserAgent
# cookie = SESSIONID=123
[connection]
timeout = 7.5
delay = 0
max-rate = 0
max-retries = 1
exit-on-error = False
## By disabling `scheme` variable, insect will automatically identify the URI scheme
# scheme = http
# proxy = localhost:8080
# proxy-file = /path/to/proxies.txt
# replay-proxy = localhost:8000
[advanced]
crawl = False
[view]
full-url = False
quiet-mode = False
color = True
show-redirects-history = False
[output]
## Support: plain, simple, json, xml, md, csv, html, sqlite
report-format = plain
autosave-report = True
# log-file = /path/to/insect.log
# report-output-folder = /path/to/reports

Quelques exemples d'utilisation de dirsearch et insect - ce sont les arguments les plus courants. Si vous avez besoin de tous, utilisez simplement l'argument -h.
python3 insect.py -u https://target
### Suggestions
Suggestions automatiques. Ne devinez pas, appuyez sur Tab.
RustScan dispose d'un moteur de suggestions intégré qui suggère des arguments au fur et à mesure de votre utilisation. Par exemple, lorsque vous utilisez l'argument `-a`, il suggérera `--address` comme argument complet. Lorsque vous appuyez sur Tab, il complète l'argument.
Le moteur de suggestions apprend comment vous utilisez RustScan et améliore ses suggestions au fil du temps. Si vous avez un paramètre par défaut que vous utilisez toujours, RustScan vous le suggérera.
Il s'agit de suggestions basées sur votre utilisation précédente de RustScan. Ainsi, si vous utilisez toujours `-p` avec une certaine valeur, RustScan s'en souviendra et vous la suggérera.
> **Remarque :** Les suggestions sont basées sur votre utilisation précédente. Par exemple, si vous avez exécuté :
> ```bash
> rustscan -a 127.0.0.1 -p 80
> ```
> Ensuite, la prochaine fois que vous exécuterez `rustscan`, il vous suggérera `-a 127.0.0.1` et `-p 80` comme arguments.
---
### Apprentissage adaptatif
RustScan dispose d'un moteur d'apprentissage adaptatif qui apprend de vos scans précédents et améliore les scans futurs.
Si vous scannez toujours les mêmes ports, RustScan l'apprendra et vous suggérera ces ports.
Si vous utilisez toujours les mêmes adresses IP, RustScan s'en souviendra et vous les suggérera.
---
### Trouver les ports ouverts
RustScan peut trouver tous les ports ouverts d'une adresse IP donnée ou d'une liste d'adresses IP.
Vous pouvez scanner une seule adresse IP :
```bash
rustscan -a 127.0.0.1
Ou vous pouvez scanner une liste d'adresses IP :
rustscan -a 127.0.0.1, 127.0.0.2
Ou vous pouvez scanner une plage d'adresses IP :
rustscan -a 127.0.0.1-127.0.0.254
RustScan affichera les ports ouverts sur stdout, afin que vous puissiez les rediriger vers un autre outil :
rustscan -a 127.0.0.1 | nmap -p-
C'est particulièrement utile pour les rediriger vers Nmap, qui peut ensuite effectuer un scan plus approfondi des ports ouverts.
RustScan est conçu pour être utilisé avec Nmap. Il trouve tous les ports ouverts, puis vous pouvez rediriger la sortie vers Nmap pour un scan plus approfondi.
Par exemple :
rustscan -a 127.0.0.1 | nmap -p- 127.0.0.1
Cela scannera tous les ports avec RustScan, puis redirigera les ports ouverts vers Nmap pour un scan plus approfondi.
---``` python3 insect.py -e php,html,js -u https://target
No content was provided to translate. The input after "INPUT:" is empty. Please supply chunk 21/91 of the Markdown document.```
python3 insect.py -e php,html,js -u https://target -w /path/to/wordlist
dirsearch et insect vous permettent de mettre en pause la progression de l'analyse avec CTRL+C ; à partir de là, vous pouvez enregistrer la progression (et continuer plus tard), ignorer la cible actuelle ou ignorer le sous-répertoire actuel.
admin/, il effectuera un brute-force sur admin/* (* correspond à l'emplacement du brute-force). Pour activer cette fonctionnalité, utilisez l'option -r (ou --recursive).```
python3 insect.py -e php,html,js -u https://target -rVous pouvez définir la profondeur de récursion maximale avec **--recursion-depth**, et les codes de statut à parcourir récursivement avec **--recursion-status**```
python3 insect.py -e php,html,js -u https://target -r --recursion-depth 3 --recursion-status 200-399
Il y a 2 autres options : --force-recursive et --deep-recursive
/a/b/c => ajoute a/, a/b/)S'il existe des sous-répertoires que vous ne souhaitez pas soumettre à la force brute récursivement, utilisez `--exclude-subdirs```` python3 insect.py -e php,html,js -u https://target -r --exclude-subdirs image/,media/,css/
### Threads
Le nombre de threads (**-t | --threads**) reflète le nombre de processus de force brute séparés. Ainsi, plus le nombre de threads est grand, plus dirsearch ou insect s'exécute rapidement. Par défaut, le nombre de threads est de 25, mais vous pouvez l'augmenter si vous souhaitez accélérer la progression.
Malgré cela, la vitesse dépend encore beaucoup du temps de réponse du serveur. Et comme avertissement, nous vous conseillons de ne pas garder un nombre de threads trop élevé, car cela peut provoquer un DoS (déni de service).```
python3 insect.py -e php,htm,js,bak,zip,tgz,txt -u https://target -t 20
Liste de mots :```
tools
Généré avec des préfixes :``` tools .tools admintools _tools
- **--suffixes** : Ajouter des suffixes personnalisés à toutes les entrées```
python3 insect.py -e php -u https://target --suffixes ~
Liste de mots:``` index.php internal
Généré avec les suffixes :```
index.php
internal
index.php~
internal~
Dans le dossier db/, il y a plusieurs "fichiers de blacklist". Les chemins dans ces fichiers seront filtrés du résultat du scan s'ils ont le même statut que celui mentionné dans le nom du fichier.
Exemple : Si vous ajoutez admin.php dans db/403_blacklist.txt, à chaque scan où admin.php renvoie 403, il sera filtré du résultat.
Utilisez -i | --include-status et -x | --exclude-status pour sélectionner les codes de statut de réponse autorisés et non autorisés.
Pour des filtres plus avancés : --exclude-sizes, --exclude-texts, --exclude-regexps, --exclude-redirects et --exclude-response``` python3 insect.py -e php,html,js -u https://target --exclude-sizes 1B,243KB
- Ajoute, contrôle et surveille les exceptions par l'organisation, le système d'exploitation et la politique spécifiques.```
python3 insect.py -e php,html,js -u https://target --exclude-texts "403 Forbidden"
Ce dépôt contient des solutions détaillées pour divers défis de la compétition CTF Cyber Apocalypse 2024 : Hacker Royale.
git clone https://github.com/username/cyber-apocalypse-2024-writeups.git
Naviguez vers le répertoire d'un défi :
cd cyber-apocalypse-2024-writeups/challenges/web/some-challenge
Chaque répertoire de défi contient :
Pour suivre une solution :
Les contributions sont les bienvenues ! Veuillez lire les directives de contribution avant de soumettre des pull requests.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.``` python3 insect.py -e php,html,js -u https://target --exclude-regexps "^Error$"
# Dorkish
### ES | EN
Dorkish est un moteur de recherche par Dorks conçu pour les pentesters, les chasseurs de primes (bug bounty) et les chercheurs en cybersécurité. Il vous permet de trouver facilement des systèmes vulnérables, des fichiers exposés, des fichiers de configuration, des journaux et bien plus encore en utilisant des Google Dorks avancés pour des domaines spécifiques. De plus, il offre un menu en terminal avec une sélection de différents types de dorks pour faciliter la recherche. Il est recommandé d’utiliser une API payante pour éviter d’être bloqué par Google lors de la rotation des user‑agents.
- **Intégration Tor** : Peut être configuré pour effectuer les recherches via Tor afin de préserver l’anonymat et d’éviter la détection.
- **Rotation des User‑Agents** : Utilise une liste de vrais agents utilisateur pour que les requêtes semblent provenir de différents navigateurs et appareils, réduisant ainsi le risque de blocage.
- **Vérification des mises à jour** : L’outil vérifie automatiquement la présence de nouvelles versions dans le dépôt au démarrage en lisant un fichier `version.txt` fourni avec l’outil Dorkish, garantissant ainsi que les utilisateurs disposent toujours des dernières améliorations.
- **Schéma de couleurs** : Propose une palette élégante et agréable à lire, basée sur le rouge, le blanc, le bleu et le noir.
- **Installation automatique des dépendances** : Demande à l’utilisateur d’installer les dépendances manquantes avec une simple confirmation.
- **Menu interactif de sélection de Dorks** : Propose un menu organisé par catégories (basiques, fichiers, personnel, réseaux, hacking mobile, dorks personnalisés) afin que l’utilisateur puisse choisir le type de dorks à rechercher.
- **Option d’enregistrement des résultats** : Permet à l’utilisateur d’enregistrer localement les résultats de recherche dans un fichier pour une analyse ultérieure.
## Prérequis
- **Python recommandé** : 3.11.2
## Systèmes compatibles
L’outil a été testé et fonctionne correctement sur les systèmes suivants :
| Système | État |
|---------|--------|
| Kali Linux | ✔️ |
| Parrot OS | ✔️ |
| Ubuntu | ✔️ |
| Arch Linux | ❌ |
| Termux | ✔️ |
## Installation
### Unix/Linux```
python3 insect.py -e php,html,js -u https://target --exclude-redirects "https://(.*).okta.com/*"
Aucun contenu n'a été fourni dans l'entrée : le chunk 51 est vide.``` python3 insect.py -e php,html,js -u https://target --exclude-response /error.html
### Requête brute
dirsearch ou insect vous permettent d'importer la requête brute depuis un fichier. Le contenu ressemblerait à ceci :```http
GET /admin HTTP/1.1
Host: admin.example.com
Cache-Control: max-age=0
Accept: */*
Comme il n'y a aucun moyen pour dirsearch ou insect de connaître le schéma d'URI, vous devez le définir à l'aide de l'option --scheme. Par défaut, dirsearch et insect détectent automatiquement le schéma.
Formats de liste de mots pris en charge : majuscules, minuscules, capitalisation
admin index.html
#### Majuscules:```
ADMIN
INDEX.HTML
Admin Index.html
### Exclure les extensions
Utilisez **-X | --exclude-extensions** avec une liste d'extensions pour supprimer tous les chemins du wordlist qui contiennent les extensions données.
`python3 insect.py -u https://target -X jsp`
Wordlist:```
admin.php
test.jsp
No content was provided to translate. The input after "After:" is empty. Please supply the chunk text you want translated.``` admin.php
### Scanner les sous-répertoires
- Depuis une URL, vous pouvez scanner une liste de sous-répertoires avec **--subdirs**.```
python3 insect.py -e php,html,js -u https://target --subdirs /,admin/,folder/
dirsearch et insect prennent en charge les proxys SOCKS et HTTP, avec deux options : un serveur proxy ou une liste de serveurs proxy.``` python3 insect.py -e php,html,js -u https://target --proxy 127.0.0.1:8080
The input chunk appears to be empty — no content was provided to translate. Please re-send chunk 69 with its content.```
python3 insect.py -e php,html,js -u https://target --proxy socks5://10.10.0.1:8080
python3 insect.py -e php,html,js -u https://target --proxylist proxyservers.txt
### Rapports
Formats de rapport pris en charge : **simple**, **plain**, **json**, **xml**, **md**, **csv**, **html**, **sqlite**```
python3 insect.py -e php -l URLs.txt --format plain -o report.txt
Please provide the Markdown content to translate.``` python3 insect.py -e php -u https://target --format html -o target.json
### Autres commandes d'exemple```
cat urls.txt | python3 insect.py --stdin
The input content is empty — no source text was provided for chunk 79 of 91. Please supply the chunk content so it can be translated into French.``` python3 insect.py -u https://target --max-time 360
No input content was provided after "INPUT:". Please supply the chunk text to translate.```
python3 insect.py -u https://target --auth admin:pass --auth-type basic
Aucun contenu n'a été fourni pour la traduction.``` python3 insect.py -u https://target --header-list rate-limit-bypasses.txt
**Il y a plus à découvrir, essayez par vous-même !**
Prise en charge de Docker
---------------
### Installer Docker sur Linux
Installer Docker```sh
curl -fsSL https://get.docker.com | bash
Pour utiliser docker, vous avez besoin des droits de superutilisateur
Pour créer l'image```sh docker build -t "dirsearch:v0.4.2" . docker build -t "insect:latest" .
> **dirsearch** est le nom de l'image et **v0.4.2** est la version
> **insect** est le nom de l'image et **latest** est la version
### Utilisation de dirsearch ou insect
Pour utiliser```sh
docker run -it --rm "insect:latest" -u target -e php,html,js,zip
--proxy-list--suffixes ~ et --prefixes .--remove-extensions et --suffixes / !--cidr, -F, -q réduira la plupart du bruit et des faux négatifs lors du bruteforce avec un CIDR--skip-on-status 429 vous aidera à ignorer une cible à chaque fois qu'elle renvoie 429HEAD au lieu de GETNous recevons beaucoup d'aide de nombreuses personnes dans le monde entier pour améliorer cet outil. Un grand merci à tous ceux qui nous ont aidés jusqu'à présent ! Consultez CONTRIBUTORS.md pour savoir qui ils sont.
Copyright (C) Mauro Soria ([email protected])
Développement pour 2022 (C) nu11secur1ty (https://nu11secur1ty.com/)
Licence : GNU General Public License, version 2
--timeout 3 --retries 1