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.