
JF⚡can - Scan de ports ultra rapide et découverte de services en utilisant Masscan et Nmap. Scannez de grands réseaux avec Masscan et utilisez les capacités de script de Nmap pour découvrir des informations sur les services. Générez un rapport.
[!CAUTION]
⚠️ Projet obsolète
Ce projet a été réécrit en Go pour de meilleures performances et fonctionnalités. Veuillez utiliser la nouvelle version ici : nullt3r/massmap
JFScan est un wrapper qui tire parti de la vitesse de Masscan et des capacités d'empreinte de Nmap. JFScan accepte les cibles sous forme d'URL, de domaines ou d'IP (y compris CIDR). Vous pouvez spécifier un fichier contenant les cibles via un argument, ou utiliser l'entrée standard.
JFScan vous permet également de n'afficher que les résultats et de les chaîner avec d'autres outils comme Nuclei. Le format domaine:port de JFScan est essentiel pour identifier les vulnérabilités dans les applications web, car l'hôte virtuel détermine le contenu servi.
De plus, JFScan peut analyser les ports découverts avec Nmap, et vous permet de définir des options personnalisées et d'utiliser les capacités de script avancées de Nmap.

Logique de traitement d'entrée/sortie de JFScan :

usage: jfscan [-h] [--targets TARGETS] (-p PORTS | --top-ports TOP_PORTS | --yummy-ports) [--resolvers RESOLVERS] [--enable-ipv6] [--scope SCOPE] [-r MAX_RATE] [--wait WAIT] [--disable-auto-rate] [-i INTERFACE] [--source-ip SOURCE_IP]
[--router-ip ROUTER_IP] [--router-mac ROUTER_MAC] [--router-mac-ipv6 ROUTER_MAC_IPV6] [-oi] [-od] [-o OUTPUT] [-q | -v] [--nmap] [--nmap-options NMAP_OPTIONS] [--nmap-threads NMAP_THREADS] [--nmap-output NMAP_OUTPUT] [--version]
[target]
JFScan - Just Fu*king Scan
arguments optionnels :
-h, --help afficher ce message d'aide et quitter
-p PORTS, --ports PORTS
ports, peut être une plage ou une liste de ports : 0-65535 ou 22,80,100-500,...
--top-ports TOP_PORTS
analyser uniquement N des meilleurs ports, ex. --top-ports 1000
--yummy-ports analyser uniquement les ports les plus intéressants
-q, --quite afficher uniquement les résultats
-v, --verbose sortie détaillée
--nmap exécuter nmap sur les ports découverts
--nmap-options NMAP_OPTIONS
arguments nmap, ex. --nmap-options='-sV' ou --nmap-options='-sV --script ssh-auth-methods'
--nmap-threads NMAP_THREADS
nombre d'instances nmap exécutées en parallèle, par défaut 8
--nmap-output NMAP_OUTPUT
enregistrer les résultats de nmap dans le fichier spécifié au format XML standard (identique à l'option nmap -oX)
target une cible ou des cibles séparées par une virgule, forme acceptée : nom de domaine, IPv4, IPv6, URL
--targets TARGETS fichier contenant les cibles, forme acceptée : nom de domaine, IPv4, IPv6, URL
-oi, --only-ips afficher uniquement les adresses IP, par défaut : toutes les ressources
-od, --only-domains afficher uniquement les domaines, par défaut : toutes les ressources
-o OUTPUT, --output OUTPUT
enregistrer les résultats de masscan dans le fichier spécifié
--resolvers RESOLVERS
résolveurs personnalisés séparés par une virgule, ex. 8.8.8.8,1.1.1.1
--enable-ipv6 activer le support IPv6, sinon toutes les adresses IPv6 seront ignorées lors de l'analyse
--scope SCOPE chemin du fichier contenant les adresses IP et CIDR pour contrôler le périmètre, format attendu : IPv6, IPv4, IPv6 CIDR, IPv4 CIDR
-r MAX_RATE, --max-rate MAX_RATE
débit maximal en kpps pour masscan
--wait WAIT nombre de secondes à attendre l'arrivée des paquets (lors de l'analyse de grands réseaux), option pour masscan
--disable-auto-rate désactiver le mécanisme d'ajustement du débit pour masscan (plus de faux positifs/négatifs)
-i INTERFACE, --interface INTERFACE
interface à utiliser pour masscan et nmap
--source-ip SOURCE_IP
adresse IP de votre interface pour masscan
--router-ip ROUTER_IP
adresse IP de votre routeur pour masscan
--router-mac ROUTER_MAC
adresse MAC de votre routeur pour masscan
--router-mac-ipv6 ROUTER_MAC_IPV6
adresse MAC de votre routeur IPv6 pour masscan
--version afficher le numéro de version du programme et quitter
Veuillez suivre les instructions d'installation avant d'exécuter. N'exécutez pas JFScan en tant que root, ce n'est pas nécessaire car nous définissons des permissions spéciales sur le binaire masscan.
Analyser des cibles uniquement sur les ports 80 et 443 avec un débit de 10 kpps :
$ jfscan -p 80,443 --targets targets.txt -r 10000
Analyser les cibles pour les 1000 meilleurs ports :
$ jfscan --top-ports 1000 1.1.1.1/24
Vous pouvez également spécifier les cibles via l'entrée standard et les envoyer à nuclei :
$ cat targets.txt | jfscan --top-ports 1000 -q | httpx -silent | nuclei
Ou comme paramètre positionnel :
$ jfscan --top-ports 1000 1.1.1.1/24 -q | httpx -silent | nuclei
Ou tout à la fois, JFScan ne fait pas de distinction et analyse toutes les cibles spécifiées :
$ echo target1 | jfscan --top-ports 1000 target2 --targets targets.txt -q | httpx -silent | nuclei
Utilisez nmap pour recueillir plus d'informations sur les services découverts :
$ cat targets.txt | jfscan -p 0-65535 --nmap --nmap-options="-sV --scripts ssh-auth-methods"
Le fichier targets.txt peut contenir des cibles sous les formes suivantes (IPv6 de manière similaire) :
http://domain.com/
domain.com
1.2.3.4
1.2.3.0/24
1.1.1.1-1.1.1.30
Tout d'abord, installez libpcap-dev (distribution basée sur Debian) ou libcap-devel (distribution basée sur Centos) :
sudo apt install libpcap-dev
Ensuite, clonez le dépôt officiel et installez :
sudo apt-get --assume-yes install git make gcc
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
sudo make install
sudo setcap CAP_NET_RAW+ep /usr/bin/masscan
sudo apt install python3 python3-pip
$ git clone https://github.com/nullt3r/jfscan.git
$ cd jfscan
$ pip3 install .
Si vous ne pouvez pas exécuter jfscan directement depuis la ligne de commande, vérifiez que $HOME/.local/bin est dans votre PATH.
Ajoutez la ligne suivante à votre ~/.zshrc ou ~/.bashrc :
export PATH="$HOME/.local/bin:$PATH"
Consultez le fichier LICENSE.
Je ne suis pas responsable des dommages. Vous êtes responsable de vos propres actions. Attaquer des cibles sans consentement mutuel préalable est illégal.
* Lors de l'analyse de plages réseau plus petites, vous pouvez simplement utiliser nmap directement, il n'est pas nécessaire d'utiliser JFScan. Vous pouvez atteindre jusqu'à 70 % de la vitesse de JFScan en utilisant les options suivantes :
nmap -Pn -n -v yourTargetNetwork/26 -p- --min-parallelism 64 --min-rate 20000 --min-hostgroup 64 --randomize-hosts -sS -sV
Comme toujours, attendez-vous à quelques faux positifs/négatifs.