Sniffing i spoofing w sieciach przełączanych [arp-spoof, dns

Transkrypt

Sniffing i spoofing w sieciach przełączanych [arp-spoof, dns
Projektowanie
Bezpieczeństwa
Sieci i Serwerów
mgr inż. Adam Mencwal
Katedra Informatyki Stosowanej
[email protected]
http://amencwal.kis.p.lodz.pl/
Bezpieczeństwo
teleinformatyczne
Bezpieczeństwo teleinformatyczne – zbiór zagadnień z dziedziny
telekomunikacji i informatyki związany z szacowaniem i kontrolą
ryzyka wynikającego z korzystania z komputerów, sieci
komputerowych i przesyłania danych do zdalnych lokalizacji,
rozpatrywany z perspektywy:
- poufności (szyfrowanie/utajnianie danych)
- integralności (podmiana stron www, wykradanie baz danych,
kradzież tożsamości, botnety)
- dostępności (ataki typu Denial-of-Service, spam)
(źródło: http://pl.wikipedia.org/wiki/Bezpieczeństwo_teleinformatyczne)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Źródła zagrożeń
Użytkownik
social engineering
(np. wykradanie haseł)
malware
(opr. 'złośliwe')
System Operacyjny
exploity/rootkity
spam
Denial of
Service
scanning
(skanowanie)
Sprzęŧ i Sieć Komputerowa
spoofing(fałszowanie)
sniffing (podsłuchiwanie)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Sniffing, podsłuch
Sniffer
–
program
przechwytujący dane na
łączu przy włączonym
trybie 'promiscuous' karty
sieciowej.
Umożliwia przegląd i analizę
treści pakietów wraz z
informacjami kontrolnymi
takimi jak:
-adresy źródłowe i docelowe
IP i MAC
-numery portów źródłowych
i docelowych
-numery sekwencyjne TCP
-flagi TCP
-wartości TTL i inne
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Nagłówek protokołu IP
(Internet Protocol)
0
4
wersja
8
długość
nagłówka
12
16
Typ usługi (TOS)
identyfikator
czas życia pakietu (TTL)
20
24
28
32
łączna długość pakietu (TL)
znaczniki
protokół warstwy
wyższej
przesunięcie fragmentu
suma kontrolna nagłówka
adres źródłowy
adres docelowy
opcje
dopełnienie
dane
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Pola nagłówka protokołu TCP
0
4
8
12
16
20
port źródłowy
24
28
32
port docelowy
numer sekwencyjny
numer potwierdzający
przesunięcie
danych
zarezerwowane
rozmiar okna
bity sterujące
suma kontrolna nagłówka
wskaźnik danych pilnych
opcje
dopełnienie
dane
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Uwierzytelnianie i bezpieczeństwo
w sieciach bezprzewodowych
OPEN
BRAK JAKIEGOKOLWIEK SZYFROWANIA !!!
● transmisja nawiązywana na podstawie SSID
●
zwykly_tekst
))))))))))))))))))))))))
AP
szyfrowanie słabym (64 bit) algorytmem na
podstawie stałego klucza znanego obu stronom przed
rozpoczęciem procesu autentykacji
● możliwość deszyfracji klucza metodą brute-force
● możliwość podmiany danych w ramce bez
znajomośći klucza(!)
●
PRE-SHARED KEY (WEP)
d#2F37f2Hj
))))))))))))))))))))))))
AP
szyfrowanie silnym (172 bit) algorytmem na
podstawie początkowego stałego klucza znanego obu
stronom przed rozpoczęciem procesu autentykacji
● dynamiczna zmiana klucza (algorytm TKIP)
● zabezpieczenie przed podmianą danych w ramce
(MIC – message integrity code)
●
WPA – PSK (PERSONAL)
d#2F37f2Hj
))))))))))))))))))))))))
AP
WPA – 802.1X (ENTERPRISE)
d#2F37f2Hj
))))))))))))))))))))))))
te same cechy co WPA – PSK ale z zastosowaniem
złożonej infrastruktury autentykacyjnej (np. serwer
RADIUS)
● możliwość wszechstronnej konfiguracji ( wyzwanieodpowiedź, hasła tymczasowe, żetony, certyfikaty,
klucz publiczny, itp)
●
AP
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Zasada działania przełącznika,
mac-flooding
Tablica CAM
nr
portu
00:0F:B0:75:DD:38
odebrałem
wysyłam
odebrałem
ramkę
ramkę
ramkę
doodod
1A:0A:AC:3C:7D:01
0B:BF:10:5E:CD:13
1A:0A:AC:3C:7D:01
0B:BF:10:5E:CD:13
wysyłam
odebrałem
ramkę
ramkę
dood
00:0F:B0:75:DD:38
C5:C4:AC:17:D3:18
adres MAC
1
00:0F:B0:75:DD:38
2
0B:BF:10:5E:CD:13
3
C5:C4:AC:17:D3:18
4
1A:0A:AC:3C:7D:01
1
2
3
4
dostałem
dostałem ramkę
ramkę
dostałemdo
ramkę
od
C5:C4:AC:17:D3:18
0B:BF:10:5E:CD:13
dostałemdo
ramkę
od 0B:BF:10:5E:CD:13
00:0F:B0:75:DD:38
od 1A:0A:AC:3C:7D:01
do 00:0F:B0:75:DD:38
dopisuję
adres
nadawcy
do
od 00:0F:B0:75:DD:38
do 1A:0A:AC:3C:7D:01
dopisuję adres nadawcy
do tablicy
tablicy CAM
CAM
dopisuję
adres
nadawcy
do
tablicy
CAM
znam
adresata,
więc
wysyłam
tylko
na
port
dopisuję
adreswięc
nadawcy
do tablicy
znam
adresata,
wysyłam
tylko naCAM
port 21
znam adresata, więc wysyłam tylko na port 1
nie znam adresata, więc rozsyłam na wszystkie porty
C5:C4:AC:17:D3:18
wysyłam ramkę do
0B:BF:10:5E:CD:13
1A:0A:AC:3C:7D:01
wysyłam odpowiedź do
00:0F:B0:75:DD:38
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Protokół ARP
(Address Resolution Protocol)
tablica ARP
tablica ARP
IP
MAC
chce wysłać pakiet do
10.0.0.3... jednak nie
.......
............
ja nie mam
wiem jak zaadresować
.......
............
adresu
ramkę bo nie mam w
10.0.0.3... nie
dostałem
ramkę
tablicy
ARP żadnej
IP:... 10.0.0.5
odpowiadam
adresowaną
do
informacji nt temat..
MAC: AA:0C:11:32:79:1E
mnie,
z
Wysyłam więc
zapytanie
nieznanego
mi
do wszystkich
(na adres
adresu MAC...
broadcastowy
wpisuję go do
FF:FF:FF:FF:FF:FF)
tablicy ARP
IP
10.0.0.1
.......
MAC
00:0F:B0:75:DD:38
............
chcę wysłać pakiet
do 10.0.0.1... wiem
IP: 10.0.0.4
jakjazaadresować
nie mam
ramkę
mam w
MAC: BA:00:A0:76:DD:01 adresubo
10.0.0.3...
ARP ...
nie tablicy
odpowiadam
informacje o jego
adresie MAC
ja mam
adres
10.0.0.3!
odpowiadam
nadawcy!
ja nie mam
adresu
10.0.0.3.. nie
odpowiadam..
dostałem odpowiedź
ARP!
już wiem jak
IP: 10.0.0.2
IP: 10.0.0.3
IP: 10.0.0.1
adresować ramkę do
10.0.0.3..! dopisuję MAC: 00:0F:B0:75:DD:38MAC: 0B:BF:10:5E:CD:13 MAC: 1A:0A:AC:3C:7D:01
informację do
tablica ARP
tablica ARP
tablica ARP
IP
MAC
tablicy ARP i
IP
MAC
IP
MAC
wysyłam ramkę.
10.0.0.4 00:0F:B0:75:DD:38
10.0.0.3 1A:0A:AC:3C:7D:01
.......
.......
............
............
.......
.......
............
............
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
ARP Spoofing, DNS Spoofing
tablica ARP
IP
MAC
10.0.0.4 0B:BF:10:5E:CD:13 (!)
IP: 10.0.0.5
MAC: AA:0C:11:32:79:1E
otrzymałem ramkę
broadcastową,
rozsyłam na wszystkie
porty
IP: 10.0.0.4
MAC: BA:00:A0:76:DD:01
OFIARA
chce wysłać pakiet do
10.0.0.4... jednak nie
wiem jak zaadresować
ramkę bo nie mam w
tablicy ARP żadnej
informacji nt temat..
Wysyłam więc zapytanie
do wszystkich (na adres
broadcastowy
FF:FF:FF:FF:FF:FF)
otrzymałem
odpowiedź
ARP,
uzupełniam
tablice ARP
przechwyciłem zapytanie
ARP, wysyłam
sfałszowaną odpowiedź
do nadawcy (10.0.0.5)
ATAKUJĄCY
IP: 10.0.0.2
MAC: 0B:BF:10:5E:CD:13
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Ataki Man-in-the-middle
tablica ARP
IP
MAC
10.0.0.4 0B:BF:10:5E:CD:13 (!)
IP: 10.0.0.4
MAC: BA:00:A0:76:DD:01
IP: 10.0.0.5
MAC: AA:0C:11:32:79:1E
OFIARA
chcę połączyć się
poprzez SSH z
adresem 10.0.0.4
wysyłam
nieświadomie
pakiety do
Atakującego..
Ofiara podała dane poufne!
Przesyłam je do 10.0.0.4, i
pośredniczę w transmisji, tak
aby Ofiara nie zauważyła
ataku.
certyfikat jest
zmieniony..(?)
ale podaję
swoje dane
poufne
ATAKUJĄCY
IP: 10.0.0.2
MAC: 0B:BF:10:5E:CD:13
Ofiara kieruje do mnie
strumień danych SSH..
podstawiam fałszywy
certyfikat ale wciąż oczekuję
na wprowadzenie danych
poufnych (login,hasło,itp)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
wyznaczanie ścieżki rutowania
pakietów na przykładzie działania
programu traceroute
10.0.0.1
TTL=1
TTL=2
TTL=3
TTL=0
10.0.0.2
ICMP : TTL Exceeded
ilość skoków
TTL=0
10.0.0.6
ICMP : TTL Exceeded
TTL=0
10.0.0.8
ICMP : TTL Exceeded
adres IP
1
10.0.0.2
2
10.0.0.6
3
10.0.0.8
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Nawiązanie, negocjacja,
zamknięcie połączenia w sesji TCP
0
4
8
12
16
20
24
28
32
inne pola...
numer sekwencyjny
numer potwierdzający
przesunięcie danych
zarezerwowane
bity sterujące
rozmiar okna
inne pola...
10
11
12
13
14
15
16
URG | ACK | PSH | RST | SYN | FIN
FIN
SYN
INICJUJĘ POŁĄCZENIE:
● wysyłam segment z nastawionym bitem
SYN
nastawiam nr sekwencyjny na X
●
określam rozmiar okna na A
●
POTWIERDZAM POŁĄCZENIE:
● wysyłam segment z nastawionym bitem
ACK
●
nastawiam nr potwierdzający na Y+1
SYN+ACK
FIN+ACK
(RST)
ACK
ACK
INICJUJĘ
POŁĄCZENIE:
● wysyłam segment z
nastawionym bitem
SYN+ACK
nastawiam nr
sekwencyjny na Y
● nastawiam nr
potwierdzający na X
●
+1
●
określam rozmiar
okna na B
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
metody skanowania portów
ATAKUJĄCY
skanowanie typu 'SYN':
OFIARA
port otwarty:
SYN
SYN,ACK
port zamknięty:
RST
skanowanie typu:
ACK:
FIN:
NULL:
XMAS:
ACK
FIN
brak
odpowiedzi
RST
FIN,URG,PSH
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
OS Fingerprinting
Badanie sygnatury („odcisku palca”) systemu operacyjnego polega na
analizie wybranych pól nagłówka IP i TCP takich jak:
Initial TTL (8 bits)
● Maximum segment size (16 bits)
● sackOK option (1 bit)
● Window scaling option (8 bits)
●
Window size (16 bits)
"Don't fragment" flag (1 bit)
nop option (1 bit)
Initial packet size (16 bits)
przy założeniu że implementacje stosu TCP/IP w różnych systemach
operacyjnych różnią się.
Fingerprinting aktywny – Analiza odpowiedzi na spreparowaną sekwencję
pakietów (TCP/UDP/ICMP) wysłaną na wcześniej wykryte zamknięte i
otwarte porty.
Więcej informacji o testach używanych przy OS-fingerprintingu:
http://nmap.org/book/osdetect-methods.html
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Ataki Denial-of-Service (DoS)
Distributed DoS
master
master
zombie
UDP
UDP
ICMP
ICMP TCP SYN
TCP SYN
komenda
rozpoczęcia
ataku
komenda
rozpoczęcia
ataku
TCP SYN
Distributed Reflection DoS
ICMP
TCP SYN
UDP
ofiara ataku
(SRC IP ofiary)
zombie
TCP SYN
(SRC IP ofiary)
TCP SYN+ACK
TCP SYN+ACK
ofiara ataku
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
Podstawy konfiguracji i
monitorowania środowiska
sieciowego w systemie GNU/Linux
●
●
●
●
●
●
●
ifconfig
route
netstat
ping, traceroute
<= konfiguracja interfejsu sieciowego
<= konfiguracja rutingu statycznego
<= wyświetlanie otwartych gniazd
UDP, połączeń TCP, tablicy rutingu,itp.
<= testowanie drożności tras
/etc/hosts
<=
/etc/resolv.conf
<=
/etc/hosts.{allow/deny} <=
rozwiazywanie nazw(stat.)
rozwiązywanie nazw(dyn.)
restrykcje dostępu do usług
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
ifconfig –
przykład wyjścia polecenia
eth0 Link encap:Ethernet HWaddr 00:0F:B0:75:DD:38
inet addr:10.10.50.206 Bcast:10.10.50.255 Mask:255.255.255.0
inet6 addr: fe80::20f:b0ff:fe75:dd38/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST
MTU:1500 Metric:1
RX packets:412113 errors:0 dropped:0 overruns:0 frame:0
TX packets:452451 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:231230851 (220.5 MB) TX bytes:235130192 (224.2 MB)
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej
netstat – przykład wyjścia
polecenia (fragment)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address
tcp
0
0
0.0.0.0:8192
tcp
0
0
0.0.0.0:5222
tcp
0
0
192.168.0.5:80
tcp
0
22
83.26.26.21:3613
tcp
131
0
83.26.26.21:4247
tcp
0
0
83.26.26.21:4662
udp
0
0
0.0.0.0:4666
udp
0
0
127.0.0.1:53
Proto Ref Cnt
unix
16
unix
2
Foreign Address
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
82.21.16.92:105
80.108.9.23:2456
83.24.14.20:3414
0.0.0.0:*
0.0.0.0:*
Flags
Type
State
[]
DGRAM
[ACC] STREAM LISTENING
I-Node
983
11375257
State
LISTEN
LISTEN
LISTEN
FIN_WAIT2
TIME_WAIT
ESTABLISHED
Path
/dev/log
/var/run/mysqld.sock
(c) mgr inż. Adam Mencwal, Katedra Informatyki Stosowanej