Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/gvb84/pbscan
ReconhecimentoMapeamento de RedeEscaneamento de PortasColeta de InformaçõesSegurança de Rede
GitHubgvb84/pbscan

pbscan

Scanner SYN sem estado mais rápido e eficiente e coletor de banners devido ao uso de pilha TCP/IP em espaço de usuário.

Ver Repositório
17036há 8 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

SUMÁRIO

O polarbearscan é uma tentativa de fazer varredura de portas e captura de banners de forma mais rápida e eficiente. Ele combina duas ideias diferentes que, espera‑se, o tornarão digno da sua atenção e do seu tempo.

A primeira dessas ideias é usar a varredura SYN sem estado (stateless SYN scanning), empregando cookies protegidos criptograficamente para interpretar as confirmações recebidas. Até onde o autor sabe, esta técnica foi pioneiramente utilizada por Dan Kaminsky no scanrand. O scanrand fazia parte do Paketto Keiretsu, um conjunto de utilitários de varredura, e foi lançado por volta de 2001‑2002. Um espelho deste código pode ser encontrado no Packet Storm [1].

A segunda ideia é usar uma pilha TCP/IP em espaço de usuário modificada, de modo que o scanner possa restaurar o estado imediatamente ao receber um pacote criptograficamente verificado com os flags SYN e ACK ativos. A pilha em espaço de usuário aqui utilizada pelo polarbearscan chama‑se libuinet [2]. Diferentemente de outras pilhas TCP/IP em espaço de usuário disponíveis, esta é muito madura, pois é simplesmente uma adaptação da pilha TCP/IP do FreeBSD.

Ao modificar a pilha libuinet, é possível então construir um soquete e concluir o handshake TCP de três vias padrão, respondendo com um ACK adequado. Dessa forma, uma conexão TCP totalmente funcional é estabelecida imediatamente. Isto contrasta com outros scanners (como o nmap) que, após detectar que uma porta TCP está aberta, teriam que realizar uma conexão TCP completa através do kernel para fazer coisas como captura de banners ou varredura de versões. Uma conexão TCP completa leva a um handshake TCP de três vias totalmente novo, descartando completamente o estado implícito construído pelos dois pacotes iniciais trocados entre os hosts. Evitando isso, é possível reduzir o uso de banda e passar imediatamente da detecção de que uma porta está aberta para a conexão com ela. Esta conexão pode então simplesmente ficar receptiva para receber dados no modo de captura de banner, ou pode enviar uma solicitação HTTP.

Observe que o scanner atualmente só suporta varredura baseada em IPv4 e funcionará corretamente apenas em interfaces do tipo Ethernet (com fio ou sem fio). Não há planos para suportar IPv6 ou interfaces diferentes num futuro próximo.

INSTALAÇÃO

Compilar o código é bastante simples. Basta ter uma conexão funcional com a internet e o git instalado para que as dependências necessárias possam ser baixadas. Além disso, são necessárias as ferramentas de desenvolvimento padrão (gcc, make, patch), bem como as edições de desenvolvimento das bibliotecas (pthread, pcap, OpenSSL). Em distribuições baseadas em Debian, pode‑se simplesmente instalar todos os pacotes listados no arquivo DEPENDENCIES. Depois disso, deve ser possível apenas digitar make – as dependências externas serão baixadas via git e todo o scanner será compilado. O binário resultante pode ser copiado para /usr/bin ou /usr/local/bin ou similar.

Se a compilação falhar, por favor envie um e‑mail para o autor (detalhes de contato abaixo) incluindo a saída de erro, a versão do kernel, a versão da libc e qualquer outra coisa que possa ajudar a reproduzir e corrigir o problema. Sua ajuda é gentilmente apreciada.

USO

A execução da ferramenta deve ser bastante direta. Você precisará de privilégios de root. A opção -h exibe informações breves de uso e as opções explicadas. Na maioria dos casos, não é necessário mais do que especificar o tipo de varredura a ser realizada, as listas de portas a serem varridas e o IP alvo ou faixas de IP. A notação CIDR é suportada para as faixas de IP.

Existem quatro tipos diferentes de varredura, especificados com -s<arg>.

-sB: Realiza uma captura de banner padrão. O scanner não enviará nenhum dado; ele simplesmente aguardará e receberá dados, exibindo‑os até a primeira quebra de linha ou retorno de carro recebido.

-sH: Este modo envia uma solicitação "GET / HTTP/1.1" para cada conexão estabelecida com sucesso. É muito útil para identificar rapidamente servidores HTTP.

-sT: O modo de varredura TLS envia uma sonda TLS 1.0 NULL com zero opções e zero algoritmos especificados. Entretanto, se houver um servidor TLS válido no lado receptor, ele analisará e tentará descobrir se é uma resposta de erro TLS válida, que será então exibida.

-sC: Varredura personalizada que carrega uma carga útil de um arquivo (especificado com -d) e envia essa carga útil para cada soquete estabelecido com sucesso. Pode ser útil para sondar rapidamente protocolos muito específicos.

-p: A lista de portas TCP a serem varridas, que pode ser um intervalo de portas ou portas individuais, com intervalos e portas individuais separados por vírgulas. Exemplos: -p22,80,8080-9000,143 irá varrer as portas 22, 80, 143 e o intervalo de 8080 a 9000.

-b <limite>: O limite de largura de banda a ser aplicado para as sondas de saída. Isto não se aplica aos dados enviados e recebidos pelos soquetes, apenas às sondas SYN propriamente ditas sendo enviadas. Exemplos: -b300k, -b67m, -b500b resultariam em limites de largura de banda de 300 kbps, 67 mbps e 500 bps, respectivamente.

-d <nome_do_arquivo>: Nome do arquivo que contém a carga útil usada na varredura personalizada. O arquivo inteiro será enviado até um máximo de 128 kB, o que deve ser mais que suficiente para a maioria dos propósitos.

-t<timeout>: Especifica a quantidade de segundos que o scanner aguardará depois de ter enviado todas as sondas para receber dados de volta através dos soquetes ainda conectados. Isso supondo que haja algum, caso contrário ele sairá no momento em que não houver mais trabalho a fazer.

-x: Força a ferramenta a sempre despejar a saída recebida em notação hexadecimal. Caso contrário, ela só despejará dados em hexadecimal se caracteres não‑imprimíveis forem encontrados.

-v: Especifica uma saída verbosa. Útil principalmente para depuração.

-i <interface>: A interface a ser usada para selecionar o IP de origem e configurar o backend do pcap. Não deve ser necessária em máquinas padrão com apenas uma NIC configurada adequadamente, mas com várias NICs pode ser necessário.

-r <semente>: A semente aleatória a ser usada para o RNG (gerador de números aleatórios). Útil principalmente para depuração e para garantir que se possa fazer a ferramenta gerar exatamente a mesma sequência de pacotes novamente. O argumento é um inteiro e pode ser especificado em notação hexadecimal e decimal.

-T <ttl>: Substitui o valor padrão de TTL do IP a ser usado nas sondas SYN. Não é realmente necessário para nada, mas incluído por completeza.

-W <janela>: Substitui o valor padrão do tamanho da janela TCP a ser usado nas sondas SYN. Não é realmente necessário para nada, mas incluído por completeza.

-I <id>: Substitui o valor padrão do ID do IP a ser usado nas sondas SYN. Não é realmente necessário para nada, mas incluído por completeza.

-n: Esta opção só deve ser usada se você souber o que está fazendo. Ela fará com que a ferramenta NÃO configure a regra de firewall para descartar todos os pacotes RST de saída. Se isto for usado, o scanner não bifurcará (fork) e você terá a responsabilidade de definir esta regra manualmente, caso contrário o kernel enviará pacotes RST de volta para cada pacote SYNACK recebido, o que fará a ferramenta simplesmente não funcionar. A regra, conforme é definida no Linux, é a seguinte:

root@kitploit:~
 $ /sbin/iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP

-o: Esta opção não faz a redireção de E/S, portanto você verá mais saída dos internos do uinet. Foi adicionada apenas por completeza ou para cenários de depuração, pois não é muito útil de outra forma.

-h: A informação de uso.

Alguns exemplos de como usar a ferramenta. Para fazer uma captura de banner da porta 22 em uma faixa /24, use por exemplo:

root@kitploit:~
 ./pbscan -sB -p22 x.x.x.x/24

Para fazer uma varredura HTTP em várias portas HTTP comuns para um único IP, com a saída em modo hexadecimal, use:

root@kitploit:~
 ./pbscan -sH -x -p80,8080-9000 x.x.x.x

Durante a varredura, ao pressionar uma tecla na entrada padrão, algumas estatísticas são exibidas, como a quantidade de portas abertas identificadas, a quantidade de ACKs TCP válidos recebidos, o número de conexões atualmente ativas e quantas sondas SYN do total já foram enviadas. Isso será algo como:

root@kitploit:~
 sent: 1.97% (of 254), open: 0, active: 2, acks: 2

AUTOR

Esta ferramenta foi escrita por Vincent Berg. Entre em contato por e‑mail: [email protected] ou visite meu site http://santarago.org para versões atualizadas/notícias sobre este scanner.

AGRADECIMENTOS

Muita gratidão a várias pessoas que ajudaram testando, portando isso e reportando bugs. Agradecimentos a Ehab, Joseph, Alejandro, Julian e Diego.

REFERÊNCIAS

[1] http://packetstormsecurity.com/files/30489/paketto-1.10.tar.gz.html

[2] http://wanproxy.org/libuinet.shtml

Baixar ferramenta