View
11
Download
0
Category
Preview:
Citation preview
ARP oraz RARP
UMK WMiI Inf5WSS labE
Jarosław Piersa
http://www.mat.uni.torun.pl/~piersaj
2007 – 10 – 10
ARP – Address Resolution Protocol
ARP jest protokołem sieciowym służącym do poszukiwania adresu sprzętowego pewnego
urządzenia w sieci przy znajomości jego adresu internetowego
RFC 826 - Ethernet Address Resolution Protocolhttp://www.faqs.org/rfcs/rfc826.html
ARP w modelu OSI
Scenariusz komunikacji● Komputer A chce wysłać wiadomość do komputera B.
A zna adres IP B nie zna natomiast jego adresu sprzętowego (np. MAC).
● A broadcastuje po sieci zapytanie ARP o adres MAC komputera o zadanym adresie IP, podaje przy tym swój adres MAC i IP (żeby móc otrzymać odpowiedź).
● B odbiera zapytanie A, stwierdza, że to on jest adresatem, po czym przesyła do A komunikat ARP z załączonym adresem sprzętowym B (czyli swoim).
● Ponadto B w swojej tablisy ARP zapisuje adres IP A i odpowiadający mu adres MAC
● A otrzymuje wiadomość od B, zapisuje w swojej tablicy ARP adres IP B i jego adres MAC i może wysłać planowaną wiadomość.
Scenariusz komunikacji
Pakiet ARP
Wyświetlanie tablicy ARP(Windows)
%>arp -a [adresIP]wyświetlanie wpisów w tablicy
%>arp -d adresIPusuwanie wpisów z tablicy
%>arp -s adresIP adresFizstatyczne dodawanie wpisów do tablicy
%>arp (...) -N adresInterfejsuwybór interfejsu sieciowego
Wyświetlanie tablicy ARP(Unix)
%>arp adresIP%>arp -a
wyświetlanie wpisów w tablicy%>arp -d adresIP
usuwanie wpisów z tablicy%>arp -f nazwaPliku
dodawanie wpisów z pliku
Wyświetlanie tablicy ARP(Unix)
%>arp -a
Flagim – wpis multicastowyp – wpis publicznys – wpis statycznyu – wpis niekompletny
Wyświetlanie tablicy ARP(Unix)
%>arp -s adresIP adresFiz[pub] [trail] [temp]
statyczne dodawanie wpisów do tablicy
pub – wpis publicznytemp – wpis tymczasowytrail – do tego hosta można wysyłać “trailer
encapsulations” (RFC 893)
Inne narzędzia
%>arpingręczne pytanie hostów protokołem ARP
%>ndd /dev/ip ip_ire_arp_intervalczas przetrzymywania wpisów w tablicy
Co można popsuć?
Co można popsuć?
Co można popsuć?
Co można popsuć?
Ataki z wykorzystaniem ARP● ARP Spoofing / ARP Poisoning● DoS● Man in the Middle● MAC flooding
ARP Spoofing / Poisoning
ARP Spoofing polega na błędnym odpowiadaniu na zapytania ARP.
Podawany jest inny lub nie istniejący adres sprzętowy.
%>arpspoof [ -i interface] [ -t target] hostinterface – interfejs sieciowytarget – adres ofiar, którym zostaną podane błędne adresy
sprzętowehost – adres ofiary, do którego komunikacja zostanie
przechwycona
Denial of Service
Za pomocą ARP Spoofingu można w całym segmencie sieci lokalnej przekierować komunikację do routera / bramy / serwera na nieistniejący adres.
Man in the Middle
MAC Flooding
Zalewanie niektórych switchy zapytaniami ARP może spowodować, że nie będąc w stanie wszystkich obsłużyć, zaczną broacastować całą komunikację jak huby.
Jak się bronić?● Tworzyć wpisy statyczne.● Tworzyć małe segmenty sieci.● Monitorowanie sieci (zwielokrotnione adresy
MAC).● DHCP Snooping
Monitorowanie ARP
%>arpwatch● sprawdza zgodność par adresów sprzętowego i internetowego● powiadamia roota o podejrzanych sytuacjach● loguje stan sieci
Monitorowanie ARP
Ethereal http://ethereal.com/
Wireshark http://www.wireshark.org/
Narzędzia służące do przechwytywania i analizowania pakietów w sieci.
ether proto \arpfiltr przechwytujący tylko pakiety arp
Monitorowanie ARP
Proxy ARP
Proxy ARP służy do obsługi zapytań ARP o urządzenia znajdujące się w innej sieci.
Router odpowiada w imieniu urządzenia podając swój adres sprzętowy.
Powoduje to połączenie dwóch rozdzielonych routerem sieci w jedną.
Proxy ARP
Reverse ARP
RARP jest protokołem sieciowym służącym do poszukiwania adresu internetowego (np. IP) mając dany tylko adres sprzętowy (np. MAC)
RFC 903http://tools.ietf.org/html/rfc903
Reverse ARP● stał się zbędny wraz z pojawieniem się BOOTP
i DHCP● wymaga działania serwera z poprawną
konfiguracją par MAC – IP● korzysta z identycznego formatu pakietu jak
ARP (rarp req = 3; rarp rep = 4)● nie należy mylić z Inverse ARP
RARP Scenariusz Komunikacji
libpcap
http://www.tcpdump.org/http://www.tcpdump.org/pcap.htm
Biblioteka pcap pozwala na przechwytywanie i odczytywanie pakietów.
#include<pcap.h>
%>gcc -l pcap program.c
libpcap
Lista funkcji do wykorzystania:
● pcap_lookupdev()● pcap_lookupnet()● pcap_open_live()● pcap_compile()● pcap_setfilter()● pcap_next()● pcap_close()
libpcap
int pcap_loop(pcap_t *p,int cnt,pcap_handler callback,u_char *user)
void got_packet(u_char *args,const struct pcap_pkthdr *header,const u_char *packet)
Ramka ethernetowa + pakiet ARP
Źródła● http://en.wikipedia.org● manual arp, arping, arpwatch, arpspoof● Wykłady z WSS oraz PSI● http://www.ietf.org/rfc.html RFC 826 (ARP) RFC 903 (RARP)
● http://www.erg.abdn.ac.uk/users/gorry/course/inet-pages/arp.html● http://www.burghardt.pl/wiki/articles/arp● http://www.netrino.com/Connecting/2000-07/index.php● http://www.watchguard.com/infocenter/editorial/135324.asp● http://ethereal.com/● http://www.wireshark.org/● http://www.tcpdump.org/
●http://www.geocities.com/SiliconValley/Vista/8672/network/arp.html●http://www.microsoft.com/technet/prodtechnol/windowsserver2003/pl/library/ServerHelp/7b77bb1b-5c57-408f-907f-8b474203a533.mspx?mfr=true●http://www.3mfuture.com/network_security/arp-guard-arp-spoofing.htm●http://www.tcpipguide.com/free/t_ReverseAddressResolutionandtheTCPIPReverseAddressR.htm
Recommended