Narratore: vulnerabilità legate all'esecuzione di codice.
Questo tipo di vulnerabilità ci consente di
eseguire il codice del sistema operativo sul server di destinazione.
Quindi, se il server di destinazione utilizza Windows, saremo
in grado di eseguire il comando
di Windows, se utilizza Linux, allora saremo in grado di utilizzare i comandi di Linux.
Chiaramente, questo è un problema davvero critico, che ci
permetterebbe di fare tutto ciò che vogliamo
con l'obiettivo, davvero.
Possiamo caricare una shell
PHP, usando il comando wget o caricare un payload, un virus,
tutto ciò
che vogliamo, usando il comando wget Linux.
Devi solo assicurarti di caricarlo su
un file o su una
directory in cui puoi scrivere cose.
Un altro modo di sfruttare questa vulnerabilità è quello
di eseguire semplicemente i comandi del sistema operativo e ottenere uno scudo inverso
basato su questi comandi.
Quindi, poiché possiamo eseguire i comandi del sistema
operativo, possiamo usare i linguaggi
di programmazione supportati da quel sistema operativo per provare a
ottenere una connessione inversa sul nostro computer.
Quindi, prima di tutto, supponiamo che stiamo
navigando qui,
e riusciamo ad andare in giro e poi
siamo arrivati a una scheda nel sito Web in
cui ti consente di, ad esempio,
fare un ping.
Ora quello che dovresti fare
è, dovresti sempre provare a sperimentare qualsiasi lavoro di input che vedi.
Prova a vedere cosa funziona quell'input e
cosa puoi iniettarci, cosa
puoi fare per far funzionare le cose.
Quindi, ad esempio, questo input funziona ti
sta dicendo che farà un ping.
E, se inserisci un
IP, ad esempio inserirò 10 20 14 203, che è
il mio IP.
Solo per vederlo, per usarlo come una persona normale,
farò un invio e andrà avanti, eseguirò il ping per me
e mi darà i risultati del ping.
Quindi, quello che sembra qui, sta
effettivamente eseguendo il comando ping, nei
sistemi Linux.
Ora vediamo se riusciamo a sfruttarlo.
Se sta effettivamente eseguendo il comando ping.
Quindi, quello che sta facendo
è, sta andando e sta facendo.
Quindi, stiamo inviando 10 20 14 203 come ping.
E poi andrà al web
server e il web server sta eseguendo il ping, 10 20 14 203.
Quindi, vediamo se possiamo sfruttare questo.
Come lo sfrutteremmo?
È preso quello che stiamo introducendo, proprio qui.
E poi, sta facendo il ping, quello.
Ora, nei comandi basati su Linux e Unix
puoi usare, questo segno per eseguire più comandi, su
una riga.
Quindi, se lo fai, ad esempio nel tuo terminale, quindi,
andrò attraverso il mio terminale, qui.
E ho intenzione di fare LS, che è il comando list
e quindi PWD è ciò che
elenca, che mostra la tua directory di lavoro.
Quindi, se faccio un LS, seguito da
questo segno e poi faccio PWD, eseguirà entrambi i comandi.
Quindi, lo farà e poi mostrerà dove si trova
la directory di lavoro.
Quindi, possiamo fare la stessa cosa con questo e vedere
se funziona per noi.
Quindi, inseriremo l'IP, un IP corretto,
e poi farò
PWD e vedrò se eseguirà il PWD per me.
In tal caso, si
tratta di una vulnerabilità legata all'esecuzione
di codice e posso eseguire tutto ciò che desidero sul server.
Quindi, vediamo cosa succederà.
Ho incollato questo e ho intenzione di premere Invia.
E come puoi vedere, abbiamo ottenuto i risultati
del ping, ma alla fine abbiamo ottenuto
la nostra directory di lavoro corrente.
Quindi, la sua vulnerabilità tramite wwwdvwa è un dirigente.
Quindi, ha eseguito il PWD che ho inserito.
Ciò significa che posso inserire tutti i comandi
che voglio, lì dentro e verranno eseguiti.
Quindi, ho inserito un file di risorse
che è possibile utilizzare per ottenere la connessione inversa
dal computer di destinazione.
Ora, ci sono molti
modi, un numero di comandi che
ti darebbero una connessione inversa.
Tutti questi comandi dipendono dal linguaggio di programmazione.
Quindi, per esempio, abbiamo comandi in PHP,
abbiamo comandi in Ruby, tu hai comandi Pearl e
abbiamo quello per Bash.
Bash è il comando e il linguaggio della shell Linux.
Quindi, tutti i sistemi operativi Unix saranno in grado di
eseguire comandi Bash.
Quindi, è un ottimo modo per farlo.
Quindi, la maggior parte dei sistemi Unix, questo
comando dovrebbe funzionare sulla maggior parte dei sistemi basati su Unix.
Quindi, questo sarebbe davvero un buon modo per farlo.
Ancora una volta, la maggior parte di loro avrebbe
Python, quindi Python sarebbe un buon modo.
Netcat, molti di loro hanno anche Netcat.
Quindi, Netcat è un buon modo per farlo.
E in realtà useremo Netcat in questo video.
Quindi, quello che
farò è, per prima cosa
ascolterò le connessioni, proprio come
facevamo con Metasploit, quando facevamo multihandler.
Puoi effettivamente utilizzare un multihandler per questo
e ascoltare una connessione.
Bene, lo renderò più semplice e ti
mostrerò un nuovo modo.
E userò Netcat.
Quindi, Netcat.
Netcat è solo uno strumento che
ti consente di ascoltare e connettere i computer insieme.
Quindi ascolterò sulla porta 80 80.
Quindi, Netcat è il programma.
vv è solo per vedere un output dettagliato, quindi
possiamo vedere un sacco di output,
tutto va storto, possiamo vederlo.
E gli stiamo dicendo di
ascoltare, usando l'opzione L sulla porta 8080.
Quindi, ho intenzione di premere
invio, e questo significa solo ascoltare sulla porta 8080, è
tutto ciò che farà.
Il prossimo comando che eseguiremo è
di provare a riconnetterci dal
server Web al mio computer, usando anche Netcat.
Quindi, supponiamo che il server Web abbia Netcat.
Lo proveremo e vedremo se funziona.
Quindi, il comando è molto semplice.
È Netcat e gli stiamo dicendo di usare bin bash.
E gli stiamo fornendo l'IP del mio dispositivo.
Il mio dispositivo attaccante, che è 10 20 14.
E poi la porta che è 8080.
È qui che stiamo ascoltando, proprio qui.
Quindi lo copierò.
E lo eseguirò nello
stesso
modo in cui eseguivamo il comando PWD.
Quindi, l'ultima cosa che abbiamo fatto, è stata, 10 20 14 203.
E poi abbiamo fatto PWD.
Quindi, quello
che sto per fare
ora, rimuoverò il PWD e incollerò il
codice che abbiamo appena creato, che proveremo a ricollegare
dal server Web alla macchina inattaccabile alla macchina attaccante.
E vengo qui.
E, come puoi vedere, abbiamo ricevuto
una connessione da, a noi, da 10 20 14 204.
Quindi, questo è il computer in pausa.
E, se facciamo un PWD, vedrai che abbiamo un guscio
inverso se facciamo un LS.
Se facciamo un ID, vedrai che siamo wwwdata e sei libero di
(borbottare) il tuo nome A, solo per confermare.
Che sono nel Metasploitable e puoi vedere che
sono nel Metasploitable.
E sono in grado di eseguire qualsiasi comando desiderato sul
computer di destinazione.
Quindi, fondamentalmente, ho pieno accesso al computer di destinazione.