poniedziałek, kwietnia 13, 2009

Imp on the balcony

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:

wieczor pisze...

Można jeszcze włączyć filtrowanie po MACu na WiFi jeżeli Livebox to udostępnia no i wyłączyć SSID broadcast.

Lightnir pisze...

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.