Verteller: In deze
lezing gaan we kijken
naar kwetsbaarheden voor het uploaden van bestanden.
Dit zijn de eenvoudigste soorten kwetsbaarheden,
omdat ze ons in staat stellen elk type bestand te uploaden.
Als de doelcomputer bijvoorbeeld php kan begrijpen, kunnen
we een php-bestand of een php-shell uploaden en volledige
controle krijgen over de doelcomputer.
Als de doelcomputer of de doelserver Python of een
andere taal begrijpt, kunt u gewoon
Python-code, Python-shell
of Ruby-shell uploaden.
U kunt deze shells maken met
Veil-Evasion of Metasploit,
of u kunt uw eigen php- of Python-shell gebruiken.
Wat we vandaag gaan
doen, is kijken naar een
tool genaamd weevly die php-shells genereert
en ons toegang verschaft en een
aantal coole dingen laat doen op de doelcomputer.
Dus, ten eerste, ik heb mijn DVWA hier.
En meestal als je een website probeert te testen, raad
ik aan om, voordat je
hulpmiddelen of wat dan ook gebruikt, nadat
je informatie hebt verzameld, gewoon naar
binnen te gaan en te proberen de website te bekijken.
Kijk wat je kunt zien, krijg gewoon een gevoel van de website.
Kijk wat erop geïnstalleerd is en zo.
En probeer alle kenmerken die je ziet uit te buiten.
Dus bijvoorbeeld, laten we zeggen dat je op alles
ging, en toen kwam je bij de upload.
We zien dat deze website ons toestaat een bestand te uploaden.
Dit kan soms een website zijn waarmee je een profielfoto
kunt uploaden, een foto, als het een geclassificeerde
website is, misschien kun je foto's uploaden van
auto's of wat je ook probeert toe te voegen aan de
website.
Dus, zoals u hier kunt zien, verwacht de website dat
u een afbeelding kiest en een afbeelding uploadt.
Eens kijken of we eerst een afbeelding kunnen uploaden.
Dus ik ga op mijn downloads en ik heb
een foto hier in de bronnen.
Gewoon een foto van een auto.
Ik ga het uploaden en kijken of het geüpload wordt.
En we kunnen zien dat de upload succesvol
was en het is opgeslagen op deze specifieke locatie dus
zijn ....
wat betekent twee mappen terug en dan deze bestandsnaam.
Dus laten we kijken of de foto daadwerkelijk is geüpload.
Dus ik haal twee mappen weg,
ik haal de kwetsbaarheden en de upload weg.
Ik gebruik alleen dat.
En dan krijgen we deze locatie op de server, om te zien
of de foto goed is geupload.
En zoals we kunnen zien is de foto geüpload, dus
dat is allemaal goed.
Het volgende dat we
willen doen, is een php-bestand uploaden.
En om dat te doen, gaan we een programma gebruiken
dat weevly heet,
zoals ik al zei, om een payload of een commandoregel te maken.
En het wordt duidelijk een php schil.
Je kunt metasploit gebruiken zoals
ik zei om een php payload te maken,
maar we zullen moeten kijken naar een ander hulpmiddel
dat is ontworpen voor penetratie testen van web applicaties.
Dus het gereedschap is heel eenvoudig,
we zetten de naam van het gereedschap, en dat is Weevly.
En dan gaan we genereren, omdat we een payload
of een shell-bestand willen genereren.
Dan zetten we een wachtwoord voor dat bestand,
zodat alleen wij toegang hebben en de website kunnen controleren als we
het naar de website uploaden.
Dus mijn wachtwoord wordt 1-2-3-4-5-6.
En dan ga ik zeggen waar ik het wil opslaan.
En ik wil het opslaan in root en
ik noem het shell. php.
Dus heel simpel, weevly is de naam van het programma.
Genereren is het genereren van een schelp.
Het wachtwoord waarmee de shell
ons gaat authenticeren, en het wordt
opgeslagen in root/shell. php.
Ik druk op enter en het is nu aangemaakt,
als ik al in mijn root zit dus ik doe gewoon ls zou ik het moeten zien.
En we kunnen het hier zien.
Dus, het volgende is dat we teruggaan naar onze
website en proberen dat omhulsel te uploaden.
En ik ga op zoek naar schelp en hier is het.
En ik drukte op uploaden.
En zoals je kunt zien is het
bestand succesvol geupload en staat het
op dezelfde plaats als de foto.
Dus alles wat we nu moeten doen is dezelfde link gebruiken en we gebruiken weer
weevly om te communiceren met de shell
die we hebben geupload.
Laten we nu eerst kijken of de shell bestaat
en correct is geüpload.
Dus ik ga er gewoon doorheen bladeren via mijn browser.
Schelp. php en je ziet dat je een lege pagina
krijgt dus we krijgen geen 404 file not
found wat betekent dat het bestand is geupload en dat het er is.
Dus we gaan proberen er interactief mee om te gaan.
Om er verbinding mee te maken, typen we
weevly in, en dan zetten we de URL waar de shell is.
Dus hier is onze schelp geupload.
En dan gaan we het wachtwoord invoeren.
Dus mijn wachtwoord was 1-2-3-4-5-6.
Heel eenvoudig, weevly, de URL waar het bestand staat
en 1-2-3-4-5-6.
Dit lijkt erg op wanneer u uw multi-handler gebruikt
die wacht op verbindingen of verbonden
is via uw achterdeur.
Dus we gaan letterlijk verbinding
maken met de achterdeur die we hebben geupload.
En zoals je ziet, zitten we nu in het
bestandssysteem, dus vanaf hier kun je eigenlijk elk
Linux commando intikken.
En je kunt het uitvoeren op de doelcomputer
en je ziet het resultaat hier.
Dus als ik een pwd doe, zul je
zien dat ik in var/www/hackable/uploads zit en als ik een
id doe, zie ik mijn huidige
gebruiker www. gegevens.
En als je uname -a doet om te bevestigen dat dit de metasploegbare
machine is, zul je zien dat dit de Linux metasploegbare
machine is.
Nu kunnen we alles doen wat we willen.
We kunnen de bestanden opnoemen, we kunnen navigeren.
Je kunt elk Linux commando doen dat je wilt.
Nu zijn we veranderd, onze plaats is veranderd.
Weevly biedt nog veel meer mogelijkheden dan alleen dit.
Dus je kunt er een aantal leuke dingen mee doen.
Als je help intikt, zie je alle leuke dingen die
je met weevly kunt doen.
Dus je kunt proberen je privileges te verhogen.
SQL-queries uitvoeren en een heleboel leuke dingen die alleen bedoeld zijn
voor penetratietests van webtoepassingen.
Voor nu laat ik het hierbij.
En dit laat alleen maar zien hoe
je File Upload Vulnerabilites gebruikt.