Instruktor: W
poprzednim wykładzie widzieliśmy, jak zmienić wersję stron HTTPS na HTTP.
A to pozwoliło nam w zasadzie zobaczyć wszystko, co użytkownik robi na
tych stronach, ponieważ dane w HTTP są wysyłane
w postaci zwykłego tekstu.
Dlatego mogliśmy zobaczyć nazwy użytkowników,
hasła, adresy URL i wszystko, co robią na stronach HTTPS.
Pod koniec wykładu pokazałem również, że
metoda nie zadziała na Facebooku, Twitterze i innych serwisach
korzystających z HSTS.
Powód, dla którego nie będzie działać z
tymi witrynami, ponieważ nowoczesne przeglądarki internetowe zawierają listę witryn, które
powinny ładować tylko przez HTTPS.
Zobacz, co robiliśmy w poprzednim wykładzie.
Za każdym razem, gdy przeglądarka żąda strony internetowej, ładujemy tę stronę,
nawet jeśli korzysta z
HTTPS, co zawsze oddajemy w wersji HTTP.
W HSTS przeglądarka wie, że ta strona internetowa,
na przykład facebook. com, należy zawsze ładować przez HTTPS.
Więc nawet przed wysłaniem tego żądania do
nas, zawsze wyśle je w HTTPS.
I zawsze będzie akceptowany tylko wtedy, gdy wróci jako HTTPS.
Tak naprawdę nic nie możemy zrobić, kiedy
staniemy się mężczyzną pośrodku.
Ponieważ przeglądarka przeprowadza to sprawdzenie
lokalnie, porównuje to z listą przechowywaną
na samym komputerze.
Dlatego jedynym praktycznym rozwiązaniem w tej
chwili na ominięcie HSTS jest sprawienie, by przeglądarka myślała,
że ładuje inną witrynę.
W tym celu zastąpimy wszystkie linki HSTS na
załadowanych stronach podobnymi linkami, ale nie
są to te same linki.
Na przykład możemy zastąpić Facebooka. com z Facebookiem. kukurydza.
Wiem, że to wydaje się bardzo podejrzane, ale
zaufaj mi, kiedy trafi do paska adresu
URL, RN tutaj pośrodku, będzie wyglądać bardzo podobnie do
litery M.
Innym sposobem na zrobienie tego, możesz zastąpić Twittera. com
z Twitterem. com, ale z pojedynczym T
zamiast podwójnego T.
Wiem, że teraz brzmi to trochę myląc, ale
pozwól mi odejść i zrobić to praktycznie,
a zobaczysz, jak to zadziała.
Więc tutaj mam moją maszynę Kali.
I faktycznie użyjemy capletu HSTS, którego używaliśmy
w poprzednim wykładzie.
Jak wspomniano w poprzednim
wykładzie, ten caplet jest już zainstalowany w niestandardowym Kali,
jeśli chcesz go używać z oryginalnym
Kali, musisz go
ręcznie pobrać i umieścić we
właściwej ścieżce, w user, local, share , lepsza czapka, kapletki.
Mam tu kaplet.
Jak powiedziałem, to już jest
poprawny, ponieważ używam niestandardowego Kali, jeśli wejdziemy
do niego, mamy plik o nazwie hstshijack. czapka.
To jest plik konfiguracyjny dwuwierszy.
Więc kliknę prawym
przyciskiem myszy, otworzę to w innej
aplikacji, kliknę na wyświetl wszystkie aplikacje.
I chcesz wybrać dowolny edytor tekstu, który masz.
Więc zatrzymam to w notatniku.
Być może będziesz musiał przewinąć w
dół, aby to znaleźć, ale mam to tutaj, wybiorę.
Jak widać, mamy normalny plik tekstowy ze
wszystkimi konfiguracjami, które możemy ustawić.
I już to dla ciebie skonfigurowałem.
Główne rzeczy, które chcesz zrozumieć i być
może zmienić, to cele i zamienniki.
Tak więc celami są domeny korzystające z HSTS,
które chcesz zastąpić.
Na przykład mam Twittera. com tutaj, a ja
też mam gwiazdę. świergot. com.
Zasadniczo, gdy używasz gwiazdki, jest to dzika karta.
I to w zasadzie oznacza dowolną subdomenę. świergot. com
jest również celem.
I zamiennik, który chcesz powiedzieć programowi,
czym ma zastąpić ten cel.
Na przykład, gdy widzimy Twittera. com,
zastąpimy go Twitterem. kukurydza.
Podobnie jest z Facebookiem i Apple oraz kilkoma
innymi domenami, o których wspomniałem.
Możesz także bawić się opcjami
zaciemniania i kodowania.
Ustawiłem oba na fałszywe,
ponieważ zasadniczo to,
co zrobią, zaciemniają kod i zaszyfrują.
Zauważyłem jednak, że niektóre przeglądarki, takie jak Firefox, blokują
zaciemniony lub zakodowany kod.
Dlatego ustawiłem obie te wartości na fałsz,
aby kod pozostał taki, jak jest.
Tutaj w ładunku możesz ustawić dowolny inny kod
JavaScript, który chcesz wstrzyknąć, zostaw
to bez zmian, o wstrzyknięciu JavaScript porozmawiamy w przyszłym wykładzie.
Na koniec chcesz się upewnić, że domeny
spoof DNS są ustawione dokładnie tak samo, jak zamienniki tutaj.
Więc dosłownie kopiuję tę linię i wklejam ją tutaj.
Teraz zamierzam zachować to wszystko bez zmian,
nie muszę niczego modyfikować.
Ale tak jak powiedziałem, jeśli kierujesz reklamy na różne
witryny lub jeśli chcesz użyć różnych zamienników, na przykład,
jeśli chcesz użyć Twittera z jednym T i
zachować to . com, możesz to zrobić tutaj.
Jeśli chcesz użyć Facebooka z jednym O i zachowaj
to . com, ponownie, zamiast . kukurydza,
możesz to zrobić tutaj.
Po zakończeniu zapisz i zamknij ten plik.
I jesteśmy gotowi do ataku.
Więc uruchomienie tego ataku będzie w rzeczywistości identyczne
z tym, co zrobiliśmy w
poprzednim wykładzie, po prostu chcesz się upewnić, że poprawnie zmodyfikujesz ten plik.
Więc wracając do bettercap, wyczyszczę ekran, uruchomię bettercap
z tą samą komendą, ładując
ten dowód caplet.
Więc możemy wykonać wszystkie polecenia AARP spoofing
i uruchomić sniffera wszystkie automatycznie.
I idealnie, jak widać, wszystko działa
zgodnie z oczekiwaniami, bez błędów.
Jeśli to uruchomisz i pojawi
się błąd, po prostu wyjdź i ponownie uruchom Bettercap.
Następnie chcemy uruchomić dwuwiersz, caplet przechwytujący HSTS, dokładnie tak, jak pokazano
w poprzednim wykładzie, wszystko, co
musimy zrobić, to wpisać zakładkę HS,
autouzupełnia się za nas i nacisnąć Enter, aby ją uruchomić.
Ponownie, ponieważ nie widać błędów,
więc wszystko działa zgodnie z oczekiwaniami.
Przejdźmy do maszyny
docelowej i zobaczmy, jak to zadziała.
Więc mam tutaj swój komputer z systemem Windows.
To jest Chrome, najnowsza wersja.
I zanim cokolwiek zrobię, tak
jak powiedziałem, dobrym pomysłem jest zawsze po prostu usunąć dane przeglądania.
I zanim faktycznie załaduję jakiekolwiek strony
internetowe, bardzo ważne jest, aby zrozumieć, że nawet we wszystkim,
co robimy teraz, jeśli spróbujesz wejść na Facebooka
i wpisać . com na koniec tutaj to
nie zadziała, to co robimy w tej chwili nie zadziała.
Ponieważ Chrome tutaj ma listę przechowywaną na tym komputerze, która
mówi, że nie ładuj facebooka. com, chyba że
jest ładowany przez HTTPS.
Więc jeśli powiesz Facebookowi w ten sposób,
to nie zadziała.
Jedyny sposób, w jaki możemy to zrobić, to jeśli użytkownik najpierw
przejdzie do wyszukiwarki, na przykład google. tj. dla Irlandii.
A potem w Google, jak widać, Google nie używa HSTS.
Więc omijamy to za pomocą normalnego obejścia HTTPS.
A jeśli użytkownik tutaj szuka swojej docelowej
strony, na przykład Facebooka,
nasz skrypt będzie działał w tle.
I zastąpi wszystkie linki na tej stronie
dla facebooka. com z facebookiem. kukurydza.
Jeśli więc najadę na to kursorem, zobaczysz
na pasku stanu stronę, która
zostanie załadowana, to Facebook. kukurydza, a nie
facebook. com.
Tutaj jest dobrze, nadal jest napisane facebook. com.
Ale tylko w kodzie strony HTML
na Facebooku. com został zastąpiony przez facebook. kukurydza.
Więc jeśli ponownie kliknę w ten link, jak widać, otrzymamy
normalną stronę na Facebooku.
Ale jeśli spojrzysz tutaj na górę, zobaczysz, że nie ma HTTPS.
A jeśli spojrzysz na nazwę domeny, zobaczysz,
że mówi . kukurydza nie. com.
Ponownie, jak powiedziałem, możesz zachować to . com i używaj
Facebooka z jednym O lub możesz dodać dodatkowe O, dzięki
temu możesz być tak kreatywny, jak chcesz.
To tylko przykład, który wam podaję.
Teraz, gdy już tu jesteśmy, możemy normalnie logować się przy użyciu
mojej nazwy użytkownika, więc z@zsecurity. org i wpisz moje hasło 1234567890.
Naciśnij enter, a jeśli wrócimy, przewiń w górę.
Idealnie, jak widać, mamy
nazwy użytkowników, z@zsecurity. org i hasło aż
do dziewięciu zera.
Teraz, jak powiedziałem, jedynym sposobem, aby to
zadziałało, jest przejście użytkownika do Facebooka przez inną witrynę,
która nie korzysta z HSTS.
Jeśli wejdą na pasek adresu URL i wpiszą facebook. com sami nie będziemy w
stanie tego zrobić, dlatego
jest to uważane za rozwiązanie częściowe, a
nie pełne.