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
Portspoof — Emula portas abertas e assinaturas de serviço em todas as 65535 portas TCP para retardar o reconhecimento, confundir scanners e desperdiçar recursos do atacante com serviços falsos convincentes e tarpitting. | Kitploit
Ferramentas/GitHubGitHub/drk1wi/portspoof
Ferramentas DefensivasReconhecimentoAnálise de VulnerabilidadesEvasão de IDS/IPSSegurança de RedeRed Teaming
GitHubdrk1wi/portspoof

Portspoof

Emula portas abertas e assinaturas de serviço em todas as 65535 portas TCP para retardar o reconhecimento, confundir scanners e desperdiçar recursos do atacante com serviços falsos convincentes e tarpitting.

Ver Repositório
2.4k179há 6 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
Site

Portspoof

License Platform Build Status

Portspoof simula portas abertas e assinaturas de serviços em todas as 65535 portas TCP, transformando a fase de reconhecimento de uma varredura rápida em um processo longo e intensivo em recursos. Os scanners veem milhares de serviços falsos convincentes, tornando impraticável identificar a superfície de ataque real.

Tabela de Conteúdo

  • Visão Geral
  • Principais Recursos
  • Como Funciona
  • Abordagem de Design
  • Instalação
  • Configuração
  • Uso
  • Endurecimento com iptables
  • Portspoof Pro
  • Autores & Licença

Visão Geral

O objetivo principal do Portspoof é tornar o reconhecimento lento, caro e não confiável para atacantes. Em vez de uma varredura Nmap padrão de 5 segundos que mapeia todos os serviços reais em um sistema, um atacante enfrentando o Portspoof vê 65535 portas abertas, cada uma executando o que parece ser um serviço legítimo diferente. Não há uma maneira rápida de saber quais são reais.

Principais Recursos

  • Todas as 65535 Portas TCP Estão Sempre Abertas: Em vez de informar um atacante que uma porta está FECHADA ou FILTRADA, o Portspoof retorna SYN+ACK para cada tentativa de conexão.
  • Emulação de Serviços: Mais de 9000 assinaturas de serviços dinâmicas geradas a partir de expressões regulares. Cada porta responde a sondas com uma identidade de serviço diferente e convincente.
  • Modos de Entrega Mistos: Cada porta recebe um perfil comportamental diferente na inicialização (banner imediato, resposta atrasada ou espera silenciosa) com tempos de espera distribuídos em uma ampla faixa. A detecção de versão em todo o intervalo (nmap -sV -p-) vai muito além dos limites práticos.
  • Defesa Ofensiva: Pode ser usado como um 'Frontend de Framework de Exploração' para explorar vulnerabilidades nas próprias ferramentas de varredura do atacante.
  • Leve e Seguro: Executa em espaço de usuário (sem privilégios de root necessários), liga-se a apenas UMA porta TCP por instância em execução, e tem uso marginal de CPU/memória.

Como Funciona

1. Derrotando Scanners de Porta

Exemplo de Varredura Nmap:

root@kitploit:~
$ nmap -p 1-20 target
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for target
Host is up (0.00016s latency).
PORT   STATE SERVICE
1/tcp  open  tcpmux
2/tcp  open  compressnet
3/tcp  open  compressnet
4/tcp  open  unknown
5/tcp  open  rje
6/tcp  open  unknown
7/tcp  open  echo
8/tcp  open  unknown
9/tcp  open  discard
10/tcp open  unknown
11/tcp open  systat
12/tcp open  unknown
13/tcp open  daytime
14/tcp open  unknown
15/tcp open  netstat
16/tcp open  unknown
17/tcp open  qotd
18/tcp open  unknown
19/tcp open  chargen
20/tcp open  ftp-data

2. Confundindo a Detecção de Versão

O Portspoof responde a sondas de serviço com assinaturas válidas e geradas dinamicamente baseadas em um enorme banco de dados de expressões regulares. Como resultado, um atacante não conseguirá determinar quais números de porta seu sistema está realmente usando.

Exemplo de Varredura de Versão (portas 1–100):

root@kitploit:~
$ nmap -sV -p 1-100 target
Nmap scan report for target
Host is up (0.00016s latency).
PORT    STATE SERVICE            VERSION
1/tcp   open  tcpmux?
2/tcp   open  irc                ircu ircd
3/tcp   open  tcpwrapped
5/tcp   open  http               Polycom CMA Global Address Book (GAB) httpd
10/tcp  open  http               PGP Universal httpd
11/tcp  open  http               SnapStream Media Beyond TV PVR http config
12/tcp  open  pop3               Novell GroupWise pop3d
13/tcp  open  http               micro_httpd
15/tcp  open  ssh                OpenSSH r (protocol 8; NCSA GSSAPI authentication patch)
16/tcp  open  ftp                QMS/Minolta Magicolor 2200 DeskLaser printer ftpd
17/tcp  open  smtp               Network Box smtpd
21/tcp  open  ftp?
22/tcp  open  ssh                OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
23/tcp  open  tcpwrapped
25/tcp  open  smtp?
27/tcp  open  http               BMC/Marimba Management http config
37/tcp  open  http               Indy httpd qlRKjiF
39/tcp  open  pop3
41/tcp  open  ftp                VSE ftpd WhH
43/tcp  open  imap               Scalix imapd 6
46/tcp  open  telnet             AXIS webcam telnetd 96747 (Linux)
49/tcp  open  smtp               Openwave Email Mx smtpd
50/tcp  open  http               3Ware web interface 3v (RAID storage)
51/tcp  open  ftp                WebStar 4dftp ...
53/tcp  open  tcpwrapped
55/tcp  open  webdav             Tonido WebDAV
56/tcp  open  tor-control        Tor control port (Authentication required)
59/tcp  open  irc                ircu ircd
60/tcp  open  rtsp               GStreamer rtspd
64/tcp  open  http               BaseHTTPServer CAxoE (Mercurial hg serve; Python LDkW)
66/tcp  open  telnet             Slirp PPP/SLIP-on-terminal emulator telnetd
70/tcp  open  smtp               qpsmtpd
71/tcp  open  smtp               Microsoft Exchange smtpd
73/tcp  open  http               Avaya IP Office VoIP PBX httpd
77/tcp  open  smtp               Zeus SMTPS smtpd
79/tcp  open  ftp                Sambar ftpd
80/tcp  open  tcpwrapped
81/tcp  open  imap-proxy         nginx imap proxy
82/tcp  open  ssh                (protocol 811)
83/tcp  open  http               peercast.org
88/tcp  open  csta               Alcatel OmniPCX Enterprise
90/tcp  open  http               WASD httpd
91/tcp  open  http               Fortinet FortiGate 50B firewall http config
93/tcp  open  imap               ModusMail imapd 4
98/tcp  open  ssh                Sysax Multi Server sshd 7 (protocol 940)
99/tcp  open  http               2Wire HomePortal http config 5473
100/tcp open  newacct?

O Resultado

Combinadas, essas técnicas significam:

  • Não há uma maneira rápida de distinguir serviços reais dos falsos. O tempo, o comportamento e o conteúdo do banner variam em toda a faixa de portas.
  • Uma varredura de versão completa (nmap -sV -p-) com configurações padrão de tarpit leva mais de 10 horas e gera centenas de megabytes de dados falsos.
  • O scanner do atacante gasta tempo e threads em conexões que não levam a lugar algum.

Abordagem de Design

Serviços reais (SSH, SMTP, FTP, HTTP) enviam um banner e mantêm a conexão aberta, aguardando entrada do cliente. Uma emulação convincente significa fazer o mesmo: aceitar, enviar, segurar. Mas um modelo de thread por cliente consome memória e CPU com troca de contexto, e em escala, o defensor fica sem recursos antes que o atacante fique sem paciência. A ferramenta de decepção se torna um vetor de auto-DOS.

A abordagem: um loop de eventos epoll de thread única. Cada porta recebe um modo de entrega na inicialização: algumas enviam um banner imediatamente, algumas esperam o cliente enviar dados antes de responder, e outras permanecem silenciosas. Os tempos de espera são distribuídos em ordens de magnitude (dezenas de milissegundos a minutos) com jitter por conexão, de modo que sondas repetidas para a mesma porta não retornam o mesmo tempo.

Isso importa porque sem isso, um atacante pode enviar lixo para cada porta e medir o tempo de resposta: serviços reais fecham rápido (protocolo errado), enquanto um tarpit ingênuo segura por segundos. Com modos mistos e uma ampla distribuição de tempo, milhares de portas falsas também fecham na mesma faixa dos serviços reais. Não há um limite limpo para filtrar.

A economia funciona por causa da assimetria:

  • Custo do defensor: ~1–2 KB de memória do kernel por conexão ociosa. O loop epoll é de thread única, sem sobrecarga de troca de contexto. Uma máquina modesta segura 10k+ conexões concorrentes sem esforço.
  • Custo do atacante: tempo e esforço. Uma varredura de porta não diz nada — cada porta está aberta. Para encontrar serviços reais, eles precisam de detecção de versão em todas as 65535 portas, depois sondagem em nível de protocolo em qualquer coisa que pareça plausível. Uma varredura de 5 segundos se torna 10+ horas de trabalho ativo, o resultado ainda é um palheiro, e a maioria dos atacantes procura um alvo mais fácil.

Os modos de entrega por porta são fixos durante a vida útil do processo, mas imprevisíveis entre reinicializações. Os tempos de espera têm um componente aleatório por conexão, de modo que sondas repetidas mostram variação natural, semelhante a serviços reais sob carga.

v2.0 substitui o comportamento original de banner-e-fechar que era vulnerável a uma bypass de fechamento de conexão (veja o post do blog Vicarius/Hored1971). O mecanismo tarpit mantém todas as conexões abertas com tempo misto, derrotando filtragem de fechamento de conexão, impressão digital de tempo, análise de banner e modelagem estatística de padrões.


Instalação

Pré-requisitos

Certifique-se de ter um compilador C++ e CMake (3.10+) instalados.

Compilar a partir do Código Fonte

root@kitploit:~
mkdir build && cd build
cmake -DCMAKE_INSTALL_SYSCONFDIR=/etc .. 
make
sudo make install

Configuração

O Portspoof executa em espaço de usuário, mas depende de regras de firewall do sistema para interceptar tráfego destinado a outras portas.

1. Configurar Firewall (iptables)

Redirecione todo o tráfego TCP de entrada (portas 1-65535) para a porta do Portspoof (padrão 4444).

Linux (iptables):

root@kitploit:~
# Exclua os serviços reais primeiro, depois redirecione o restante para o Portspoof
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j RETURN
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -j REDIRECT --to-ports 4444

Nota: Substitua eth0 pela sua interface de rede. Adicione uma regra RETURN para cada porta que executa um serviço real.

Para tornar isso persistente, você pode salvar suas regras iptables ou usar o iptables-config fornecido no diretório system_files.

2. Inicialização do Sistema

Você pode adicionar o Portspoof aos seus scripts de inicialização usando os exemplos em system_files/init.d/.


Uso

Modo de Emulação de Serviço (Recomendado)

Este modo gera e alimenta scanners de porta com assinaturas de serviço falsas.

root@kitploit:~
portspoof -c /etc/portspoof.conf -s /etc/portspoof_signatures -D

Com tempos de tarpit personalizados (segure cada conexão entre 10 e 60 segundos):

root@kitploit:~
portspoof -s /etc/portspoof_signatures -t 10 -T 60 -D

Modo de Porta Aberta

Este modo simplesmente retorna um estado OPEN para cada tentativa de conexão sem enviar banners de serviço. As conexões ainda são retidas (tarpit).

root@kitploit:~
portspoof -D

Modo de Fuzzing

O Portspoof pode ser usado para fuzzear ferramentas de varredura enviando payloads aleatórios ou baseados em wordlist.

Fuzz com gerador interno:

root@kitploit:~
# Gera payloads aleatórios de tamanho aleatório
portspoof -1 -v

Fuzz com uma wordlist:

root@kitploit:~
portspoof -f payloads.txt -v

Endurecimento com iptables

A regra REDIRECT básica acima funciona, mas um scanner agressivo ainda pode tentar sobrecarregar o Portspoof com conexões. O conjunto de regras a seguir adiciona limitação de taxa e banimento automático para hosts que excedem o limite de conexões. Portas que hospedam serviços reais (SSH neste exemplo) são excluídas do redirecionamento, mas ainda protegidas pela regra de banimento global.

root@kitploit:~
# --- NAT: redirecionar tudo exceto serviços reais ---
# adicione uma regra RETURN para cada porta que você realmente usa (SSH, HTTP, etc.)
iptables -t nat -A PREROUTING -p tcp --dport 22 -j RETURN
iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 4444

# --- FILTER: defesa em profundidade ---

# permitir loopback (crítico: impede quebrar serviços locais)
iptables -A INPUT -i lo -j ACCEPT

# se este IP foi sinalizado como abusivo, descarte tudo (silencioso, sem RST)
iptables -A INPUT -m recent --name PORTSCAN --rcheck --seconds 60 -j DROP

# limitar taxa de novos SYNs por IP de origem
iptables -A INPUT -p tcp --syn -m hashlimit \
  --hashlimit-above 10/sec --hashlimit-burst 30 \
  --hashlimit-mode srcip --hashlimit-name syn_throttle -j DROP

# se um único IP tiver 100+ conexões com portspoof, sinalize e descarte
iptables -A INPUT -p tcp --syn --dport 4444 -m connlimit \
  --connlimit-above 100 --connlimit-mask 32 \
  -m recent --name PORTSCAN --set -j DROP

# permitir tráfego estabelecido e novas conexões
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --syn -j ACCEPT
iptables -A INPUT -j DROP

Para implantações de alto tráfego, aumente o tamanho da lista xt_recent:

root@kitploit:~
echo "options xt_recent ip_list_tot=10000" > /etc/modprobe.d/xt_recent.conf

E ajuste o rastreamento de conexão do kernel:

root@kitploit:~
sysctl -w net.netfilter.nf_conntrack_max=131072
sysctl -w net.core.somaxconn=4096

Portspoof Pro

Portspoof Pro escala a decepção de um único host para uma rede inteira. Um único sensor emula redes /16 completas: milhares de IPs, cada um com serviços únicos em todas as portas, mantendo conversas stateful de várias etapas.

  • Decepção em toda a rede. Transforme espaço IP escuro e sub-redes não utilizadas em uma grade de decepção ativa. Cada host emulado apresenta serviços únicos com uma personalidade diferente por IP de origem. O tarpit ativo esgota os pools de soquete do atacante e limita as ferramentas automatizadas.
  • Detecção de varredura e impressão digital de ferramentas. Detecta técnicas de varredura SYN, FIN, NULL, XMAS, ACK. Identifica Nmap, Masscan, ZMap e scanners personalizados. Telemetria JSON estruturada com mapeamento MITRE ATT&CK, transmitida para seu SIEM.
  • Implantação segura para produção. Executa em um ambiente isolado junto com o tráfego de produção. Políticas de roteamento direcionam o tráfego de decepção para o sensor. Sem taps em linha, sem risco para cargas de trabalho reais.
  • Conformidade pronta para uso. Suporta NIS2, DORA, ISO 27001, NIST CSF e CIS Controls.

portspoof.io


Autores & Licença

Autor: Piotr Duszyński (@drk1wi)

Licença: GNU General Public License v2.0 (GPLv2). Consulte o arquivo LICENSE para obter detalhes.

Para aplicações comerciais e legítimas, entre em contato com o autor para os arranjos de licenciamento apropriados.


Reportando Problemas

Se você encontrar algum bug ou tiver solicitações de recursos, por favor, reporte-os no Rastreador de Problemas do GitHub ou entre em contato com o autor por e-mail em piotr [at] duszynski.eu.

Baixar ferramenta