ฉันจะค้นหาได้อย่างไรว่ามีเซิร์ฟเวอร์ DHCP อันธพาลบนเครือข่ายของฉัน


92

อะไรคือวิธีที่ดีที่สุดในการพิจารณาว่าฉันมีเซิร์ฟเวอร์ DHCP อันธพาลในเครือข่ายของฉันหรือไม่

ฉันสงสัยว่าผู้ดูแลระบบส่วนใหญ่เข้าถึงปัญหาประเภทนี้อย่างไร ฉันพบDHCP Probeจากการค้นหาและลองคิดดู มีใครเคยมีประสบการณ์กับมันบ้างไหม? (ฉันต้องการที่จะรู้ก่อนที่จะสละเวลาในการรวบรวมและติดตั้ง)

คุณรู้จักเครื่องมือที่มีประโยชน์หรือแนวปฏิบัติที่ดีที่สุดในการค้นหาเซิร์ฟเวอร์ DHCP อันธพาลหรือไม่


2
เครื่องมือ MS และใช้งานง่ายมาก! การตรวจหาเซิร์ฟเวอร์ Rogue DHCP - RogueChecker.zip blogs.technet.com/b/teamdhcp/archive/2009/07/03/ …
aa.malta

ฉันพบการอ้างอิงอย่างเป็นทางการถึงลิงก์ของคุณ aa.malta ที่social.technet.microsoft.com/wiki/contents/articles/ …แต่ลิงก์ไม่ทำงานอีกต่อไปในปี 2559 มันแสดงให้ฉันเห็นโพสต์บล็อกจากปี 2009 แต่ฉันเท่านั้น ดูโพสต์สำหรับ 6 กรกฎาคมและ 29 มิถุนายนดูเหมือนจะไม่มีโพสต์ 3 กรกฎาคมตามที่ระบุโดยลิงค์ URL ที่คุณโพสต์ ดูเหมือนว่า MS จะลบออกไปเพราะใครจะรู้ว่ามีเหตุผลอะไรบ้าง
Daniel

ดูเหมือนว่าลิงค์โดยตรง (ซึ่งฉันพบในเว็บไซต์ wordpress) ทำงานเพื่อดาวน์โหลดไฟล์จาก Microsoft Server ลิงก์ใช้งานได้ตั้งแต่เดือนมกราคม 2559 เนื่องจาก URL คือ Microsoft ฉันรู้สึกว่าเชื่อถือได้ แต่ฉันไม่รับประกัน: blogs.technet.com/cfs-file.ashx/__key/…
Daniel

เครื่อง Wayback มีสำเนาweb.archive.org/web/20100601022750/http://blogs.technet.com/b/…
antgiant

คำตอบ:


54

วิธีการง่าย ๆ อย่างหนึ่งคือเพียงแค่เรียกใช้ sniffer เช่น tcpdump / wireshark บนคอมพิวเตอร์และส่งคำขอ DHCP หากคุณเห็นข้อเสนออื่น ๆ จากเซิร์ฟเวอร์ DHCP จริงของคุณแสดงว่าคุณมีปัญหา


28
ช่วยในการใช้ตัวกรองต่อไปนี้: "bootp.type == 2" (สำหรับการแสดงเฉพาะข้อเสนอ DHCP และดูว่ามีการตอบสนองจากแหล่งข้อมูลที่แตกต่าง / ไม่รู้จักหรือไม่)
l0c0b0x

4
ใช้โปรแกรมเช่น DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/ ...... ) ร่วมกับ TCPDump / Wireshark เพื่อกระตุ้นการตอบสนอง DHCP
saluce

1
คุณช่วยเสนอทางออกที่เฉพาะเจาะจงมากกว่านี้ได้ไหม?
tarabyte

@ tarabyte ฉันไม่แน่ใจว่าวิธีการแก้ปัญหาฉันหรือ improvments ฉันควรจะนำเสนอ ฉันคิดว่าคำถามนี้มีความคุ้มครองที่ดีพอสมควรจากคำตอบที่ดีอีกสิบข้อ ตัวเลือก goto ของฉันในวันนี้คือเพียงกำหนดค่าสวิตช์ของคุณเพื่อบล็อก DHCP ตามที่ Jason Luther แนะนำ มีบางสิ่งที่เฉพาะเจาะจงซึ่งจำเป็นต้องได้รับการคุ้มครองให้ดีขึ้นหรือไม่?
Zoredache

2
ฉันคาดหวังว่าจะมีลำดับของคำสั่งที่ใช้งานtcpdumpมากarpขึ้นพร้อมกับพารามิเตอร์ที่ชัดเจนและคำอธิบายของพารามิเตอร์เหล่านั้น
tarabyte

22

ในการสรุปและเพิ่มคำตอบอื่น ๆ :

ปิดใช้งานเซิร์ฟเวอร์ DHCP ที่ใช้งานชั่วคราวของคุณและดูว่าเซิร์ฟเวอร์อื่นตอบสนองหรือไม่

คุณจะได้รับที่อยู่ IP ของเซิร์ฟเวอร์โดยทำงานipconfig /allบนเครื่อง Windows และจากนั้นคุณจะได้รับที่อยู่ MAC โดยการมองหาที่อยู่ IP arp -aที่ใช้

สำหรับ Mac ให้เรียกใช้ipconfig getpacket en0(หรือ en1) ดูhttp://www.macosxhints.com/article.php?story=20060124152826491

ข้อมูลเซิร์ฟเวอร์ DHCP มักจะอยู่ใน / var / log / messages sudo grep -i dhcp /var/log/messages*

การปิดใช้งานเซิร์ฟเวอร์ DHCP ที่ใช้งานจริงของคุณอาจไม่ใช่ตัวเลือกที่ดีแน่นอน

ใช้เครื่องมือที่ค้นหาเซิร์ฟเวอร์ DHCP ปลอมโดยเฉพาะ

ดูhttp://en.wikipedia.org/wiki/Rogue_DHCPสำหรับรายการของเครื่องมือ (ซึ่งส่วนใหญ่แสดงอยู่ในคำตอบอื่น ๆ )

กำหนดค่าสวิตช์เพื่อบล็อกข้อเสนอ DHCP

สวิตช์ที่มีการจัดการส่วนใหญ่สามารถกำหนดค่าเพื่อป้องกันเซิร์ฟเวอร์ DHCP อันธพาล:


17

dhcpdumpซึ่งใช้รูปแบบอินพุตtcpdumpและแสดงเฉพาะแพ็กเก็ตที่เกี่ยวข้องกับ DHCP ช่วยฉันค้นหารูทคิท Windows โดยวางตัวเป็น DHCP ปลอมใน LAN ของเรา


15

แนวทางของ Wireshark / DHCP explorer / DHCP Probe นั้นดีสำหรับการตรวจสอบครั้งเดียวหรือเป็นระยะ อย่างไรก็ตามฉันขอแนะนำให้ค้นหาการสนับสนุนDHCP Snoopingบนเครือข่ายของคุณ คุณสมบัตินี้จะให้การป้องกันที่คงที่จากเซิร์ฟเวอร์ DHCP อันธพาลบนเครือข่ายและได้รับการสนับสนุนจากผู้จำหน่ายฮาร์ดแวร์หลายราย

นี่คือชุดคุณลักษณะตามที่ระบุไว้ในเอกสารของซิสโก้

•ตรวจสอบข้อความ DHCP ที่ได้รับจากแหล่งที่ไม่น่าเชื่อถือและกรองข้อความที่ไม่ถูกต้อง

• จำกัด อัตราการรับส่งข้อมูล DHCP จากแหล่งที่เชื่อถือได้และไม่น่าเชื่อถือ

•สร้างและรักษาฐานข้อมูลการเชื่อมโยงการสอดแนม DHCP ซึ่งมีข้อมูลเกี่ยวกับโฮสต์ที่ไม่น่าเชื่อถือด้วยที่อยู่ IP ที่เช่า

•ใช้ฐานข้อมูลการรวมการสอดแนม DHCP เพื่อตรวจสอบคำขอต่อมาจากโฮสต์ที่ไม่น่าเชื่อถือ


2
จูนิเปอร์ DHCP สอดแนม doc: juniper.net/techpubs/en_US/junos9.2/topics/concept/... ProCurve ของ DHCP สอดแนม: h40060.www4.hp.com/procurve/uk/en/pdfs/application-notes/...
sclarson

10

dhcploc.exeเป็นวิธีที่เร็วและง่ายที่สุดในระบบ Windows มันมีอยู่ในเครื่องมือสนับสนุน XP เครื่องมือสนับสนุนอยู่ในดิสก์ OEM / ปลีก XP ทุกตัว แต่อาจอยู่หรือไม่อยู่ใน "ดิสก์กู้คืน" ที่ได้รับจาก OEM บางตัว คุณสามารถดาวน์โหลดได้จาก MS

มันเป็นเครื่องมือบรรทัดคำสั่งง่ายๆ คุณเรียกใช้dhcploc {yourIPaddress}จากนั้นกดปุ่ม 'd' เพื่อทำการค้นหาปลอม หากคุณปล่อยให้มันทำงานโดยไม่ต้องกดปุ่มใด ๆ มันจะแสดงทุกคำขอ DHCP และตอบรับมัน กด 'q' เพื่อออก


เพียงแค่ใช้สิ่งนี้ร่วมกับการฆ่าแต่ละพอร์ตสวิตช์เพื่อติดตามเซิร์ฟเวอร์โกงที่เราติดต่อด้วย สิ่งที่ดี!
DHayes

1
คุณยังสามารถใช้ DHCPloc.exe บน Windows 7: 1. ดาวน์โหลด "เครื่องมือสนับสนุน Windows XP Service Pack 2" จาก [ที่นี่] [1] 2. คลิกขวาที่ไฟล์ปฏิบัติการและเลือกคุณสมบัติ -> ความเข้ากันได้จากนั้นเปิดโหมดความเข้ากันได้และตั้งเป็น "Windows XP (Service Pack 3)" 3. ติดตั้งตามปกติ DHCPLoc.exe ทำงานได้ดีในการติดตั้ง Win7 x64 ของฉัน [1]: microsoft.com/en-us/download/details.aspx?id=18546
parsley72

1
ฉันเพิ่งสังเกตเห็นว่าคุณสามารถดาวน์โหลดไฟล์ปฏิบัติการได้จากตำแหน่งต่อไปนี้และทำงานได้ดีภายใต้ Win 10 x64: gallery.technet.microsoft.com/DHCPLOC-Utility-34262d82
PeterJ

9

Scapy เป็นเครื่องมือการสร้างแพกเก็ตแบบหลามที่ดีสำหรับงานเรียงลำดับเหล่านี้ มีตัวอย่างของวิธีการที่จะทำตรงนี้คือที่นี่


2
ว้าวฉันพบว่า Scapy นั้นทรงพลังมากหลังจากขุดเข้าไปหลายวัน มันเกินกว่าเครื่องมือเส็งเคร็งเช่น dhcpfind.exe และ dhcploc.exe Scapy 2.2 สามารถทำงานบน Linux และ Windows - ฉันลองทั้งสองอย่าง อุปสรรคเพียงอย่างเดียวคือคุณต้องรู้ภาษาการเขียนโปรแกรม Python ในระดับที่ค่อนข้างจะควบคุมพลังของมัน
Jimm Chen

ลิงค์ที่คุณโพสต์เสียหาย
Jason S

@JasonS สวัสดีฉันได้อัปเดตลิงก์แล้ว แต่การเปลี่ยนแปลงกำลังรอการตรวจทานโดยเพื่อน ... ในขณะที่รอคุณสามารถค้นหาได้ที่นี่: bitbucket.org/secdev/scapy/wiki/doc/IdentifyingRogueDHCPServers
Huygens

7

เพื่อขยายความคิดเห็นของl0c0b0xเกี่ยวกับการใช้bootp.type == 2เป็นตัวกรอง ตัวกรอง bootp.type มีเฉพาะใน Wireshark / tshark เท่านั้น มันไม่สามารถใช้ได้ใน tcpdump ซึ่งตำแหน่งตามบริบทของความคิดเห็นของเขาทำให้ฉันเชื่อ

Tshark ทำงานได้อย่างสมบูรณ์แบบสำหรับสิ่งนี้

เรามีเครือข่ายของเราแบ่งออกเป็นโดเมนออกอากาศจำนวนมากแต่ละเครือข่ายมีโพรบบน Linux ของตนเองพร้อมจุดแสดงตนในโดเมนออกอากาศ "ในพื้นที่" และบนซับเน็ตระดับผู้ดูแลระบบในรูปแบบอื่นหรืออย่างอื่น Tshark รวมกับClusterSSHช่วยให้ฉันมองหาปริมาณการใช้ DHCP หรือ (สิ่งอื่นสำหรับเรื่องนั้น) ได้อย่างง่ายดายในมุมกว้างของเครือข่าย

นี่จะค้นหาการตอบกลับ DHCP โดยใช้ Linux:

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'

tcpdump: syntax errorที่เป็นประโยชน์มากผมใช้เวลายุติธรรมบิตของเวลาพยายามที่จะคิดออกว่าทำไมผมได้รับ แม้จะโพสต์คำถามไว้คำตอบของคุณปลดบล็อกฉันขอบคุณ! networkengineering.stackexchange.com/questions/39534/…
Elijah Lynn

1
-R <Read filter>นอกจากนี้ผมคิดว่าสิ่งที่มีการเปลี่ยนแปลงด้วย tshark: -R without -2 is deprecated. For single-pass filtering use -Y.ฉันได้รับ -Yทำงานได้ดี
เอลียาห์ลินน์

6

เมื่อคุณยอมรับว่ามีเซิร์ฟเวอร์ DHCP ปลอมในเครือข่ายฉันพบวิธีที่เร็วที่สุดในการแก้ไขปัญหานี้คือ ...

ส่งอีเมลถึงทั้ง บริษัท ว่า:

"คนไหนที่คุณเพิ่มเราเตอร์ไร้สายใน LAN คุณฆ่าอินเทอร์เน็ตเพื่อคนอื่น"

คาดหวังการตอบกลับแบบเหนียมอายหรืออุปกรณ์ที่ขัดแย้งจะหายไปอย่างรวดเร็ว :)


3

ปิดการใช้งานเซิร์ฟเวอร์ DHCP หลักและกำหนดค่าการเชื่อมต่ออีกครั้ง

หากคุณได้รับที่อยู่ IP คุณจะได้รับการโกง

หากคุณมี Linux เป็นประโยชน์มาตรฐาน dhcpclient จะบอกคุณที่อยู่ IP ของเซิร์ฟเวอร์ DHCP (มิฉะนั้นคุณสามารถสูดอากาศเพื่อดูว่าการตอบสนอง DHCP มาจากที่ใด)


2
ขณะนี้แน่นอนว่าจะทำงานได้การหยุดเซิร์ฟเวอร์ DHCP ที่ใช้งานจริงอาจไม่ใช่วิธีที่ดีที่สุดถ้าคุณกังวลเกี่ยวกับการให้บริการ ...
Massimo

2
ขึ้นอยู่กับจำนวนคนที่คุณรับใช้ คุณสามารถรบกวนการบริการเป็นเวลาสองสามนาทีในกรณีส่วนใหญ่และไม่มีใครสังเกตเห็นโดยเฉพาะในช่วงกลางของวันที่คนส่วนใหญ่มีสัญญาเช่าอยู่แล้ว
Vinko Vrsalovic

3

มีหลายวิธีหากคุณใช้เครือข่ายขนาดเล็กวิธีที่ง่ายที่สุดคือการปิด / ปิดการใช้งาน / ยกเลิกการเชื่อมต่อเซิร์ฟเวอร์ dhcp ของคุณจากนั้นเรียกใช้ ipconfig / การต่ออายุหรือคล้ายกับไคลเอนต์และหากคุณได้รับและ IP เครือข่าย

อีกวิธีหนึ่งที่จะใช้Wiresharkแพ็คเก็ต Capturer / วิเคราะห์จะมองไปที่เครือข่ายของคุณและพบการเชื่อมต่อ DHCP มีแผ่นงานห้องปฏิบัติการเกี่ยวกับวิธีการทำใช้ได้นี้จากที่นี่

นอกจากนี้ยังมีพื้นที่ว่างมากมายที่สัดส่วนการทำเช่นนี้คือDHCP explorer และ DHCP explorerที่คุณกล่าวถึงในโพสต์ต้นฉบับของคุณ


3

2

คุณสามารถทำการ ping กวาดเครือข่ายของคุณและเปรียบเทียบกับจำนวน DHCP ที่เซิร์ฟเวอร์ DHCP มอบให้

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


0

บนเดเบียน / Ubuntu หนึ่งยังมีตัวเลือกในการใช้dhcpdumpและ / หรือtcpdumpด้วยความช่วยเหลือของเช่นdhclient

ใช้ dhcpdump:

  • 1.a) ทำงานdhcpdump -i eth0ในหนึ่งเชลล์ / เชลล์ (eth0 หรือชื่อส่วนต่อประสานของคุณ)
  • 1.b) เริ่มต้นdhclientในเชลล์อื่น (ไม่ต้องรันสำเร็จ)
  • 1.c) ดูผลลัพธ์ของdhcpdumpข้อมูล (ควรเป็นรูปแบบที่ดีรายการข้อมูลรายละเอียดมากที่สุด)

ตัวเลือก 2 หากคุณไม่ต้องการใช้ dhcpdump:

  • 2.a) ทำงานtcpdump -i eth0 -t -n > /tmp/my_file.txtในหนึ่งเชลล์ / หน้าต่าง
    (ตัวเลือก: -t= ปิดใช้งานการประทับเวลา // -n= ปิดใช้งานการแก้ไขชื่อเพียงที่อยู่ IP, ไม่มีชื่อเซิร์ฟเวอร์ (สำหรับ RHEL / centos ใช้ -nn))
  • 2.b) เริ่มต้นdhclientในเชลล์อื่น (ไม่ต้องรันให้สำเร็จ)
  • 2.c) หยุดการทำงาน tcpdump ()
  • 2.d) ตรวจสอบไฟล์ /tmp/my_file.txt ด้วยโปรแกรมแก้ไขที่คุณชื่นชอบและค้นหาสิ่งต่าง ๆ เช่น: ".53" (พอร์ต DNS เริ่มต้น) / "NX" / "CNAME" / "A?" / "AAAA" -

* sidenote: tcpdump และ dhcpdump อาจต้องทำการติดตั้ง (เช่น:) sudo apt get install tcpdump dhcpdump; dhcpdump ขึ้นอยู่กับ tcpdump


0

ฉันขอแนะนำให้เริ่มต้นสองเทอร์มินัลหนึ่งสำหรับการตรวจสอบและอื่น ๆ สำหรับการส่งคำขอ Terminal1 จะแสดงคำตอบจากเซิร์ฟเวอร์ DHCP ที่มีอยู่ทั้งหมดรวมถึงที่อยู่ MAC ตัวอย่างนี้ทำงานบน Ubuntu:

Terminal1 (สำหรับการตรวจสอบ):

sudo tcpdump -nelt udp พอร์ต 68 | grep -i "boot. * reply"

tcpdump: เอาต์พุต verbose ถูกระงับใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลเต็มฟัง enp2s0, ลิงค์ประเภท EN10MB (Ethernet), ขนาดการจับภาพ 262144 ไบต์ 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff: ff: ff, ethertype IPv4 (0x0800), ความยาว 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP / DHCP, ตอบกลับ, ความยาว 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, ethertype IPv4 (0x0800), ความยาว 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, ตอบกลับ, ความยาว 548

Terminal2 (สำหรับส่งคำขอ):

sudo nmap --script broadcast-dhcp-discover -e eth0

การเริ่มต้น Nmap 7.01 ( https://nmap.org ) ที่ 2019-10-13 21:21 ผลการสแกนสคริปต์ล่วงหน้า EEST: | Broadcast-dhcp-Discover: | การตอบสนอง 1 จาก 1: | IP ที่นำเสนอ: 192.168.1.228 | ประเภทข้อความ DHCP: DHCPOFFER | ที่อยู่ IP เวลาการเช่า: 2h00m00s | ตัวระบุเซิร์ฟเวอร์: 192.168.1.1 | Subnet Mask: 255.255.255.0 | เราเตอร์: 192.168.1.1 | _ เซิร์ฟเวอร์ชื่อโดเมน: 8.8.8.8, 8.8.4.4 คำเตือน: ไม่ได้ระบุเป้าหมายดังนั้นจึงทำการสแกนโฮสต์ 0 รายการ ทำ Nmap เสร็จแล้ว: สแกน 0 IP address (เพิ่มโฮสต์ 0 ครั้ง) ใน 0.94 วินาที

เทอร์มินัลการตรวจสอบนั้นต้องการเพียงเพื่อดูการตอบสนองทั้งหมด (nmap สามารถแสดงการตอบกลับแรกเท่านั้น)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.