Ошибка ICMP-инъекции с Немезидой в Mac OS

Это началось с простой задачи: отправить пакет ICMP типа 8 и кода 0 на хост в моей сети. Поскольку я использую свой Mac для всего, я установил Nemesis с помощью macports и попробовал следующую команду.

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

Это привело к ошибке.

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

ICMP Injection Failure

И с тех пор я вообще не мог использовать nemesis icmp с двух известных хороших компьютеров Mac, я всегда получаю одну и ту же ошибку.

Поэтому мой ответ, когда я заметил это, состоял в том, чтобы просто скомпилировать его в системе FreeBSD 8.2 из портов, nemesis 1.4 build 26, так же, как в OS X.

Работает так, как должно, без ошибок, счастливый пользователь.:)

Но я не хочу входить в систему FreeBSD каждый раз, когда хочу использовать Немезиду, так что здесь не так? Я попытался скомпилировать nemesis 1.4 build 26 из исходного кода на sourceforge, связав его с libnet, установленным macports в /opt, но это не имело значения.

Примечание: я попытался выполнить эту команду nemesis в обеих системах, используя корневой терминал, а не только через sudo.

1 ответ

Решение

Это похоже на сбой libnet. Из исходного кода Немезиды:

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);
}

Так что неудача в libnet_write_ip() или же libnet_write_link_layer(),

Я бы рекомендовал вручную перекомпилировать libnet из исходного кода и связать Немезиду с этой новой копией.

Другие вопросы по тегам