
JF⚡can - Super veloce scansione delle porte e scoperta dei servizi utilizzando Masscan e Nmap. Scansiona grandi reti con Masscan e usa le capacità di scripting di Nmap per scoprire informazioni sui servizi. Genera report.
[!CAUTION]
⚠️ Progetto Deprecato
Questo progetto è stato riscritto in Go per migliori prestazioni e funzionalità. Utilizza la nuova versione qui: nullt3r/massmap
JFScan è un wrapper che sfrutta la velocità di Masscan e le capacità di fingerprinting di Nmap. JFScan accetta target sotto forma di URL, domini o IP (incluso CIDR). Puoi specificare un file con i target tramite un argomento o usare stdin.
JFScan ti permette anche di restituire solo i risultati e concatenarli con altri strumenti come Nuclei. L'output dominio:porta di JFScan è cruciale per identificare vulnerabilità nelle applicazioni web, poiché l'host virtuale determina quale contenuto verrà servito.
Inoltre, JFScan può scansionare le porte scoperte con Nmap e ti consente di definire opzioni personalizzate e sfruttare le capacità avanzate di scripting di Nmap.

Logica di input e output di 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
optional arguments:
-h, --help mostra questo messaggio di aiuto ed esce
-p PORTS, --ports PORTS
porte, può essere un range o una lista: 0-65535 o 22,80,100-500,...
--top-ports TOP_PORTS
scansiona solo N delle prime porte, es. --top-ports 1000
--yummy-ports scansiona solo le porte più "appetitose"
-q, --quite output solo dei risultati
-v, --verbose output verbose
--nmap esegue nmap sulle porte scoperte
--nmap-options NMAP_OPTIONS
argomenti di nmap, es. --nmap-options='-sV' o --nmap-options='-sV --script ssh-auth-methods'
--nmap-threads NMAP_THREADS
numero di nmap da eseguire concorrentemente, default 8
--nmap-output NMAP_OUTPUT
output dei risultati di nmap nel file specificato in formato XML standard (come l'opzione nmap -oX)
target un target o più target separati da virgola, forma accettata: nome dominio, IPv4, IPv6, URL
--targets TARGETS file con i target, forma accettata: nome dominio, IPv4, IPv6, URL
-oi, --only-ips output solo degli indirizzi IP, default: tutte le risorse
-od, --only-domains output solo dei domini, default: tutte le risorse
-o OUTPUT, --output OUTPUT
output dei risultati di masscan nel file specificato
--resolvers RESOLVERS
resolver personalizzati separati da virgola, es. 8.8.8.8,1.1.1.1
--enable-ipv6 abilita il supporto IPv6, altrimenti tutti gli indirizzi IPv6 verranno ignorati nella scansione
--scope SCOPE percorso del file con indirizzi IP e CIDR per controllare l'ambito, formato atteso: IPv6, IPv4, IPv6 CIDR, IPv4 CIDR
-r MAX_RATE, --max-rate MAX_RATE
velocità massima in kpps per masscan
--wait WAIT numero di secondi di attesa per l'arrivo dei pacchetti (quando si scansionano reti grandi), opzione per masscan
--disable-auto-rate disabilita il meccanismo di regolazione della velocità per masscan (più falsi positivi/negativi)
-i INTERFACE, --interface INTERFACE
interfaccia per masscan e nmap
--source-ip SOURCE_IP
indirizzo IP della tua interfaccia per masscan
--router-ip ROUTER_IP
indirizzo IP del tuo router per masscan
--router-mac ROUTER_MAC
indirizzo MAC del tuo router per masscan
--router-mac-ipv6 ROUTER_MAC_IPV6
indirizzo MAC del tuo router IPv6 per masscan
--version mostra il numero di versione del programma ed esce
Segui le istruzioni di installazione prima di eseguire. Non eseguire JFScan come root, non è necessario poiché impostiamo permessi speciali sul binario di masscan.
Scansiona target solo per le porte 80 e 443 con una velocità di 10 kpps:
$ jfscan -p 80,443 --targets targets.txt -r 10000
Scansiona target per le prime 1000 porte:
$ jfscan --top-ports 1000 1.1.1.1/24
Puoi anche specificare target su stdin e passarli a nuclei:
$ cat targets.txt | jfscan --top-ports 1000 -q | httpx -silent | nuclei
O come parametro posizionale:
$ jfscan --top-ports 1000 1.1.1.1/24 -q | httpx -silent | nuclei
O tutto insieme, JFScan non si preoccupa e scansione tutti i target specificati:
$ echo target1 | jfscan --top-ports 1000 target2 --targets targets.txt -q | httpx -silent | nuclei
Utilizza nmap per raccogliere più informazioni sui servizi scoperti:
$ cat targets.txt | jfscan -p 0-65535 --nmap --nmap-options="-sV --scripts ssh-auth-methods"
Il file targets.txt può contenere target nelle seguenti forme (IPv6 similmente):
http://dominio.com/
dominio.com
1.2.3.4
1.2.3.0/24
1.1.1.1-1.1.1.30
Per prima cosa, installa libpcap-dev (distribuzioni basate su Debian) o libcap-devel (distribuzioni basate su Centos):
sudo apt install libpcap-dev
Successivamente, clona il repository ufficiale e installa:
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 .
Se non riesci a eseguire jfscan direttamente dalla riga di comando, controlla che $HOME/.local/bin sia nel tuo PATH.
Aggiungi la seguente riga al tuo ~/.zshrc o ~/.bashrc:
export PATH="$HOME/.local/bin:$PATH"
Leggi il file LICENSE.
Non sono responsabile per eventuali danni. Sei responsabile delle tue azioni. Attaccare target senza previo consenso reciproco è illegale.
* Quando si scansionano intervalli di rete più piccoli, puoi semplicemente usare nmap direttamente, non c'è bisogno di usare JFScan. Puoi raggiungere fino al 70% della velocità di JFScan utilizzando le seguenti opzioni:
nmap -Pn -n -v yourTargetNetwork/26 -p- --min-parallelism 64 --min-rate 20000 --min-hostgroup 64 --randomize-hosts -sS -sV
Come sempre, aspettati qualche falso positivo/negativo.