Pentestowanie ataków i obrona aplikacji internetowych za pomocą bWAPP

bWAPP to strona internetowa, która została opracowana z lukami, dzięki czemu zarówno początkujący, jak i eksperci mogą przeprowadzać testy penetracyjne i etyczne praktyki hakerskie. Może być hostowany w systemie Linux lub Windows na Apache lub IIS i MySQL. Jest obsługiwany w WAMP lub XAMPP. Inną możliwością jest użycie maszyny wirtualnej, która działa dla VMware lub VirtualBox.

bWAPP jest darmowy i otwarty, można go pobrać w dwóch wersjach, jednej do użytku lokalnego, a drugiej do zainstalowania na maszynie wirtualnej. Strona jest napisana w PHP i MySQL, więc jest wieloplatformowa. Pobieramy install bWAPP lokalnie, jeśli chcemy zainstalować na maszynie wirtualnej projekt to Bee-Box.

Bee-box to wirtualna maszyna linuksowa ze wszystkim preinstalowanym. W ten sposób musimy tylko zbadać wszystkie luki w bWAPP bez ryzyka zafałszowania strony bWAPP. Również z maszyną wirtualną możemy spróbować uzyskać dostęp do roota.

bWAPP ma ponad 100 błędów W celu zbadania i odkrycia obejmuje wszystkie główne znane luki w zabezpieczeniach sieci Web, w tym wszystkie zagrożenia bezpieczeństwa. Projekt nie tylko pozwala na wykrycie podatności, ale także umożliwia znalezienie rozwiązania.

W tym samouczku zainstalujemy bWAPP w wersji Bee-BoxAby to zrobić, rozpakowujemy pobrany plik i tworzymy folder z wieloma plikami vmdk na naszym lokalnym serwerze. Następnie utworzymy maszynę wirtualną przypisującą 32-bitową wersję Linux Ubuntu.

Następnie musimy wybrać pobrany plik o nazwie bee-box.vdmk

Przed uruchomieniem maszyny wirtualnej pamiętaj, że będziemy musieli skonfigurować sieć, robimy to od Ustawienie w celu posiadania adresu IP i uzyskania dostępu do maszyny wirtualnej z innego komputera.

Klikamy na utwórz, a następnie na Start, aby maszyna wirtualna zaczęła działać, po załadowaniu zobaczymy pulpit.

Następnie otworzymy terminal, aby zobaczyć, jakiego adresu IP używa polecenie ifconfig.

Widzimy, że adres IP w tym przypadku to 192.168.0.14, jeśli przetestujemy ten adres IP na komputerze poza maszyną wirtualną, powinniśmy mieć dostęp do sieci:

 http://192.168.0.14/bWAPP
A wynik będzie następujący:

Następnie możemy zacząć od strony logowania, domyślnie użytkownikiem jest pszczoła, a hasłem jest błąd dostępu do panelu sterowania. W menu Błędy będziemy mieli kilka przykładów do wykorzystania i przetestowania niektórych podatności, od najprostszych do najbardziej złożonych. Zobaczmy trochę podatności w zależności od rodzaju ataku.

ten podatności są podzielone na kategorie lub rozdziały które są następujące:

Zastrzyki A1Oto pogrupowane luki w Wstrzykiwanie HTML, SQL, XSS, XPATH i wszystkie te, które mają związek z przesyłaniem parametrów przez przeglądarki.

A2 Przerwa uwierzytelnianie i sesjeTutaj to wygląda naruszać captcha i formularze logowania przy użyciu technik zastępowania adresów URL, przechwytywania parametrów i używania identyfikatorów sesji.

A3 Cross Site Scripting (XSS)Tu są Luki związane z XSS które nie są bardzo niebezpieczne, ale raczej irytujące.

A4 Niezabezpieczone obiekty i katalogiTutaj chodzi o zmień parametry w linkach z kodu przed przesłaniem formularza.

A5 Bezpieczeństwo i konfiguracjaTutaj zobaczymy niektóre ataki, takie jak DDOS i środkowy atak, które będą miały wpływ na usługi, takie jak poczta i działające usługi.

A6 Ekspozycja danych wrażliwychTutaj zobaczymy szereg luk, które pozwalają dane serwera są widoczne w przeglądarce.

To tylko niektóre z podatności, w tym tutorialu skupimy się na najbardziej znanych atakach oraz możliwości przejęcia kontroli nad serwerem.

1. Wstrzyknięcie HTML


HTML Reflected Injection umożliwia wstawienie kodu HTML do pola tekstowego, a następnie wyświetlenie go w Internecie. Wybieramy pierwszą metodę Injection by GET, mamy dwa pola tekstowe, jeśli w każdym wprowadzimy np. link:
 Pilna wiadomość | Twoja sprzedaż
Podczas wysyłania formularza zobaczymy poniżej, że oba linki są wyświetlane i pozostawimy go w oczekiwaniu na kliknięcie. Możemy również wypróbować metodę POST.

POWIĘKSZAĆ

Innym problemem związanym z brakiem kontroli nad wprowadzaniem danych HTML jest to, że możemy wysłać formularz, w którym użytkownik uwierzy, że musi się zalogować lub wprowadzić jakieś dane, i wysłać te dane na inną stronę.

 Zostałeś rozłączony. 
Wprowadź swoją nazwę użytkownika i hasło, aby kontynuować użytkownika:
klucz:

POWIĘKSZAĆ

2. Wstrzyknięcie SQL


Zobaczmy jeszcze inny atak np. SQL Injection, jeśli szukamy BUG dla opcji SQL Injection (GET/Search), w tej sekcji możemy szukać filmów, np. Iron Man, co skutkuje danymi filmu.

POWIĘKSZAĆ

Następnie możemy spróbować wstrzyknąć kod SQL, aby sprawdzić, czy baza danych jest podatna, w tym celu używamy następującego kodu, który zwróci listę baz danych, jeśli:

 iron man 'unij wybierz 1, nazwa_tabeli, 3,4,5,6,7 z INFORMATION_SCHEMA.TABLES gdzie table_schema = database() -'
Wynikiem jest lista tabel, dlatego baza danych jest podatna na ataki:

POWIĘKSZAĆ

Wiedząc, że baza danych jest podatna na ataki, możemy skorzystać z kilku technik, które widzieliśmy w samouczku SQLMAP, narzędzia SQL Injection oraz Ethical database hacking, gdzie docieramy do poziomu roota w poszukiwaniu kluczy administratora.

Z okna terminala piszemy następującą komendę, używamy strony, na której szukamy filmu, ponieważ ma parametr, który może być podatny.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --dbs

Pokazuje nam bazy danych, jedną z nich jest bWAPP, dlatego postaramy się uzyskać listę tabel wiedząc, że silnikiem bazy danych jest MySQL 5. Do uzyskania listy tabel użyjemy następującego polecenia.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -tabele

Widzimy, że zawiera wszystkie tabele, nie tylko z sieci, ale także z systemu, więc możemy uzyskać dane od administratora Linuksa. Możemy również wykorzystać sesję PHP za pomocą Firebuga możemy zobaczyć numer sesji, ponieważ podczas tworzenia użytkownika lub logowania lub generowania dynamicznej zawartości, takiej jak wyszukiwanie, odpowiedź serwera utworzy PHPSession.

POWIĘKSZAĆ

Korzystanie z polecenia --użytkownicy i sesji lub komendą bez sesji będziemy mogli zobaczyć użytkowników systemu.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --users
Kolejne polecenie opcji z identyfikatorem sesji:
 sqlmap -u „http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search” --cookie = ”PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; poziom_bezpieczeństwa = 0” --users

Następnie poszukamy użytkowników systemu za pomocą następującego polecenia:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is-dba --privileges --dbs -dump 
W efekcie otrzymamy tabele, w których znajduje się hasło, jeden z nich to użytkownicy posiadający dane administratora, a drugi to bohaterowie tabeli i użytkownicy (users), których będziemy używać do logowania się jako użytkownicy.

Tabela użytkowników zawiera dane administratora serwisu:

Następnie uzyskamy hasło roota użytkowników, których znajdujemy powyżej, w tym celu używamy następującego polecenia:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current-user --is-dba --is-dba --uprawnienia --dbs - wysypisko
Pod koniec poleceń poprzez atak brute force stwierdzamy, że hasło administratora systemu to błąd, a użytkownik jest rootem.

Spróbujemy z terminala połączyć się przez ssh z maszyną wirtualną, aby przejąć zdalną kontrolę nad komputerem za pomocą następującego polecenia:

 ssh [email protected]
Wynikiem użycia użytkownika root i hasła błędu jest połączenie z uprawnieniami administratora do maszyny wirtualnej.

Następnie testujemy, czy możemy zalogować się do sekcji bohaterowie i użytkownicy za pomocą uzyskanych wcześniej danych, na przykład użytkownika neo i hasła trinity.

Udało nam się uzyskać dostęp z tymi danymi użytkownika bez problemów. Jeśli korzystamy z tabeli users, możemy również się zalogować.

3. Wstrzykiwanie HTML/XPATH


Jedną z najmniej myśli o atakach są te przeglądarki, które umożliwiają edycję kodu, jeśli zmienimy link do złośliwej witryny, użytkownik nie zauważy, a zmiana zostanie utracona, gdy sieć zostanie odświeżona.

Na przykład zamierzamy zmienić hasło i kliknąć prawym przyciskiem myszy, aby otworzyć inspektora lub edytor kodu i zmienić adres URL change_password.php na http://google.com i zamknąć edytor

POWIĘKSZAĆ

Tak więc, gdy użytkownik kliknie w ten link, zostanie przekierowany na inną stronę, jest to bardzo nieskuteczne, ponieważ przy odświeżaniu lub zmianie strony link powraca do oryginału. To jest dla nas, aby sprawdzić, zanim klikniesz link, który prowadzi nas do bezpiecznej witryny lub w tej samej domenie.

4. Wstrzyknięcie po stronie serwera


Wstrzyknięcie po stronie serwera ma miejsce, gdy witryna internetowa jest podatna na ataki i umożliwia wprowadzanie poleceń z języka lub systemu operacyjnego w celu wykonania działań na serwerze.

Atakujący wysyła złośliwy kod lub polecenie przez pole tekstowe aplikacji internetowej uruchamianej przez serwer sieciowy. Zobaczmy przykład, który pozwoli ci wyświetlić listę katalogów za pomocą polecenia Linux ls, które napiszemy w następujący sposób:

 

POWIĘKSZAĆ

Wynikiem będzie lista wszystkich katalogów na serwerze, więc musimy sprawdzić, czy nie można wprowadzić żadnych poleceń.

POWIĘKSZAĆ

Jednym z narzędzi, które proponuje nam projekt bWAPP jest ZAP (Zed Attack Proxy), to narzędzie widzieliśmy w samouczku Skanuj podatność strony internetowej za pomocą ZAP, jest ono powszechnie używane do skanowania podatności i wykonywania testów penetracyjnych na stronach internetowych. Najbardziej zaktualizowaną wersję możemy pobrać z poniższego linku:

POBIERZ ZAP

Wybierz wersję zgodną z posiadanym przez nas systemem operacyjnym lub wersję wieloplatformową opracowaną w Javie. Po zainstalowaniu spróbujemy przeskanować sieć bWAPP za pomocą ZAP i poszukać niektórych luk.

POWIĘKSZAĆ

Gdy uruchomimy ZAP i wykonamy skanowanie, zobaczymy, że wykrywa większość podatności, aby zdefiniować reguły skanowania możemy przejść do menu Analiza> Reguły skanowania a następnie dwukrotnie klikamy Domyślna polityka.

Zobaczmy na jednej ze stron logowania, że ​​poziom użytkownika jest wysyłany jako parametr, w tym przypadku administrator.

POWIĘKSZAĆ

Możemy również użyć filtrów, jak widzieliśmy w samouczku ZAP, aby wykonać wstrzykiwanie SQL i inne ataki.

Bezpieczeństwo aplikacji internetowych jest bardzo ważnym aspektem oprócz dobrego projektu i treści. bWAPP to platforma, która pozwoli nam poznać i przetestować wiele podatności, a następnie zastosować tę wiedzę na naszej stronie internetowej, a także służy specjalistom, programistom i studentom w wykrywaniu i zapobieganiu podatnościom internetowym.

bWAPP jest szeroko stosowany do testowania penetracji aplikacji internetowych i etycznych projektów hakerskich. bWAPP obejmuje wszystkie główne znane luki w zabezpieczeniach sieci, w tym wszystkie ryzyka projektu OWASP Top 10, który zbiera podatności z roku na rok w 10 kategoriach.

Na koniec polecamy ten artykuł z wyjaśnieniem rodzaje cyberataków.

wave wave wave wave wave