Rozbrajamy trojana. Część II: środowisko HTA

Rozbrajamy trojana. Część II: środowisko HTA09.03.2021 12:45
Rozbrajamy trojana. Część II: środowisko HTA (fot. Kamil Dudek)

W tej części naszego cyklu omówimy środowisko HTA oraz jego cechy czyniące je doskonałym nośnikiem wirusów. A wszystko po to, by zrozumieć jedną linijkę w naszym makrowirusie! Próbuje on bowiem uruchomić aplikację HTA pobieraną z sieci. Aplikacja HTA to strona internetowa rysowana przez silnik Internet Explorera, wyświetlana w dedykowanym oknie, a nie w przeglądarce (celem ukrycia pasków menu, stanu i adresu). PWA ubiegłego stulecia. Będąc aplikacją, działa lokalnie, a więc pracuje w strefie zabezpieczeń „Komputer” a nie „Internet”. Mają dzięki temu prawa, które dają bardzo rozbudowane możliwości w połączeniu z pewną inną cechą, mianowicie...

Tag „script” w języku HTML. Posiada on właściwości, które w języku HTML5 są uznawane za przestarzałe i w większości przypadków są już niestosowane. Jedną z nich jest pole „language”. Dziś wartością domyślną tego pola jest oczywiście JavaScript, dzisiejsze przeglądarki internetowe nie zawierają parserów żadnego innego języka skryptowego. Z jednym wyjątkiem: Internet Explorer. Przeglądarka IE w wersji 5.0 miała stać się platformą do uruchamiania aplikacji prosto z internetu. Zasługą tego podejścia jest XMLHTTPRequest, podstawa technologii AJAX i de facto fundament Web 2.0 i dzisiejszego świata aplikacji. Niestety, są też wady. Jedną z nich jest Visual Basic Script.

Antyczne, wymuszone standardy

IE obsługuje Visual Basic Script (VBS) jako język dla skryptów na stronie internetowej na równi z JavaScriptem. Może się wydawać, że to tylko nieszkodliwa różnorodność, ale VBS ma coś, czego nie ma JavaScript: da się z jego poziomu sięgać do modelu COM, WMI, powłoki Windows, Rejestru i wiersza poleceń. Technicznie, wariant „JScript” czyli rozumiany przez Host Skryptów Windows dialekt JavaScriptu też umie takie cuda, ale jest to znacznie trudniejsze i nie przechodzi walidacji W3C. Z kolei tag

[code=js][/code]

w ogóle nawet nie podlega walidacji, uchodzi za dziwactwo i artefakt, dzięki czemu nic nie zgłasza sprzeciwu.

Host Skryptów Windows jest niedostępny gdy IE pracuje w strefie internetowej. Dopiero dodanie strony do zaufanych lub umieszczenie jej w lokalnej sieci może sprawić, że Internet Explorer zmieni strefę na łagodniejszą i zezwoli na ładowanie skryptów sięgających do modelu programowania systemowego. I tutaj następuje zderzenie inżynierów z marketingowcami, rocznik 1999. Internet Explorer miał być bardzo bezpieczny (wbrew pozorom), więc stosuje strefy zabezpieczeń. Miał być też platformą do wszystkiego, więc wymyślono „Aplikacje HTML”: środowisko do robienia aplikacji z UI strony WWW, ale możliwościami Windows API. Bezpieczeństwo miało nie kłócić się z platformą, więc aplikacje HTA mają prawa do skryptów, ale strony internetowe nie.

Strefy zabezpieczeń

Super. I z wierzchu wszystko wydaje się być OK: jeżeli ktoś klika na plik z aplikacją HTA, to znaczy że ma ją na dysku. Pobrał, odblokował i świadomie trzyma na lokalnie. Tak uruchomiona aplikacja będzie miała prawa do skryptów, ale gdy ktoś wejdzie przez IE na stronę, którą otwiera – to tak otwarta praw do skryptów mieć nie będzie.

Odradzam odwiedzanie tego adresu, to wirus (fot. Kamil Dudek)
Odradzam odwiedzanie tego adresu, to wirus (fot. Kamil Dudek)

Z tym, że dwuklik na aplikację HTA to tak naprawdę uruchomienie programu MSHTA.EXE z parametrem, którym jest ścieżka do nazwy klikanego pliku. MSHTA okazuje się umieć przyjmować jako parametr nie tylko nazwy plików, ale i… internetowe adresy URL. A w jakiej strefie zabezpieczeń będą pracować treści z tak otwartych adresów URL? Ano oczywiście w strefie lokalnej! Jak aplikacja, to aplikacja. Uruchamianie HTA prosto z internetu, bez instalacji, to okropny pomysł i popełniony 22 lata temu gigantyczny błąd, którego implikacji nikt najwyraźniej nie był świadom.

Ale Microsoft tamtych lat rozumował dokładnie w takim stylu. Wychodzono z założenia, że jeżeli czegoś nie widać, to to nie istnieje. Użytkownik na co dzień nie widzi „MSHTA.EXE”: jeżeli uruchamia aplikację HTA, to ręcznie, a to oznacza że sam ją pobrał i świadomie uruchamia. Perspektywa wykorzystania MSHTA.EXE przez złośliwe oprogramowanie nie była brana pod uwagę, a żaden z programistów nie chciał zapewne nic zrobić z tym, że aplikacje HTA dawało się wołać prosto z sieci. Gdyby zasugerował obsługę stref zabezpieczeń, opóźniłby wydanie produktu i podważył dojrzałość technologii, a chcąc usunąć obsługę URL, zapewne dowiedziałby się od strategów firmy, że każde usuwanie „internetowości” to grzech.

Host skryptów

W ten sposób w Windows znajduje się narzędzie pozwalające bez pytania uruchamiać skrypty wprost z internetu, na prawach użytkownika, z możliwością korzystania z WSH i modelu COM. Co więcej, nie da się tego wyłączyć! Nie istnieje żadna zasada grupy wyłączająca obsługę HTA. Istnieje za to coś na kształt implementacji gestu środkowego palca, wymierzonego w kierunku administratorów: da się zmienić skojarzenie rozszerzenia *.HTA z MSHTA.EXE na inny program. Rozwiązuje to dokładnie zero problemów, bo plik nie jest uruchamiany przez powłokę, a wołany bezpośrednio poleceniem.

(fot. Kamil Dudek)
(fot. Kamil Dudek)

Na domiar złego, obsługa HTA nie znika, gdy zdecydujemy się odinstalować Internet Explorera. Usunięcie przeglądarki nie usuwa bowiem silnika MSHTML.DLL, BROWSEUI.DLL ani właśnie MSHTA.EXE, dzięki czemu apliki HTA wciąż działają perfekcyjnie. Nawet usunięcie MSHTA.EXE z systemu nie będzie trwałe, ponieważ SFC zgłosi brakujące pliki i podczas następnego okna konserwacji, system uruchomi DISM Restore Health, które przywróci usunięty plik z rezerwy CBS lub wprost z Windows Update.

Złośliwe makro z maila uruchamia więc aplikację HTA z internetu. Wydawałoby się, że tu właśnie powinien wkroczyć do akcji antywirus, wszak próbujemy uruchomić złośliwy kod z internetu, prawda? Otóż niekoniecznie. Pobierana strona to… niewinny blog. Dosłownie. Adres URL prowadzi do skracacza linków Bitly, ale link ten po rozwinięciu prowadzi na bloga w domenie BlogSpot, a jest to portal znajdujący się pod opieką Google. Połączenie z domeną BlogSpot nie jest uznawane przez antywirusy i zapory za akt złośliwy, a sama strona otwarta w przeglądarce nie robi nic złego.

Omijanie skanerów

Zastosowano tu dwie sztuczki. Po pierwsze, fakt połączenia ze stroną o wątpliwej reputacji, w postaci narzędzia do skracania linków, jest przykrywany zastosowaniem małpy w adresie. Taka składnia umożliwia logowanie HTTP i jest ignorowana, gdy odbiorca połączenia nie wymaga logowania, często można ją więc dodać do adresu URL bez konsekwencji. Z perspektywy analizatora ruchów wygląda to tak: „fakt, strona trochę dziwna, no ale użytkownik się tam loguje, a nie ściąga byle co, więc pewnie ma hasło i to nie jest jakiś pierwszy lepszy zasób”.

F-Secure się nie patyczkuje i blokuje każdą próbę łączenia MSHTA z internetem (fot. Kamil Dudek)
F-Secure się nie patyczkuje i blokuje każdą próbę łączenia MSHTA z internetem (fot. Kamil Dudek)

Numer z BlogSpotem polega nie tylko na tym, że strona ta, będąca pod opieką Google’a, zazwyczaj bardzo szybko pozbywa się złośliwych i szkodliwych treści lub wręcz uniemożliwia ich dodanie. Pobierany „blog” z BlogSpota, uruchamiany jako aplikacja HTA, zawiera złośliwe elementy… ale jako skrypty VBS! A co przeglądarki robią z wtyczkami VBS? Nic. Ignorują je, jak komentarze. Dlatego można je zawrzeć bezkarnie, a Google nie zauważy. Blog nie zawiera treści (poza wulgaryzmami). Ale w jego wnętrzu znajdują się cztery tagi „script”, zapisane w całości w notacji HTML („z procentami”). Przetłumaczone, okazują się być skryptami Visual Basic Script.

Skrypty te są dopiero początkiem wieloetapowego, złożonego ataku, stosując szereg sztuczek dotychczas powszechnie nieobecnych w makrowirusach. Najpopularniejsze kampanie nawet bardzo groźnych szkodników były w większości przypadków mniej wyrafinowane w kwestii swoich modułów ładujących i zdecydowanie składały się z mniejszej liczby kroków pośrednich. Tutaj jest ich wręcz kilkanaście, co czyni sukces operacji zależnym od szczęścia i powtórzeń. Dlatego jak się wkrótce okaże, skrypty dbają o to, by pracować w wielu kopiach.

Podsumowanie części drugiej

Interpreter HTA potrafi bezpośrednio ściągać i uruchamiać aplikacje z internetu Aplikacja HTA mogą stosować skrypty z VBS z dostępem do modelu programowania WSH Uruchomiony z wiersza poleceń, interpreter HTA nie informuje interaktywnie użytkownika o swoim działaniu Interpreter HTA nie daje się łatwo wyłączyć Przestępcy ukrywają złośliwy kod na "bezpiecznych" stronach, jak Google BlogSpot

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.