Kilka dni temu John Ferrell na blogu Huntresslabs opublikował ciekawy eksperyment pokazujący jak malware może oszukać nie tylko zaawansowane systemy bezpieczeństwa, ale także oko sprawnego Oficera Bezpieczeństwa w firmie.
Okazało się, że hakerzy używają fałszywych logów z błędami do przechowywania znaków ASCII zamaskowanych jako liczby w systemie szesnastkowym, które dekodują do złośliwego ładunku. Kod ten jest następnie wykorzystywany do „przygotowania gruntu” pod ataki skryptowe. Cała sztuczka jest częścią dłuższego łańcucha z pośredniczącymi poleceniami PowerShell, które ostatecznie dostarczają złośliwy skrypt do rozpoznanych celów.
Huntress Labs, odkrył scenariusz ataku, w którym atakujący z uporem na komputerze docelowym próbował zastosować nietypową sztuczkę, aby kontynuować swój atak. Hacker uzyskał już dostęp do systemu docelowego i zdobył przyczółek. Z tej pozycji skorzystał z pliku o nazwie „a.chk”, który imituje dziennik błędów systemu Windows dla nieistniejącej aplikacji. Ostatnia kolumna pokazuje wartości szesnastkowe:
W rzeczywistości są to dziesiętne reprezentacje znaków ASCII. Po zdekodowaniu tworzą skrypt, który kontaktuje się z serwerem Command & Control w celu wykonania następnego kroku ataku.
Pobieżne spojrzenie na plik logu prawdopodobnie nie podniesie żadnych alarmów, ponieważ dane zawierają znaczniki czasu i odniesienia do numeru wersji systemu Windows 8 i Windows Server 2012 (6.2(9200)). Tak sformatowane pliki są omijane przez systemy EDR czy anty-malware, gdyż analiza treści logów Windows byłaby zbyt czasochłonna.
Bliższa inspekcja ujawnia sztuczkę zastosowaną w celu wyodrębnienia odpowiedniego fragmentu danych i poskładania zakodowanego ładunku. Poniżej możemy zobaczyć, jak liczby przekształcają się w tekst, tworząc skrypt.
John Ferrell wyjaśnia, że ładunek jest pozyskiwany przy użyciu zaplanowanego zadania, podszywającego się pod legalne zadanie na hoście i udostępniające jego opis. W grę wchodzą dwa pliki wykonywalne, oba zmieniają nazwy na kopie legalnych plików, aby wyglądały na nieszkodliwe.
Jeden nosi nazwę „BfeOnService.exe” i jest kopią „mshta.exe”, narzędzia wykonującego aplikacje Microsoft HTML (HTA), które zostało wykorzystane do wdrażania złośliwych plików HTA. W tym przypadku wykonuje skrypt Visual Basic, aby uruchomić PowerShell i wywołać w nim polecenie.
Drugi ma nazwę „engine.exe” i jest kopią „powershell.exe”. Jego celem jest wyodrębnienie liczb ASCII z fałszywego dziennika błędów i konwersja ich w celu uzyskania ładunku. Oto jak działają:
Ostateczne polecenie PowerShell, jest pobierane z Internetu i dopiero na końcu łańcucha infekcji wywoływane. Komenda ta służy do gromadzenia informacji o zaatakowanym systemie. Nie jest jasne, ale ostatni skrypt zbiera szczegółowe informacje na temat zainstalowanych przeglądarek, ogólnych i specyficznych produktów do rozliczeń podatkowych (Lacerte, ProSeries, Kaspersky, Comodo, Defender) oraz oprogramowania do sprzedaży online.
Chociaż nie jest to zbyt wyrafinowany i niebezpieczny atak, pokazuje, że cyberprzestępcy wykorzystają wszystkie możliwości, by zdobyć przyczółek w sieci docelowej i rozwiną swój atak w twórczy sposób, który w niektórych przypadkach może się opłacić.