Instruktor: Do tej pory widzieliśmy wiele
rzeczy, które możemy zrobić, gdy staniemy się mężczyzną pośrodku.
Widzieliśmy więc, jak możemy zobaczyć, co komputer docelowy robi w
sieci.
Dzięki temu mogliśmy zobaczyć strony internetowe, nazwy
użytkowników, hasła, obrazy, wszystko, co ładują
w przeglądarce.
Widzieliśmy też, że ponieważ jesteśmy człowiekiem pośrodku,
jesteśmy w stanie przekierować ich na inne strony internetowe.
Tak więc za każdym
razem, gdy zażądają domeny, możemy przekierować
ich w inne miejsce, wykonując atak fałszowania DNS.
Inną naprawdę fajną rzeczą, którą
możemy zrobić, jest modyfikowanie kodu HTML, modyfikowanie stron, gdy
ładują się one w docelowej przeglądarce.
Oczywiście to wszystko jest możliwe,
ponieważ jesteśmy człowiekiem pośrodku,
ponieważ jesteśmy w stanie przechwycić wszystkie te dane.
Możemy więc poczekać na kod
HTML, czyli kod odpowiedzialny za ładowanie stron internetowych.
A gdy przepływa przez
nasz komputer, możemy wstawić dowolny fragment kodu, który
chcemy, a przeglądarka wykona ten kod.
Teraz HTML jest odpowiedzialny tylko za renderowanie elementów, które
widzisz na stronie internetowej.
Więc odpowiada za przyciski, za fora,
za tekst, tak
naprawdę nie pozwala nam na wiele.
Ale nowoczesne przeglądarki potrafią wykonywać kod JavaScript.
JavaScript to potężny język programowania, którego możemy
użyć do wielu rzeczy, możemy właściwie modyfikować
całą stronę, usuwać elementy
lub dodawać elementy do strony, możemy
podmieniać linki.
I to właśnie
zrobiłem, kiedy zmodyfikowałem wtyczkę HSTS.
Dodałem więc kod, który zastąpi HTTPS HTTP.
Dodałem również kod, który zastąpi rzeczywisty link,
faktyczną nazwę domeny, nazwą domeny fałszywą, tą
z kropką
kukurydzy lub cokolwiek ustawiłeś w skrypcie.
Możesz nawet użyć go do podpięcia przeglądarki do
innych frameworków eksploatujących przeglądarkę, które
możemy wykorzystać do dalszego wykorzystywania celu, a
nawet uzyskania pełnej kontroli nad ich komputerem.
I zobaczymy to w dalszej części kursu.
Ale na razie pokażę, jak wstrzyknąć bardzo
prosty kod JavaScript do załadowanych stron.
A potem będziemy budować na tym w
przyszłych wykładach i zobaczymy, jak potężne i użyteczne może to być.
Więc tutaj mam moją maszynę Kali.
I zanim zacznę lepszy cap
i pokażę jak
wstrzyknąć JavaScript, najpierw musimy mieć trochę kodu
JavaScript do wstrzyknięcia do docelowej przeglądarki.
Więc otworzę edytor tekstu.
Napiszę bardzo, bardzo prosty kod JavaScript.
Jak powiedziałem, zobaczymy, jak możemy to wykorzystać do
uruchomienia bardziej użytecznego kodu.
Ale na razie staramy się to uprościć,
aby zobaczyć, jak faktycznie możemy uruchomić kod JavaScript.
Więc wszystko, co zrobię, to alert, otworzę
nawias, cudzysłów i powiem test JavaScript.
Zamykam cudzysłów, zamykam nawias
i dodam średnik.
Więc tutaj, ten
kod, jedyne co zrobi, to wyświetli ostrzeżenie, wiadomość
ostrzegawczą mówiącą o kodzie JavaScript.
Tak więc, ponieważ zamierzamy wstrzyknąć ten kod do wszystkich stron, za każdym
razem, gdy ładujemy stronę
internetową, powinniśmy zobaczyć komunikat z napisem Test JavaScript.
Teraz zamierzam to uratować.
Więc pójdę do Plik, Zapisz.
Umieszczę to w moim katalogu głównym.
I po prostu nazwę to alarmem. js, wcisnę
Enter.
I to jest teraz zapisane w moim katalogu
głównym, więc jeśli go zamknę, zobaczymy, że mamy plik tutaj.
To jest plik zawierający kod, który
chcemy wstrzyknąć do dowolnej strony internetowej, która ładuje się
na docelowym komputerze.
Następnym krokiem jest przejście do naszej wtyczki porywającej HSTS.
Tak jak pokazałem wcześniej, to było w user, local,
share, bettercap, caplets, HSTS hijack, upewnij się, że używasz
tego, który zawarłem w zasobach, a nie
tego, który jest wbudowany w Bettercap,
ponieważ wbudowany jeden nie będzie działał tak, jak chciałeś.
Więc tutaj mamy hstshijack. plik cap.
To jest plik konfiguracyjny całej wtyczki.
Więc kliknę to prawym
przyciskiem myszy i otworzę w moim edytorze tekstu.
A tutaj to, co
chcemy zmodyfikować, to właśnie tutaj ładunki.
Jak
widać tutaj, już wstrzykuje plik
JavaScript o nazwie keylogger. js, ale chcemy też
wstrzyknąć własny kod.
Więc dodam tutaj przecinek.
I dodam gwiazdkę, a następnie dwukropek.
Dodaliśmy tę gwiazdkę właśnie tutaj, aby powiedzieć, że
chcę wstrzyknąć mój skrypt do dowolnej strony, którą ładuje cel.
Jeśli chcesz wstrzyknąć swój kod do
określonych domen, możesz usunąć gwiazdkę i po prostu
wymienić domeny, do których chcesz wstrzyknąć ten kod tutaj.
Ale tak jak powiedziałem, chcemy wprowadzić to na wszystkie strony.
Więc umieszczę to jako gwiazdę.
A po dwukropku wstawię lokalizację pliku
JavaScript, który chcę wstrzyknąć do
przeglądarki.
Więc jeśli spojrzymy wstecz, to jest
to plik, który właśnie utworzyliśmy, który znajduje się
w katalogu głównym w moim domu i nazywa się alert. js.
Więc wstawię tutaj, powiem po prostu ukośnik do
przodu, a następnie alert. js.
I to wszystko.
Zapiszę ten Ctrl S i wyjdę z Ctrl Q
i jesteśmy gotowi do pracy.
Więc pójdę do mojego terminala, uruchomię bettercap używając dokładnie
tego samego polecenia, którego używaliśmy.
Po prostu dajemy mu interfejs jako eth0 i
dajemy mu nasz plik buforowania, aby automatycznie uruchamiał atak
spoofingu ARPX, umieszczając nas w środku połączenia.
I jak widać, działa to bezbłędnie,
więc wszystko jest idealne.
To, co chcę teraz zrobić,
to uruchomić moją wtyczkę porywającą HSTS.
Jak wiecie, wszystko, co musimy zrobić, to po prostu wpisać H
S i tabulator, to zostanie autouzupełnione, wcisnę Enter
i wszystko działa bez żadnych błędów.
Więc wszystko jest idealne.
Jak widać tutaj, mówi, że
ładunki, to ładowanie, ładunki JavaScript są keyloggerem.
Jest to domyślny plik, który już był wczytywany.
I ten, który właśnie określiliśmy, który znajduje
się w alertach roota. js.
Więc teraz za każdym razem, gdy nasz cel ładuje dowolną stronę internetową, niezależnie od tego,
jaki kod umieścimy w ostrzeżeniu. js powinien
zostać wstrzyknięty do załadowanej strony i
powinien zostać wykonany.
Rezultatem tego powinien być prosty komunikat
o treści test JavaScript.
Przejdźmy więc do celu.
I jak zwykle dobrym pomysłem jest po prostu
usunięcie danych przeglądania, aby upewnić się, że nic nie jest buforowane.
I zawsze lubię najpierw testować w najprostszym przypadku, a
potem przechodzić do bardziej złożonych scenariuszy.
Przede wszystkim przetestuję go na normalnej stronie
HTTP, aby nie było niczego do
ominięcia, żadnego szyfrowania.
Więc po prostu przejdziemy do volnweb. com.
I doskonale, jak widać, mamy tutaj
komunikat ostrzegawczy informujący nas o teście JavaScript.
Zasadniczo oznacza to kod JavaScript
w moim alercie. plik js został wstrzyknięty na tę stronę.
Teraz, gdy sprawdziliśmy, że działa na normalnych stronach HTTP, przetestujmy
go na stronie korzystającej z HTTPS, takiej
jak stackoverflow. com.
Idealnie, działa zgodnie z oczekiwaniami.
Innym przykładem może być linkedin. com.
Pamiętaj, że te witryny używają protokołu HTTPS.
Jak widać, jesteśmy w stanie załadować je tutaj bez
HTTPS, więc tylko przez HTTP.
Więc nawet jeśli zalogujesz się
tutaj, będziesz mógł uzyskać
nazwę użytkownika i hasło, jak pokazano wcześniej.
Na koniec chodźmy i przetestować na stronie HSTS
przy użyciu metody częściowego obejścia HSTS, którą wam pokazałem.
Aby to zadziałało, najpierw musimy przejść do Google
i musimy przejść do domeny Google, która nie
używa HSTS, podobnie jak Google. to znaczy.
W rzeczywistości jest to lokalna witryna Google dla Irlandii.
Jak widać, kod działa.
To jest w porządku.
Google i tak używa tylko protokołu HTTPS.
Ale poszukajmy Facebooka.
Teraz wiemy, że Facebook używa HSTS.
A ponieważ używany jest HSTS, nie powinniśmy być w stanie
wstrzyknąć niczego na stronę,
ponieważ przeglądarka załaduje ją tylko przez HTTPS.
Ale używając naszej metody częściowego obejścia.
Jeśli kliknę stąd na Facebooka, jak widać,
kod zostanie wykonany.
Ponieważ to, co teraz ładujemy, to Facebook. kukurydza, a nie
facebook. com.
Jak widać, znowu otrzymujemy normalną stronę na Facebooku,
która wygląda identycznie.
A jeśli się zalogujesz, będziesz mógł uzyskać nazwę użytkownika
i hasło.
Jak widać, będzie to działać
na stronach HTTP i HTTPS, a nawet HSTS, jeśli cel
szuka tej witryny, a nie jeśli umieści tutaj nazwę domeny.
Więc jeśli cel wchodzi i dosłownie wpisuje facebook. com ręcznie i
naciśnij Enter, przeglądarka wymusi połączenie HTTPS, jak widać tutaj,
ponieważ, jak powiedziałem, ma wstępnie
załadowaną listę stron internetowych, które może
ładować tylko przez HTTPS, a ponieważ przeglądarka nawiązuje połączenie
HTTPS, dane będą zaszyfrowane, dlatego
chcemy móc cokolwiek w nich wstrzyknąć.