Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Nietypowe metody wykorzystywane w atakach phishingowych
Wstęp
W ciągu ostatnich lat phishing bardzo ewoluował. Powstanie wielu nowych technik – i w związku z tym modyfikacja dostępnych rozwiązań – przeniosło ten typ ataku na wyższy poziom. Atakujący coraz częściej do jego dystrybucji wykorzystują pocztę elektroniczną, strony WWW lub wiadomości prywatne w komunikatorach. W tym artykule postaram się przybliżyć jedne z najpopularniejszych metod wykorzystywanych obecnie w kampaniach phishingowych.
Celem artykułu jest zwiększenie powszechnej świadomości, że phishing to już nie tylko proste wysłanie wiadomości z podrobioną stroną WWW i próba wyłudzenia naszego hasła do poczty – czasami jest to znacznie bardziej zaawansowany i lepiej zaplanowany strategicznie atak. Warto poznać te „nietypowe” metody, ponieważ być może ich znajomość uchroni nas przed niebezpieczeństwem.
Typosquatting
Typosquatting polega na rejestrowaniu domen z zastosowaniem prostych błędów literowych, które mogą zostać popełnione przez internautów podczas wpisywania nazwy strony w pasku adresu przeglądarki. Przykładem mogłoby być pominięcie jednej z liter lub wprowadzenie takiej, która sąsiaduje z daną literą na klawiaturze.
Inne proste zastosowania tej techniki to:
- wwwnazwadomeny (bez kropki pomiędzy „www”, a nazwą domeny)
- www-nazwadomeny (kreska pomiędzy „www”, a nazwą domeny)
- nazwadomeny-dowolnanazwa (kreska pomiędzy nazwą oryginalnej domeny, a nazwą domeny)
Warto dodać, że w przeszłości najbardziej popularne było umieszczanie na „przejętej” przez atakującego domenie katalogu z nazwą domeny, pod którą chciał podszyć się atakujący.
Z ciekawą analizą typosquattingu, opartą na przeglądzie ponad 500 popularnych stron, można się zapoznać pod poniższym adresem:
Homoglyph & homograph
Atak polega na wykorzystaniu podobieństw w wyglądzie danej litery, cyfry bądź znaku, poprzez użycie zestawu innych znaków, m.in. cyfr i liter. Często stosowaną metodą jest używanie tych samych liter z innych języków bądź kodowań (pisaliśmy o tym np. tutaj: https://sekurak.pl/rosjanie-przejeli-%c9%a2oogle-com/ i tutaj: https://sekurak.pl/sekurak-pl-przejety-przez-polskich-hackerow/).
Najprostszą techniką tego typu jest łączenie liter oraz znaków i ich zamiana na inne. Do najpopularniejszych przykładów możemy zaliczyć poniższe (w nawiasie przedstawiono czytelniejszą wersję):
- rn jako m (małe litery R i N jako mała litera M)
- cl jako d (małe litery C i L jako mała litera D)
- q jako g (mała litera Q jako mała litera G)
- cj jako g (małe litery C i J jako mała litera G)
- vv jako w (podwójna litera V jako litera W)
- ci jako a (małe litery C oraz I jako mała litera A)
- I jako l (duża litera i jako mała litera L)
- l jako I (mała litera L jako duża litera i)
- 1 jako l (cyfra 1 jako mała litera L)
- 1 jako I (cyfra 1 jako duża litera i)
- l jako 1 (mała litera L jako cyfra 1)
- I jako 1 (duża litera i jako cyfra 1)
W przypadku innego języka i kodowania na poniższej stronie znajdziemy dużą listę odpowiedników znaków:
- https://github.com/codebox/homoglyph
- http://homoglyphs.net/?text=tutajnazwa&update=update&unicodepos=1&print=1&lang=en&exc2=1&exc3=1&exc7=1&exc8=1&exc13=1&exc14=1
- http://www.fileformat.info/info/unicode/block/index.htm
Warto wykorzystać również windowsowe narzędzie „Windows Character Map” (charmap.exe).
Dodatkowe linki:
Punycode
Punycode to specjalne kodowanie, które jest wykorzystywane w celu konwersji Unicode na zestaw dozwolonych znaków w nazwie (tj. litery ASCII, cyfry i myślniki). Domenę, która zawiera znaki spoza ASCII, nazywamy Internationalized Domain Name (IDM) – dzięki Punycode jesteśmy w stanie przedstawić jej nazwę w wersji obsługiwanej przez serwery DNS:
Unicode | Punycode |
seĸuraĸ.pl | xn--seura-v5ad.pl |
IDN Conversion Tool: http://mct.verisign-grs.com/
Bitsquatting
Bitsquatting to technika polegająca na rejestracji domeny różniącej się o jeden bit od tej „popularnej”, pod którą chciałby się podszyć atakujący. Całość opiera się na oczekiwaniu na losowe błędy spowodowane sprzętem komputerowym (najczęściej RAM-em).
Ciekawe opracowanie tego zagadnienia zostało przedstawione pod linkiem: http://dinaburg.org/bitsquatting.html.
Natomiast domenę stosującą ww. metodę można wygenerować, korzystając np. ze skryptów: https://github.com/benjaminpetrin/bitsquatting lub https://github.com/artemdinaburg/bitsquat-script.
Right-to-Left Override [RTLO / RLO]
Przez ostatnie kilka lat mogliśmy widzieć różne metody na wykorzystanie znaku „Right-to-Left Override” (Kod: U+202E):
- od zmiany rozszerzenia pliku:
Notatka: Jako że rozszerzenia plików, np. EXE i SCR, w przypadku użycia znaku RTLO są wyświetlane odwrotnie, tj. EXE i RCS (w tradycyjnej technice bez zaciemniania oryginalnego rozszerzenia różnymi metodami), przestępcy często wykorzystują słowa, które mają ww. zakończenia (lub podobne), np.: Annexe, Forexe, Reflexe, Arcs, Orcs, Marcs.
- po podmianę paska przeglądarki (o czym pisaliśmy m.in. tutaj: https://sekurak.pl/podrabianie-paska-url-w-przegladarce-poprzez-mechanizm-rtl-right-to-left/)
Dzisiaj przedstawię mniej popularną metodę, którą atakujący mogą wykorzystywać do „spoofowania” linków z adresem e-mail.
Napisałem „mogą”, ponieważ nie jestem pewien, czy rzeczywiście ją stosują. Na taką możliwość użycia znaku RTLO wpadłem samemu – jednakże jest to dość proste wykorzystanie, więc prawdopodobnie ktoś inny również już to odkrył.
Atakujący umieszczają na stronie WWW kod HTML zawierający link „mailto:” ze znakiem RTLO (URL Encode – %E2%80%AE):
<a href="mailto:%E2%80%AEot.lawzor@sekurak.pl">lp.karukes@rozwal.to</a>
Celem powyższego przykładu było zaprezentowanie e-maila „lp.karukes@rozwal.to” w programie pocztowym, np. Microsoft Outlook, ale docelowo wysłanie go na adres „ot.lawzor@sekurak.pl”.
W momencie kliknięcia przez ofiarę ataku w powyższy link w programie pocztowym zobaczymy:
Jednak po kliknięciu przycisku „Wyślij” e-mail zostanie wysłany na inny adres. Jeżeli ofiara ataku przesunie myszkę na pole z adresem, również zobaczy „fałszywy” e-mail:
Zawsze uważnie sprawdzajmy adresata naszej wiadomości e-mail. Jeżeli to możliwe postarajmy się ręcznie przepisać adres e-mail, na który chcemy wysłać wiadomość i nie klikać w nieznane nam linki.
URI scheme
Uniform Resource Identifier (URI) to ciąg znaków wykorzystywanych do identyfikacji zasobów. Dzięki niemu możemy m.in. umieścić obrazek na stronie (w kodzie HTML) bez potrzeby dołączania dodatkowych plików graficznych. To znacznie ułatwia przestępcom wiele działań, a jednocześnie zmniejsza wykrywalność (generowany jest mniejszy ruch, sprowadzający się do pobrania 1 strony HTML) i sprawia, że nic nie jest ładowane z zewnątrz.
Do najpopularniejszych schematów wykorzystywanych przez „phisherów” należy zaliczyć:
- data:MIME,WARTOSC
- data:MIME;charset=KODOWANIE;base64,WARTOSC_W_BASE64
- data:,WARTOSC
Pole WARTOSC uzależnione jest od typu pliku lub zastosowanego kodowania.
Znając ogólny schemat, możemy przystąpić do prezentacji realnych przykładów. Na poniższej stronie znajdziemy prostsze i bardziej zaawansowane zastosowanie Data URI:
HTML5 Fullscreen API Attack
Atak „HTML5 Fullscreen API” wykorzystuje mechanizm prezentowania zawartości stron WWW w trybie pełnoekranowym. Autorem „nietypowej” prezentacji implementacji ww. API jest Feross Aboukhadijeh (http://feross.org). Przestępcy, stosując mechanizm, są w stanie zaprezentować fałszywy widok górnego paska przeglądarki oraz załadować dowolną dolną treść, dzięki czemu mało uważny użytkownik może nie zauważyć „podmiany”.
Demo: https://sekurak.pl/przyklady/html5_fullscreen_api_attack/
Blankshield & Reverse Tabnabbing
Atak polega na podmianie zawartości zakładki, z której nastąpiło kliknięcie (target=”_blank”) na inną stronę.
Jak atak działa w praktyce, możemy sprawdzić, otwierając w przeglądarce (najlepiej Google Chrome) stronę: https://sekurak.pl/przyklady/blankshield_reverse_tabnabbing/, a następnie sprawdźcie poprzednią kartę.
Na stronie: https://samiux.blogspot.com/2016/09/firefox-480-does-not-vulnerable-to.html zaprezentowano ciekawe podsumowanie tego, jakie przeglądarki są podatne na ww. atak.
Warto wspomnieć, że Google postanowił, aby nie wypłacać nagród (Bug Bounty) za błędy tego typu: https://sites.google.com/site/bughunteruniversity/nonvuln/phishing-with-window-opener.
Clickjacking
Atak polega na stworzeniu elementu (najczęściej ramki iframe), który zostanie wyświetlony ponad inną funkcjonalność serwisu. Implementację tego ataku mogliśmy wielokrotnie obserwować jakiś czas temu, gdy powstało wiele stron, które przykrywały przycisk „Lubię to!” z portalu Facebook (obecnie popularność tego ataku zmalała). Nieświadomy użytkownik, klikając w dany link, tak naprawdę zgadzał się na polubienie danej strony fanpage.
Prostą prezentację działania ataku można zobaczyć tutaj:
URL Redirect
Technika polega na wykorzystaniu zaufania do innej witryny oraz znalezieniu na niej błędu lub funkcjonalności umożliwiającej wprowadzenie adresu, na który nastąpi przekierowanie (OWASP TOP 10 z 2013 roku, punkt A10). W związku z tym schemat ataku mógłby wyglądać następująco:
- Atakujący znajduje na zaufanej stronie funkcjonalność przekierowania, która nie weryfikuje adresu docelowego.
- Atakujący tworzy na swoim serwerze fałszywą stronę phishingową.
- Atakujący wysyła „socjotechniczną” wiadomość e-mail do ofiary ataku wraz z linkiem:
https://zaufanastrona/index.html?przekierowanie=http://stronaatakującego/phishing.html
lub (aby link był dłuższy i ukrył stronę atakującego)
https://zaufanastrona/index.html?przekierowanie=javascript:/*https://zaufanastrona/*/document.location("http://stronaatakującego/phishing.html")
Ofiara ataku, najeżdżając myszką na hiperłącze, widzi na początku adres „https://zaufanastrona/”, co może utwierdzić ją w przekonaniu, że strona jest bezpieczna.
Content Warning Bypass
Prawdopodobnie czytelnik miał już okazję zobaczyć komunikat informujący o tym, że zostały wyświetlone jedynie treści dostępne za pośrednictwem HTTPS. Dzieje się tak głównie w momencie, gdy jesteśmy na stronie z HTTPS, ale np. w ramce iframe zostaje wyświetlona strona, która nie posiada szyfrowanego połączenia (HTTP). Poniżej zamieszczam przykład:
Jakiś czas temu pojawił się jednak artykuł na stronie BrokenBrowser.com, na której autor informuje o ciekawej sztuczce. W celu załadowania na stronie z HTTPS np. ramki iframe ze źródłem HTTP wystarczy, że wykorzystamy inną stronę z HTTPS, która posiada funkcjonalność przekierowania użytkownika na dowolną witrynę.
Przykładowy kod mógłby wyglądać następująco:
<iframe src="https://stronazhttps/index.php?przekierowanie=http://adreszlosliwejstrony"></iframe>
Dzięki tej technice przestępcy mogą w prosty sposób ominąć to ograniczenie.
Favicon & Green Padlock
Jest to prosta technika, obecnie już prawie niewykorzystywana z powodu zmian prezentacji miejsca wyświetlania ikony strony. Atakujący tworzyli favicon z zieloną lub żółtą kłódką, która sugerowała, jakoby strona posiadała bezpieczne połączenie HTTPS.
Content Injection
Podmiana treści na stronie może nastąpić w wyniku pełnego włamania na serwer lub istnienia podatności, np. Cross-Site Scripting (XSS) czy SQL Injection. Atakujący, który zidentyfikuje podatność, wpływa na zawartość strony i modyfikuje ją, tak aby przechwytywała dane logowania lub wykonywała inne złośliwe działania.
HTTP Auth
Jakiś czas temu opisywaliśmy narzędzie Phishery, pozwalające na dodanie do istniejącego dokumentu Word „odniesienia” do szablonu umieszczonego na „zdalnym serwerze”, mające na celu kradzież/przechwycenie danych wprowadzonych przez użytkownika w oknie podobnym do poniższego:
Jeżeli ofiara ataku poda dane logowania, np. do swojego konta domenowego, to atakujący automatycznie je otrzyma:
Warto wiedzieć, że ten typ ataku można również wykorzystać w wiadomościach e-mail – w aplikacji Microsoft Outlook po przesłaniu wiadomości z linkiem, który zabezpieczony jest przez HTTP Basic Authentication. Ofiara ataku, która otrzyma tak przygotowany e-mail, zobaczy ekran podobny do poniższego (w zależności od konfiguracji):
Atakujący liczy na to, że ofiara ataku wpisze w takie wyskakujące okno swoje dane logowania.
Domyślnie komunikat posiada schemat: „The server NAZWA_SERWERA_ATAKUJĄCEGO at WARTOŚĆ_AUTHNAME_Z_PLIKU_.HTACCESS requires a username and password”. W polu wartości AuthName z pliku .htaccess atakujący najczęściej wpisuje swoją prośbę. W powyższym przykładzie prośba, tj. „The connection was lost. In order to connect with mail in Outlook, it is…”, została napisana w taki sposób, aby „łączyła się” z domyślnym tekstem, tj. „requires a username and password”.
Pamiętajmy, aby NIGDY nie wpisywać haseł w takich wyskakujących oknach, których domeny nie znamy! Uważajmy na ten typ ataku, ponieważ staje się on coraz bardziej popularny!
Pole „Name” z adresem e-mail i spacje
Kilka lat temu (ok. 2011 roku), realizując testy socjotechniczne dla jednego z klientów, wpadłem na pomysł związany z wykorzystaniem „ukrywania adresu e-mail”, jeżeli pole „Name” jest zbyt długie.
Nie widziałem wykorzystania tej techniki w praktyce ani nie czytałem o niej, jednakże warto mieć na uwadze taką możliwość. W celu wykonania tego ataku przestępca wprowadza w pole „Name” wartość w schemacie:
Imię i nazwisko <fałszywy@adres.email> [300 SPACJI]
Czyli po wysłaniu wiadomości z powyższym polem (ale bez 300 spacji) odbiorca zobaczy:
Imię i nazwisko <fałszywy@adres.email> <prawdziwy@adres.email>
Oczywiście prawdziwy adres został zamazany jedynie na potrzeby rysunku do tego artykułu.
Co się jednak stanie, gdy dodamy wspomniane 300 spacji? Widok będzie następujący:
Dzieje się tak, ponieważ w zależności od rozdzielczości znaki, które się nie mieszczą na ekranie, są ukrywane przez program Microsoft Outlook – w związku z tym nasza „długa wartość” pola „Name” nie jest widoczna (w większości przypadków wystarczy 300–500 spacji).
A tak wygląda widok, gdy klikniemy przycisk „Odpowiedź”:
.LNK
Pliki .LNK zyskały ostatnio ponownie na popularności w trakcie kampanii ze złośliwym oprogramowaniem typu „ransomware” (m.in. Locky). Atak polega na stworzeniu skrótu do danego oprogramowania wraz z dodatkowymi poleceniami, które uruchomią bardziej zaawansowane komendy. Przyjrzyjmy się zasadom działania tej techniki, aby wiedzieć, jak się przed nią bronić.
PowerShell
PowerShell jest chętnie wykorzystywany w związku z szerokimi możliwościami obfuskacji danego polecenia. W przypadku tej metody atakujący wykonuje prawdopodobnie następujące kroki:
- Tworzy nowy skrót wraz z poleceniem PowerShell:
Polecenie: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command "[System.Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\");[System.Windows.Forms.MessageBox]::Show(\"This is PowerShell - Simple Command\")"
- Po stworzeniu link wygląda następująco:
- Następnie zmienia jego nazwę i ikonę na inną, np.:
Nasz link nie jest „złośliwy”, ponieważ zawiera jedynie wyświetlenie prostego komunikatu. W normalnym wykorzystaniu atakujący może umieścić tam np. pobieranie innego pliku EXE i jego uruchomienie.
Warto dodać, że dawniej częściej spotykaliśmy link:
%SystemRoot%\System32\cmd.exe /c TU_KOMENDA
Jeżeli atakujący ma już przygotowany link, to kolejnym krokiem jest sposób jego dostarczenia:
- .LNK + dokument Microsoft Office
Jedną z opcji jest dokument Word:
- .LNK + archiwum
Oczywiście tak przygotowany link (plik .LNK) może zostać umieszczony w archiwum, np. ZIP:
- .LNK + plik wykonywalny ze zmienionym rozszerzeniem
Kolejną techniką jest zmiana rozszerzenia pliku wykonywalnego, np. EXE na PNG. Następnie atakujący musi już tylko stworzyć skrót, z komendą podobną do poniższej:
Polecenie: %SystemRoot%\System32\cmd.exe /c Zdjecia.png
Pozostałe techniki
Spójrzmy na jeszcze jedną, mało znaną technikę, która ma wiele wad (m.in. nie podmienia pełnego paska, tylko ścieżkę) – wielokrotnie spotkałem się z jej implementacją. Mam na myśli wykorzystanie metody z „replaceState” w JavaScript do manipulacji paskiem adresu.
Przygotowałem prosty przykład zastosowania tej techniki:
Po kliknięciu w powyższy link powinniśmy zobaczyć automatycznie „zaktualizowany” pasek adresu.
Podsumowanie
Mam nadzieję, że artykuł pomoże czytelnikom lepiej rozpoznawać phishing. Oczywiście nie zapominajmy również o socjotechnice, a także złośliwym oprogramowaniu, które dość często dołączane jest m.in. do wiadomości e-mail. Należy mieć na uwadze, że artykuł nie wyczerpuje listy wszystkich ataków – wspomniane zostały jedynie te „najciekawsze”.
Polecam lekturę tego artykuły wszystkim osobom, które są zainteresowane zwiększeniem swojej świadomości na temat możliwych ataków.
Źródła i dodatkowe linki:
- https://github.com/securestate/king-phisher
- https://github.com/Raikia/FiercePhish
- https://github.com/ryhanson/phishery
- https://getgophish.com/
- https://www.phishtank.com/
~ Artur Czyż, pentester, prowadzi szkolenie cyberawareness – dla pracowników nietechnicznych
„Zawsze uważnie sprawdzajmy adresata naszej wiadomości e-mail.”
Trochę dziwne stwierdzenie biorąc pod uwagę to:
„Jeżeli ofiara ataku przesunie myszkę na pole z adresem, również zobaczy „fałszywy” e-mail:”
Znaczy, ja bym chętnie sprawdzał, ale artykuł nie wyjaśnia jak…
Dzięki za cenny komentarz. Dodałem dodatkowe zdanie.
W przypadku wspomnianego ataku wykorzystującego znak RTLO, najbezpieczniejszą opcją wydaje się ponowne przepisanie adresu e-mail, na których chcemy wysłać wiadomość. Z uwagi na to, że zarówno aplikacja Microsoft Outlook, jak i Mozilla Thunderbird posiadają „obsługę” znaku RTLO, to nie jesteśmy w stanie „wizualnie” zobaczyć różnicy w wyświetlanym adresie. W związku, z tym nie powinniśmy klikać na nieznane nam linki i zawsze starać się przepisać dany adres e-mail.
Za „metodą” w postaci przepisania na nowo adresu e-mail, przemawia również fakt ochrony przed innymi atakami, np. „Homoglyph & Homograph”.
Ale Windows XP to już dawno powinien być martwy.
Podrzucę Wam jeszcze jeden trik, pewnie go znacie ale w artykule nie było.
Zawidziany parę miesięcy temu na jakimś wpisie na Twitterze.
Używanie spacji też jest przydatne do maskowania prawdziwego rozszerzenia nazwy pliku:
mrok_i_zlo.exe na
mrok_i_zlo.pdf[60 spacji].exe
teraz taki plik o zmienionej nazwie pakujemy do archiwum zip.
I teraz cel phishingu otwierając archiwum używa w większości przypadków domyślnego podglądu do przeglądania spakowanych plików, który nie pokazuje tych xx spacji i prawdziwego rozszerzenia pliku.
Mało tego domyślny widok plików pod eksploratorem Win7 też nie pokazuje rozszerzenia choć pisze już z boku, że to np. aplikacja a nie dokument.
W win8 i win10 już są dodane kolorki i inne pierdoły łatwiej to zauważyć, ale domyślny podgląd zawartości archiwum zachowuje się tak samo jak w Win7.
Można to połączyć np. ze zmianą ikony dla skompilowanego pliku .exe i przed ostatecznym mrokiem_i_zlem chroni użytkownika jeden komunikat z UAC (win7) czy uruchomić dany plik. W tym komunikacie widać już prawdziwe rozszerzenie ale większość użytkowników i tak nie przeczyta i kliknie uruchom.
Dodatkowym profitem z pakowania plików do .zip jest to, iż w ostatnich aktualizacjach zarówno Thunderbird jak i Firefox, a także Chrome ( nie wiem jak Outlook) zbiesiły się na różne ciekawe rozszerzenia (np.: .WSC, .HTA, chyba .PS1 i .LNK też) i jeżeli wiadomość e-mail zawiera taki plik żywcem to oprogramowanie zablokuje jego otwarcie / ściągnięcie raportując userowi podejrzany plik.
Ale już archiwum.zip zawierający taki plik łykają jak pelikan rybę :D.
Pod win8/win10 dużo bardziej restrykcyjnie podchodzą do plików .exe (te straszące monity na całą stronę) więc pewnie dlatego taka popularność wszelkich skryptów phishingu obecnie.
Google ma śliczną listę plików, które blokuje można się sporo nauczyć analizując czemu i jak dane pliki są pod windą odpalane.
https://support.google.com/mail/answer/6590?hl=en
Prezentowany HTML5 Fullscreen API Attack ma ciekawy błąd: skalowanie okna przeglądarki brane jest ze wskazanej domeny. Jeśli jest powiększone to górny powiększony pasek przeglądarki wygląda ciekawie.
Nic czego odpowiedni CSS by nie załatwił ;). To miał być tylko przykład, nie prawdziwy atak.
Solidnie i jasno opisane. Dzięki za wasz czas i chęci.
Super zestawienie wielu metod w jednym miejscu :)
Fajne, ale nie wszystkie opisane metody są do zrozumienia, przez normalnego użytkownika netu. Zatem komu ten artykuł? Hakerom? Bardzo proszę o takie zaktualizowanie treści, by mogła ona być przydatna każdemu zainteresowanemu.
Jednak dziękuję za włożenie tylu trudu w opisy.