วิธีรวบรวมคำขอ DNS A บันทึก


15

ฉันต้องบันทึกรายการที่ส่งออกทั้งหมดAใน RedHat PC ฉันพยายามใช้tcpdump:

tcpdumpdns=OUTPUT-FILENAME-HERE
nohup tcpdump -K dst port 53 -w $tcpdumpdns > /dev/null 2>&1 &

มันทำให้ไฟล์ที่ส่งออกเช่น:

19:26:12.185392 IP 172.16.0.6.57977 > google-public-dns-a.google.com.domain: 51198+ A? yahoo.com. (27)

ดังนั้นฉันต้องดำเนินการเพื่อให้ได้รับyahoo.com:

echo $tcpdumpdns | awk '/ A\? / {u = NF - 1; print $u}' | sed 's/^www.//g; s/.$//g' | sort -u

มีวิธีใดที่ดีกว่าในการรวบรวมAคำขอบันทึกขาออกทั้งหมดหรือไม่

ps: การรวบรวม DNS A จำเป็นต้องมีการบันทึกรายการล่าสุดของเว็บไซต์ที่สามารถเข้าถึงได้ผ่าน HTTPS ดังนั้นฉันสามารถสร้างไฟล์ xml สำหรับ HTTPSEverywhere Firefox Add-on ได้ ดังนั้นนี่เป็นเพียงส่วนหนึ่งของสคริปต์


เกิดอะไรขึ้นกับโซลูชันที่คุณให้มา
Michael Mrozek

คุณมี GUI env หรือไม่หากใช้ wireshark-gtk เป็นวิธีที่ง่ายกว่าเนื่องจากคุณสามารถกรองได้อย่างง่ายดาย
Hanan N.

@ Hanan N .: GUI ไม่ใช่ตัวเลือก สิ่งนี้จำเป็นต้องเป็นแบบอัตโนมัติ
LanceBaynes

@Michael Mrozek: ฉันหวังว่าจะไม่มีอะไร แต่ฉันถามเพราะฉันเปิดรับทางเลือกอื่น
LanceBaynes

คำตอบ:


12

ใช้ Wireshark:

tshark -f "udp port 53" -Y "dns.qry.type == A and dns.flags.response == 0"

2
ฉันได้รับtshark: "A" cannot be found among the possible values for dns.qry.type.
Jack O'Connor

3
ในการแก้ไขปัญหา @ JackO'Connor ค่าทศนิยมสำหรับระเบียน DNS ประเภท A คือ 1 ดังนั้นจึงควรใช้งานได้:tshark -f "udp port 53" -Y "dns.qry.type == 1 and dns.flags.response == 0"
Rolinh

13

หากคุณไม่ได้ติดตั้ง wireshark

tcpdumpdns=/tmp/tcpdumps
tcpdump -lvi any "udp port 53" | tee $tcpdumpdns

ควรทำงานให้คุณ ตามที่คุณต้องการที่จะ จำกัด เอาท์พุทเป็นค่าที่สองถึงค่าสุดท้ายแล้วฉันจะแยกไฟล์บันทึกของคุณด้วย:

grep -E 'A\?' $tcpdumpdns |sed -e 's/^.*A? //' -e 's/ .*//'|sort -u

หากคุณต้องการให้มันมีชีวิตอยู่:

tcpdump -lvi any "udp port 53" 2>/dev/null|grep -E 'A\?'|awk '{print $(NF-1)}'

ควรทำมัน (ที่นี่ sed และ awk สามารถใช้แทนกันได้และฉันจะเลือก awk)


grep -E 'A\?' $tcpdumpdns |sed 's/^.*A? //;s/ .*//'|sort -uพิมพ์น้อยกว่า
Alexx Roche
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.