DNS 系で

cache poisoningとかいろいろあるのでメモ

ひとまず

#include <stdio.h>
main()
{
FILE *fp;
fp=fopen("payload.dns", "w");
fprintf(fp, "%c%c%c%c", 0x00, 0x28, 0x01, 0x00);
fprintf(fp, "%c%c%c%c", 0x00, 0x01, 0x00, 0x00);
fprintf(fp, "%c%c%c%c", 0x00, 0x00, 0x00, 0x00);
fprintf(fp, "%c%s", 0x14, "xn--y8jmg4a9b7g");
fprintf(fp, "%c%s%c", 0x01, "jp", 0x00);
fprintf(fp, "%c%c%c%c", 0x00, 0x10, 0x00, 0x01);
fclose(fp);
}

こんなのをいろいろ値をかえて
# hping --udp -p 53 --data 44 --file ./payload.dns ns.example.jp

もしくは普通のqueryは
$ dig a www.example.jp @ns.example.jp
とかで

そして
tcpdumpで観測
# tcpdump -s 128 -w ./capture.dat 'udp port 53 and udp[10] == 0x01'
とか