21T33 DHCP w Wireshark’u [Tego nie wiesz]

Opcje DHCP

Wi臋cej miejsc do pos艂uchania:

Spotify

Link do artyku艂u.

Transkrypcja:

0:00 Wprowadzenie

0:21 艢rodowisko

1:04 Analiza Protoko艂u DHCP

5:44 Odkrycie Serwera DHCP od strony Klienta

8:45 Podsumowanie

Cze艣膰! Zastanawia艂e艣 si臋, jak szczeg贸艂owo dzia艂a DHCP? Opr贸cz tego, 偶e wszyscy wiemy, 偶e adresy IP dynamicznie nadawane s膮 w艂a艣nie rozdawane przez serwer DHCP?

Je偶eli chcia艂by艣 si臋 dowiedzie膰, jakie s膮 szczeg贸艂owe flagi, jak to wygl膮da na poziomie pakietu, to dzisiaj w艂a艣nie o tym opowiem.
Zacznijmy od naszego 艣rodowiska, mam tutaj serwer DHCP uruchomiony i mam stacj臋 ko艅cow膮.
To, jak widzisz, jest terminal stacji ko艅cowej i zaczynamy od uwolnienia adresu IP, czyli z poziomu Windowsa: ipconfig /release. To jest wydanie komendy, 偶eby zwolni膰 adres IP.

Kolejnym krokiem b臋dzie odnowienie adresu IP, czyli odpytanie przez DHCP polecenie: ipconfig /renew i mamy teraz ju偶 pe艂n膮 transakcj臋 DHCP mi臋dzy klientem a serwerem przeprowadzon膮. Teraz to, co potrzebujemy zrobi膰, to przeanalizowa膰 protok贸艂 DHCP. Mo偶emy zastosowa膰 w Wiresharku ograniczenie przez udp port 68, czyli ograniczmy komunikacj臋, czy to, co nam si臋 wy艣wietla w ramach Wiresharka tylko do tego protoko艂u.

Mamy jednocze艣nie ograniczon膮 teraz tutaj jedn膮 sesj臋, kt贸r膮 wygenerowali艣my przed chwil膮 w ramach protoko艂u DHCP. Mamy dwa adresy, kt贸re si臋 pojawiaj膮: z ko艅c贸wk膮 107. To jest adres mojego hosta, kt贸ry mia艂 taki adres przydzielony przez serwer DHCP i z ko艅c贸wk膮 01 – to jest adres routera, kt贸ry serwuje tutaj funkcj臋 DHCP. Opr贸cz tego pojawiaj膮 si臋 adresy 0.0.0.0, czyli to jest etap, w kt贸rym nasz host, czyli stacja ko艅cowa, nie ma adresu IP, wi臋c wypuszcza zapytanie na adres broadcastowy IP, na poziomie ramki Ethernetowej, to jeszcze te偶 za chwil臋 zobaczysz.

Mamy tutaj po prawej stronie te偶 informacj臋, jaki to jest rodzaj zapytania,
czyli DHCP Release, zwolnienie adresu; DHCP Discover, czyli odkrycie serwera DHCP; odpowied藕 DHCP Offer, to jest odpowied藕 od serwera z ko艅c贸wk膮 1, zauwa偶, do naszego hosta z ko艅c贸wk膮 107, to jest DHCP Offer.

Mamy tutaj DHCP Request nast臋pnie, czyli wys艂anie zapytania, pro艣ba o przyznanie adresu IP i to jest od adresu 0.0.0.0, czyli od hosta broadcastowo do serwera DHCP. Na ko艅cu mamy ACK, czyli acknowledge ze strony serwera DHCP.
Czyli to jest pe艂na transakcja i widzimy, 偶e wtedy unicastem ju偶 potwierdzenie idzie od serwera DHCP do hosta.

Okej, teraz rozwi艅my sobie te nasze komunikaty i mo偶emy zobaczy膰, co my tutaj mamy, je偶eli chodzi o szczeg贸艂owe flagi.

Zauwa偶, 偶e jak patrzymy sobie na ten poziom protoko艂u DHCP, czyli to, co jest w udp, to widzimy typ komunikatu Release i zauwa偶, 偶e my wiemy, 偶e to jest typ komunikatu Release z opcji 53 Message Type. Czyli jaki rodzaj wiadomo艣ci jest to przekazywany teraz w tym protokole DHCP.
Okej, teraz zobaczmy wed艂ug naszego schematu, czyli wed艂ug standardu,
co za pola mamy. Mamy typ operacji, rodzaj sprz臋tu, d艂ugo艣膰 adresu, ilo艣膰 hop贸w, identyfikator transakcji, to jest wa偶ne, bo zauwa偶, 偶e DHCP jest transakcyjne.

Zobacz, 偶e tutaj mamy od 0x87, czyli to jest heksadecymalny zapis, ale mamy tutaj informacj臋, 偶e to jest numer transakcji zaczynaj膮cy si臋 od 87-zapami臋taj ten numer, za chwil臋 przejdziemy do kolejnych wpis贸w i zobaczysz, 偶e ten numer b臋dzie inny.

Dobrze, czyli mamy transakcj臋. Mamy tutaj adres IP klienta. Czyli mamy adres IP, kt贸ry tu by艂 zwalniany i w tym komunikacie zwolnienia adresu jest ta informacja wysy艂ana do serwera DHCP.
Czyli wie wtedy serwer, 偶e z ko艅c贸wk膮 107 adres jest zwalniany z puli. Mamy mo偶liwo艣膰 przeanalizowania poszczeg贸lnych p贸l. Tu nie ma wi臋cej nic, Client IP przy komunikacie nie wyst臋puje, wi臋c nie mamy tutaj nic, jest 0.0.0.0.
I mamy tu oczywi艣cie jeszcze ca艂y zakres flag, czyli mo偶emy zobaczy膰 sobie, jakie parametry w tym zapytaniu, czy w tej informacji DHCP zosta艂y wys艂ane.

Mamy na ko艅cu opcj臋 255, 偶e to jest koniec opcji. Zauwa偶, 偶e te opcje rosn膮. Czyli mamy opcj臋 61, opcj臋 53-ju偶 m贸wi艂em, rodzaj komunikatu, 54-identyfikator serwera DHCP, opcja 61-identyfikator klienta, czyli tutaj w postaci MAC adresu i opcja 255, ostatnia, m贸wi膮ca, 偶e wi臋cej opcji nie ma.

Zauwa偶, 偶e te opcje s膮 rosn膮ce. Dobrze, to mamy pierwszy komunikat i teraz zobaczmy, co si臋 dzieje dalej.

Czyli najpierw zwolnili艣my adres od strony klienta, a teraz przeprowadzamy odkrycie serwera DHCP od strony klienta. Czyli idzie broadcastem zapytanie z adresu 0.0.0.0, bo tutaj adresu nie mamy, w zwi膮zku z tym nie wiadomo, jaki adres ma przypisa膰 host, jest wpisany 0.0.0.0, adres broadcastowy 255.255.255.255 w tym przypadku.
Widzimy, jaki jest MAC adres klienta. Widzimy te偶, 偶e na poziomie ramki Ethernetowej, mamy adres broadcastowy, czyli same ff, czyli wida膰, 偶e broadcast jest na poziomie ramki IP i ramki Ethernetowej. Mamy tutaj na poziomie udp protoko艂u komunikacj臋 z portu 68 na port 67, czyli wida膰, 偶e idzie na port serwera.
Serwer odpowiada na porcie 67. Nast臋pnie mamy Offer i teraz sp贸jrz na Transaction ID. Czyli mamy Transaction ID 0x15. Czyli ju偶 wida膰, 偶e to jest inny
typ komunikacji, jakby inna transakcja dla tej komunikacji pobierania adresu ni偶 by艂a przy zwalnianiu adresu. Czyli mamy t臋 identyfikacj臋.

Mamy tutaj informacj臋 klient IP i adres 107, czyli to jest odpowied藕 od strony serwera DHCP do klienta, 偶e jego adres IP b臋dzie z ko艅c贸wk膮 107.

Mamy MAC adres tego klienta i to jest zestaw naszych odpowiedzi. Widzimy, 偶e adres destination jest 107. Tutaj te偶 wida膰, 偶e odpowied藕, czyli DHCP Offer idzie ju偶 unicastem.
Widzimy, 偶e jest konkretny MAC adres, konkretny IP adres. Okej.
I co si臋 ciekawego tu dalej dzieje?

Mimo 偶e serwer DHCP wys艂a艂 do klienta DHCP Offer, to klient i tak jeszcze wysy艂a raz DHCP Request, czyli pro艣b臋 o nadanie adresu IP.
Zauwa偶, 偶e idzie z portu 68 na 67 z adresem broadcastowym MAC.
Czyli to, 偶e przes艂a艂 do DHCP ofert臋, to jeszcze nie jest koniec procesu, jeszcze w ramach tego Transaction ID musi p贸j艣膰 Request od strony klienta.

Okej i tak si臋 w艂a艣nie dzieje. Teraz w ramach tej samej Transaction ID 0x15, tylko ju偶 teraz od strony serwera do klienta, idzie DHCP ACK. Czyli w tym momencie potwierdza ten serwer, 偶e adres z ko艅c贸wk膮 107 mo偶e by膰 przypisany dla tego hosta.

To jest koniec ca艂ej transakcji i przypisanie adresu IP dla klienta. Mam nadziej臋, 偶e to by艂o dla Ciebie ciekawe.
Prze艣ledzenie wszystkich tych krok贸w, my艣l臋, 偶e warto raz na jaki艣 czas przypomnie膰, jak to dzia艂a. Na co dzie艅 si臋 raczej nie zag艂臋biamy a偶 w taki niski
poziom szczeg贸艂owo艣ci, ale je偶eli b臋dziesz sobie przypomina艂 o takich rzeczach
co jaki艣 czas, to Tw贸j poziom wiedzy b臋dzie niew膮tpliwie na wy偶szym poziomie.

Je偶eli jeste艣 ciekaw szerszego kontekstu na temat serweru DHCP,
to zapraszam Ci臋 do mojego podcastu. Je偶eli masz jakie艣 inne pytania, to oczywi艣cie zach臋cam do pisania w komentarzu.

Na dzisiaj Ci dzi臋kuj臋 i do zobaczenia za tydzie艅.


Podobne wpisy

Dodaj komentarz

Tw贸j adres e-mail nie zostanie opublikowany. Wymagane pola s膮 oznaczone *