
JF⚡can - Varredura de portas super rápida e descoberta de serviços usando Masscan e Nmap. Escaneie grandes redes com Masscan e use as capacidades de script do Nmap para descobrir informações sobre serviços. Gere relatório.
[!CAUTION]
⚠️ Projeto Descontinuado
Este projeto foi reescrito em Go para melhor desempenho e funcionalidades. Por favor, use a nova versão aqui: nullt3r/massmap
JFScan é um wrapper que aproveita a velocidade do Masscan e as capacidades de fingerprinting do Nmap. O JFScan aceita alvos na forma de URLs, domínios ou IPs (incluindo CIDR). Você pode especificar um arquivo com alvos usando um argumento, ou usar stdin.
O JFScan também permite que você produza apenas os resultados e os encadeie com outras ferramentas como Nuclei. A saída domínio:porta do JFScan é crucial para identificar vulnerabilidades em aplicações web, pois o host virtual determina qual conteúdo será servido.
Além disso, o JFScan pode varrer portas descobertas com o Nmap e permite que você defina opções personalizadas e aproveite as capacidades avançadas de script do Nmap.

Lógica de processamento de entrada e saída do 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 - Apenas Fu*king Scan
argumentos opcionais:
-h, --help mostra esta mensagem de ajuda e sai
-p PORTS, --ports PORTS
portas, pode ser um intervalo ou lista de portas: 0-65535 ou 22,80,100-500,...
--top-ports TOP_PORTS
varre apenas N das principais portas, ex., --top-ports 1000
--yummy-ports varre apenas as portas mais saborosas
-q, --quite produz apenas resultados
-v, --verbose saída detalhada
--nmap executa nmap nas portas descobertas
--nmap-options NMAP_OPTIONS
argumentos do nmap, ex., --nmap-options='-sV' ou --nmap-options='-sV --script ssh-auth-methods'
--nmap-threads NMAP_THREADS
número de nmaps para executar concorrentemente, padrão 8
--nmap-output NMAP_OUTPUT
produz resultados do nmap no arquivo especificado em formato XML padrão (mesmo que a opção -oX do nmap)
target um alvo ou alvos separados por vírgula, forma aceita: nome de domínio, IPv4, IPv6, URL
--targets TARGETS arquivo com alvos, forma aceita: nome de domínio, IPv4, IPv6, URL
-oi, --only-ips produz apenas endereços IP, padrão: todos os recursos
-od, --only-domains produz apenas domínios, padrão: todos os recursos
-o OUTPUT, --output OUTPUT
produz resultados do masscan no arquivo especificado
--resolvers RESOLVERS
resolvedores personalizados separados por vírgula, ex., 8.8.8.8,1.1.1.1
--enable-ipv6 ativar suporte a IPv6, caso contrário todos os endereços IPv6 serão ignorados no processo de varredura
--scope SCOPE caminho do arquivo com endereços IP e CIDRs para controlar escopo, formato esperado: IPv6, IPv4, IPv6 CIDR, IPv4 CIDR
-r MAX_RATE, --max-rate MAX_RATE
taxa máxima de kpps para o masscan
--wait WAIT número de segundos para aguardar a chegada de pacotes (ao varrer redes grandes), opção para o masscan
--disable-auto-rate desativar mecanismo de ajuste de taxa para o masscan (mais falsos positivos/negativos)
-i INTERFACE, --interface INTERFACE
interface para masscan e nmap usarem
--source-ip SOURCE_IP
endereço IP da sua interface para o masscan
--router-ip ROUTER_IP
endereço IP do seu roteador para o masscan
--router-mac ROUTER_MAC
endereço MAC do seu roteador para o masscan
--router-mac-ipv6 ROUTER_MAC_IPV6
endereço MAC do seu roteador IPv6 para o masscan
--version mostra o número da versão do programa e sai
Por favor, siga as instruções de instalação antes de executar. Não execute o JFScan como root, não é necessário, pois definimos permissões especiais no binário do masscan.
Varre alvos apenas para as portas 80 e 443 com taxa de 10 kpps:
$ jfscan -p 80,443 --targets targets.txt -r 10000
Varre alvos para as 1000 principais portas:
$ jfscan --top-ports 1000 1.1.1.1/24
Você também pode especificar alvos no stdin e canalizar para nuclei:
$ cat targets.txt | jfscan --top-ports 1000 -q | httpx -silent | nuclei
Ou como parâmetro posicional:
$ jfscan --top-ports 1000 1.1.1.1/24 -q | httpx -silent | nuclei
Ou tudo de uma vez, o JFScan simplesmente não se importa e varre todos os alvos especificados:
$ echo target1 | jfscan --top-ports 1000 target2 --targets targets.txt -q | httpx -silent | nuclei
Utilize nmap para coletar mais informações sobre serviços descobertos:
$ cat targets.txt | jfscan -p 0-65535 --nmap --nmap-options="-sV --scripts ssh-auth-methods"
O targets.txt pode conter alvos nas seguintes formas (IPv6 similarmente):
http://domain.com/
domain.com
1.2.3.4
1.2.3.0/24
1.1.1.1-1.1.1.30
Primeiro, instale o libpcap-dev (distribuição baseada em Debian) ou libcap-devel (distribuição baseada em CentOS):
sudo apt install libpcap-dev
Em seguida, clone o repositório oficial e instale:
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 você não conseguir executar o jfscan diretamente da linha de comando, verifique se $HOME/.local/bin está no seu PATH.
Adicione a seguinte linha ao seu ~/.zshrc ou ~/.bashrc:
export PATH="$HOME/.local/bin:$PATH"
Leia o arquivo LICENSE.
Não sou responsável por quaisquer danos. Você é responsável por suas próprias ações. Atacar alvos sem consentimento mútuo prévio é ilegal.
nmap -Pn -n -v yourTargetNetwork/26 -p- --min-parallelism 64 --min-rate 20000 --min-hostgroup 64 --randomize-hosts -sS -sV
Como sempre, espere alguns falsos positivos/negativos.