SlideShare a Scribd company logo
1 of 53
Download to read offline
Web Applications
Hacking and
Penetration Testing
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Agenda
 Ejecución de Comandos + RFI.
 Ejecución de Código con LFI + RCE.
 Mitigación / Referencias.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Whoami:
Egresado en Redes y Comunicaciones de Datos
Instituto: Grupo IDAT.
Especialidad: Me desempeño como Security Analyst & Pentester.
Experimentado desarrollador de escenarios de Ofensiva & Defensiva para
pruebas de concepto. Implementador de servicios de Networking y
Telecomunicaciones.
Tengo experiencia en el Mercado de la Tecnologías de Seguridad, Gestión
y Análisis Múltiples amenazas que afectan al orden Mundial.
Experiencia en Multi-Plataformas de Seguridad ya sean SIEM / Firewall /
Balanceadores / Anti-Virus / Wireless / Layer 2 & Layer 3 / IDS-IPS y etc.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
• La inyección de comandos es un ataque en el que el objetivo es la ejecución de comandos
arbitrarios en el sistema operativo host a través de una aplicación vulnerable.
• Los ataques de inyección de comandos son posibles cuando una aplicación pasa datos no
seguros provistos por el usuario (formularios, cookies, encabezados HTTP, etc.) a un shell del
sistema. En este ataque, los comandos del sistema operativo suministrados por el atacante
generalmente se ejecutan con los privilegios de la aplicación vulnerable. Los ataques de
inyección de comandos son posibles en gran parte debido a una validación de entrada
insuficiente.
• Este ataque difiere de la inyección de código, ya que la inyección de código permite al atacante
agregar su propio código que luego ejecuta la aplicación. En la inyección de comandos, el
atacante amplía la funcionalidad predeterminada de la aplicación, que ejecuta los comandos
del sistema, sin la necesidad de inyectar código.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos
Inclusion de Archivos Remotos
(RFI)
• RFI (Remote File Inclusion): Permite cargar en el servidor código que se encuentra en
otro servidor.
 Normalmente se utiliza para subir una WebShell y tomar el control del servidor.
 Es complicado encontrar este tipo de vulnerabilidades, ya que se necesita que se den
una serie de condiciones.
 Para explotarlo únicamente sería necesario cargar la url donde se encuentre la
WebShell, siempre en txt debido a que si no se ejecutaría en nuestro servidor.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Descripción Gráfica
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Identificar el tipo de Aplicación
• Lo principal que se debe hacer primero es identificar los tipos de aplicaciones que están
dirigidas. Tener la mayor cantidad de información posible aumentará nuestras
posibilidades de encontrar vulnerabilidades o debilidades en la aplicación. Por ejemplo,
después de saber que el objetivo utiliza la aplicación de inicio de sesión de archivo de
texto simple, usamos Google para averiguar si hay publicaciones que expliquen las
vulnerabilidades en la aplicación. La siguiente alternativa para detectar vulnerabilidades
es hacer un código fuente de revisión y, por supuesto, esta no es la opción principal
porque el proceso llevará mucho tiempo.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
• Ejecute Burp Suite desde linux (máquina atacante). Asegúrese de que la opción de proxy intercepte
la solicitud del cliente y la respuesta del servidor.
• Abra su navegador y luego asegúrese de que la configuración del proxy apunta a localhost con el
puerto 8080.
• Acceda a la aplicación a través de su navegador escribiendo la dirección IP de destino http :
// target - ip / admin y asegúrese de reenviar todas las solicitudes y respuestas.
• Después de eso, ingrese su nombre de usuario y contraseña (no necesariamente válidos) para ver
los datos de solicitud y respuesta.
• Preste atención a los resultados que aparecen en la suite de burp de destino -> Site map->
Wordpress -> wp-login.php -> log=….
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Identificar el tipo de Aplicación
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Identificar el tipo de Aplicación
• Abra Google con la palabra clave log=admin&pwd para averiguar qué tipo de aplicación está
ejecutando el objetivo. Los siguientes resultados son dados por Google
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Identificar el tipo de Aplicación
• En primera instancia para hacerlo mas interesante vamos a autenticarnos con el black-
user que generamos en la anterior demostración de Vuln CSRF-Tester.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• Una vez que esté dentro del panel de
administración, haga clic en “Appearance” desde el
panel y luego seleccione “Theme Editor”.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• En el siguiente mensaje le damos click en “I understand”.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• Ahora seleccione la plantilla archive.php dada en el lado derecho del marco; después de
eso, encontrarás algún código php en el cuadro medio para el template de archive. Borre
todo el código php para que pueda agregar código PHP malicioso para generar puerta
trasera dentro del sitio web como un nuevo tema.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• Ahora vamos a descargar el siguiente Script, que abrirá una conexión TCP saliente desde el
servidor Web hacia el host Atacante mediante el puerto que le agregamos como Listener.
• Enlace: http://pentestmonkey.net/tools/web-shells/php-reverse-shell
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• Abrimos el script, y modificamos los siguientes datos de entrada para nuestra Shell interactiva.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• Ahora procedemos a cargar el
Script que agregamos como un
nuevo tema.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• Cuando ejecutes el tema cargado archive.php en el otra pestaña del navegador,
recibirás una conexión reversa por nc y obtendrás una sesión de medición del
sistema de la víctima. Por lo tanto tenemos que colocar la siguiente ruta en nuestro
navegador.
• 192.168.42.162/wordpress/wp-content/themes/twentythirteen/archive.php
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• Una vez que cargue el Script modificado en la página, se verá que el Netcat se
conecta a un Shell interactiva.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
• A continuación, si deseamos actualizar a una Shell TTY totalmente interactiva, podremos utilizar el siguiente
comando.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Ejecución de Comandos & RFI
(Demo)
Execución de Código
con LFI + RCE
(Demo)
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
• LFI: Nos permite acceder a los ficheros del servidor de
carácter privado. Para ello normalmente se hace uso
del Path Transversal, que es una técnica para ir
saltando de directorio.
• El atacante abusa de una función de carga de archivos
para cargar un script malicioso.
• El script se ejecuta y permite futuros ataques.
 Webshell.
Execución de Código con LFI + RCE
(Demo)
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
¿Que Peligrosa es esta Vulnerabilidad?
RFI / LFI
• El peligro de esta vulnerabilidad es que si esta
presente en un Site Web, un atacante podría leer
información sensible, ejecutar comandos, obtener
una conexión inversa y de esta manera controlar al
servidor, etc. A continuación se mostrará parte de
un código PHP vulnerable.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Descripción Gráfica
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
• En primera instancia, nos mantendremos en el Target por nc, y desde nuestra maquina
atacante vamos a subir el script malicioso que nos permitirá acceder a los ficheros del
servidor web.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Para copiar un archivo de un sistema local a un sistema remoto, ejecute el siguiente
comando.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Ahora procedemos a ingresar a la siguiente ruta,
para poder crear un directorio llamado “LFI”, dentro
del directorio procedemos a pegar el fichero
“lfi.php”.
• Este proceso lo vamos hacer mediante SSH desde la
maquina atacante hacia el target.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Desde que agregamos un archivo php con función de inclusión dentro de /var/www/html,
nos va permitir leer el contenido de otro archivo a través de él y puede llevar a un ataque LFI.
Vamos a demostrarlo explorando la siguiente URL para leer los archivos de contraseña.
• http://192.168.42.162/lfi/lfi.php?file=/etc/passwd
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Ahora intentaré abrir el archivo access.log a través de lfi.php en el navegador, por lo
tanto, le doy permiso de lectura y escritura a al directorio de apache2 y luego incluiré el
archivo access.log.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Ahora incluya el archivo acess.log como parámetro y proporcione la siguiente URL dentro del navegador. En la
siguiente imagen podemos ver los registros de acceso que muestra el servidor apache, en este caso serian las
solicitudes entrantes y todas las solicitudes procesadas.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• También podemos visualizar las solicitudes entrantes del fichero access.log mediante el
Terminal del atacante aplicando lo siguiente.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Para mejorar las gráficas, usaré Burp Suite para interceptar, modificar y analizar las
solicitudes. Una vez más, aquí está cómo se ve cuando se intenta incluir el archivo de
entorno.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Listo, ya teniendo claro lo anterior vamos a proceder a obtener los siguientes datos,
aplicando URL Codificación.
• Codificación URL Ctrl + U: Hostname
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Codificación URL Ctrl + U: Ping
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Codificación hacia los archivos de contraseñas ocultas.
• Ctrl + U: /etc/passwd
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• La técnica que vamos a examinar primero es el método más común utilizado para
obtener una shell de un LFI. El archivo ubicado en /lfi/lfi.php contiene varias variables de
entorno como REMOTE_PORT , HTTP_USER_AGENT y más. Para la mayoría de los
sistemas operativos Linux, el archivo no debe ser accesible desde usuarios no root. Esta
es la razón por la que esta técnica es antigua y en los sistemas actualizados, podría no
funcionará.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• En primera instancia vamos a cargar la siguiente Shell Reversa usando Python. Pero lo mas importante es
seleccionar desde python asta la comilla final, después Ctrl + U y lo ultimo cambiamos el Request “GET”
por “POST” y “Go”.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Al escuchar en el puerto 9999 podemos ver que se ha recibido un Shell interactiva.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
• Por ultimo, si queremos analizar los logs de acceso que se registraron cuando cargamos
el LFI + RCE, desde el Target vamos aplicar el siguiente comando.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Execución de Código con LFI + RCE
(Demo)
Recomendaciones
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Recomendaciones
• La gran mayoría de fallos vistos se podrían evitar si desde un principio se hubieran
implementado medidas de seguridad, normalmente con un correcto tratamiento de
todos aquellos input es suficiente.
• Daremos una solución sencilla pero efectiva a los ataques vistos (SQLi, XSS, RFI/LFI).
• Como por ejemplo, si se espera un numero, utilizar funciones como isint en php,
evitando que se introduzca otra cosa.
• Aunque para asegurar realmente una aplicación a “prueba de bombas” suele ser muy
efectivo un WAF.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
• Inyección SQL:
 Transformar todo a ascii (evitando caracteres en hex.).
 Utilización de funciones propias del servidor para securizar las consultas (php+mysql
como mysql_real_query, etc…).
 Realizar un filtrado de las palabras:
And, or, union, select, concat, group, from, where, sleep, etc…
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Recomendaciones
• Secuencias de Comandos entre Sitios (XSS):
 Utilizar funciones propias del lenguaje como: html_entities.
 Además realizar un filtrado tanto de comentarios como de caracteres especiales.
 Dejar todo en minúsculas o mayúsculas.
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Recomendaciones
• Ejecución de Comandos + RFI / LFI:
 Desactivar características del servidor web como:
allow_url_fopen
allow_url_include
 Estas características evitan que un atacante pueda incluir archivos tanto remotos
como locales.
 Evitar el uso de ciertas funciones como:
Include
Require
Require_once…
Recomendaciones
• Falsificación de Solicitud de Sitios Cruzados (CSRF).
 La única forma efectiva de hacerlo es mediante tokens (valores aleatorios) generados por
la aplicación y anexados al formulario que muestra la aplicación, luego si al procesar los
valores del formulario, el token que se recibe corresponde al token de la aplicación, eso
significa que la petición es auténtica.
Recomendaciones
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Referencias
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
• RFI / LFI:
https://www.welivesecurity.com/la-es/2015/01/12/como-funciona-vulnerabilidad-local-file-
inclusion/
https://www.imperva.com/learn/application-security/rfi-remote-file-
inclusion/?utm_campaign=Incapsula-moved
https://liberty-shell.com/sec/2018/04/04/lfi/
Referencias / RFI & LFI
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
• Ejecución de Código con LFI + RCE:
https://resources.infosecinstitute.com/local-file-inclusion-code-execution/#gref
https://highon.coffee/blog/reverse-shell-cheat-sheet/
https://outpost24.com/blog/from-local-file-inclusion-to-remote-code-execution-part-1
Referencias / LFI & RCE
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
Gracias 
Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com

More Related Content

What's hot

Laravel presentation
Laravel presentationLaravel presentation
Laravel presentationToufiq Mahmud
 
2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成
2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成
2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成Enpel
 
Postman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioPostman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioHYS Enterprise
 
EMBA - Firmware analysis DEFCON30 demolabs USA 2022
EMBA - Firmware analysis DEFCON30 demolabs USA 2022EMBA - Firmware analysis DEFCON30 demolabs USA 2022
EMBA - Firmware analysis DEFCON30 demolabs USA 2022MichaelM85042
 
introduction about REST API
introduction about REST APIintroduction about REST API
introduction about REST APIAmilaSilva13
 
Archiving in linux tar
Archiving in linux tarArchiving in linux tar
Archiving in linux tarInfoExcavator
 
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Gunith Devasurendra
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIPankaj Bajaj
 
What is Server? (Web Server vs Application Server)
What is Server? (Web Server vs Application Server)What is Server? (Web Server vs Application Server)
What is Server? (Web Server vs Application Server)Amit Nirala
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCache Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCache Amazon Web Services
 
Remote access service
Remote access serviceRemote access service
Remote access serviceApoorw Pandey
 
HTTP request and response
HTTP request and responseHTTP request and response
HTTP request and responseSahil Agarwal
 
Client server technology
Client server technologyClient server technology
Client server technologyAnwar Kamal
 
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Laravel development (Laravel History, Environment Setup & Laravel Installatio...Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Laravel development (Laravel History, Environment Setup & Laravel Installatio...Dilouar Hossain
 
Cost estimation techniques
Cost estimation techniquesCost estimation techniques
Cost estimation techniqueslokareminakshi
 

What's hot (20)

Laravel presentation
Laravel presentationLaravel presentation
Laravel presentation
 
2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成
2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成
2 TomcatによるWebアプリケーションサーバ構築 第3章 Apacheの構成
 
Postman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioPostman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenario
 
EMBA - Firmware analysis DEFCON30 demolabs USA 2022
EMBA - Firmware analysis DEFCON30 demolabs USA 2022EMBA - Firmware analysis DEFCON30 demolabs USA 2022
EMBA - Firmware analysis DEFCON30 demolabs USA 2022
 
Apache web service
Apache web serviceApache web service
Apache web service
 
Types of server
Types of serverTypes of server
Types of server
 
Web servers
Web serversWeb servers
Web servers
 
introduction about REST API
introduction about REST APIintroduction about REST API
introduction about REST API
 
Trabajo ftp
Trabajo ftpTrabajo ftp
Trabajo ftp
 
Archiving in linux tar
Archiving in linux tarArchiving in linux tar
Archiving in linux tar
 
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
What is Server? (Web Server vs Application Server)
What is Server? (Web Server vs Application Server)What is Server? (Web Server vs Application Server)
What is Server? (Web Server vs Application Server)
 
Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCache Unleash the Power of Redis with Amazon ElastiCache
Unleash the Power of Redis with Amazon ElastiCache
 
Remote access service
Remote access serviceRemote access service
Remote access service
 
HTTP request and response
HTTP request and responseHTTP request and response
HTTP request and response
 
Client server technology
Client server technologyClient server technology
Client server technology
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Laravel development (Laravel History, Environment Setup & Laravel Installatio...Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
 
Cost estimation techniques
Cost estimation techniquesCost estimation techniques
Cost estimation techniques
 

Similar to Web App Hacking and Penetration Testing - (RFI - LFI & RCE)

Seguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode SoluciónSeguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode SoluciónFrancesc Perez
 
Webinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de ComandosWebinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de ComandosAlonso Caballero
 
Penetration testing
Penetration testingPenetration testing
Penetration testinggh02
 
Instalacion de chamilo en koding
Instalacion de chamilo en kodingInstalacion de chamilo en koding
Instalacion de chamilo en kodingChamilo User Day
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Brat Stell
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones WebDeisy Sapaico
 
Infome ataque troyano
Infome ataque troyanoInfome ataque troyano
Infome ataque troyanoverotrivinho
 
José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...
José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...
José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...VOIP2DAY
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework SymfonyRodrigo Miranda
 
Infeccion por troyano optix pro
Infeccion por troyano optix proInfeccion por troyano optix pro
Infeccion por troyano optix proSonia Eraso
 
Desde el DVR hasta la cocina
Desde el DVR hasta la cocinaDesde el DVR hasta la cocina
Desde el DVR hasta la cocinaEfren Diaz Gomez
 
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Oskar Laguillo
 
Manual de instalación de Exchangey tmg 2010
Manual de instalación de Exchangey tmg 2010Manual de instalación de Exchangey tmg 2010
Manual de instalación de Exchangey tmg 2010Hugo Rios
 

Similar to Web App Hacking and Penetration Testing - (RFI - LFI & RCE) (20)

CodeCamp 2010 | Diez formas de escribir código (in)seguro
CodeCamp 2010 | Diez formas de escribir código (in)seguroCodeCamp 2010 | Diez formas de escribir código (in)seguro
CodeCamp 2010 | Diez formas de escribir código (in)seguro
 
Symfony Parte 3
Symfony Parte 3Symfony Parte 3
Symfony Parte 3
 
Seguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode SoluciónSeguridad: Ataque Unicode Solución
Seguridad: Ataque Unicode Solución
 
Webinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de ComandosWebinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de Comandos
 
Penetration testing
Penetration testingPenetration testing
Penetration testing
 
The Browser Explotations
The Browser ExplotationsThe Browser Explotations
The Browser Explotations
 
Instalacion de chamilo en koding
Instalacion de chamilo en kodingInstalacion de chamilo en koding
Instalacion de chamilo en koding
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3
 
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas  de rendimiento de Aplicaciones WebPylot : Herramienta para pruebas  de rendimiento de Aplicaciones Web
Pylot : Herramienta para pruebas de rendimiento de Aplicaciones Web
 
Infome ataque troyano
Infome ataque troyanoInfome ataque troyano
Infome ataque troyano
 
Practicas hackx crack_05
Practicas hackx crack_05Practicas hackx crack_05
Practicas hackx crack_05
 
José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...
José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...
José Luis Verdeguer - VoIP2DAY 2016 | Analizando la seguridad de los producto...
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 
Infeccion por troyano optix pro
Infeccion por troyano optix proInfeccion por troyano optix pro
Infeccion por troyano optix pro
 
Proyecto 6
Proyecto 6Proyecto 6
Proyecto 6
 
Desde el DVR hasta la cocina
Desde el DVR hasta la cocinaDesde el DVR hasta la cocina
Desde el DVR hasta la cocina
 
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)
 
Presentacion eduin gonzalez
Presentacion eduin gonzalezPresentacion eduin gonzalez
Presentacion eduin gonzalez
 
Ataque por inyección de código sql y sniffing
Ataque por inyección de código sql y sniffingAtaque por inyección de código sql y sniffing
Ataque por inyección de código sql y sniffing
 
Manual de instalación de Exchangey tmg 2010
Manual de instalación de Exchangey tmg 2010Manual de instalación de Exchangey tmg 2010
Manual de instalación de Exchangey tmg 2010
 

Recently uploaded

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Recently uploaded (10)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Web App Hacking and Penetration Testing - (RFI - LFI & RCE)

  • 1. Web Applications Hacking and Penetration Testing Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 2. Agenda  Ejecución de Comandos + RFI.  Ejecución de Código con LFI + RCE.  Mitigación / Referencias. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 3. Whoami: Egresado en Redes y Comunicaciones de Datos Instituto: Grupo IDAT. Especialidad: Me desempeño como Security Analyst & Pentester. Experimentado desarrollador de escenarios de Ofensiva & Defensiva para pruebas de concepto. Implementador de servicios de Networking y Telecomunicaciones. Tengo experiencia en el Mercado de la Tecnologías de Seguridad, Gestión y Análisis Múltiples amenazas que afectan al orden Mundial. Experiencia en Multi-Plataformas de Seguridad ya sean SIEM / Firewall / Balanceadores / Anti-Virus / Wireless / Layer 2 & Layer 3 / IDS-IPS y etc. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 4. Ejecución de Comandos & RFI (Demo) Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 5. • La inyección de comandos es un ataque en el que el objetivo es la ejecución de comandos arbitrarios en el sistema operativo host a través de una aplicación vulnerable. • Los ataques de inyección de comandos son posibles cuando una aplicación pasa datos no seguros provistos por el usuario (formularios, cookies, encabezados HTTP, etc.) a un shell del sistema. En este ataque, los comandos del sistema operativo suministrados por el atacante generalmente se ejecutan con los privilegios de la aplicación vulnerable. Los ataques de inyección de comandos son posibles en gran parte debido a una validación de entrada insuficiente. • Este ataque difiere de la inyección de código, ya que la inyección de código permite al atacante agregar su propio código que luego ejecuta la aplicación. En la inyección de comandos, el atacante amplía la funcionalidad predeterminada de la aplicación, que ejecuta los comandos del sistema, sin la necesidad de inyectar código. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos
  • 6. Inclusion de Archivos Remotos (RFI) • RFI (Remote File Inclusion): Permite cargar en el servidor código que se encuentra en otro servidor.  Normalmente se utiliza para subir una WebShell y tomar el control del servidor.  Es complicado encontrar este tipo de vulnerabilidades, ya que se necesita que se den una serie de condiciones.  Para explotarlo únicamente sería necesario cargar la url donde se encuentre la WebShell, siempre en txt debido a que si no se ejecutaría en nuestro servidor. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 7. Descripción Gráfica Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 8. Identificar el tipo de Aplicación • Lo principal que se debe hacer primero es identificar los tipos de aplicaciones que están dirigidas. Tener la mayor cantidad de información posible aumentará nuestras posibilidades de encontrar vulnerabilidades o debilidades en la aplicación. Por ejemplo, después de saber que el objetivo utiliza la aplicación de inicio de sesión de archivo de texto simple, usamos Google para averiguar si hay publicaciones que expliquen las vulnerabilidades en la aplicación. La siguiente alternativa para detectar vulnerabilidades es hacer un código fuente de revisión y, por supuesto, esta no es la opción principal porque el proceso llevará mucho tiempo. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 9. • Ejecute Burp Suite desde linux (máquina atacante). Asegúrese de que la opción de proxy intercepte la solicitud del cliente y la respuesta del servidor. • Abra su navegador y luego asegúrese de que la configuración del proxy apunta a localhost con el puerto 8080. • Acceda a la aplicación a través de su navegador escribiendo la dirección IP de destino http : // target - ip / admin y asegúrese de reenviar todas las solicitudes y respuestas. • Después de eso, ingrese su nombre de usuario y contraseña (no necesariamente válidos) para ver los datos de solicitud y respuesta. • Preste atención a los resultados que aparecen en la suite de burp de destino -> Site map-> Wordpress -> wp-login.php -> log=…. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Identificar el tipo de Aplicación
  • 10. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Identificar el tipo de Aplicación
  • 11. • Abra Google con la palabra clave log=admin&pwd para averiguar qué tipo de aplicación está ejecutando el objetivo. Los siguientes resultados son dados por Google Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Identificar el tipo de Aplicación
  • 12. • En primera instancia para hacerlo mas interesante vamos a autenticarnos con el black- user que generamos en la anterior demostración de Vuln CSRF-Tester. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 13. • Una vez que esté dentro del panel de administración, haga clic en “Appearance” desde el panel y luego seleccione “Theme Editor”. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 14. • En el siguiente mensaje le damos click en “I understand”. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 15. • Ahora seleccione la plantilla archive.php dada en el lado derecho del marco; después de eso, encontrarás algún código php en el cuadro medio para el template de archive. Borre todo el código php para que pueda agregar código PHP malicioso para generar puerta trasera dentro del sitio web como un nuevo tema. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 16. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 17. • Ahora vamos a descargar el siguiente Script, que abrirá una conexión TCP saliente desde el servidor Web hacia el host Atacante mediante el puerto que le agregamos como Listener. • Enlace: http://pentestmonkey.net/tools/web-shells/php-reverse-shell Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 18. • Abrimos el script, y modificamos los siguientes datos de entrada para nuestra Shell interactiva. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 19. • Ahora procedemos a cargar el Script que agregamos como un nuevo tema. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 20. • Cuando ejecutes el tema cargado archive.php en el otra pestaña del navegador, recibirás una conexión reversa por nc y obtendrás una sesión de medición del sistema de la víctima. Por lo tanto tenemos que colocar la siguiente ruta en nuestro navegador. • 192.168.42.162/wordpress/wp-content/themes/twentythirteen/archive.php Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 21. • Una vez que cargue el Script modificado en la página, se verá que el Netcat se conecta a un Shell interactiva. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 22. • A continuación, si deseamos actualizar a una Shell TTY totalmente interactiva, podremos utilizar el siguiente comando. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Ejecución de Comandos & RFI (Demo)
  • 23. Execución de Código con LFI + RCE (Demo) Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 24. • LFI: Nos permite acceder a los ficheros del servidor de carácter privado. Para ello normalmente se hace uso del Path Transversal, que es una técnica para ir saltando de directorio. • El atacante abusa de una función de carga de archivos para cargar un script malicioso. • El script se ejecuta y permite futuros ataques.  Webshell. Execución de Código con LFI + RCE (Demo) Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 25. ¿Que Peligrosa es esta Vulnerabilidad? RFI / LFI • El peligro de esta vulnerabilidad es que si esta presente en un Site Web, un atacante podría leer información sensible, ejecutar comandos, obtener una conexión inversa y de esta manera controlar al servidor, etc. A continuación se mostrará parte de un código PHP vulnerable. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 26. Descripción Gráfica Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 27. • En primera instancia, nos mantendremos en el Target por nc, y desde nuestra maquina atacante vamos a subir el script malicioso que nos permitirá acceder a los ficheros del servidor web. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 28. • Para copiar un archivo de un sistema local a un sistema remoto, ejecute el siguiente comando. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 29. • Ahora procedemos a ingresar a la siguiente ruta, para poder crear un directorio llamado “LFI”, dentro del directorio procedemos a pegar el fichero “lfi.php”. • Este proceso lo vamos hacer mediante SSH desde la maquina atacante hacia el target. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 30. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 31. • Desde que agregamos un archivo php con función de inclusión dentro de /var/www/html, nos va permitir leer el contenido de otro archivo a través de él y puede llevar a un ataque LFI. Vamos a demostrarlo explorando la siguiente URL para leer los archivos de contraseña. • http://192.168.42.162/lfi/lfi.php?file=/etc/passwd Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 32. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 33. • Ahora intentaré abrir el archivo access.log a través de lfi.php en el navegador, por lo tanto, le doy permiso de lectura y escritura a al directorio de apache2 y luego incluiré el archivo access.log. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 34. • Ahora incluya el archivo acess.log como parámetro y proporcione la siguiente URL dentro del navegador. En la siguiente imagen podemos ver los registros de acceso que muestra el servidor apache, en este caso serian las solicitudes entrantes y todas las solicitudes procesadas. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 35. • También podemos visualizar las solicitudes entrantes del fichero access.log mediante el Terminal del atacante aplicando lo siguiente. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 36. • Para mejorar las gráficas, usaré Burp Suite para interceptar, modificar y analizar las solicitudes. Una vez más, aquí está cómo se ve cuando se intenta incluir el archivo de entorno. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 37. • Listo, ya teniendo claro lo anterior vamos a proceder a obtener los siguientes datos, aplicando URL Codificación. • Codificación URL Ctrl + U: Hostname Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 38. • Codificación URL Ctrl + U: Ping Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 39. • Codificación hacia los archivos de contraseñas ocultas. • Ctrl + U: /etc/passwd Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 40. • La técnica que vamos a examinar primero es el método más común utilizado para obtener una shell de un LFI. El archivo ubicado en /lfi/lfi.php contiene varias variables de entorno como REMOTE_PORT , HTTP_USER_AGENT y más. Para la mayoría de los sistemas operativos Linux, el archivo no debe ser accesible desde usuarios no root. Esta es la razón por la que esta técnica es antigua y en los sistemas actualizados, podría no funcionará. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 41. • En primera instancia vamos a cargar la siguiente Shell Reversa usando Python. Pero lo mas importante es seleccionar desde python asta la comilla final, después Ctrl + U y lo ultimo cambiamos el Request “GET” por “POST” y “Go”. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 42. • Al escuchar en el puerto 9999 podemos ver que se ha recibido un Shell interactiva. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 43. • Por ultimo, si queremos analizar los logs de acceso que se registraron cuando cargamos el LFI + RCE, desde el Target vamos aplicar el siguiente comando. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Execución de Código con LFI + RCE (Demo)
  • 44. Recomendaciones Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 45. Recomendaciones • La gran mayoría de fallos vistos se podrían evitar si desde un principio se hubieran implementado medidas de seguridad, normalmente con un correcto tratamiento de todos aquellos input es suficiente. • Daremos una solución sencilla pero efectiva a los ataques vistos (SQLi, XSS, RFI/LFI). • Como por ejemplo, si se espera un numero, utilizar funciones como isint en php, evitando que se introduzca otra cosa. • Aunque para asegurar realmente una aplicación a “prueba de bombas” suele ser muy efectivo un WAF. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 46. • Inyección SQL:  Transformar todo a ascii (evitando caracteres en hex.).  Utilización de funciones propias del servidor para securizar las consultas (php+mysql como mysql_real_query, etc…).  Realizar un filtrado de las palabras: And, or, union, select, concat, group, from, where, sleep, etc… Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Recomendaciones
  • 47. • Secuencias de Comandos entre Sitios (XSS):  Utilizar funciones propias del lenguaje como: html_entities.  Además realizar un filtrado tanto de comentarios como de caracteres especiales.  Dejar todo en minúsculas o mayúsculas. Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com Recomendaciones
  • 48. • Ejecución de Comandos + RFI / LFI:  Desactivar características del servidor web como: allow_url_fopen allow_url_include  Estas características evitan que un atacante pueda incluir archivos tanto remotos como locales.  Evitar el uso de ciertas funciones como: Include Require Require_once… Recomendaciones
  • 49. • Falsificación de Solicitud de Sitios Cruzados (CSRF).  La única forma efectiva de hacerlo es mediante tokens (valores aleatorios) generados por la aplicación y anexados al formulario que muestra la aplicación, luego si al procesar los valores del formulario, el token que se recibe corresponde al token de la aplicación, eso significa que la petición es auténtica. Recomendaciones Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 50. Referencias Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 51. • RFI / LFI: https://www.welivesecurity.com/la-es/2015/01/12/como-funciona-vulnerabilidad-local-file- inclusion/ https://www.imperva.com/learn/application-security/rfi-remote-file- inclusion/?utm_campaign=Incapsula-moved https://liberty-shell.com/sec/2018/04/04/lfi/ Referencias / RFI & LFI Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 52. • Ejecución de Código con LFI + RCE: https://resources.infosecinstitute.com/local-file-inclusion-code-execution/#gref https://highon.coffee/blog/reverse-shell-cheat-sheet/ https://outpost24.com/blog/from-local-file-inclusion-to-remote-code-execution-part-1 Referencias / LFI & RCE Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com
  • 53. Gracias  Jose Antonio Gonzales Jurado > e-mail: jgonzalesjurado@gmail.com