Hacking Ético, Seguridad Informática, Redes, RedTeam

miércoles, 6 de julio de 2022

PENTESTING WEB PARTE 5

 PENTESTING WEB PARTE 5 - SQLI


¿Qué es SQLI?

Un ataque de inyección SQL consiste en la inserción o “inyección” de una consulta SQL a través de los datos de entrada del cliente a la aplicación. Un exploit de inyección SQL exitoso puede leer datos confidenciales de la base de datos, modificar datos de la base de datos (Insertar/Actualizar/Eliminar), ejecutar operaciones de administración en la base de datos (como apagar el DBMS), recuperar el contenido de un archivo dado presente en el archivo DBMS sistema y, en algunos casos, emitir comandos al sistema operativo. Los ataques de inyección SQL son un tipo de ataque de inyección, en el que los comandos SQL se inyectan en la entrada del plano de datos para afectar la ejecución de los comandos SQL predefinidos.


Tipos de ataques SQLI

  • Ataque por error: Es el ataque más común y el más fácil de explotar ya que es la propia aplicación la que va indicando los errores de la base de datos al realizar las diferentes consultas.
  • Ataque por unión: Este tipo de ataque consiste en que el portal devuelva un resultado, y a partir de ahí, añadir al resultado original el resultado de otra query de tal forma que se muestren junto con los datos del portal, los datos sensibles del mismo que no debería de poderse obtener.
  • Ataque ciego (blind): Es el ataque más complicado, es la última opción cuando ninguno de los ataques anteriores funciona. En este caso hay que ser muy creativos y se deben de realizar preguntas a la base de datos mediante booleanos, es decir, verdadero o falso.
  • Basado en condicionales: Si la consulta está bien mostrará los resultados, sino no.
  • Basada en tiempo: Si la consulta es correcta devolverá los resultados a los N segundos, sino no.

Ejemplo de como realizar una inyección SQLI.

Para realizarla vamos a ir al módulo de "passphrase generator", luego capturamos la petición y la mandamos al repeter.

Después mandamos la petición y vemos lo que responde, posterior a eso usamos a modo de ejemplo este payload "' OR '1'='1" , nos dirigimos al decoder y lo encodeamos en url y como vemos nos devuelve la petición exitosa de igual forma nos deja pasar la petición.







Ya vimos que nos funciono lo del payload ahora vamos a usar la herramienta sqlmap, con ello vamos a conseguir explotar y sacar la información de la base de datos, lo aremos de la siguiente forma,



Y con ello conseguimos realizar una inyección sqli y su explotación con sqlmap.


Espero les sea de utilidad, nos vemos en la siguiente entrada.

Happy-Hacking 😊

martes, 21 de junio de 2022

PENTESTING WEB PARTE 4

 PENTESTING WEB PARTE 4 - XSS3


Inyección XML - XSS - Subida de Archivos

En esta entrada veremos como podemos realizar una inyección XML-XSS subiendo un archivo y llamándolo paraqué ejecute nuestro payload, en este caso podemos usar el mismo payload del ejemplo anterior,  de esta forma nos va a dejar pasar y con ello el alert aparecerá en el navegador al llamar el archivo.


En este caso vamos a el área de subida de archivos, luego vamos a buscar nuestro archivo xml que habíamos creado previamente, presionamos el botón buscar, cargamos el archivo.






Ahora solo queda llamar al archivo de la siguiente ruta /uploads/admin1/xss.xml y se ejecutara nuestro escript.

Espero les sea de utilidad, nos vemos en la siguiente entrada.

Happy-Hacking 😊

PENTESTING WEB PARTE 3

PENTESTING WEB PARTE 3 - XSS2


Inyección XML - XSS

En esta entrada veremos como podemos realizar una inyección XML-XSS, en este caso, podemos usar el mismo payload del ejemplo anterior, esta vez lo vamos a encodear en html y de esta forma nos va a dejar pasar y con ello el alert aparecerá en el navegador.


En este caso vamos a el área de administración, luego vamos a buscar el usuario, presionamos el botón buscar y vemos lo que capturamos en BurpSuite.



Ahora que ya capturamos agregamos el script que encodeamos en html  (solo vamos a encodear  esto: "<script>"), luego, precionamos el botón de forward y dejamos pasar la petición.


Como vemos la inyección funciono y nos ejecuto el alert con lo que nosotros habíamos agregado.


Espero les sea de utilidad, nos vemos en la siguiente entrada.

Happy-Hacking 😊

lunes, 20 de junio de 2022

PENTESTING WEB PARTE 2

 PENTESTING WEB PARTE 2 - XSS1

¿Qué es Cross-Site-Scripting?

Los ataques Cross-Site Scripting (XSS) son un tipo de inyección, en el que se inyectan scripts maliciosos en sitios web que. Los ataques XSS ocurren cuando un atacante usa una aplicación web para enviar código malicioso, generalmente en forma de un script del lado del navegador, a un usuario final diferente. Las fallas que permiten que estos ataques tengan éxito están bastante extendidas y ocurren en cualquier lugar donde una aplicación web use la entrada de un usuario dentro de la salida que genera sin validarla o codificarla.

Tipos de ataques XSS

  • XSS Reflejado: Es el más común, este no se almacena en el código en el servidor.
  • XSS Almacenado o Persistente: Este tiende a almacenar el código en el servidor.
  • XSS Basdo den DOM: Inyecta mediante la url pero no se carga como parte de la web en su código fuente, podemos decir que el código no llega a la web, únicamente se ejecuta en el navegador de la víctima.

Recursos

Entre los recursos que se pueden usar hay gran cantidad en la web, de los cuales podemos usar o apoyarnos con estos: 


¿Dónde Podemos Practicar?

Podemos hacerlo en:

También lo podemos hacer con ayuda de repositorios de github hay muchos escenarios para pruebas, en este laboratorio usaremos ese repositorio DVWS,  la instalación lo vimos en la primera parte1.


¿Cómo hacer una inyección XSS?

Para realizar una inyección necesitamos de payloads, un payload generalmente es lo que usamos para inyectar dentro del o los parámetros vulnerables que tiene la aplicación.

Para este ejemplo vamos hacer un XSS Reflejado en el login.

Primero vamos a colocar un user y una contraseña, luego de esto configuramos BurpSuite para poder capturar trafico.


Luego de esto vemos que al capturar podemos modificar la petición, (dejo ambas), agregamos el script y presionamos el botón forward, luego regresamos al navegar y vemos como funciona, mostrando el alert con el mensaje que definimos previamente.



Espero les sea de utilidad, nos vemos en la siguiente entrada.

Happy-Hacking 😊

lunes, 2 de mayo de 2022

PENTESTING WEB PARTE 1

 

PENTESTING WEB PARTE 1 - DEFINICIONES Y CONFIGURACIÓN DEL LABORATORI DE PRUEBAS


¿QUE ES EL PENTESTING WEB?

Consiste en revisar los sistemas o aplicativos WEB con el objetivo de detectar vulnerabilidades y prevenirlas.

 

¿Qué es Owasp Top 10?

Es un documento de concienciación estándar para desarrolladores y seguridad de aplicaciones web. Representa un amplio consenso sobre los riesgos de seguridad más críticos para las aplicaciones web.


 Owasp Top 10 2017 y 2021 que cambios tuvo.


¿Qué son las Pruebas SAST y DAST?

Son metodologías de pruebas de seguridad de aplicaciones que se utilizan para encontrar vulnerabilidades o deficiencias de seguridad.

SAST: Son pruebas de seguridad de aplicaciones estáticas es decir revisar el código fuente de la aplicación.

DAST:  Son pruebas de seguridad de aplicaciones dinámico es decir que se auditara la aplicación en funcionamiento (interfaces o entradas de esta).

 

¿Qué herramientas necesitamos?

Para realizar las pruebas de penetración web necesitamos de varias herramientas como lo son: BurpSuite, ZapProxy, SonarQube, Acunetix, entre otras. Tenemos que tener en cuentas que tipo de prueba realizaremos, en el transcurso de estas entradas en el blog aremos pruebas DAST.

 

¿Cómo configurar mi laboratorio de pruebas?

Para realizar esto necesitamos de un entorno controlado, para ello usaremos este repositorio: https://github.com/snoopysecurity/dvws-node, usaremos Mozilla Firefox y BurpSuite.


Instalando DVWS

DVWS es un servicio web/api vulnerable para pruebas.

Clonamos o descargamos el repositorio, luego mediante Docker iniciaremos el servidor de pruebas. Esperamos que termine el proceso y luego lo iniciamos, en mi caso uso Docker en Windows.

  • cd dvws-node
  • docker-compose up



Instalando certificado de BurpSuite en Mozilla Firefox.

Hay dos formas una desde una url y otra generando el certificado desde burp.


Generando certificado desde Burp:

Para ello vamos a Proxy-Options-Proxy Listeners y configuramos la ip y el puerto. Luego vamos a Import/Export CA Certificates, marcamos la opción certificate in DER format le colocamos a un nombre y le colocamos la extensión .Der.



Ahora vamos a firefox y vamos a la opción ajustes, privacidad & seguridad – certificados – ver certificados – importar – y abrimos el certificado y presionamos aceptar.


Luego vamos a configurar el proxy en Mozilla, seleccionamos configuración manual del proxy y agregamos la ip y el puerto que colocamos en burp anteriormente, marcamos la opción de socks v5 y aceptamos.




Generando certificado desde url:

Vamos a la siguiente url: http://burpsuite/ y descargamos el certificado donde dice “CA Certificate”, y seguimos los siguientes pasos: Ahora vamos a firefox y vamos a la opción ajustes, privacidad & seguridad – certificados – ver certificados – importar – y abrimos el certificado y presionamos aceptar.







Luego vamos a configurar el proxy en Mozilla, seleccionamos configuración manual del proxy y agregamos la ip y el puerto que colocamos en burp anteriormente, marcamos la opción de socks v5 y aceptamos.


Una vez teniendo todo listo, iniciamos DVWS y con la ip de nuestra máquina entramos a la parte web, procedemos a realizar una prueba y vemos que si capturamos tráfico.

Espero les sea de utilidad, nos vemos en la siguiente entrada.
Happy-Hacking 😊

miércoles, 13 de abril de 2022

Pentesting Móvil Parte 4

 Pentesting Móvil Parte 4


Como en las entras anteriores ya vimos como crear nuestro laboratorio de pruebas, las herramientas que estamos usando y como capturar trafico.

En esta entrada veremos que podemos hacer cuando ya podemos capturar tráfico, o interactuar con la aplicación de forma dinámica.


¿Qué podemos hacer?

Lo que podemos realizar cuando estemos testeando una Aplicación de forma dinámica, es:
  • Hacer fuzzing en los parámetros de nos muestra la aplicación 
  • Realizar prueba de lógica de negocios.
  • Idors
  • Etc.

¿Como lo realizo?

Al momento de capturar tráfico, podemos modificar los parámetros de la misma, mostraremos unos ejemplos de cómo hacerlo.

Idors (Insecure Direct Object Reference).

Es un tipo de vulnerabilidad que ocurre cuando una aplicación permite a un usuario acceder directamente a recursos, sin realizar el debido control de acceso.

Para realizar idors debemos tener en cuenta un par de cosas: el rol de la aplicación es decir el tipo de negocio, como lo son: los ids, roles, números de cuenta, números de tarjetas, entre otros datos.

 Ejemplo:

Ahora veremos como podemos hacer un IDOR, como ya mencionamos cambiaremos los datos para ver información de otro usuario, los datos de los demás usuarios están acá: https://github.com/WaTF-Team/WaTF-Bank/tree/master/Backend










Espero les sea de utilidad, nos vemos en la quinta parte.

Happy-Hacking 😊