Instructeur: Tot nu toe hebben we een aantal dingen
gezien die we kunnen doen als we de man in het midden worden.
We hebben dus gezien hoe we alles kunnen zien wat een doelcomputer op het
netwerk doet.
We konden dus de websites zien, de gebruikersnamen,
de wachtwoorden, de afbeeldingen, alles wat ze
in hun browser laadden.
We zagen ook dat we, omdat we de man in het midden
zijn, hen kunnen omleiden naar andere websites.
Dus wanneer ze een domein aanvragen,
kunnen we ze omleiden naar ergens anders
door een DNS spoofing aanval uit te voeren.
Een ander heel leuk ding dat we kunnen
doen is de HTML wijzigen, de pagina's wijzigen, terwijl
ze worden geladen in de doelbrowser.
Uiteraard is dit allemaal mogelijk
omdat wij de man in het midden zijn,
omdat we al deze gegevens kunnen onderscheppen.
We kunnen dus wachten op de HTML-code,
die verantwoordelijk is voor het laden van webpagina's.
En terwijl het door onze computer stroomt,
kunnen we elk stukje code invoegen dat we willen, en de
browser zal deze code uitvoeren.
Nu is HTML alleen verantwoordelijk voor het weergeven van de elementen
die je op de webpagina ziet.
Dus het is verantwoordelijk voor de knoppen,
voor de forums, voor de tekst, het
staat ons niet echt toe om veel te doen.
Maar moderne browsers kunnen JavaScript-code uitvoeren.
JavaScript is een krachtige programmeertaal waarmee
we zoveel dingen kunnen doen, we kunnen de hele pagina
aanpassen, elementen verwijderen
of toevoegen aan de pagina, we kunnen links vervangen.
En dit is eigenlijk wat ik deed
toen ik de HSTS plugin aanpaste.
Dus heb ik code toegevoegd die de HTTPS vervangt door HTTP.
En ik heb ook code toegevoegd die de werkelijke link, de werkelijke
domeinnaam vervangt door de spoof-domeinnaam, door
die met de punt maïs, of naar
wat je er in het script naar instelt.
Je kunt het zelfs gebruiken om de browser te koppelen aan andere browser-exploitatieraamwerken,
die we kunnen gebruiken om het doelwit verder te exploiteren
en zelfs volledige controle over hun computer te krijgen.
En dat zullen we later in de cursus zien.
Maar voor nu ga ik je laten zien hoe je een heel eenvoudige JavaScript-code
in de geladen pagina's injecteert.
En dan zullen we daarop voortbouwen in toekomstige
lezingen en zien hoe krachtig en nuttig dit kan zijn.
Dus hier heb ik mijn Kali machine.
En voordat ik de pet opdoe en laat zien
hoe je JavaScript injecteert,
moeten we eerst wat JavaScript-code hebben om in
de doelbrowser te injecteren.
Dus ik ga een tekstverwerker openen.
En ik ga een zeer, zeer eenvoudige JavaScript code schrijven.
Zoals ik al zei, we zullen zien hoe we dit kunnen gebruiken
om meer nuttige code te draaien.
Maar voor nu houden we dit eenvoudig om te zien
hoe we JavaScript code kunnen uitvoeren.
Dus alles wat ik ga doen is alert, open een haakje,
aanhalingsteken en ik zeg JavaScript test.
Ik sluit het aanhalingsteken en het haakje
en voeg een puntkomma toe.
Dus hier, deze code, alles wat het
gaat doen is een waarschuwing weergeven, een alert bericht
met JavaScript code.
Dus omdat we gaan proberen deze code in alle pagina's te injecteren, zouden we elke
keer dat we een webpagina laden een
bericht moeten zien met de tekst JavaScript-test.
Nu ga ik dit bewaren.
Dus ik ga naar Bestand, Opslaan.
En ik ga dit in mijn root directory zetten.
En ik ga het gewoon alert noemen. Js, ik druk op
Enter.
En dat is nu opgeslagen in mijn root, dus als ik het afsluit,
kunnen we zien dat we het bestand hier hebben.
Dit is dus het bestand dat de code bevat
die we willen injecteren in elke webpagina die op de doelcomputer
wordt geladen.
De volgende stap is om naar onze HSTS hijack plugin te gaan.
Dus zoals ik je eerder liet zien, dit was in user, local, share,
bettercap, caplets, HSTS hijack, zorg ervoor dat je degene
gebruikt die ik in de bronnen heb opgenomen, niet
degene die bij bettercap is ingebouwd, want de
ingebouwde zal niet werken zoals je wilde.
Dus hier hebben we de hstshijack. cap file.
Dit is het configuratiebestand voor de hele plugin.
Dus ik ga hier met de rechtermuisknop
op klikken en open het met mijn tekstverwerker.
En hier willen we de
payloads aanpassen.
Dus zoals je hier kunt
zien, injecteert het al een JavaScript
bestand genaamd keylogger. js, maar we willen ook onze eigen
code injecteren.
Dus ik voeg hier een komma toe.
En ik ga een sterretje toevoegen, gevolgd door een dubbele punt.
We hebben deze ster hier toegevoegd om aan te geven dat ik
mijn script wil injecteren in elke pagina die het doelwit laadt.
Als u uw code in specifieke domeinen wilt injecteren,
dan kunt u de ster verwijderen en gewoon de domeinen
vermelden waarin u deze code wilt injecteren.
Maar zoals ik al zei, we willen dit in alle pagina's injecteren.
Dus ik zet dit als een ster.
En na de dubbele punt zet ik de locatie van het JavaScript-bestand
dat ik in de browser wil injecteren.
Dus als we hier terugkijken, is dit het
bestand dat we zojuist hebben aangemaakt, dat
in de root van mijn huis staat, en het heet alert. js.
Dus ik zet hier, ik zeg gewoon forward slash root,
gevolgd door alert. js.
En dat is het.
Ik ga dit opslaan Ctrl S en afsluiten Ctrl
Q, en we zijn klaar.
Dus ik ga naar mijn terminal, ik ga bettercap draaien met exact hetzelfde
commando dat we gebruikt hebben.
Dus we geven het gewoon de interface als eth0,
en we geven het ons spool bestand om automatisch
een ARPX spoofing aanval uit te voeren.
En zoals je ziet, werkt dit zonder fouten,
dus alles is perfect.
Wat ik nu ook wil doen is mijn HSTS
hijack plugin uitvoeren.
En zoals je weet, hoeven we alleen maar H S en tab te typen, dit
wordt automatisch ingevuld, ik druk op Enter,
en alles loopt zonder fouten.
Dus alles is perfect.
En zoals je hier kunt zien, zegt het dat de payloads, het
laden van de JavaScript payloads de keylogger zijn.
Dit is de standaard die het bestand al aan het laden was.
En degene die we net gespecificeerd hebben,
die staat in root alerts. js.
Dus wanneer ons doelwit een webpagina laadt, zal de code die we in
de waarschuwing zetten. js moet worden geïnjecteerd
in de geladen pagina, en het moet worden
uitgevoerd.
Het resultaat daarvan zou ons een eenvoudig bericht moeten
tonen dat zegt test JavaScript.
Dus laten we naar het doel gaan.
En zoals gewoonlijk is het een goed idee om de browsegegevens
te verwijderen om er zeker van te zijn dat er niets in de cache zit.
En ik test altijd graag eerst met het eenvoudigste geval, en
ga dan verder met complexere scenario's.
Dus allereerst ga ik het testen tegen een normale HTTP-pagina,
zodat er niets te omzeilen valt, geen enkele
versleuteling.
Dus we gaan gewoon naar volnweb. com.
En perfect, zoals je ziet, hebben we hier een waarschuwingsbericht
dat ons de JavaScript-test vertelt.
Dus eigenlijk betekent dit de JavaScript
code in mijn alert. js bestand werd geïnjecteerd in deze pagina.
Nu we hebben geverifieerd dat het werkt tegen normale HTTP-pagina's, gaan
we het testen tegen een pagina die HTTPS gebruikt, zoals
stackoverflow. com.
Perfect, het werkt zoals verwacht.
Een ander voorbeeld is linkedin. com.
Vergeet niet dat deze websites HTTPS gebruiken.
En zoals je ziet, kunnen we ze laden zonder HTTPS,
dus alleen via HTTP.
Dus ook als u hier inlogt, kunt u de gebruikersnaam
en het wachtwoord krijgen zoals
eerder getoond.
Laten we tenslotte gaan testen tegen HSTS website met de gedeeltelijke
HSTS omzeilingsmethode die ik je heb laten zien.
Dus om dat te laten werken, moeten we eerst naar
Google en we moeten naar een Google-domein dat geen
HSTS gebruikt, zoals google. dat wil zeggen.
Dit is eigenlijk de lokale Google website voor Ierland.
En zoals je ziet, werkt de code.
Dit is prima.
Google gebruikt sowieso alleen HTTPS.
Maar laten we op zoek gaan naar Facebook.
Nu weten we dat Facebook HSTS gebruikt.
En omdat HSTS wordt gebruikt, zouden we niets op de website moeten
kunnen injecteren, omdat de browser
het alleen via HTTPS zal laden.
Maar met onze gedeeltelijke omleidingsmethode.
Als ik vanaf hier op Facebook klik, wordt
de code uitgevoerd.
Want wat we nu laden is Facebook. maïs, niet facebook.
com.
En zoals je ziet, krijgen we weer een normale Facebook pagina,
die er identiek uitziet.
En als je inlogt, krijg je de gebruikersnaam en het
wachtwoord.
Dus zoals je ziet, werkt dit tegen HTTP
en HTTPS pagina's en zelfs HSTS als het doel zoekt naar die
website, niet als ze de domeinnaam hier in zetten.
Dus als het doelwit binnenkomt en letterlijk Facebook typt. com handmatig en druk op enter, de
browser zal de HTTPS-verbinding forceren zoals je hier kunt zien, want
zoals ik al zei, het heeft een vooraf geladen
lijst van websites die het alleen kan laden over HTTPS
en omdat de browser HTTPS-verbinding maakt, zullen de gegevens worden
versleuteld, en daarom willen we in staat
zijn om alles te injecteren in.