Narrador: Vulnerabilidades de ejecución de código.
Este tipo de vulnerabilidades nos permiten ejecutar
el código del sistema operativo en el servidor de destino.
Entonces, si el servidor de destino usa
Windows, podremos ejecutar el comando
de Windows, si usa Linux, entonces podremos usar los comandos de Linux.
Claramente, este es un problema realmente crítico, que realmente
nos permitiría hacer lo que queramos
con el objetivo.
Podemos cargar un shell
PHP, usando el comando wget o cargar una carga útil, un
virus, lo
que queramos, usando el comando wget Linux.
Solo necesita asegurarse de que lo está cargando
en un archivo o en un
directorio, en el que puede escribir cosas.
Otra forma de explotar esta vulnerabilidad es
ejecutar comandos del sistema operativo y obtener un escudo inverso
basado en estos comandos.
Entonces, debido a que podemos ejecutar comandos del
sistema operativo, podemos usar los
lenguajes de programación compatibles con ese sistema operativo para intentar
obtener una conexión inversa en nuestra computadora.
Entonces, en primer lugar, supongamos que estamos
navegando aquí,
y nos las arreglamos para ir por ahí
y luego llegamos a una pestaña en el sitio
web donde le permite, por ejemplo,
hacer un ping.
Ahora lo que debe hacer
es, siempre debe intentar experimentar con cualquier trabajo de entrada que vea.
Trate de ver qué funciona esa entrada y
qué puede inyectar en
ella, qué puede hacer para que todo funcione.
Entonces, por ejemplo, esta entrada funciona y te
dice que va a hacer un ping.
Y, si pones una IP,
por ejemplo, voy a poner 10 20 14 203, que es
mi propia IP.
Solo para verlo, para usarlo como una persona normal,
voy a hacer un envío y continuará y me hará un ping
y me dará los resultados del ping.
Entonces, lo que parece aquí, en
realidad es ejecutar el comando ping, en
sistemas Linux.
Ahora, veamos si podemos explotar eso.
Si en realidad está ejecutando el comando ping.
Entonces, lo que está
haciendo es, va y está haciendo.
Entonces, estamos enviando 10 20 14 203 como ping.
Y luego va al servidor
web y el servidor web está haciendo ping, 10 20 14 203.
Entonces, veamos si podemos explotar esto.
¿Cómo lo explotaríamos?
Se ha tomado lo que estamos ingresando, aquí mismo.
Y luego, está haciendo ping, eso.
Ahora, en los comandos basados en Linux y
Unix que puede usar, este signo para ejecutar múltiples comandos,
en una línea.
Entonces, si haces esto, por ejemplo en tu propia terminal, entonces, solo
voy a pasar por mi terminal, aquí.
Y solo voy a hacer LS, que es el comando de
lista y luego PWD es lo que
enumera, lo que muestra su directorio de trabajo.
Entonces, si hago un LS, seguido
de este signo y luego hago PWD, ejecutará ambos comandos.
Entonces, hará esto y luego mostrará dónde está
el directorio de trabajo.
Entonces, podemos hacer lo mismo con esto y ver
si funciona para nosotros.
Entonces, vamos a poner IP, una IP
correcta, y luego voy
a hacer PWD y ver si ejecutará el PWD por mí.
Si lo hace, entonces
esta es una vulnerabilidad de ejecución
de código y puedo ejecutar lo que quiera en el servidor.
Entonces, veamos qué va a pasar.
Pegué esto, y voy a presionar enviar.
Y como puede ver, obtuvimos los resultados
de ping, pero al final, obtuvimos
nuestro directorio de trabajo actual.
Entonces, su vulnerabilidad a través de wwwdvwa es un ejecutivo.
Entonces, ejecutó el PWD que inserté.
Y eso significa que puedo insertar cualquier comando
que desee allí y se ejecutarán.
Por lo tanto, he insertado un archivo de
recursos que puede usar para obtener una conexión inversa desde
la computadora de destino.
Ahora, hay varias
formas, una cantidad de comandos que
te darían una conexión inversa.
Todos estos comandos dependen del lenguaje de programación.
Entonces, por ejemplo, tenemos comandos en PHP,
tenemos comandos en Ruby, tienes comandos Pearl y
tenemos el de Bash.
Bash es el comando y lenguaje de shell de Linux.
Por lo tanto, todos los sistemas operativos Unix podrán
ejecutar comandos Bash.
Entonces, esa es una muy buena manera de hacerlo.
Entonces, en la mayoría de los sistemas Unix, este
comando debería funcionar en la mayoría de los sistemas basados en Unix.
Entonces, esta sería una muy buena manera de hacerlo.
Una vez más, la mayoría de ellos tendría Python,
por lo que Python sería una buena manera.
Netcat, la mayoría de ellos también tienen Netcat.
Entonces, Netcat es una buena forma de hacerlo.
Y, en realidad, vamos a usar Netcat en este video.
Entonces, lo que voy a
hacer es, primero, voy a escuchar
las conexiones, tal como solíamos hacer
con Metasploit, cuando solíamos hacer manejadores múltiples.
En realidad, puede usar un controlador múltiple para
esto y escuchar una conexión.
Bueno, voy a simplificarlo y mostrarle
una nueva forma.
Y voy a usar Netcat.
Entonces, Netcat.
Netcat es solo una herramienta
que le permite escuchar y conectar computadoras entre sí.
Entonces, voy a escuchar en el puerto 80 80.
Entonces, Netcat es el programa.
vv es solo para ver resultados detallados, para que
podamos ver muchos resultados, cualquier cosa
que salga mal, podemos verlo.
Y le estamos diciendo que escuche,
usando la opción L en el puerto 8080.
Entonces, voy a presionar enter,
y eso es solo escuchar en el puerto 8080, eso es
todo lo que hará.
El siguiente comando que vamos a hacer es
tratar de conectarnos desde el
servidor web a mi computadora, usando Netcat también.
Entonces, estamos asumiendo que el servidor web tiene Netcat.
Vamos a probarlo y ver si eso funciona.
Entonces, el comando es muy simple.
Es Netcat y le estamos diciendo que use bin bash.
Y le estamos dando la IP de mi dispositivo.
Mi dispositivo atacante, que es 10 20 14.
Y, luego, el puerto que es 8080.
Que es donde estamos escuchando, aquí mismo.
Entonces, voy a copiar eso.
Y solo voy a ejecutarlo
de la
misma manera que solíamos ejecutar el comando PWD.
Entonces, lo último que hicimos fue 10 20 14 203.
Y luego hicimos PWD.
Entonces, lo
que voy a hacer ahora, voy
a eliminar el PWD y pegar el código
que acabamos de crear, que intentaremos conectar desde el servidor web
de nuevo a la máquina cally a la máquina atacante.
Y voy a venir aquí.
Y, como puede ver, recibimos
una conexión de, de nosotros, del 10 20 14 204.
Entonces, esa es la computadora demorada.
Y, si hacemos un PWD, verás que tenemos un caparazón
inverso si hacemos un LS.
Si hacemos una identificación, verás que somos wwwdata y eres libre
de (murmura) tu nombre A, solo para confirmar.
Que estoy en el Metasploitable y puedes ver que
estoy en el Metasploitable.
Y puedo ejecutar cualquier comando que desee en la computadora
de destino.
Entonces, básicamente tengo acceso completo a la computadora de destino.