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/v-byte-cpu/sx
ReconhecimentoMapeamento de RedeEscaneamento de PortasColeta de InformaçõesTestes de Penetração
GitHubv-byte-cpu/sx

sx

🖖 Rápido, moderno, scanner de rede fácil de usar

Ver Repositório
1.6k108há 7 diasRevisado 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
sx — :vulcan_salute: Rápido, moderno, scanner de rede fácil de usar | Kitploit

sx

License Build Status GoReportCard Status Platform

sx é um scanner de rede de linha de comando projetado para seguir a filosofia UNIX.

O objetivo deste projeto é criar o scanner de rede mais rápido com código limpo e simples.

📖 Índice

  • Funcionalidades
  • Instalação
  • Compilar a partir do código-fonte
  • Início Rápido
  • Referências
  • Contribuindo
  • Créditos
  • Licença

✨ Funcionalidades

  • ⚡ 30x vezes mais rápido que o nmap
  • Varredura ARP: Escaneie suas redes locais para detectar dispositivos ativos
  • Varredura ICMP: Use técnicas avançadas de varredura ICMP para detectar hosts ativos e regras de firewall
  • Varredura TCP SYN: Varredura tradicional meia-aberta (half-open) para encontrar portas TCP abertas
  • Varreduras TCP FIN / NULL / Xmas: Técnicas de varredura para contornar algumas regras de firewall
  • Varreduras TCP personalizadas com quaisquer flags TCP: Envie quaisquer pacotes exóticos que desejar e obtenha um resultado com todas as flags TCP definidas no pacote de resposta
  • Varredura UDP: Escaneie portas UDP e obtenha respostas ICMP completas para detectar portas abertas ou regras de firewall
  • Varreduras de aplicação:
    • Varredura SOCKS5: Detecte proxies SOCKS5 ativos escaneando faixa de IP ou lista de pares ip/porta de um arquivo
  • Iteração aleatória sobre endereços IP usando grupos multiplicativos cíclicos finitos
  • Suporte a saída JSON: O sx é projetado especificamente para o processamento automático conveniente de resultados

📦 Instalação

A maneira mais simples é baixar dos GitHub Releases e colocar o arquivo executável no seu PATH.

🛠 Compilar a partir do código-fonte

Requisitos:

  • Go 1.25 ou superior
  • libpcap (já instalado se você usa wireshark)

No macOS, instale as Ferramentas de Linha de Comando do Xcode primeiro para que o CGO possa vincular-se à libpcap do sistema:

root@kitploit:~
xcode-select --install

Na raiz da árvore de código-fonte, execute:

root@kitploit:~
go build

🚀 Início Rápido

Aqui estão alguns exemplos rápidos mostrando como você pode escanear redes com sx.

Varredura ARP

Escaneie sua rede local e exiba o endereço IP, endereço MAC e o fabricante do hardware associado dos dispositivos conectados:

root@kitploit:~
sx arp 192.168.0.1/24

exemplo de saída:

root@kitploit:~
192.168.0.1          b0:be:76:40:05:8d    TP-LINK TECHNOLOGIES CO.,LTD.
192.168.0.111        80:c5:f2:0b:02:e3    AzureWave Technology Inc.
192.168.0.171        88:53:95:2d:3c:af    Apple, Inc.

com saída JSON:

root@kitploit:~
sx arp --json 192.168.0.1/24

exemplo de saída:

root@kitploit:~
{"ip":"192.168.0.1","mac":"b0:be:76:40:05:8d","vendor":"TP-LINK TECHNOLOGIES CO.,LTD."}
{"ip":"192.168.0.111","mac":"80:c5:f2:0b:02:e3","vendor":"AzureWave Technology Inc."}
{"ip":"192.168.0.171","mac":"88:53:95:2d:3c:af","vendor":"Apple, Inc."}

aguarde 5 segundos antes de sair para receber pacotes de resposta atrasados, por padrão o sx aguarda 300 milissegundos:

root@kitploit:~
sx arp --exit-delay 5s 192.168.0.1/24

Modo de varredura contínua que reescaneia a rede a cada 10 segundos:

root@kitploit:~
sx arp 192.168.0.1/24 --live 10s

Varredura TCP

Ao contrário do nmap e de outros scanners que implicitamente realizam requisições ARP para resolver endereços IP em endereços MAC antes da varredura real, o sx utiliza explicitamente o conceito de cache ARP. O arquivo de cache ARP é um arquivo de texto simples contendo uma string JSON em cada linha (arquivo JSONL), que possui os mesmos campos JSON da saída JSON da varredura ARP descrita acima. As varreduras de protocolos de nível superior, como TCP e UDP, leem o arquivo de cache ARP da entrada padrão (stdin) e então iniciam a varredura real.

Isso não apenas simplifica o design do programa, mas também acelera o processo de varredura, já que não é necessário realizar uma varredura ARP toda vez.

Vamos supor que o cache ARP real esteja no arquivo arp.cache. Podemos criá-lo manualmente ou usar a varredura ARP como mostrado abaixo:

root@kitploit:~
sx arp 192.168.0.1/24 --json | tee arp.cache

Assim que tivermos o arquivo de cache ARP, podemos executar varreduras de protocolos de nível superior, como a varredura TCP SYN:

root@kitploit:~
cat arp.cache | sx tcp -p 1-65535 192.168.0.171

exemplo de saída:

root@kitploit:~
192.168.0.171        22
192.168.0.171        443

Neste caso, descobrimos que as portas 22 e 443 estão abertas.

Se você vir send: No buffer space available durante varreduras grandes, isso geralmente significa que o emissor está ultrapassando os buffers do kernel/socket bruto. A primeira correção é adicionar --rate e reduzir a rajada de envio, por exemplo -r 100000/s ou menos, se necessário. Em alguns sistemas, ajustar os limites de buffer/socket do SO também pode ajudar, mas a limitação de taxa é a correção principal.

varredura com saída JSON:

root@kitploit:~
cat arp.cache | sx tcp  --json -p 1-65535 192.168.0.171

exemplo de saída:

root@kitploit:~
{"scan":"tcpsyn","ip":"192.168.0.171","port":22}
{"scan":"tcpsyn","ip":"192.168.0.171","port":443}

escaneie múltiplas faixas de portas:

root@kitploit:~
cat arp.cache | sx tcp -p 1-23,25-443 192.168.0.171

ou portas individuais:

root@kitploit:~
cat arp.cache | sx tcp -p 22,443 192.168.0.171

ou use a opção --ports-file para especificar um arquivo com portas ou faixas de portas para escanear, uma por linha.

escaneie pares ip/porta de um arquivo com saída JSON:

root@kitploit:~
cat arp.cache | sx tcp --json -f ip_ports_file.jsonl

Cada linha do arquivo de entrada é uma string JSON, que deve conter os campos ip e port.

arquivo de entrada de exemplo:

root@kitploit:~
{"ip":"10.0.1.1","port":1080}
{"ip":"10.0.2.2","port":1081}

É possível especificar o arquivo de cache ARP usando as opções -a ou --arp-cache:

root@kitploit:~
sx tcp -a arp.cache -p 22,443 192.168.0.171

ou redirecionamento de stdin:

root@kitploit:~
sx tcp -p 22,443 192.168.0.171 < arp.cache

Você também pode usar o subcomando tcp syn em vez de tcp:

root@kitploit:~
cat arp.cache | sx tcp syn -p 22 192.168.0.171

O subcomando tcp é apenas uma abreviação para o subcomando tcp syn, a menos que a opção --flags seja passada, veja abaixo.

Interfaces VPN

O sx suporta varredura com interfaces de rede virtuais (wireguard, openvpn, etc.) e neste caso não é necessário usar o cache arp, pois essas interfaces exigem pacotes IP brutos em vez de quadros Ethernet como entrada. Por exemplo, escaneando um endereço IP em uma rede vpn:

root@kitploit:~
sx tcp 10.1.27.1 -p 80 --json

Varredura TCP FIN

A maioria dos scanners de rede tenta interpretar os resultados da varredura. Por exemplo, eles dizem "esta porta está fechada" em vez de "recebi um RST". Às vezes eles estão certos. Às vezes não. É mais fácil para iniciantes, mas quando você sabe o que está fazendo, você continua tentando deduzir o que realmente aconteceu a partir da interpretação do programa, especialmente para técnicas de varredura mais avançadas.

O sx tenta superar esses problemas. Ele retorna informações sobre todos os pacotes de resposta para varreduras TCP FIN, NULL, Xmas e TCP personalizadas. A informação contém endereço IP, porta TCP e todas as flags TCP definidas no pacote de resposta.

A varredura TCP FIN e suas outras variações (NULL e Xmas) exploram a RFC793 Seção 3.9:

SEGMENT ARRIVES

If the state is CLOSED (i.e., TCB does not exist) then

root@kitploit:~
 all data in the incoming segment is discarded.  An incoming
 segment containing a RST is discarded.  An incoming segment not
 containing a RST causes a RST to be sent in response.  The
 acknowledgment and sequence field values are selected to make the
 reset sequence acceptable to the TCP that sent the offending
 segment.

portanto, uma porta fechada deve retornar um pacote com a flag RST.

Esta seção também afirma que:

If the state is LISTEN then

...

Any other control or text-bearing segment (not containing SYN) must have an ACK and thus would be discarded by the ACK processing. An incoming RST segment could not be valid, since it could not have been sent in response to anything sent by this incarnation of the connection. So you are unlikely to get here, but if you do, drop the segment, and return.

a frase principal aqui: drop the segment, e retorne. Então, uma porta aberta na maioria dos sistemas operacionais descartará o pacote TCP contendo quaisquer flags exceto SYN, ACK e RST.

Vamos escanear alguma porta fechada com varredura TCP FIN:

root@kitploit:~
cat arp.cache | sx tcp fin --json -p 23 192.168.0.171

exemplo de saída:

root@kitploit:~
{"scan":"tcpfin","ip":"192.168.0.171","port":23,"flags":"ar"}

O campo flags contém todas as flags TCP no pacote de resposta, onde cada letra representa uma das flags TCP:

  • s - flag SYN
  • a - flag ACK
  • f - flag FIN
  • r - flag RST
  • p - flag PSH
  • u - flag URG
  • e - flag ECE
  • c - flag CWR
  • n - flag NS

Neste caso, descobrimos que a porta 23 enviou pacote de resposta com as flags ACK e RST definidas (resposta típica para uma porta fechada de acordo com o rfc793).

Se escanearmos uma porta aberta, não obtemos resposta (a menos que o firewall esteja falsificando as respostas).

Outros tipos de varreduras TCP podem ser realizados por analogia.

Varredura TCP NULL:

root@kitploit:~
cat arp.cache | sx tcp null --json -p 23 192.168.0.171

Varredura TCP Xmas:

root@kitploit:~
cat arp.cache | sx tcp xmas --json -p 23 192.168.0.171

Varreduras TCP personalizadas

É possível enviar pacotes TCP com flags TCP personalizadas usando a opção --flags.

Vamos enviar um pacote TCP com as flags SYN, FIN e ACK definidas para identificar o sistema operacional remoto:

root@kitploit:~
cat arp.cache | sx tcp --flags syn,fin,ack --json -p 23 192.168.0.171

Windows e MacOS não responderão a este pacote, mas o Linux enviará um pacote de resposta com a flag RST.

Argumentos possíveis para a opção --flags:

  • syn - flag SYN
  • ack - flag ACK
  • fin - flag FIN
  • rst - flag RST
  • psh - flag PSH
  • urg - flag URG
  • ece - flag ECE
  • cwr - flag CWR
  • ns - flag NS

Varredura UDP

O sx pode ajudar a investigar portas UDP abertas. A varredura UDP explora a RFC1122 Seção 4.1.3.1:

If a datagram arrives addressed to a UDP port for which there is no pending LISTEN call, UDP SHOULD send an ICMP Port Unreachable message.

Similar às varreduras TCP, o sx retorna informações sobre todos os pacotes ICMP de resposta para a varredura UDP. A informação contém endereço IP, tipo e código do pacote ICMP definidos no pacote de resposta.

Por exemplo, para detectar servidor DNS no host, execute:

root@kitploit:~
cat arp.cache | sx udp --json -p 53 192.168.0.171

exemplo de saída:

root@kitploit:~
{"scan":"udp","ip":"192.168.0.171","icmp":{"type":3,"code":3}}

Neste caso, descobrimos que o host enviou um pacote de resposta ICMP com tipo Destination Unreachable e código Port Unreachable (resposta típica para uma porta fechada de acordo com o rfc1122).

Firewalls normalmente definem um código ICMP diferente de Port Unreachable e, portanto, podem ser facilmente detectados.

Limitação de taxa

Às vezes, você precisa limitar a velocidade com que os pacotes gerados são enviados. Isso pode ser feito com a opção --rate.

Por exemplo, para limitar a velocidade a 1 pacote a cada 5 segundos:

root@kitploit:~
cat arp.cache | sx tcp --rate 1/5s --json -p 22,80,443 192.168.0.171

Excluir sub-redes

Às vezes, você precisa excluir alguns endereços IP e sub-redes da varredura. Isso pode ser feito com a opção --exclude. Ela especifica um arquivo com IPs ou sub-redes em notação CIDR para excluir, um por linha.

Por exemplo, para excluir endereços RFC 1918, crie um arquivo ips.txt com o seguinte conteúdo:

root@kitploit:~
10.0.0.0/8
172.16.0.0/16
192.168.0.0/16

Você também pode inserir comentários e linhas em branco:

root@kitploit:~
# exclude RFC 1918 addresses
10.0.0.0/8 # comment 1
172.16.0.0/12 # comment 2
192.168.0.0/16 # comment 3

0.0.0.0/8 # used in initialization procedures (RFC 6890)

# exclude RFC 5735 addresses
127.0.0.0/8 # loopback address
192.0.0.0/24 # reserved block for IETF protocol assignments
224.0.0.0/4 # allocated for use in IPv4 multicast address assignments
240.0.0.0/4 # reserved for future use

# exclude Amazon network
3.0.0.0/8

# ip addresses are valid as well
1.1.1.1

e execute uma varredura com a opção --exclude ips.txt.

Scanner TCP SYN LAN contínuo

Como exemplo de composição de varredura, você pode combinar varreduras ARP e TCP SYN para criar um scanner de porta TCP contínuo que escaneie periodicamente toda a rede LAN.

Inicie a varredura ARP contínua e salve os resultados no arquivo arp.cache:

root@kitploit:~
sx arp 192.168.0.1/24 --live 10s --json | tee arp.cache

Em outro terminal, inicie a varredura TCP SYN:

root@kitploit:~
while true; do sx tcp -p 1-65535 -a arp.cache -f arp.cache; sleep 30; done

Varredura SOCKS5

O sx pode detectar proxies SOCKS5 ativos. Para escanear, você deve especificar uma faixa de IP ou um arquivo JSONL com pares ip/porta.

Por exemplo, uma varredura de faixa de IP:

root@kitploit:~
sx socks -p 1080 10.0.0.1/16

escaneie pares ip/porta de um arquivo com saída JSON:

root@kitploit:~
sx socks --json -f ip_ports_file.jsonl 

Cada linha do arquivo de entrada é uma string JSON, que deve conter os campos ip e port.

arquivo de entrada de exemplo:

root@kitploit:~
{"ip":"10.0.1.1","port":1080}
{"ip":"10.0.2.2","port":1081}

Você também pode especificar uma faixa de portas para escanear:

root@kitploit:~
sx socks -p 1080-4567 -f ips_file.jsonl

Neste caso, apenas endereços IP serão retirados do arquivo e o campo port não é mais necessário.

Ajuda de uso

root@kitploit:~
sx help

📜 Referências

  • Network Security Assessment: Know Your Network 1st Edition por Chris McNab
  • ICMP Usage in Scanning - The Complete Know-How por Ofir Arkin
  • Transmission Control Protocol ( rfc793 )
  • User Datagram Protocol ( rfc768 )
  • Requirements for Internet Hosts -- Communication Layers ( rfc1122 )
  • SOCKS Protocol Version 5 ( rfc1928 )
  • Internet Control Message Protocol ( rfc792 )

🤝 Contribuindo

Contribuições, issues e solicitações de funcionalidades são bem-vindas.

💎 Créditos

Logotipo desenhado por mikhailtsoy.com

Licença

Este projeto é licenciado sob a Licença MIT. Veja o arquivo LICENSE para o texto completo da licença.

Baixar ferramenta