Falha de injeção ICMP com nemesis no Mac OS

1

Isso começou com uma tarefa simples, envie um pacote ICMP do tipo 8 e o código 0 para um host na minha rede. Desde que eu uso o meu Mac para tudo que eu instalei nemesis usando macports e tentei o seguinte comando.

sudo nemesis icmp -i 8 -c 0 -P ./payload -D 172.16.148.133

Isso resultou em um erro.

ERROR: Incomplete packet injection.  Only wrote -1 bytes.

ICMP Injection Failure

E desde então eu não tenho conseguido usar nemesis icmp em nenhum dos dois bons computadores mac, eu sempre recebo o mesmo erro exato.

Então minha resposta quando notei isso foi simplesmente compilá-lo em um sistema FreeBSD 8.2 a partir de portas, nemesis 1.4 build 26, mesmo que no OS X.

Funciona exatamente como deveria, sem erros, usuário feliz. :)

Mas eu não quero entrar em um sistema FreeBSD toda vez que eu quero usar nemesis então o que há de errado aqui? Eu tentei compilar o nemesis 1.4 build 26 do código-fonte no sourceforge, vinculando à libnet instalada pelo macports em / opt, mas isso não fez diferença.

Nota: Eu tentei executar este comando nemesis em ambos os sistemas usando um terminal raiz, não apenas através do sudo que é.

    
por Stefan Midjich 01.05.2011 / 15:43

1 resposta

0

Isso parece uma falha de libnet. Do código-fonte do nemesis:

if (got_link)
    n = libnet_write_link_layer(l2, device, pkt, icmp_packetlen);
else
    n = libnet_write_ip(sockfd, pkt, icmp_packetlen);

if (verbose == 2)
    nemesis_hexdump(pkt, icmp_packetlen, HEX_ASCII_DECODE);
if (verbose == 3)
    nemesis_hexdump(pkt, icmp_packetlen, HEX_RAW_DECODE);

if (n != icmp_packetlen)
{
    fprintf(stderr, "ERROR: Incomplete packet injection.  Only wrote "
            "%d bytes.\n", n);
}

Portanto, a falha está em libnet_write_ip() ou libnet_write_link_layer() .

Eu recomendaria recompilar manualmente a libnet da origem e vincular o nemesis a essa nova cópia.

    
por 01.05.2011 / 16:17