Verteller: code-executie kwetsbaarheden.
Met dit soort kwetsbaarheden kunnen we code van
het besturingssysteem uitvoeren op de doelserver.
Dus als de doelserver Windows gebruikt, kunnen
we Windows-commando's uitvoeren,
en als hij Linux gebruikt, kunnen we Linux-commando's gebruiken.
Dit is duidelijk een echt kritiek probleem, dat ons in staat
zou stellen alles te doen wat we willen met
het doelwit, echt waar.
We kunnen een PHP-shell
uploaden met het wget commando of een payload uploaden, een
virus, wat we maar willen,
met het wget Linux commando.
Je moet er alleen voor zorgen dat je het uploadt
naar een bestand of naar een directory,
waar je dingen naar mag schrijven.
Een andere manier om deze kwetsbaarheid uit te buiten,
is om gewoon OS-commando's uit te voeren en een omgekeerd schild te krijgen op
basis van deze commando's.
Dus, omdat we commando's van het besturingssysteem kunnen
uitvoeren, kunnen we de programmeertalen gebruiken
die door dat besturingssysteem worden ondersteund om te proberen een omgekeerde
verbinding op onze computer te krijgen.
Dus, laten we allereerst aannemen dat
we hier aan het browsen
zijn, en we slagen erin om rond te gaan
en dan komen we bij een tabblad op de website waar
je bijvoorbeeld een ping kunt
doen.
Wat je nu moet doen is, je moet altijd
proberen te experimenteren met elk invoerwerk dat je ziet.
Probeer te zien wat die input doet en wat je erin
kunt injecteren, wat je kunt doen
om dingen aan de praat te krijgen.
Dus, bijvoorbeeld, deze input vertelt
je dat hij een ping gaat doen.
En als je een IP zet,
bijvoorbeeld 10 20 14 203, dat is mijn
eigen IP.
Om het te zien, om het te gebruiken als een normaal
persoon, ga ik een submit doen en het gaat door en ping het voor
mij en geeft me de ping resultaten.
Dus, wat hier lijkt, is eigenlijk het
uitvoeren van het ping commando, in Linux
systemen.
Eens kijken of we dat kunnen uitbuiten.
Als het daadwerkelijk het ping commando uitvoert.
Dus, wat het doet is,
het gaat, en het doet.
Dus we sturen 10 20 14 203 als ping.
En dan gaat het naar de
webserver en de webserver doet ping, 10 20 14 203.
Eens kijken of we dit kunnen uitbuiten.
Hoe zouden we het uitbuiten?
Het is genomen wat we hier invoeren.
En dan, het doet ping, dat.
In Linux en Unix gebaseerde commando's kun je
dit teken gebruiken om meerdere commando's op één regel
uit te voeren.
Dus, als je dit doet, bijvoorbeeld in je eigen terminal, dus,
ik ga gewoon door mijn terminal, hier.
En ik ga gewoon LS doen, dat is het lijstcommando
en PWD is wat je werkdirectory
laat zien.
Dus, als ik een LS doe, gevolgd door dit teken
en dan PWD doe, zal het beide commando's uitvoeren.
Dus, het zal dit doen en dan zal het laten zien
waar de werkmap is.
Dus, we kunnen hetzelfde doen met dit en kijken
of het voor ons werkt.
Dus, we gaan IP invoeren, een rechts
IP, en dan ga ik gewoon PWD
doen en kijken of het PWD voor mij wordt uitgevoerd.
Als dat zo is, dan is dit een
kwetsbaarheid voor code-uitvoering
en kan ik alles uitvoeren wat ik wil op de server.
Dus, laten we kijken wat er gaat gebeuren.
Ik heb dit geplakt, en ik ga op verzenden drukken.
En zoals je ziet, kregen we de ping-resultaten,
maar aan het eind kregen we onze huidige
werkdirectory.
Dus, zijn via wwwdvwa kwetsbaarheid is een exec.
Dus, het voerde de PWD uit die ik invoerde.
En dat betekent dat ik er alle commando's in kan stoppen
die ik wil, en ze zullen worden uitgevoerd.
Ik heb dus een bronnenbestand ingevoegd dat
u kunt gebruiken om een omgekeerde verbinding te krijgen
van de doelcomputer.
Nu, er zijn een aantal manieren,
een aantal commando's die je een omgekeerde
verbinding geven.
Al deze commando's zijn afhankelijk van de programmeertaal.
Dus, bijvoorbeeld, we hebben commando's in
PHP, we hebben commando's in Ruby, je hebt Pearl commando's
en we hebben die voor Bash.
Bash is de Linux-shell en -taal.
Alle Unix-besturingssystemen kunnen dus Bash-commando's
uitvoeren.
Dus, dat is een heel goede manier om het te doen.
Dit commando zou dus op de meeste
Unix-systemen moeten werken.
Dus, dit zou echt een goede manier zijn om het te doen.
Nogmaals, de meeste hebben Python, dus
Python zou een goede manier zijn.
Netcat, de meeste hebben ook Netcat.
Dus, Netcat is een goede manier om dat te doen.
En we gaan Netcat gebruiken in deze video.
Dus, wat ik ga doen is, eerst ga
ik luisteren naar verbindingen,
net zoals we deden met Metasploit,
toen we multihandler deden.
U kunt hiervoor een multihandler gebruiken, en
luisteren naar een verbinding.
Nou, ik hou het simpeler en laat je
een nieuwe manier zien.
En ik ga Netcat gebruiken.
Dus, Netcat.
Netcat is gewoon een programma waarmee je computers
kunt beluisteren en met elkaar kunt verbinden.
Dus, ik ga luisteren op poort 80 80.
Dus, Netcat is het programma.
vv is gewoon om verbose output te zien, zodat we
veel output kunnen zien, als er iets
fout gaat, kunnen we het zien.
En we vertellen hem te luisteren,
met de L optie op poort 8080.
Dus, ik druk op enter, en
dat zegt gewoon luisteren op poort 8080, dat is alles
wat het gaat doen.
Het volgende commando dat we gaan doen is, we gaan
proberen een verbinding te maken van de
webserver naar mijn computer, ook met Netcat.
Dus we nemen aan dat de webserver Netcat heeft.
We gaan het proberen en kijken of dat werkt.
Het commando is dus heel eenvoudig.
Het is Netcat en we vertellen het om bin bash te gebruiken.
En we geven het de IP van mijn apparaat.
Mijn aanvalsapparaat, dat is 10 20 14.
En dan de poort die 8080 is.
Dat is waar we naar luisteren, hier.
Dus, ik ga dat kopiëren.
En ik ga het op dezelfde
manier uitvoeren
als het PWD commando.
Dus, het laatste wat we deden, was, 10 20 14 203.
En toen deden we PWD.
Dus, wat ik nu ga doen,
ik ga de PWD verwijderen en de code
plakken die we net gemaakt hebben, die we gaan
proberen een verbinding te maken van de webserver terug naar
de cally machine naar de aanvaller machine.
En, ik kom hierheen.
En, zoals u kunt zien, kregen we een
verbinding terug van, naar ons, van 10 20 14 204.
Dus, dat is de vertraagde computer.
En als we een PWD doen, zul je zien dat we een omgekeerde
schil hebben als we een LS doen.
Als we een ID doen, zie je dat we wwwdata zijn en je bent vrij om (mompelt)
je naam A te noemen, gewoon ter bevestiging.
Dat ik in de Metasploitable zit en je kunt zien dat ik in
de Metasploitable zit.
En ik kan elk gewenst commando uitvoeren op de doelcomputer.
Dus eigenlijk heb ik volledige toegang tot de doelcomputer.