Làm cách nào để tìm máy chủ DHCP trên Mạng của tôi?


92

Cách tiếp cận tốt nhất để xác định xem tôi có máy chủ DHCP giả mạo trong mạng không?

Tôi đang tự hỏi làm thế nào hầu hết các quản trị viên tiếp cận các loại vấn đề này. Tôi tìm thấy DHCP thăm dò thông qua tìm kiếm và nghĩ về việc dùng thử. Có ai có kinh nghiệm với nó? (Tôi muốn biết trước khi dành thời gian biên dịch và cài đặt).

Bạn có biết bất kỳ công cụ hữu ích hoặc thực tiễn tốt nhất nào trong việc tìm kiếm các máy chủ DHCP giả mạo không?


2
MS Tool và rất đơn giản để sử dụng! Phát hiện máy chủ DHCP Rogue - RogueChecker.zip blog.technet.com/b/teamdhcp/archive/2009/07/03/ chủ
aa.malta

Tôi đã tìm thấy một tài liệu tham khảo chính thức cho liên kết của bạn aa.malta tại social.technet.microsoft.com/wiki/contents/articles/, nhưng liên kết không còn xuất hiện để hoạt động kể từ năm 2016. Nó chỉ hiển thị cho tôi các bài đăng trên blog từ năm 2009, nhưng tôi chỉ xem bài đăng cho ngày 6 tháng 7 và ngày 29 tháng 6. Dường như không có bài đăng ngày 3 tháng 7 như được chỉ định bởi URL liên kết bạn đã đăng. Hình như MS đã gỡ bỏ nó cho ai biết lý do.
Daniel

Có vẻ như liên kết trực tiếp này (mà tôi tìm thấy trên trang web wordpress) hoạt động để tải xuống tệp từ Microsoft Server. Liên kết hoạt động kể từ tháng 1 năm 2016. Vì URL là Microsoft, tôi cảm thấy nó có thể tin cậy được, nhưng tôi không đảm bảo: blog.technet.com/cfs-file.ashx/__key/ Lỗi
Daniel

Câu trả lời:


54

Một phương pháp đơn giản là chỉ cần chạy một sniffer như tcpdump / wireshark trên máy tính và gửi yêu cầu DHCP. Nếu bạn thấy bất kỳ lời đề nghị nào khác thì từ máy chủ DHCP thực của bạn thì bạn biết bạn có vấn đề.


28
Giúp sử dụng bộ lọc sau: "bootp.type == 2" (chỉ hiển thị các ưu đãi DHCP và xem có phản hồi từ các nguồn khác nhau / không xác định)
l0c0b0x

4
Sử dụng một chương trình như DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/ mẹo) kết hợp với TCPDump / Wireshark để kích hoạt phản hồi DHCP.
sốt

1
Bạn có thể cung cấp một giải pháp cụ thể hơn?
tarabyte

@tarabyte Tôi không chắc tôi nên cung cấp giải pháp nào hoặc ứng biến. Tôi nghĩ rằng câu hỏi này có phạm vi bảo hiểm khá tốt từ hàng tá câu trả lời tốt khác? Tùy chọn goto của tôi những ngày này là chỉ cần cấu hình các thiết bị chuyển mạch của bạn để chặn DHCP như Jason Luther đề xuất. Có một cái gì đó cụ thể cần được bảo hiểm tốt hơn?
Zoredache

2
Tôi đã chờ đợi nhiều hơn một chuỗi các lệnh mà làm cho sử dụng tcpdump, arpvv với các thông số rõ ràng và giải thích về những thông số.
tarabyte

22

Để tóm tắt và thêm vào một số câu trả lời khác:

Tạm thời vô hiệu hóa máy chủ DHCP sản xuất của bạn và xem các máy chủ khác có phản hồi không.

Bạn có thể lấy địa chỉ IP của máy chủ bằng cách chạy ipconfig /alltrên máy windows và sau đó bạn có thể lấy địa chỉ MAC bằng cách tìm địa chỉ IP đó bằng cách sử dụng arp -a.

Trên máy Mac, hãy chạy ipconfig getpacket en0(hoặc en1). Xem http://www.macosxhints.com/article.php?story=20060124152826491 .

Thông tin máy chủ DHCP thường ở / var / log / message. sudo grep -i dhcp /var/log/messages*

Tất nhiên, vô hiệu hóa máy chủ DHCP sản xuất của bạn có thể không phải là một lựa chọn tốt.

Sử dụng một công cụ đặc biệt tìm kiếm các máy chủ DHCP giả mạo

Xem http://en.wikipedia.org/wiki/Rogue_DHCP để biết danh sách các công cụ (nhiều công cụ được liệt kê trong các phản hồi khác).

Định cấu hình các công tắc để chặn các ưu đãi DHCP

Hầu hết các thiết bị chuyển mạch được quản lý có thể được cấu hình để ngăn chặn các máy chủ DHCP giả mạo:


17

dhcpdump , có dạng đầu vào tcpdump và chỉ hiển thị các gói liên quan đến DHCP. Đã giúp tôi tìm Windows rootkit, đóng giả DHCP trong mạng LAN của chúng tôi.


15

Các cách tiếp cận Wireshark / DHCP explorer / DHCP thăm dò là tốt cho kiểm tra một lần hoặc định kỳ. Tuy nhiên, tôi khuyên bạn nên xem xét hỗ trợ DHCP Snooping trên mạng của bạn. Tính năng này sẽ cung cấp bảo vệ liên tục khỏi các máy chủ DHCP giả mạo trên mạng và được hỗ trợ bởi nhiều nhà cung cấp phần cứng khác nhau.

Đây là tính năng được đặt như được chỉ định trong tài liệu của Cisco .

• Xác thực các tin nhắn DHCP nhận được từ các nguồn không đáng tin cậy và lọc ra các tin nhắn không hợp lệ.

• Lưu lượng DHCP giới hạn lưu lượng truy cập từ các nguồn đáng tin cậy và không đáng tin cậy.

• Xây dựng và duy trì cơ sở dữ liệu ràng buộc DHCP snooping, chứa thông tin về các máy chủ không tin cậy có địa chỉ IP được thuê.

• Sử dụng cơ sở dữ liệu ràng buộc DHCP snooping để xác thực các yêu cầu tiếp theo từ các máy chủ không đáng tin cậy.



10

dhcploc.exe là cách nhanh nhất và nhanh nhất trên các hệ thống Windows. Nó có sẵn trong Công cụ hỗ trợ XP. Công cụ hỗ trợ có trên mọi đĩa OEM / bán lẻ XP, nhưng có thể có hoặc không có trên "đĩa khôi phục" do một số OEM cung cấp. Bạn cũng có thể tải chúng từ MS.

Đây là một công cụ dòng lệnh đơn giản. Bạn chạy dhcploc {yourIPaddress} và sau đó nhấn phím 'd' để thực hiện khám phá giả mạo. Nếu bạn để nó chạy mà không cần nhấn bất kỳ phím nào, nó sẽ hiển thị mọi yêu cầu DHCP và trả lời nó nghe được. Nhấn 'q' để thoát.


Chỉ cần sử dụng kết hợp với việc tiêu diệt các cổng chuyển đổi riêng lẻ để theo dõi một máy chủ lừa đảo lén lút mà chúng tôi đang đối phó. Đồ tốt!
DHayes

1
Bạn vẫn có thể sử dụng DHCPloc.exe trên Windows 7: 1. Tải xuống "Công cụ hỗ trợ Windows XP Gói dịch vụ 2" từ [tại đây] [1]. 2. Nhấp chuột phải vào tệp thực thi và chọn Thuộc tính-> Tương thích, sau đó bật Chế độ tương thích và đặt thành "Windows XP (Gói dịch vụ 3)". 3. Cài đặt như bình thường. DHCPLoc.exe hoạt động tốt trên bản cài đặt Win7 x64 của tôi. [1]: microsoft.com/en-us/doad/details.aspx?id=18546
Parsley72

1
Tôi chỉ nhận thấy rằng bạn chỉ có thể tải xuống tệp thực thi từ vị trí sau và nó hoạt động tốt trong Win 10 x64: gallery.technet.microsoft.com/DHCPLOC-Utility-34262d82
PeterJ

9

Scacco là một công cụ chế tạo gói dựa trên python, tốt cho các tác vụ sắp xếp này. Có một ví dụ về cách làm chính xác điều này ở đây .


2
Wow, tôi thấy Scacco rất mạnh mẽ sau khi đào sâu vào nó trong vài ngày. Nó vượt qua các công cụ crappy như dhcpfind.exe và dhcploc.exe. Scacco 2.2 có thể chạy trên Linux và Windows - Tôi đã thử cả hai. Rào cản duy nhất là bạn phải biết ngôn ngữ lập trình Python ở một mức độ nào đó để khai thác sức mạnh của nó.
Jimm Chen

Liên kết bạn đã đăng bị hỏng
Jason S

@JasonS Xin chào, tôi đã cập nhật liên kết, nhưng việc thay đổi đang chờ đánh giá ngang hàng ... Trong khi chờ đợi, bạn có thể tìm thấy nó ở đây: bitbucket.org/secdev/scacco/wiki/doc/IdentifyingRogueDHCPServers
Huygens

7

Để mở rộng nhận xét của l0c0b0x về việc sử dụng bootp.type == 2làm bộ lọc. Bộ lọc bootp.type chỉ khả dụng trong Wireshark / tshark. Nó không có sẵn trong tcpdump mà vị trí bối cảnh của bình luận của anh ấy khiến tôi tin tưởng.

Tshark hoạt động hoàn hảo cho việc này.

Chúng tôi có mạng lưới được chia thành nhiều miền phát sóng, mỗi miền có đầu dò dựa trên Linux của riêng họ với một điểm hiện diện trên miền phát sóng "cục bộ" và trên mạng con hành chính theo cách này hay cách khác. Tshark kết hợp với ClusterSSH cho phép tôi dễ dàng tìm kiếm lưu lượng DHCP hoặc (bất cứ điều gì khác cho vấn đề đó) trên các góc xa hơn của mạng.

Điều này sẽ tìm thấy trả lời DHCP bằng Linux:

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

Rất hữu ích, tôi đã dành một chút thời gian cố gắng để tìm ra lý do tại sao tôi nhận được tcpdump: syntax error. Thậm chí đăng một câu hỏi trên đó, câu trả lời của bạn đã bỏ chặn tôi, cảm ơn! networkengineering.stackexchange.com/questions/39534/ khăn
Elijah Lynn

1
Ngoài ra, tôi nghĩ rằng một cái gì đó đã thay đổi với -R <Read filter>. Tôi nhận được tshark: -R without -2 is deprecated. For single-pass filtering use -Y.. -Yhoạt động độc đáo.
Elijah Lynn

6

Khi bạn đã thiết lập rằng có một máy chủ dhcp giả mạo trên mạng, tôi đã tìm ra cách nhanh nhất để giải quyết nó là ...

Gửi một vòng email cho toàn bộ công ty nói:

"mà một trong số các bạn đã thêm bộ định tuyến không dây vào mạng LAN, bạn đã giết internet cho những người khác"

mong đợi một phản ứng ngượng ngùng, hoặc thiết bị xung đột biến mất, nhanh chóng :)


3

Vô hiệu hóa máy chủ DHCP chính và (tái) cấu hình một kết nối.

Nếu bạn nhận được một địa chỉ IP, bạn đã có một kẻ lừa đảo.

Nếu bạn có sẵn Linux, dhcpclient tiêu chuẩn sẽ cho bạn biết địa chỉ IP của máy chủ DHCP (nếu không bạn có thể đánh hơi lưu lượng để xem phản hồi DHCP đến từ đâu).


2
Trong khi điều này tất nhiên sẽ hoạt động, việc dừng một máy chủ DHCP sản xuất có lẽ không phải là cách tiếp cận tốt nhất nếu bạn thực sự quan tâm đến việc cung cấp dịch vụ ...
Massimo

2
Phụ thuộc vào số lượng người bạn đang phục vụ. Bạn có thể làm gián đoạn dịch vụ trong một vài phút trong hầu hết các trường hợp và không ai sẽ nhận thấy, đặc biệt là vào giữa ngày khi hầu hết mọi người đã thuê hợp đồng.
Vinko Vrsalovic

3

Có một số cách, nếu bạn chạy một mạng nhỏ, cách đơn giản nhất là tắt / tắt / hủy cắm máy chủ dhcp của bạn và sau đó chạy ipconfig / refresh hoặc tương tự trên máy khách và nếu bạn có được và IP, bạn sẽ có thứ gì đó mạng.

Một cách khác là sử dụng trình thu thập / phân tích gói Wireshark để xem lưu lượng truy cập mạng của bạn và tìm các kết nối DHCP, có một bảng tính phòng thí nghiệm về cách thực hiện điều này từ đây .

Ngoài ra còn có một số tiện ích sẵn có tỷ lệ để thực hiện điều này là DHCP explorer khác là thăm dò DHCP mà bạn đã đề cập trong bài viết gốc của mình.


3

2

Bạn có thể thực hiện quét ping các mạng của mình và sau đó so sánh số đó với số lần cho thuê DHCP được cung cấp bởi máy chủ DHCP của bạn.

Bạn cần có một ý tưởng chung về số lượng thiết bị tĩnh (có thể là giao diện bộ định tuyến và máy in) sẽ làm lệch số này một chút, nhưng đây phải là cách nhanh chóng và chính xác để xác định chúng trên nhiều mạng.


0

trên debian / ubfox, người ta cũng có các tùy chọn để sử dụng dhcpdumpvà / hoặc tcpdumpvới sự trợ giúp của vddhclient

Sử dụng dhcpdump:

  • 1.a) chạy dhcpdump -i eth0trong một shell / shell (eth0 hoặc tên giao diện của bạn)
  • 1.b) bắt đầu dhclienttrong một shell khác (nó không phải chạy thành công)
  • 1.c) xem xét đầu ra của dhcpdumpthông tin (nó phải là một danh sách thông tin được định dạng đẹp, chi tiết nhất)

Tùy chọn 2 nếu bạn không thích sử dụng dhcpdump:

  • 2.a) chạy tcpdump -i eth0 -t -n > /tmp/my_file.txttrong một shell / window
    (tùy chọn: -t= vô hiệu hóa dấu thời gian // -n= tắt độ phân giải tên, chỉ địa chỉ IP, không có tên máy chủ (đối với sử dụng RHEL / centos -nn))
  • 2.b) bắt đầu dhclienttrong một shell khác (nó không phải chạy thành công)
  • 2.c) dừng chạy tcpdump ()
  • 2.d) kiểm tra tệp /tmp/my_file.txt với trình chỉnh sửa yêu thích của bạn và tìm kiếm những thứ như: ".53" (cổng DNS mặc định) / "NX" / "CNAME" / "A?" / "AAAA" -

* sidenote: tcpdump và dhcpdump có thể phải được cài đặt (ví dụ sudo apt get install tcpdump dhcpdump:); dhcpdump phụ thuộc vào tcpdump


0

Tôi đề nghị bắt đầu hai thiết bị đầu cuối, một để theo dõi và một để gửi yêu cầu. Terminal1 sẽ hiển thị phản hồi từ tất cả các máy chủ DHCP hiện có bao gồm cả địa chỉ MAC. Ví dụ này đã được chạy trên Ubuntu:

Terminal1 (để theo dõi):

sudo tcpdump -nelt cổng udp 68 | grep -i "khởi động. * trả lời"

tcpdump: đầu ra verbose bị chặn, sử dụng -v hoặc -vv để nghe giải mã giao thức đầy đủ trên enp2s0, EN10MB loại liên kết (Ethernet), kích thước chụp 262144 byte 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, ethertype IPv4 (0x0800), chiều dài 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP / DHCP, Trả lời, độ dài 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, ethertype IPv4 (0x0800), chiều dài 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, Trả lời, độ dài 548

Terminal2 (để gửi yêu cầu):

sudo nmap --script Broadcast-dhcp-Discover -e eth0

Bắt đầu Nmap 7.01 ( https://nmap.org ) vào 2019-10-13 21:21 EEST Kết quả kịch bản quét trước: | phát sóng-dhcp-khám phá: | Phản hồi 1 trên 1: | Cung cấp IP: 192.168.1.228 | Loại tin nhắn DHCP: DHCPOFFER | Địa chỉ IP Thời gian thuê: 2h00m00s | Định danh máy chủ: 192.168.1.1 | Mặt nạ mạng con: 255.255.255.0 | Bộ định tuyến: 192.168.1.1 | _ Máy chủ tên miền: 8.8.8.8, 8.8.4.4 CẢNH BÁO: Không có mục tiêu nào được chỉ định, vì vậy 0 máy chủ được quét. Đã thực hiện Nmap: 0 địa chỉ IP (0 máy chủ lưu trữ) được quét trong 0,94 giây

Thiết bị đầu cuối giám sát đó là cần thiết chỉ để xem tất cả các phản hồi (nmap chỉ có thể hiển thị phản hồi đầu tiên).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.