Apakah mungkin bagi DHCP Server untuk menentukan sistem operasi klien?
Saya sedang mengerjakan alat pemantauan untuk gateway di jaringan lokal yang berbasis web dan ingin dapat entah bagaimana menentukan OS apa yang sedang dijalankan perangkat di jaringan dan bagi saya tempat yang paling jelas untuk menemukan adalah pada waktu alamat IP ditetapkan oleh DHCP Server.
Gagal itu, saya tahu bagaimana cara memfilter lalu lintas pada port 80 dan menarik info header HTML, tetapi metode ini bergantung pada menunggu perangkat untuk menjelajahi web dan dengan demikian kurang diinginkan daripada sangat dini dalam deteksi / resolusi, esp. karena tidak setiap perangkat akan digunakan untuk menjelajah internet.
Saya memiliki kendali penuh atas konfigurasi gateway - ini menjalankan distro debian yang dikupas, jadi alat lain yang akan melakukan pekerjaan - DHCP, DNS, ARP, dll, saya terbuka untuk saran!
sumber
Jawaban:
Beberapa pekerjaan telah dilakukan untuk menentukan perbedaan halus dalam paket DHCP dari OS yang berbeda, menghasilkan sidik jari DHCP. Contohnya termasuk opsi yang ada dalam permintaan DHCP dan urutannya, dan konten opsi tertentu seperti opsi 55 (daftar parameter).
Lihatlah kertas dan tanda tangan di fingerbank.org . Ini menunjukkan (belum diuji sendiri) sidik jari OS pasif berdasarkan lalu lintas DHCP dapat dilakukan. Hasilnya mungkin dapat ditingkatkan dengan memasukkan informasi lain, seperti properti IP generik (TTL, diffserv, ...).
Sidik jari aktif mungkin memberikan hasil yang lebih baik, tetapi mungkin tidak menjadi opsi dalam kasus penggunaan Anda.
Situs web Fingerbank menyebutkan beberapa produk sumber terbuka yang menggunakan tanda tangan. Alat DHCP eksklusif, Infoblox, tampaknya memiliki fitur serupa, tetapi tidak ada rincian teknis yang disediakan.
sumber
Beberapa klien DHCP tidak dapat dipercaya mengungkapkan informasi OS saat boot. Seperti yang disebutkan di atas, ada beberapa kekayaan intelektual yang terkait dengan teknik ini; misalnya, Infoblox dan Cisco ISE dapat membuat profil OS klien berdasarkan paket dhcp yang mereka lihat. Sebenarnya Cisco ISE menyertakan beberapa algoritma klasifikasi OS yang cukup canggih, jika Anda dapat mengirim lebih dari dhcp ke sana.
Atau, Anda bisa menggunakan heuristik seperti bug endian Windows di bidang "detik berlalu", tetapi mengandalkan bug OS adalah cara yang buruk untuk menangani deteksi OS.
Jika Anda benar-benar harus mendeteksi OS tanpa alat vendor khusus, cukup keluarkan alamat IP, dan pindai host dengan NMAP setelah mengirim DHCP Ack. Menggunakan header HTTP tidak dapat diandalkan seperti nmap , karena siapa pun dapat mengubah string UserAgent jika mereka mau. nmap tidak 100% andal dalam pendeteksian OS, tetapi ini hampir sama baiknya dengan yang akan Anda temukan jika Anda harus memilih satu metode untuk semuanya.
Saya akan menjadikan ini sebagai opsi yang dapat dikonfigurasi di server karena beberapa orang mungkin tidak menyukai pemindaian nmap default pada setiap host DHCP.
Contoh pemindaian nmap OS terhadap Windows7:
sumber
-T5
flag untuk mempercepat segalanya secara drastis .Sebagai bagian dari proses DHCP itu sendiri, saya tidak percaya begitu. Namun, Anda dapat mengikis log dhcpd Anda, mengawasi ack dhcp dan berdasarkan pada mereka menjalankan proses eksternal seperti nmap os fingerprinting untuk melihat apakah Anda dapat mengetahui apa yang ada di balik IP yang baru saja ditugaskan.
sumber
Jawaban akurat terpendek adalah tidak. Anda sudah mendapatkan jawaban yang bermanfaat tentang
nmap
, tetapi jika harus melalui DHCP banyak klien mengirim pengidentifikasi kelas vendor mereka (opsi DHCP 60) dalam paket menemukan mereka sehingga server DHCP dapat memberikan penawaran dengan opsi spesifik vendor (opsi DHCP 43). Jika Anda menjalankan tcpdump, lihatlah pada DHCP temukan paket yang dikirim oleh klien untuk opsi 60 Anda dapat melihat hal-hal sepertiMSFT 5.0
untuk klien Windows,udhcpc
biasanya untuk perangkat tertanam yang menjalankan klien mikro dhcp, dll. Ingatlah bahwa informasi ini tidak terlalu spesifik karena digunakan untuk membedakan klien DHCP daripada sistem operasi.sumber