Instructeur: In de vorige
lezing hebben we gezien hoe je HTTPS websites kunt downgraden naar HTTP.
Hierdoor konden we in principe alles zien wat een gebruiker op deze websites
deed, omdat gegevens in HTTP in platte tekst
worden verzonden.
Daarom konden we de gebruikersnamen, de wachtwoorden,
de URL's en alles wat ze doen op HTTPS-websites zien.
Aan het eind van de lezing liet ik ook zien dat
de methode niet werkt tegen Facebook, Twitter en andere websites
die HSTS gebruiken.
De reden waarom het niet werkt tegen deze websites,
is dat moderne webbrowsers een lijst hebben met websites die ze alleen
via HTTPS mogen laden.
Kijk wat we in de vorige lezing deden.
Wanneer een browser een website opvraagt, laden wij die website,
zelfs als hij HTTPS gebruikt, wat
hem altijd de HTTP-versie teruggeeft.
Bij HSTS weet de browser dat deze website, bijvoorbeeld
facebook. com, moet altijd via HTTPS worden geladen.
Dus ook voordat hij dit verzoek naar ons stuurt,
stuurt hij het altijd in HTTPS.
En het wordt altijd alleen geaccepteerd als het als HTTPS terugkomt.
Dus er is niets wat we echt kunnen doen, als we eenmaal
de man in het midden zijn.
Omdat de browser deze controle lokaal uitvoert,
vergelijkt hij deze met een lijst die op de computer
zelf is opgeslagen.
Daarom is momenteel de enige praktische oplossing
om HSTS te omzeilen de browser te laten denken dat hij een andere
website aan het laden is.
Daartoe gaan we alle HSTS links in geladen pagina's vervangen
door soortgelijke links, maar het zijn
niet dezelfde links.
We kunnen bijvoorbeeld facebook vervangen. com met Facebook. koren.
Nu, ik weet dat dit erg verdacht lijkt, maar
geloof me als het in de URL-balk komt, de
RN hier in het midden, zal het erg lijken op de
M-letter.
Een andere manier is om twitter te vervangen. com met twitter.
com,
maar met een enkele T hier in plaats van een dubbele T.
Ik weet dat dit nu een beetje verwarrend klinkt,
maar laat me het praktisch doen, en je zult
zien hoe dit gaat werken.
Dus hier heb ik mijn Kali machine.
En we gaan de HSTS caplet gebruiken die we in de vorige
lezing hebben gebruikt.
Zoals vermeld in de vorige lezing
is dit caplet al geïnstalleerd in de aangepaste Kali,
als u het wilt gebruiken met de originele Kali,
moet u het handmatig downloaden
en in het juiste pad plaatsen,
in user, local, share, bettercap, caplets.
Ik heb de caplet hier.
Zoals ik al zei, dit is al de juiste omdat
ik de aangepaste Kali gebruik, als we daarin gaan,
hebben we een bestand met de naam hstshijack. cap.
Dit is het configuratiebestand van het koppel.
Dus ik ga er rechts op klikken,
ik open het met andere toepassingen, ik klik
op bekijk alle toepassingen.
En je kunt elke tekstverwerker kiezen die je hebt.
Dus ik hou het bij leafpad.
Je moet misschien naar beneden scrollen om
het te vinden, maar ik heb het hier, ik ga het selecteren.
En zoals je ziet hebben we een normaal tekstbestand met
alle configuraties die we kunnen instellen.
En ik heb dit al voor je geconfigureerd.
De belangrijkste dingen die je wilt begrijpen en misschien
veranderen zijn de doelen en de vervangers.
De doelen zijn dus de domeinen die HSTS gebruiken en
die u wilt vervangen.
Ik heb bijvoorbeeld twitter. hier, en ik heb ook
een ster. twitter. com.
In principe is een ster een wild card.
En het betekent eigenlijk elk subdomein. twitter. com is ook een
doelwit.
En de vervanging, je wilt het programma vertellen,
waar dit doel door vervangen moet worden.
Bijvoorbeeld, wanneer we twitter zien. com, we gaan het vervangen
door Twitter. koren.
Hetzelfde geldt voor Facebook en Apple, en een
paar andere domeinen die ik noemde.
U kunt ook spelen met de opties verduisteren
en coderen.
Ik heb ze allebei op false gezet,
omdat ze in principe de code
en de codering zullen verduisteren.
Maar ik heb gemerkt dat sommige browsers zoals Firefox
gecodeerde code blokkeren.
Daarom zet ik beide op false, zodat
de code blijft zoals hij is.
Hier in de payload kun je andere JavaScript-code instellen
die je wilt injecteren, laat dit zo, we zullen
het in een volgende lezing hebben over JavaScript-injectie.
Ten slotte wilt u ervoor zorgen dat de DNS-spoof-domeinen
precies hetzelfde zijn ingesteld als de vervangers hier.
Dus ik kopieer letterlijk deze regel en plak hem hier.
Ik ga dit allemaal hetzelfde houden, ik hoef
er niets aan te veranderen.
Maar zoals ik al zei, als u zich richt op verschillende websites,
of als u verschillende vervangingen wilt gebruiken, bijvoorbeeld
als u een Twitter met een enkele T wilt gebruiken en deze
. com, kunt u dat hier doen.
Als u een Facebook wilde gebruiken met een enkele
O, en deze . com, opnieuw, in plaats van . maïs, je kunt
het hier doen.
Zorg ervoor dat u dit bestand opslaat en afsluit.
En we zijn klaar voor de aanval.
Dus het uitvoeren van deze aanval is eigenlijk identiek
aan wat we in de vorige lezing deden,
je moet er alleen voor zorgen dat je dit bestand goed aanpast.
Dus terug naar bettercap, ik maak het scherm leeg, voer bettercap
uit met hetzelfde commando, en laad dit
bewijs caplet.
Dus we kunnen alle AARP spoofing commando's doen,
en de sniffer automatisch uitvoeren.
En perfect, zoals je ziet loopt alles
zoals verwacht zonder fouten.
Als u dit uitvoert en u krijgt een foutmelding,
sluit dan af en voer bettercap opnieuw uit.
Vervolgens willen we het couplet, de HSTS hijack caplet uitvoeren, precies
zoals in de vorige lezing, alles wat we moeten
doen is HS tab typen, het zal automatisch voor ons
worden ingevuld en op enter drukken om het uit te voeren.
Nogmaals, zoals je kunt zien geen fouten,
dus alles werkt zoals verwacht.
Laten we naar de doelmachine
gaan en kijken hoe dit gaat werken.
Dus ik heb mijn Windows machine hier.
Dit is Chrome, de laatste versie.
En voordat ik iets doe, zoals ik al zei, is
het een goed idee om altijd gewoon de surfgegevens te verwijderen.
En voordat ik websites laad,
is het heel belangrijk om te begrijpen dat zelfs
met alles wat we nu doen, als je naar Facebook
gaat, en typt. com aan het eind hier, het zal
niet werken, wat we nu doen zal niet werken.
Omdat Chrome hier een lijst heeft die is opgeslagen op deze computer
die zegt: laad facebook niet. com, tenzij het over HTTPS
wordt geladen.
Dus als je Facebook hier zo vertelt, zal
het niet werken.
Dat kan alleen als de gebruiker eerst naar een zoekmachine
gaat, bijvoorbeeld google. ie voor Ierland.
En dan in Google, zoals u kunt zien, gebruikt Google geen HSTS.
Dus we omzeilen dit met de normale HTTPS omleiding.
En als de gebruiker hier zoekt naar zijn doelwebsite,
bijvoorbeeld Facebook, dan draait
ons script op de achtergrond.
En het gaat alle links op deze pagina vervangen
voor Facebook. com met Facebook. koren.
Dus als ik hier overheen ga, zie je in de
statusbalk, de website die geladen
wordt is Facebook. maïs, niet facebook.
com.
Dit is prima hier, er staat nog steeds facebook. com.
Maar alleen in de code van de HTML pagina
facebook. com is vervangen door facebook. koren.
Dus als ik op deze link klik, nogmaals, zoals je kunt zien, krijgen
we een normale Facebook pagina.
Maar als je hier bovenaan kijkt, zie je dat er geen HTTPS is.
En als je naar de domeinnaam kijkt, zie
je dat er staat . maïs niet. com.
Nogmaals, zoals ik al zei, je kunt dit eigenlijk houden. com en gebruik Facebook
met één O of je kunt een extra O toevoegen, je kunt hiermee
zo creatief zijn als je wilt.
Dit is slechts een voorbeeld dat ik je geef.
Nu we hier zijn kunnen we normaal inloggen met mijn gebruikersnaam
dus z@zsecurity. org en zet mijn wachtwoord 1234567890.
Druk op enter, en als we teruggaan, scroll je naar boven.
Perfect, zoals u kunt zien, hebben we de gebruikersnamen,
z@zsecurity. org en het wachtwoord tot
en met negen nul.
Zoals ik al zei, kan dit alleen werken als
de gebruiker op Facebook komt via een andere website
die geen HSTS gebruikt.
Als ze op de URL balk gaan en facebook intypen. com zelf zullen we dit niet kunnen
doen, daarom wordt dit beschouwd
als een gedeeltelijke oplossing en niet als een volledige
oplossing.