Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Preguntas y cierre
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
@georg_cantor
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Alineamiento
1
Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Alineamiento
1
Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Existen factores que conducen a inyecciones SQL. Una aplicacin que rena dichos factores se encuentra en riesgo.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Datos externos La aplicacin permite la adquisicin de datos desde fuentes externas: usuarios, archivos, etc. En esta relacin, la aplicacin debera siempre, asumir que los datos recibidos estn contaminados (tainted data).
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Consultas dinmicas El cdigo de la aplicacin emplea un modelo de datos que requiere el uso de un DBMS y adems genera consultas al DBMS con los datos obtenidos de fuentes externas.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Saneamiento Validacin inapropiada de datos externos. El cdigo desarrollado no ltra adecuadamente los datos recibidos de fuentes externas o no implementa ningn procedimiento de validacin.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Factores bsicos de mitigacin Consultas SQL parametrizadas Procedimientos almacenados Validacin contra listas blancas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Consultas SQL parametrizadas Consultas rgidas y predecibles preparadas empleando una capa de abstraccin del driver SQL en uso por la aplicacin.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Validacin contra listas blancas Controles estrictos que validan de manera rgida los datos recibidos, incorporando restricciones sobre, tipo de datos, longitud y formato en general.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Resumen
Factores bsicos de riesgo y mitigacin
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
Condencialidad Que un usuario no autorizado pueda explotar una inyeccin SQL para abusar del DBMS y obtener acceso no autorizado datos sensibles genera la perdida inmediata de condencialidad de los mismos.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
Autenticacin Que un usuario pueda manipular un artefacto de autenticacin que recurre a consultas SQL poco robustas como mecanismo de validacin podra permitir a un agresor emplear inyecciones SQL para comprometer la lgica implementada.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
Autorizacin Cuando un sistema poco robusto dependa un de DBMS para la gestin de privilegios, roles o otros una inyeccin SQL podra permitir a un agresor manipular el sistema para escalar sus privilegios vertical o horizontalmente.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cual es el impacto?
Principales consecuencias
Integridad Una aplicacin que maneje una conexin con privilegios CRUD en el DBMS, si expuesta a una inyeccin SQL podra permitir a un usuario mal intencionado manipular la informacin almacenada.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Resumen
Principales consecuencias
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Alineamiento
1
Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
El objetivo del ataque limita, en general, el tipo de tcnica a emplear y dene el trabajo previo a la explotacin activa.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Objetivos frecuentes Extraccin de datos Pivoting Distribucin de payloads maliciosos Acceso administrativo a la aplicacin Denegacin de servicio
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Inband Los datos son extrados empleando el mismo canal de la inyeccin SQL. Los datos se presentan directamente en la respuesta de la aplicacin.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Out-of-band Los datos se recuperan empleando un canal diferente (por ejemplo, se enva un correo eletronico con los resultados de la consulta SQL).
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Inferencial No ocurre transferencia de datos pero el agresor es capaz de reconstruir la informacin contenida en los resultados de la consulta SQL.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Con base al canal disponible se pueden agrupar, de manera discutible, los tipos de inyeccin en dos lineas generales.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Inyecciones basadas en errores Este es el tipo de vector ms fcil de ejecutar y se caracteriza por utilizar un canal inband para la transferencia de datos.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Inyecciones ciegas Este vector de ataque se caracteriza por necesitar, en general, automatizacin. Los datos se obtienen por un canal out-of-band o inferencial.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Inyecciones ciegas Inyecciones parcialmente ciegas (Partially Blind Injection) Inyecciones totalmente ciegas (Full Blind Injection)
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Inyecciones ciegas Inyecciones parcialmente ciegas (Partially Blind Injection) Inyecciones totalmente ciegas (Full Blind Injection)
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Taxonoma
Inyecciones ciegas Inyecciones parcialmente ciegas (Partially Blind Injection) Inyecciones totalmente ciegas (Full Blind Injection)
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Alineamiento
1
Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cdigo defectuoso
function index(){ if ($this->input->post(login)) { $login_usuario = $this->input->post(login_usuario); $login_password = $this->input->post(login_password); $query = $this->db->query("SELECT usuario, isAdmin FROM usuarios WHERE usuario =$login_usuario AND password=$login_password}"); if ($query->num_rows() > 0) { $row = $query->row(); if ($row->isAdmin == true) {$this->load->view(demo_admin);} else {$this->load->view(demo_user);} } else { $this->load->view(demo_login);} } else { $this->load->view(demo_login); } }
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cdigo defectuoso
$query = $this->db->query( "SELECT usuario, isAdmin FROM usuarios WHERE usuario = $login_usuario AND password = $login_password}");
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cdigo defectuoso
Payload bsico
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Cdigo defectuoso
Payload bsico
SELECT usuario, isAdmin FROM usuarios WHERE usuario= OR 1=1-- AND password=
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
La adquisicin de informacin sobre el modelo de datos empleado, la estructura de la base de datos y si posible de la consulta base sobre la cual se inyecta es una de las fases ms importantes en un ataque de inyeccin SQL.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Una de las primeras acciones a desarrollar es identicar si es posible crear una sentencia UNION vlida, ya que de ser el caso, la extraccin de informacin del DBMS se har de una manera ms eciente.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
UNION, fuerza bruta Tcnica de fuerza bruta por Null Tcnica de fuerza bruta por ORDER BY
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
UNION, fuerza bruta Tcnica de fuerza bruta por Null Tcnica de fuerza bruta por ORDER BY
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
UNION, fuerza bruta Tcnica de fuerza bruta por Null Tcnica de fuerza bruta por ORDER BY
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Supongamos que en un consulta base, estn presente 5 columnas, la siguiente sentencia, generar entonces una consulta UNION vlida.
... UNION SELECT null, null, null, null, null --
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
... ORDER BY 1 -- Sin errores ... ... ORDER BY 5 -- Sin errores ... ORDER BY 6 -- Genera error!
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Para la correcta extraccin de datos se hace necesario conocer la organizacin de los mismos. Una manera efectiva de enumerar la estructura de la base de datos es recurrir a la informacin de sistema.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Enumerando bases de datos Como etapa inicial resulta til determinar que bases de datos se encuentran disponibles en el DBMS.
SELECT schema_name FROM information_schema. schemata
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Enumerando tablas information_schema tambin permite enumerar las tablas correspondientes a una base de datos concreta.
SELECT table_name FROM information_schema. tables WHERE table_schema = (SELECT database())
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Extraccin de datos En posesin de un vector de inyeccin UNION y la informacin enumerada, se puede construir la estructura bsica para las inyecciones siguientes con la que extraer los datos deseados.
... UNION SELECT CONCAT(Shell>,(SELECT columna FROM tabla LIMIT 0,1)), ..., null
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Inyecciones ciegas
La mecnica empleada en esta variante del ataque no diere de la empleada en las inyecciones basadas en error, pero si se hace necesario la introduccin de unos artefactos especiales.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Inyecciones ciegas
Parcialmente ciegas
Inyecciones parcialmente ciegas Este caso particular de inyecciones ocurre cuando es posible inyectar cdigo que sea evaluado en el DBMS pero nicamente se pueden observar alteraciones en la respuesta de la aplicacin.
.. AND 1=(SELECT IF(SUBSTRING(@@version,1,1)=< parametro>,1,0))
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Inyecciones ciegas
totalmente ciegas
Inyecciones totalmente ciegas Esta modalidad ocurre cuando un usuario es capaz de determinar la existencia de la inyeccin pero no se observa ninguna alteracin en el comportamiento de la aplicacin.
SELECT IF(SUBSTRING(@@version,1,1)=<parametro >,BENCHMARK(100000,SHA1(1)),0)
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Alineamiento
1
Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Los motores de rmas de sistemas comerciales como Fortinet o iniciativas opensource como Snort o Suricata se encuentran basados en sistemas PCRE o en lgicas de bsquedas con Wildcards o Keywords.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
Evasin de rmas Ofuscacin con comentarios Ofuscacin con codicacin URI Numbing y Decoys Ofuscacin hbrida
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
Numbing y Decoys
/*UgxcHr5LNNJPQh...iBcyRbLlkHXeMC1*/SELECT/*Ugxc... Hr5LNNJPQhiBcyRbLlkHXeMC1*/@@version/* UgxcHr5LNNJPQhiBcyRbLl...kHXeMC1*/ /* <Decoy Keyword> */SELECT @@version
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Evasin de rmas
Ofuscacin hbrida
S %45LECT %20/*UgxcHr5LNNJPQh %2A %2F %40 %40version
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Blind spot
Las arquitecturas de los sistemas IDS/IPS/WAF y cortafuegos perimetrales no son inmunes a puntos dbiles.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Blind spot
El uso de SSL puede ser toda la evasin que un agresor necesite para dejar ciega toda una infraestructura de defensa perimetral.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Blind spot
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Mtodos comunes
Blind spot
Hasta la versin 2.8.6.1 del IDS Snort se omita la opcin inspect_gzip en la conguracin por defecto del preprocesador http_inspect. Este comportamiento se ha alterado en las versiones ms recientes, como la 2.9.0.3.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Alineamiento
1
Introduccin a la temtica Anatoma del problema Introduccin a las inyecciones SQL Taxonoma Tcnicas comn y vectores de inyeccin Evasin de sistemas IDS/IPS Extraccin de datos, automatizacin y herramientas
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Explotar activamente una inyeccin SQL puede ser lento y tedioso. El uso de herramientas externas puede introducir limitaciones ya que puede ocurrir que estas no se encuentran orientadas a trabajar con el DBMS a ser explotado o no implementen una funcionalidad necesaria.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Casos de uso
Un auditor ha identicado en una aplicacin alrededor de 12 puntos de inyeccin. El administrador del DBMS monitoriza activamente el registro de eventos en bsqueda de errores y los compara con un baseline. Los resultados se consideran un xito, si en cada inyeccin el auditor es capaz de ejecutar un UNION SELECT @@version.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Casos de uso
- Sin error - Sin error Sin error BY n 1 - Sin error BY n - Con error BY 1 BY 2
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Casos de uso
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Casos de uso
En algunas ocasiones puede existir una herramienta con el potencial de realizar el ataque que deseamos pero se considera necesario extenderla.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Casos de uso
Consideremos por ejemplo una aplicacin que sea capaz de realizar la inyeccin pero que no disponga de ningn mtodo de evasin de IDS/IPS.
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Casos de uso
1 sub URI_encoder_Simple { 2 my $datos = $_[0]; 3 $datos =~ s/([^A-Za-z0-9])/sprintf(" % % %02X", ord($1))/seg; 4 return $datos; 5 }
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Automatizacin y algoritmos
Casos de uso
Adaptacin de la misma subrutina a la tcnica Double Encoding para explotar defectos en IIS 4.x realmente es solo adicionar el formato adicional
1 sub URI_encoder_DoubleEncoding { 2 my $datos = $_[0]; 3 $datos =~ s/([^A-Za-z0-9])/sprintf(" % %25 %02X", ord($1))/seg; 4 return $datos; 5 }
NextVision Ibrica
Introduccin a la temtica
Preguntas y cierre
Preguntas?
NextVision Ibrica