Ağımda sahte bir DHCP sunucusu olup olmadığını nasıl bulabilirim?


92

Ağımda hileli bir DHCP sunucusu olup olmadığını belirlemeye yönelik en iyi yaklaşım nedir?

Yöneticilerin bu tür sorunlara nasıl yaklaştığını merak ediyorum. DHCP Probu'nu arayarak buldum ve denemeyi düşündüm. Kimse onunla deneyime sahip mi? (Derleme ve yükleme için zaman ayırmadan önce bilmek istiyorum).

Sahte DHCP sunucuları bulmak için herhangi bir faydalı araç veya en iyi uygulama biliyor musunuz?


2
MS Aracı ve kullanımı çok basit! Rogue DHCP Sunucu tespiti - RogueChecker.zip blogs.technet.com/b/teamdhcp/archive/2009/07/03/…
aa.malta

Ben adresinden bağlantı aa.malta resmi bir referans buldum social.technet.microsoft.com/wiki/contents/articles/... ama bağlantı artık 2009'dan itibaren bana blog mesajları gösterir 2016 yılı olarak çalışmaya görünmektedir, ama ben sadece 6 Temmuz ve 29 Haziran tarihlerine ait yayınlara bakın. Gönderdiğiniz bağlantı URL’sinin gösterdiği gibi 3 Temmuz’daki bir yayın görünmüyor. MS nedenini bilen için onu kaldırmış gibi görünüyor.
Daniel

Bu doğrudan bağlantı (bir wordpress sitesinde bulduğum) dosyayı bir Microsoft Sunucusundan indirmek için çalışıyor gibi görünüyor. Link Ocak 2016'dan beri çalışıyor. URL Microsoft olduğundan, güvenilir olabileceğini hissediyorum, ancak hiçbir garanti vermiyorum
Daniel

Yanıtlar:


54

Basit bir yöntem, bir bilgisayarda tcpdump / wireshark gibi bir sniffer'ı çalıştırmak ve bir DHCP isteği göndermektir. Gerçek DHCP sunucunuzdan başka bir teklif görürseniz, bir sorununuz olduğunu bilirsiniz.


28
Aşağıdaki filtrenin kullanılmasına yardımcı olur: "bootp.type == 2" (yalnızca DHCP tekliflerini göstermek ve farklı / bilinmeyen kaynaklardan gelen bir yanıt olup olmadığını görmek için)
l0c0b0x

4
DHCP yanıtlarını tetiklemek için TCPDump / Wireshark ile birlikte DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/… ) gibi bir program kullanın .
saluce

1
Daha spesifik bir çözüm önerebilir misiniz?
Tarabyte

@tarabyte Hangi çözümü ya da iyileştirmeleri sunmam gerektiğinden emin değilim. Sanırım bu sorunun bir düzine diğer iyi cevaptan oldukça iyi bir kapsama alanı var? Bugünlerde benim seçeneğim, düğmelerinizi sadece Jason Luther'in önerdiği gibi DHCP'yi engelleyecek şekilde yapılandırmak. Daha iyi ele alınması gereken özel bir şey var mıydı?
Zoredache

2
Ben faydalanmak komutların bir dizinin daha bekliyordum tcpdump, arpaçık parametreler ve bu parametrelerin açıklama ile, vb.
tarabyte

22

Diğer cevapların bazılarına özetlemek ve eklemek için:

Üretim DHCP sunucunuzu geçici olarak devre dışı bırakın ve diğer sunucuların yanıt verip vermediğini kontrol edin.

Sunucunun IP adresini ipconfig /allbir windows makinesinde çalıştırabilir ve ardından bu IP adresini kullanarak MAC adresini alabilirsiniz arp -a.

Mac'te çalıştırın ipconfig getpacket en0(veya en1). Http://www.macosxhints.com/article.php?story=20060124152826491 adresine bakın .

DHCP sunucusu bilgileri genellikle / var / log / messages'de bulunur. sudo grep -i dhcp /var/log/messages*

Üretim DHCP sunucunuzu devre dışı bırakmak elbette iyi bir seçenek olmayabilir.

Özellikle sahte DHCP sunucularını arayan bir araç kullanın

Araçların bir listesi için http://en.wikipedia.org/wiki/Rogue_DHCP'ye bakın (birçoğu diğer cevaplarda listelenmiştir).

DHCP tekliflerini engellemek için anahtarları yapılandırın

Çoğu yönetilen anahtar, hileli DHCP sunucularını önlemek için yapılandırılabilir:


17

tcpdump giriş formunu alan ve yalnızca DHCP ile ilgili paketleri gösteren dhcpdump . Yerel ağımızda sahte DHCP olarak poz veren rootkited Windows bulmama yardım etti.


15

Wireshark / DHCP explorer / DHCP Probe yaklaşımları bir defa veya periyodik kontrol için iyidir. Ancak, ağınızdaki DHCP Snooping desteğine bakmanızı tavsiye ederim . Bu özellik, ağdaki sahte DHCP sunucularından sürekli koruma sağlar ve birçok farklı donanım satıcısı tarafından desteklenir.

İşte Cisco belgelerinde belirtildiği gibi ayarlanan özellik .

• Güvenilmeyen kaynaklardan alınan DHCP mesajlarını doğrular ve geçersiz mesajları filtreler.

• DHCP trafiğini güvenilen ve güvenilmeyen kaynaklardan sınırlar.

• Kiralanan IP adreslerine sahip güvenilir olmayan ana bilgisayarlar hakkında bilgi içeren DHCP gözetleme ciltleme veritabanını oluşturur ve korur.

• Güvenilmeyen ana bilgisayarlardan gelen sonraki talepleri doğrulamak için DHCP gözetleme ciltleme veritabanını kullanır.



10

dhcploc.exe , Windows sistemlerinde en hızlı ve en kolay yoldur. XP Destek Araçları'nda bulunur. Destek Araçları, her OEM / perakende XP diskinde bulunur, ancak bazı OEM'ler tarafından sağlanan "kurtarma disklerinde" olabilir veya olmayabilir. Bunları MS'den de indirebilirsiniz .

Bu basit bir komut satırı aracıdır. Sahte bir keşif yapmak için dhcploc {yourIPaddress} 'ı çalıştırın ve' d 'tuşuna basın. Herhangi bir tuşa basmadan çalışmaya devam ederseniz, her DHCP isteğini görüntüler ve duyduğunu cevaplar. Çıkmak için 'q' tuşuna basın.


Sadece bunu, uğraştığımız sinsi hileli sunucuyu izlemek için ayrı anahtar portlarını öldürmekle birlikte kullandık. İyi şeyler!
DHayes

1
Windows 7'de DHCPloc.exe'yi hala kullanabilirsiniz: 1. [burada] [1] 'den "Windows XP Service Pack 2 Destek Araçları" nı indirin. 2. Çalıştırılabilir dosyaya sağ tıklayın ve Özellikler-> Uyumluluk'u seçin, ardından Uyumluluk Modu'nu açın ve "Windows XP (Service Pack 3)" olarak ayarlayın. 3. Normal şekilde kurun. DHCPLoc.exe benim Win7 x64 kurulumumda iyi çalışıyor. [1]: microsoft.com/en-us/download/details.aspx?id=18546
maydanoz72

1
Sadece çalıştırılabilir dosyayı aşağıdaki konumdan indirebileceğinizi ve Windows 10 x64 kapsamında çalıştığını fark ettim: gallery.technet.microsoft.com/DHCPLOC-Utility-34262d82
PeterJ

9

Scapy, bu tür görevler için iyi olan bir python tabanlı paket hazırlama aracıdır. Burada tam olarak bunun nasıl yapılacağına bir örnek var .


2
Vay canına, Scapy'nin birkaç gün daldıktan sonra çok güçlü olduğunu düşünüyorum. Bu dhcpfind.exe ve dhcploc.exe gibi berbat araçları aşar. Scapy 2.2 Linux ve Windows üzerinde çalışabilir - İkisini de denedim. Tek engel, Python programlama dilini, gücünden yararlanmak için bir dereceye kadar bilmek zorundasınız.
Jimm Chen,


@JasonS Merhaba Bağlantıyı güncelledim, ancak değişme hakem değerlendirmesi bekleniyor ... Beklerken burada bulabilirsiniz: bitbucket.org/secdev/scapy/wiki/doc/IdentifyingRogueDHCPServers
Huygens

7

L0c0b0x 'in bootp.type == 2filtre olarak kullanılması hakkındaki yorumunu genişletmek . Bootp.type filtresi yalnızca Wireshark / tshark'ta kullanılabilir. Tcpdump'ta, yorumunun bağlamsal konumunun beni inandırmaya meyilli olduğu mevcut değildir.

Tshark bunun için mükemmel çalışıyor.

Ağımızın, her biri "yerel" yayın alanı ve bir yönetici ya da başka bir şekilde idari alt ağ üzerinde bulunma noktasına sahip kendi Linux tabanlı sondaları olan sayısız yayın alanına ayırdık. ClusterSSH ile birleştirilen Tshark , DHCP trafiğini veya ağın ilerideki köşelerinde (bu konuda başka herhangi bir şeyi) kolayca aramama izin veriyor.

Bu Linux kullanarak DHCP cevapları bulacaksınız:

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

Çok faydalı, neden aldığımı anlamaya çalışırken çok zaman harcadım tcpdump: syntax error. Bununla ilgili bir soru yayınladım bile, cevabınız engeli kaldı, teşekkürler! networkengineering.stackexchange.com/questions/39534/…
Elijah Lynn

1
Ayrıca, bir şey değişti düşünüyorum -R <Read filter>. Ben olsun tshark: -R without -2 is deprecated. For single-pass filtering use -Y.. -Ygüzel çalışıyor.
Elijah Lynn

6

ağda bir hileli dhcp sunucusu olduğunu belirledikten sonra çözmenin en hızlı yolunu buldum ...

Tüm şirkete şöyle bir e-posta gönder:

"hanginiz LAN'a kablosuz bir yönlendirici ekledi, interneti başkaları için öldürdünüz"

koyun gibi bir cevabın ya da çatışan cihazın hızla kaybolmasını bekler :)


3

Ana DHCP sunucusunu devre dışı bırakın ve (yeniden) bir bağlantı yapılandırın.

Bir IP adresi alırsanız, bir dolandırıcınız olur.

Kullanışlı bir Linux sunucunuz varsa, standart dhcpclient size DHCP sunucusunun IP adresini söyler (aksi halde DHCP yanıtının nereden geldiğini görmek için trafiği koklayabilirsiniz).


2
Eğer konusunda gerçekten endişe varsa bu ders çalışma, üretim DHCP sunucusu durdurma muhtemelen en iyi yaklaşım değildir isterken hizmet veren ...
Massimo

2
Hizmet verdiğiniz kişi sayısına bağlıdır. Çoğu durumda hizmeti birkaç dakika için kesebilirsiniz ve özellikle çoğu insanın zaten kiraladıkları gün ortasında hiç kimse farketmez.
Vinko Vrsalovic

3

Küçük bir ağ kullanıyorsanız, en basit yol dhcp sunucunuzu kapatıp / devre dışı bırakmak / fişini açmak ve ardından bir istemcide ipconfig / renew veya benzerini çalıştırmak ve elde edeceğiniz ve IP’nizde bir ipucuya sahip olmanızın birkaç yolu vardır. ağ.

Bir başka yolu kullanmak olacaktır Wireshark ağ trafiği bakıp DHCP bağlantılarını bulmak için paket capturer / analizörü, bu DAİREMİZ yaparsınız nasıl bir laboratuar çalışma sayfası vardır burada .

Ayrıca bunu yapma oranının DHCP explorer, bir diğeri de orijinal yazınızda bahsettiğiniz DHCP probu olduğu çok sayıda yardımcı program vardır .



2

Ağlarınızda ping taraması yapabilir ve ardından bunu DHCP sunucunuz tarafından verilen DHCP kiralarının sayısıyla karşılaştırabilirsiniz.

Bu sayıyı hafifçe bükecek olan statik cihazların (belki de yönlendirici arabirimleri ve yazıcıları) hakkında genel bir fikre sahip olmanız gerekir, ancak bu, bunları birden çok ağda tanımlamanın hızlı ve doğru bir yolu olmalıdır.


0

üzerinde debian / ubuntu biri de kullanmak seçenekler vardır dhcpdumpve / veya tcpdumpörneğin yardımıyladhclient

Dhcpdump kullanın:

  • 1.a) dhcpdump -i eth0bir kabuk / kabuk (eth0 veya arayüzünüzün adı ) içinde çalıştırın .
  • 1.b) dhclientbaşka bir kabukta başla (başarıyla çalışması gerekmez)
  • 1.c) dhcpdumpbilgi çıktısını araştırmak (en çok detayın güzelce biçimlendirilmiş, bilgilendirici bir listesi olmalı)

Dhcpdump kullanmak istemiyorsanız Seçenek 2:

  • 2.a) tcpdump -i eth0 -t -n > /tmp/my_file.txtbir kabuk / pencerede çalıştır
    (isteğe bağlı: -t= devre dışı bırakma zaman damgası // -n= ad çözümlemesini devre dışı bırak, sadece IP adresi, sunucu adı yok (RHEL / centos için -nn kullanın))
  • 2.b) dhclientbaşka bir kabukta başla (başarıyla çalışması gerekmez)
  • 2.c) çalışan tcpdump () işlevini durdurun
  • 2.d) /tmp/my_file.txt dosyasını favori editörünüzle inceleyin ve aşağıdakileri arayın: ".53" (varsayılan DNS portu) / "NX" / "CNAME" / "A?" / "AAAA" -

* sidenote: tcpdump ve dhcpdump muhtemelen kurulmalı (örn:) sudo apt get install tcpdump dhcpdump; dhcpdump, tcpdump'a bağlıdır


0

Biri izleme için diğeri istek göndermek için iki terminale başlamanızı öneririm. Terminal1, MAC adresi de dahil olmak üzere mevcut tüm DHCP sunucularından gelen yanıtları gösterecektir. Bu örnek Ubuntu'da çalıştırıldı:

Terminal1 (izleme için):

sudo tcpdump - nel udp bağlantı noktası 68 | grep -i "önyükleme. * yanıtla"

tcpdump: ayrıntılı çıkış bastırılmış, enp2s0'da tam protokol kod çözme için -v veya -vv kullanın, bağlantı tipi EN10MB (Ethernet), yakalama boyutu 262144 bayt 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, ethertype IPv4 (0x0800), uzunluk 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP / DHCP, Yanıt, uzunluk 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, Ethertype IPv4 (0x0800), uzunluk 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, Yanıt, uzunluk 548

Terminal2 (bir istek göndermek için):

sudo nmap - komut dosyası yayın-dhcp-keşif -e eth0

Nmap 7.01 ( https://nmap.org ) 'da 2019-10-13 21:21' de Başlarken EEST Tarama öncesi komut dosyası sonuçları: | broadcast-dhcp-keşif: | Yanıt 1/1: | Sunulan IP: 192.168.1.228 | DHCP Mesaj Tipi: DHCPOFFER | IP Adresi Kiralama Süresi: 2h00m00s | Sunucu Tanımlayıcısı: 192.168.1.1 | Alt Ağ Maskesi: 255.255.255.0 | Yönlendirici: 192.168.1.1 | _ Alan Adı Sunucusu: 8.8.8.8, 8.8.4.4 UYARI: Hiçbir hedef belirlenmedi, dolayısıyla 0 ana bilgisayar tarandı. Nmap yapıldı: 0.94 saniye içinde taranan 0 IP adresi (0 ana bilgisayar)

Bu izleme terminaline sadece tüm cevapları görmek için ihtiyaç duyulmaktadır (nmap sadece ilk yanıtı gösterebilir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.