[PL] Szurkogadanie #23

Homepage:

https://youtu.be/2iDwVGaxvEA

Description:

Wprowadzenie

Podcast

Cześć. Ja jestem Kacper Szurek a to 23 odcinek podcastu o bezpieczeństwie.

W tym tygodniu dowiesz jak działają dynamicznie generowane domeny, gdzie są używane oraz dlaczego są niebezpieczne.

Opowiem także jak działa atak miliarda uśmiechów a także jak jednemu z badaczy bezpieczeństwa udało się stworzyć własny adres e-mail w domenie google.com nie będąc przy tym zatrudnionym w tej firmie.

Jeżeli interesujesz się branżą security lub jesteś programistą, który chciałby zadać pytanie o swój kod - zapraszam na grupę 0 do pentestera na Facebooku.

Większość wiadomości do tego odcinka odnalazłem dzięki Weekendowej Lekturze Zaufanej Trzeciej Strony. Zapraszam do słuchania.

Podcast ten można również znaleźć na Spotify oraz Google i Apple Podcasts oraz Anchor.

1. Co to jest DGA czyli generowanie nazw domeny przy pomocy algorytmu i komu to potrzebne?

Zazwyczaj tworząc jakiś biznes online - próbujemy znaleźć nowa i chwytliwą nazwę - tak aby jednocześnie była łatwa do zapamiętania i kojarzyła się z tematem naszego biznesu.

Dlaczego więc ktoś chciałby generować taką nazwę przy pomocy komputerowego algorytmu?

Załóżmy, że jesteś twórcą złośliwego oprogramowania.

Udało Ci się zainstalować malware na komputerze ofiary przy pomocy socjotechniki.

Teraz, pora na komunikacje z serwerem Command and Control, który wyśle dalsze instrukcje do wykonania.

I tutaj pojawia się problem - jak połączyć się z takim serwerem?

Najprostszym rozwiązaniem jest zaszycie w kodzie źródłowym statycznej nazwy domeny.

To rozwiązanie jest proste - ale równocześnie banalne do zablokowania.

Analitycy bezpieczeństwa bowiem - po analizie takiej próbki - wiedza z którym adresem się ona łączy i są w stanie zablokować połączenia do tej domeny przy użyciu firewall-a.

Wtedy, taki malware jest mało przydatny - nie może bowiem komunikować się z operatorem czyli pobierać i wysyłać do niego danych.

Dlatego też z czasem przestępcy zamiast jednego adresu - zaczęli używać listy adresów.

Jak można się domyślać - to rozwiązanie nie wiele różni się od poprzedniego.

Wystarczy bowiem wyciągnąć listę adresów i je zablokować.

To samo tyczy się używania adresów IP zamiast nazw domen.

I tutaj w grę wchodzi DGA. Na podstawie bieżącej daty i matematycznego algorytmu - oprogramowanie generuje listę tysiąca domen na dany dzień.

Każda z nich to zlepek cyfr i liter, które nie składają się w żadną logiczną całość.

Założenie jest proste - malware odpytuje każdą z takich domen po kolei - sprawdzając czy jest zarejestrowana.

Jeżeli tak - odczytuje z niej komendę. Kolejnego dnia - cały proces się powtarza. Każdego więc dnia używana jest inna domena.

Co więcej - codziennie potencjalnych domen, które należało by sprawdzić może być dziesiątki tysięcy.

A to znacząco utrudnia pracę firmy antywirusowych. W tym bowiem schemacie nie można łatwo zablokować domeny na podstawie czarnej listy.

Owszem - można wygenerować nazwy domen na kolejne dni - ale ich potencjalna ilość jest ogromna co sprawiło by, że taka baza szybko stała by się o wiele za duża.

Z punktu widzenia przestępcy jest to bardzo dobre rozwiązanie. Co dziennie musi jedynie zarejestrować jedną z domen bazując na algorytmie.

Co więcej, treści na tych domenach są zazwyczaj zaszyfrowane.

Dzięki temu - autor złośliwego oprogramowania upewnia się, że nawet jeśli ktoś przejmie domenę - z którą kontaktuje się malarek na podstawie algorytmu, to nie będzie w stanie przekazać komendy do wykonania.

Jest ona bowiem zaszyfrowana i tylko przestępca zna prawidłowy klucz.

Teraz już wiesz dlaczego nazwy domen czasami wyglądają tak dziwnie.

2. W Internecie pojawiła się firma, która zapewnia swoich klientów, że jest w stanie odzyskać ich dane które zostały zaszyfrowane przez złośliwe oprogramowanie.

Na pierwszy rzut oka takie zapewnienie wydaje się mało realne - wszak obecne filecodery - czyli oprogramowanie, które szyfruje pliki na dysku ofiary w większości korzystają ze znanych i sprawdzonych algorytmów szyfrowania.

Aby odzyskać dane możliwe są dwa scenariusze - albo posiadamy odpowiedni klucz prywatny albo próbujemy go odzyskać przy pomocy ataku bruteforce - czyli próbując wszystkich kombinacji po kolei.

Przy obecnej technice atak bruteforce w większości przypadków trwał by latami - firma natomiast przesyła odpowiedni klucz w ciągu paru godzin.

Jak to możliwe? Czy firma sama stoi za tym przestępczym procederem? A może są w posiadaniu komputera kwantowego?

Dlatego postanowiono przygotować pułapkę na tego przedsiębiorcę.

Na komputerze w laboratorium uruchomiono złośliwe oprogramowanie.

Zazwyczaj po zakończonym procesie szyfrowania - na dysku ofiary pojawiają się pliki testowe readme.txt, w którym znajdują się informację kto zaszyfrował pliki, dlaczego, ile będzie kosztowało ich odzyskanie oraz email lub nazwa strony do kontaktu z przestępcą.

Właśnie w tym pliku podmieniono adres poczty internetowej - na taki, który był w posiadaniu badaczy.

I to właśnie ten plik - ze zmienionym adresem - został odesłany do firmy w celu uzyskania wyceny.

Jakieś było zdziwienie badaczy - gdy osoba prowadząca firmę - połknęła przynętę i skontaktowała się z twórcami złośliwego oprogramowania przy użyciu podanego w pliku adresu email.

Cały schemat wyglądał zatem następująco: klient zgłaszał się do firmy z problemem.

Firma kontaktowała się z przestępcami i prosiła o wycenę.

Firma kontaktowała się z klientem dodając do wyceny przestępców swoją prowizje.

Działała więc jako zwykły pośrednik pomiędzy klientem a przestępcami, zarabiając na niewiedzy użytkowników.

Co ciekawe, na portfelu Bitcoin tego pośrednika - zarejestrowano transakcję na około 100 BTC co na dzisiejszy kurs przekłada się na kwotę około miliona złotych, co tylko pokazuje, że firma ta musiała współpracować z wieloma podmiotami.

Trzeba przyznać, że to ciekawy model biznesowy.

3. Jak przestępcy atakują bankomaty?

Pewnie w Twojej głowie pojawił się teraz obraz osoby - stojącej z pękiem kilkunastu kradzionych kart przed bankomatem i dokonującym kilkudziesięciu transakcji przy użyciu kilkunastu kart za każdym razem używając innego pinu.

Ale tego rodzaju ataki są mało praktyczne. Zorganizowane grupy działają w inny, bardziej zaawansowany sposób.

Jak działa bowiem bankomat? Zazwyczaj jest to normalny komputer z nieco zmodyfikowanym systemem operacyjnym.

Do niego podpięta jest zewnętrzna klawiatura, podajnik pieniędzy, ekran oraz modem pozwalający na komunikację z bankiem.

Jeżeli zatem atakujący - uzyskają fizyczny dostęp do urządzenia - i będą w stanie podpiąć się do któregokolwiek z tych komponentów - w praktyce oznacza to możliwość kontroli tego komponentu.

W darkwebie - czyli ukrytej części Internetu, można znaleźć specjalnie przygotowane laptopy, ułatwiające cały proceder.

Wystarczy jedynie podpiąć taki komputer do podajnika pieniędzy.

Następnie inna osoba podchodzi do bankomatu. Następnie komunikuje się z ukrytym laptopem.

Tam to zainstalowane jest specjalistyczne oprogramowanie, które wysyła bezpośrednio do kasetki z pieniędzy komendę wypłaty gotówki.

W taki oto sposób pieniądze trafiają do rąk przestępców.

Oczywiście taki atak nie zadziała na wszystkie bankomaty. Niektóre z nich sprawdzają bowiem skąd pochodzi komenda - tak aby uniemożliwić taki atak.

Można zatem zadać sobie pytanie - dlaczego jeżeli ktoś posiada fizyczny dostęp do urządzenia nie kradnie kasetki z pieniędzmi?

Może to wynikać z dodatkowych mechanizmów zabezpieczających.

W Internecie można znaleźć informacje o technologii (chociaż niektórzy uważają, że to miejska legenda) - która wykrywa nieautoryzowane próby manipulacji przy kasetkach - i w takich przypadkach rozlewa do nich tusz - niszcząc tym samym znajduję się tam banknoty.

4. Co to jest atak miliarda uśmiechów? Inaczej nazywany bombą XML?

Czy kojarzysz ten format tekstowy?

XML podając za Wikipedią to uniwersalny język znaczników przeznaczony do reprezentowania różnych danych w strukturalizowany sposób.

Służy więc do przechowywania danych przy użyciu znaczników - znanych z HTML-a, które następnie mogą być pobierane przez aplikacje przy użyciu odpowiednich zapytań.

Gdy tworzymy jakieś dane - często dzieje się, że powtarzamy jakieś informację w różnych polach po wiele razy.

W językach programowania - problem ten rozwiązano przy pomocy makr - kiedy to definiujemy jakieś słowo kluczowe i kiedy kompilator napotka je w naszym programie - automatycznie zamienia jego treść na inną - zdefiniowaną przez nas wcześniej.

Podobnie i tutaj - możemy stworzyć tak zwaną encję, a potem odnosić się do niej w kodzie XML. Wtedy nazwa encji zostanie zamieniona na jej treść.

Atak ten polega zatem na zdefiniowaniu 10 encji - które z kolei odnoszą się do poprzednio zdefiniowanych encji, które to same posiadają odniesienia do innych 10 encji.

W taki oto sposób - wysyłając krótki ciąg znaków - w pamięci komputera zamieniany jest on na o wiele dłuższy - co może doprowadzić do ataku DOS.

Nazwa wzięła się od tego, że pierwsza encja nazywa się lol - czyli tłumacząc z angielskiego “dużo śmiechu”.

Jeżeli zatem tworzysz oprogramowanie w którym przyjmujesz pliki XML od użytkownika - pamiętaj o ustawieniu opcji, która ograniczy rekurencyjne odwoływanie się do encji.

5. Słup to nie tylko nazwa na latarnie ale także osobę, która udostępnia swoje dane innym, które następnie wykorzystywane są do popełnienia przestępstwa.

Na przykład do prania brudnych pieniędzy aby ominąć systemy bankowe a także oszukać organy ścigania.

No dobrze ale jak można zostać takim słupem?

Najbardziej narażone są osoby bezdomne, w ciężkiej sytuacji życiowej. Kusi się ich prostymi pieniędzmi - gotówką dostępną od zaraz - podsuwając do podpisania umowy, w których to zostają fikcyjnymi szefami spółek.

Ale to nie jedyne pomysły. W przeszłości nowe konta w bankach można było założyć przy pomocy tak zwanych przelewów weryfikacyjnych.

Idea była prosta - jeżeli posiadamy konto w banku na nasze dane - oznacza to, że ktoś je sprawdził i można traktować to jako pewnik.

Jeżeli więc zakładamy drugie konto - w innym banku, bank ten zamiast ponownie sprawdzać nasze dane i dowód - prosi nas o przelanie pewnej kwoty na odpowiedni numer konta.

Następnie sprawdza - czy przelaliśmy je rzeczywiście z konta należącego do nas i na tej podstawie otwiera nowe konto.

Ale mechanizm ten był wykorzystywany przez przestępców do tworzenia kont na słupy.

Na różnych serwisach ogłoszeniowych oferowano różnego rodzaju prace - za bardzo dobre stawki.

Kiedy ofiara zgłaszała się do pracy - wysyłano jej na adres email umowę - proszono o jej wypełnienie - czyli podanie wszystkich danych adresowych a także danych z dowodu oraz jej odesłanie w celu akceptacji.

W taki oto sposób atakujący uzyskiwali dane dowodów ofiar - które wykorzystywali do tworzenia kont.

Teraz wystarczyło już tylko przekonać niczego nieświadomą osobę, aby przelała złotówkę w celu weryfikacji danych na nasze konto bankowe - które w rzeczywistości było kontem banku i w prosty sposób uzyskiwaliśmy dostęp do nowego konta bankowego, założonego na niczego nieświadomą osobę.

Z tego też powodu - możliwość zakładania nowych kont właśnie w ten sposób została znacząco utrudniona.

Ale obecnie - oprócz banków, sporą popularnością cieszą się fintechy - czyli mobilne banki gdzie dostęp do naszym pieniędzy mamy jedynie z poziomu aplikacji na telefonie.

Również procedury zakładania konta są tutaj znacząco uproszczone - wystarczy jedynie skan dowodu oraz zdjęcie twarzy i już.

Dlatego - jeżeli ktoś oferuje nam gotówkę w zamian za dostęp do naszego pustego konta na Revolucie - nie dajmy się nabrać.

Te kilka złotych nie jest warte późniejszym potencjalnym wizytom na komisariacie policji i składania zeznań odnośnie prania brudnych pieniędzy.

6. Eternal Blue to nazwa na exploit wykorzystujący błąd w implementacji protokołu SMB w Windowsach, który pozwalał na zdalne uruchomienie kodu na komputerze ofiary.

Był on aktywnie wykorzystywany przez złośliwe oprogramowanie WannaCry, które wykorzystując ten błąd bardzo szybko rozpowszechniało się na inne, podatne komputery w obrębie danej sieci firmowej.

Ale to przeszłość. Ten atak miał miejsce ponad rok temu, łatki wydane przez firmę Microsoft powinny być już dawno zainstalowane na wszystkich naszych firmowych maszynach.

Ale to tylko teoria, jak wiemy często praktyka znacząco od niej odbiega.

Firma konsultingowa postanowiła przeprowadzić eksperyment w sieci swoich klientów.

Zamiast standardowo sprawdzać, czy na wszystkich komputerach w firmie zainstalowane są odpowiednie patche i czy komputery są bezpieczne - zastosowali inny mechanizm.

Uruchomienie złośliwego oprogramowania w takiej sieci - to nie najlepszy pomysł.

Dlatego też stworzyli własne oprogramowanie, wykorzystujące exploit eternal blue i symulujące złośliwe działanie.

Taki pokaz - miał nie tylko sprawdzać czy komputery są odpowiednio zabezpieczone - ale jeśli nie są - pokazać co mogło się stać i jak szybko.

Oprócz exploita kod ten wykorzystywał technikę, pozwalającą na kradzież danych do logowania - aby przyspieszyć proces rozpowszechniania się w sieci.

Jeżeli zatem na podatnym komputerze - w ostatnim czasie logował się administrator domeny i jego dane pozostały w pamięci podręcznej tego urządzenia - aplikacja przy pomocy tych danych - mogła przenosić się na inne urządzenia.

Wyniki były zaskakujące. W przeciągu 4 godzin szkodnik pojawił się na ponad 200 komputerach.

Bardzo ciekawy eksperyment. Ciekawe jaki wynik uzyskalibyście na maszynach w swojej infrastrukturze.

7. Domena google.com to jedna z najbardziej rozpoznawanych nazw na świecie.

Email w tej domenie posiadają jedynie pracownicy tej wielkiej korporacji.

Jak zatem - jednemu z badaczy bezpieczeństwa udało się stworzyć własny adres e-mail w tej domenie?

Większość firm korzysta z bug trackerów - czyli systemów, które pozwalają na monitorowanie zgłoszonych do firmy błędów.

Nie inaczej jest w przypadku Google.

Oprócz błędów, które widoczne są jedynie dla uprawnionych do tego pracowników, istnieją grupy - widoczne dla wszystkich zainteresowanych.

Jedna z takich grup jest bug tracker powiązany z bezpieczeństwem systemu Android.

Błąd można tam zgłosić przy pomocy interfejsu webowego ale także przy pomocy adresu e-mail.

Wystarczy wysłać emaila na odpowiedni adres - a nowe zgłoszenie zostanie automatycznie dodane do systemu.

Dodatkowo, można również dodawać komentarze - do tego nowego zgłoszenia - ponieważ ono również posiada odpowiedni adres email, który służy do tego celu.

Ale jak można wykorzystać tą funkcjonalność do stworzenia nowego adresu email?

Znalazcy tego błędu udało się odnaleźć system, który umożliwiał stworzenie konta na podstawie istniejącego adresu email.

Po podaniu adresu - system wysyłał kilku cyfrowy kod weryfikacyjny na podany adres - aby upewnić się, że osoba rzeczywiście posiada dostęp do tego konta.

Jak możesz się domyślać - badacz użył tutaj adresu służącego do dodawania komentarzy - ponieważ był on w domenie Google.

A ponieważ wszystkie wiadomości wysłane na ten adres były automatycznie widoczne w interfejsie webowym - mógł potwierdzić dostęp do danego konta.

W taki oto sposób mógł założyć konto na adres w domenie Google.

Sprytne.

\8. Etherum to krypto waluta która pozwala na tworzenie smart kontraktów - czyli pewnego rodzaju aplikacji, które działają w obrębie tej sieci.

Raz stworzonego kodu - nie można zmodyfikować - co rodzi trochę problemów.

Zazwyczaj bowiem takie kontrakty służą do wymian krypto waluty.

Oczywiście twórcy takich kontraktów odpowiednio je zabezpieczają - dodając odpowiednie wpisy, dzięki którym mogą przesłać całą kwotę na swoje konto.

Jeden z badaczy postanowił przyglądnąć się bezpieczeństwu kontraktów.

Jednym z najczęściej popełnianych błędów jest błędna nazwa konstruktora.

Konstruktor w programowaniu to specjalna metoda danej klasy, wywoływana podczas tworzenia jej instancji.

Czyli nieco upraszczając - kod, który wykona się na samym początku kontraktu.

Często to właśnie w nim zawiera się informacje o adresie konta twórcy - który pozwala na awaryjne wypłacenie krypto waluty.

Tylko że konstruktor - musi nazywać się dokładnie tak samo jak tworzony kontrakt.

Jeżeli więc popełnimy błąd w tej nazwie – funkcja się nie wykona ponieważ nie będzie konstruktorem.

Autor zestawienia ostrzega także o kontraktach Honeypots - które próbują oszukać użytkownika.

Na pierwszy rzut oka bowiem ich kod pokazuje, że odsyłają one użytkownikowi więcej krypto waluty niż zostało do nich przesłane.

To tylko złudzenie - tak naprawdę próbują wysłać o wiele więcej niż same posiadają - co oczywiście się nie uda - powodując tym samym, że nasza wysłana kwota przepada.

9. A to wydanie zakończymy mocno technicznym opisem ataku Cross-Site Search.

Ten błąd został odkryty w oprogramowaniu, które używane jest do zgłaszania błędów w Chromium.

Generalnie jest to zlepek dwóch podatności.

Pierwsza - CSRF - czyli cross site request forquery.

Dochodzi do niej kiedy atakowany użytkownik odwiedza naszą spreparowaną witrynę a my w tym czasie w tle wykonujemy żądanie do innej witryny, w której jest zalogowany, w jego imieniu.

Dzięki mechanizmowi same origin policy nie możemy odczytać treści pochodzącej z innej niż nasza domena, ale możemy sprawdzić jak długo trwało żądanie.

Łącząc to z funkcjonalnością wyszukiwarki w systemie zgłaszania błędów - możemy w ten sposób zadawać proste pytania tak/nie.

Aby być w stanie rozpoznać jak witryna odpowiedziała na nasze pytanie - musimy przekonać ją aby na tak odpowiadała dużą ilością danych - co będzie się objawiało dłuższym czasem pobierania witryny a na wartość nie - odpowiadała bardzo małą ilością danych.

Powtarzając dane zapytanie kilka razy możemy uzyskać pewność - czy wyliczona przez nas wartość jest prawidłowa.

Co można uzyskać dzięki takiemu atakowi?

Dla przykładu możemy wysłać zapytanie - które sprawdzi, czy wCchromium nie został zgłoszony błąd - tyczący się danego pliku źródłowego.

Nieco skomplikowany i mało praktyczny atak - musimy bowiem przekonać zalogowanego użytkownika z odpowiednimi uprawnieniami do wejścia na naszą stronę.

I to wszystko w tym odcinku.

Zapraszam do dołączenia do grupy od0 do pentestera na Facebooku i subskrypcji kanału KacperSzurek na YouTube.

Do zobaczenia już za tydzień. Cześć!

Odnośniki

1 2 3 4 5 6 7 8 9

Timeline: