jueves, 14 de julio de 2022

¿Cómo identificar un SQL Injection? ¿Es vulnerable el parámetro?

¡Hola a todos! nuevamente tras mucho tiempo desaparecido dadas algunas aventuras en el lado obscuro de la seguridad informática (así es... estuve trabajando en el lado administrativo de Seguridad de la información), me encuentro de regreso en un equipo de red team, por lo que espero ahora sí sea más constante el publicar tips, ejercicios o situaciones interesantes que ameriten una publicación para explicar el paso a paso.

Sin más comerciales iniciemos, no sin antes comentar que está publicación es totalmente con fines educativos, buscando adentrar a más personas al hermoso mundo del Pentest ético, no me hago responsable del mal uso del conocimiento adquirido:

Las inyecciones SQL continuan siendo una de las vulnerabilidades más comunes hoy en día para aplicaciones, por lo que se amerita documentar una serie de pasos aplicables para identificar dicha vulnerabilidad en una aplicación Web.

Cuando identificamos dentro de una aplicación que el sistema esta utilizando valores (texto o números) para regresarnos información o mostrarnos mediante indicadores algún producto, post, imagen, etc... es donde la imaginación debe volar...

en este ejercició tendremos un producto que se encuentra asociado a un identificador de la siguiente manera:

https://elsitiomasvulnerabledelmundomundial.com/filtrar?producto=1

Ahora, los siguientes pasos serán:

1) Identificar si el parametro es vulnerable... ¿y cómo es esto?, ¡pues será con las siguientes pruebas!

    a) añade una comilla simple al final del identificador del producto, quedando de la siguiente manera 1'

    Probablemente recibas un error indicando que la consulta se encuentra mal formada, más no ocurre siempre, por lo que puede que no recibas nada, de ser así, no descartes la vulnerabilidad! puedes tratar intentando lo siguiente...

1--

    En este caso, deberás observar el producto presentado en pantalla, tal cual si no tuviese el guión doble (ya que estamos comentando), de lo contrario, las posibilidades de que el parametro sea vulnerable se van reduciendo, dejo más cadenas que te ayudarán a hacer tus pruebas, los casos con operador "AND" son muy útiles, pues en caso de cumplirse o no las condiciones, los resultados mostrados en pantalla o en tu proxy te indicarán si podrás explotar la falla.

-1--

1#

1 # s

1; -- s

1'; -- s

1 AND 1=1--

1 AND 1=2--

En caso de que el valor "1" sea manejado como varchar:

1' AND 1=1--

1' AND 1=2--

1' AND 'A'='A'--

1' AND 'A'='B'--

1' AND 'A=A'--

1' AND 'A'='A

Si te ha sido posible identificar que el comportamiento de la aplicación apunta a un SQL Injection, estás del otro lado! más adelante estaré compartiendo los detalles de explotación para cada manejador de bases de datos!.

Recuerda! el uso o acciones realizadas referentes a la información que se encuentra en este sitio es tu responsabilidad y no lo olvides, el operador "OR" puedes tirar todo un sistema, por lo que te aconcejo no utilizaro.
Autor: 1nf4mousmx

jueves, 24 de marzo de 2022

¿Por qué decidí ser un Hacker Ético?

Buen día a quienes se dan el tiempo de revisar este blog tras ya bastante tiempo de ausencia, el día de hoy les quiero hablar un poco sobre las razones por las que decidí adentrarme en el mundo del Hacking Ético y es que ¿a quién no le gusta poner a prueba sus conocimientos contra sistemas informáticos? más confieso... no es sólo el hecho de saber y demostrarte que sabes, la verdadera satisfacción llega cuando logras acceder a los sistemas y generas el reporte que presentarás a la empresa que te ha contratado.

¿Parece interesante no? tener la oportunidad de atacar legalmente sistemas y tras lograr vulnerar haces recomendaciones para que cibercriminales no hagan de las suyas... y es en donde pienso ¿qué pasaría si atacan algún sitio en donde tengas registrada tu información personal? oh! gran tragedia.

Mis inicios, fueron como los de la gran mayoría, más que turbios y claramente sin saber por donde empezar, en la universidad entusiasmado por "trollear" a mis compañeros y victima de un "trolleo" por parte de mi roomie decidí empezar a utilizar CAIN y ABEL (ya no encontré el website)... qué fácil era clonar certificados en 2012!.

En la carrera universitaria iniciaron las clases referentes a seguridad informática, una genialidad! forense, criptografía, Seg de redes, etc. y me enamoré perdidamente de este maravilloso mundo tecnológico, y se puso en mi camino el siguiente video de Alejandro Hernandez:

Más que emocionado por todo lo que la seguridad informática ofrecía como algo nuevo e innovador y en adición a que existía una falta considerable de profesionales en seguridad en aquellos entonces (más que ahora), decidí descargar Damn Vulnerable Web Application (aquí) y empezar a estudiar sobre las vulnerabilidades que se pueden explotar en la aplicación mencionada, descargué unos cuantos libros de "hacking ético" y entré a algunos sitios donde cumplias retos, hoy en día hay más variedad y la información está disponible para todos.

Me enfoqué 100% en aplicaciones Web, y fue así como con practica, tutoriales, lecturas... surgió la oportunidad de trabajar en una de las consultoras más grandes de seguridad informatica del país, en donde aprendí mucho... realmente la practica y pensar fuera de la caja es la mejor manera de aprender.

La seguridad Informática es una amante celosa y cara, demanda mucho tiempo y las certificaciones son costosas, pero definitivamente, con perserverancia y entusiasmo todo se ve recompenzado rápidamente.

Hagan CTFs, busquen tutoriales en trymehack, descarguen las ISOs que OWASP tiene para practicar, jueguen con las maquinas virtuales de Offensive Security y disfruten el hackear éticamente, no hay necesidad de dejarse ir por dinero y actuar de manera maliciosa aprovechando sus conocimientos, pueden arruinar sus vidas, usen su conocimiento para el bien, las recompensas llegarán por si solas.

Saludos!

autor: 1nf4mousmx

jueves, 1 de julio de 2021

Hackeando maquinas de Vulnhub: Geisha parte I

Buena tarde a todos! nuevamente me he desaparecido por mucho tiempo... realmente el trabajo me ha alejado un poco de este Blog...

En fin! retomando las practicas de "Pentest" que había dejado un poco al olvido, me encontré que Offensive Security (sí, los creadores de Kali y de las certificaciones practicas más pro del mercado "a mi criterio") compró VulnHub... y ofrecen un servicio gratuito para hacer "Pentest" a todas las maquinas de VulnHub con un acceso de 3 horas al día (si pagan tienen acceso ilimitado incluso a maquinas creadas por los mismos de Offensive Security), les dejo la liga: AQUI

Sin más comerciales iniciemos, no sin antes comentar que está publicación es totalmente con fines educativos, buscando adentrar a más personas al hermoso mundo del Pentest ético, no me hago responsable del mal uso del conocimiento adquirido:

Después de acceder al portal de OffSec e iniciar el servidor "Geisha" obtenemos la dirección IP que vamos a probar:

Uno de los primeros pasos tras obtener la dirección IP es validar aquellos puertos que el servidor tenga abiertos, para esto usaremos NMAP y el siguiente comando (sin embargo más adelante agregaremos más parámetros a nuestro comando):
nmap -v 192.168.125.82


Observen que NMAP nos muestra sólo 4 puertos abiertos y para está practica esto no nos es suficiente, por lo que usaremos el siguiente comando:

nmap -v -sV -p 1-10000 192.168.125.82

Donde:
-sV = Versión del servicio
-p   = Indicar a NMAP de qué puerto a que puerto queremos que escanee.


Vaya... como pueden observar, aparece más información de puertos y nos podemos percatar de la existencia de múltiples servicios Web.
Por lo que el siguiente paso será antes que nada ejecutar NIKTO sobre todos los puertos con servicios Web para obtener más detalles de cada servicio, el comando será el siguiente:

nikto -h 192.168.125.82

Tras hacer el escaneo a todos los puertos, NIKTO muestra información interesante sobre el puerto "7125" y es que ha encontrado un path llamado "passwd".

Si accedemos en nuestro navegador al "path" identificado por NIKTO, podremos descargar un archivo que se mira más que interesante:

Hemos encontrado el archivo "passwd" que como bien saben se encuentra en todo linux en la ruta "/etc/passwd", ahora sabemos los nombres de los usuarios del sistema y nos enfocaremos en el usuario "geisha" al cual utilizando HYDRA le haremos un ataque de fuerza bruta en el puerto 22 (SSH) previamente identificado, con el siguiente comando:

hydra -l geisha -P /usr/share/wordlists/rockyou.txt 192.168.125.82 ssh


Vaya! la contraseña es "letmein", probemos el acceso y busquemos la primer bandera del juego!

ssh geisha@192.168.125.82


y así es como se obtiene la primer bandera... pronto comparto la segunda parte, quizá sea más interesante porque vamos por el "root".

Recuerda! el uso o acciones realizadas referentes a la información que se encuentra en este sitio es tu responsabilidad.
Autor: 1nf4mousmx



lunes, 7 de enero de 2019

¿Qué es un XXE? Introducción.

Buen día a quienes pasan por este Blog, me da gusto estar de vuelta tras otra pequeña ausencia y no hay mejor manera de regresar que explicando lo que es un "XXE" o "Xml External Entities" y un  sencillo método que nos ayudará a identificar esta vulnerabilidad.

¿Qué es un "XXE"?
Es un tipo de ataque contra aplicaciones que interpretan entradas "XML". Este ataque ocurre cuando una entreda "XML" contiene referencias a una entidad externa ("External Entities") y está es procesada por un interprete configurado de manera insegura.

Por la definición anterior se debe deducir que la vulnerabilidad se encuentra en el interprete o "parser", responsable de procesar el documento "XML".

¿Cómo identifico esta vulnerabilidad?
Ya sea que dentro del flujo de la aplicación se genere una estructura "XML" con los datos ingresados en algún formulario o mediante la carga ("upload") de un archivo "XML" en algún módulo de la aplicación, utilizando un "proxy" podrás observar dentro del cuerpo de la petición el documento "XML" que será procesado por el servidor aplicativo, en muchas ocasiones los programadores codifican en "base64" el documento.

Identificado el documento "XML" es necesario modificar el contenido de éste, así iniciaremos con la validación que nos ayude a determinar si la aplicación es vulnerable a un ataque del tipo "XXE".

Imaginando que nuestro "proxy" intercepta la siguiente petición y respuesta HTTP, observamos que el valor dentro de la etiqueta "foo" se ve reflejado en la respuesta de la siguiente manera:

Petición.

Respuesta.


Nuestra primer prueba a realizar será la siguiente, editaremos nuestra petición y observaremos que el interprete ha procesado el documento con la entidad externa, el resultado se mostrará en la respuesta de la petición.

petición.
 
Respuesta.

De esta manera comprobamos que el interprete utilizado para procesar documentos "XML" no se encuentra configurado de manera correcta y es posible explotar la vulnerabilidad.

En próximas publicaciones retomaremos la explotación de un "XXE" a un nivel más avanzado, ya que no en todos los casos el procesamiento de la entidad externa dentro del documento "XML" se verá reflejado en la respuesta de la aplicación, por lo que tendremos que hacer uso de la técnica "Out of Band".


Referencias:

Saludos.
Autor: 1nf4mousmx. 

miércoles, 5 de diciembre de 2018

Google Dorks: Identificando inyecciones SQL en PHP/MySQL

Buen día, vuelvo a publicar después de mucho tiempo de no pasar por acá; he decidido volver y hablar de la identificación de sitios vulnerables a inyecciones SQL con ayuda de Google, ¿alguna vez se han preguntado cómo encontrar sitios con posibles inyecciones SQL? Es fácil y para esto nos apoyaremos de los Dorks de Google.

Para el ejemplo de hoy, buscaremos sitios desarrollados en PHP que utilicen un manejador de base de datos MySQL, una combinación realmente común. 

El Dork a utilizar sera el siguiente:

inurl:php? intext:"You have an error in your SQL syntax;"


Para nuestra búsqueda se obtienen un poco más de un millón de resultados, dando oportunidad de identificar muchos sitios posiblemente vulnerables a inyecciones SQL.


 En siguientes publicaciones revisaremos a detalle algunas técnicas para explotar esta vulnerabilidad.


Autor: 1nf4mousmx. 

jueves, 11 de octubre de 2018

Google Dorks: Identificando sitios Hackeados

Buen día a todos aquellos que se toman un momento para leer el contenido de este Blog.

El día de hoy he decido hablar nuevamente de Google Dorks, sólo que ahora será con la finalidad de identificar sitios Hackeados. 

¿A que se debe esto?
En general, al realizar una prueba de seguridad a un aplicativo viene a mi mente la posibilidad de que el sitio a revisar se encuentre comprometido, por lo que una serie de combinaciones de Dorks comienzan a dar vueltas dentro de mi cabeza; de las cuales hablo en este Post.

Ya que tenemos definido el alcance de nuestra prueba de seguridad y contamos con la dirección URL a revisar, imaginemos palabras o frases que sean utilizadas constantemente por Cibercriminales para dejar en claro que ellos fueron capaces de comprometer un sitio:
  • Hacked
  • Hacked by
  • Pwnd
  • Pwnd by
Considero son las más utilizadas, para esta publicación, trabajaremos con las ya mencionadas y tal como publiqué anteriormente AQUÍ, usaremos los siguientes Dorks para identificar si la aplicación a revisar ha sido comprometida (puedes jugar un poco con ellos para tener mayor exactitud en tu búsqueda):

site:www.misitiodeprueba.com intitle:"hacked by"
site:www.misitiodeprueba.com intext:"hacked by"
site:www.misitiodeprueba.com intitle:"Pwnd by"
site:www.misitiodeprueba.com intext:"Pwnd by"



Con los Dorks utilizados podemos descartar o no la posibilidad de que el sitio que estamos revisando haya sido comprometido por un Cibercriminal en busca de fama, que por lo regular ha dejado el mensaje "Hacked by" o "Pwnd by" en el título o dentro del contenido de las página Web, OJO! el hecho de que Google no haya arrojado resultados no quiere decir que el sitio sea seguro o que no haya sido vulnerado anteriormente.

Extra!
Les dejo unos cuantos Dorks más para identificar sitios publicados en Internet comprometidos:

inurl:php?id= intitle:"hacked by"
inurl:php?id= intitle:"pwnd by"
inurl:aspx?id= intitle:"hacked by"
inurl:jsp?id= intitle:"hacked by"
...

Espero puedan jugar un poco con ellos y sacar el máximo provecho de lo visto hoy.

Autor: 1nf4mousmx. 


miércoles, 19 de septiembre de 2018

Explotando un "crossdomain.xml".

¿Qué tal a todos?

El día de hoy les voy a mostrar como explotar una mala configuración del archivo "crossdomain.xml", pero antes es necesario comentarles que el uso o acciones realizadas referentes a la información que se encuentra en este sitio es tu responsabilidad. El mal uso de la información que este sitio contiene puede resultar en cargos legales, de los cuales el autor de este "Blog" no tiene responsabilidad alguna por las acciones realizadas por los lectores.

Sin más rodeos comencemos!...

¿Qué es el archivo "crossdomain.xml"?
Es un archivo en formato XML, en el cual se define la política "Cross-Domain", lo que permite a clientes Web manejar recursos entre diferentes dominios, en otras palabras tengo dos servidores Web (los llamaremos "servidor A" y "servidor B"), en el "servidor A" tenemos un archivo flash que solicitará información del "servidor B" para mostrar dentro de la aplicación Web del "Servidor A", de no existir la política "Cross-Domain" en el "Servidor B", nuestro archivo flash no podrá obtener la información solicitada, por lo tanto, no se podrá mostrar ningún dato del "Servidor B" en el "Servidor A".

¿Cómo identifico un archivo de "crossdomain.xml" mal configurado?
Muy sencillo, antes que nada debes localizar el archivo "crossdomain.xml" en el servidor victima (por lo regular lo encuentras en el "path" raíz ej: "https://www.misitiovulnerable.com/crossdomain.xml") y éste debe estar configurado de tal manera que permita el acceso de cualquier dominio, esto se especifica con el simbolo "*", así como en la siguiente imagen:


Requerimientos:
Ahora requieres de un ambiente de pruebas, en donde yo te recomiendo descargar lo siguiente:

1) VMWare Player (ahora Workstation Player), de no ser así, puedes utilizar VirtualBox para hostear tus maquinas virtuales.

2) La maquina victima, en este caso, utilizaremos bWAPP (cuenta con más vulnerabilidades que te serán de utilidad par aprender y jugar un poco).

3) La maquina atacante, en este caso, debe ser un sistema Linux, por lo que yo les recomiendo utilizar "MagueyATF", un agradable Sistema Operativo con herramientas necesarias para hacer pruebas de seguridad a todo tipo de aplicativos (pueden descargar Kali, Backbox, ParrotOS).

4) Un Servidor Web, en donde recomiendo un Ubuntu Server, sólo es necesario que tu sistema operativo cuente con las instalaciones del servidor Web "Apache" y de "PHP" para llevar a cabo está PoC.

5) El Framework que nos hará el día y que contiene todo lo necesario para explotar al vulnerabilidad de "Cross-Domain", desarrollado por  Seth Art aka "SethSec".

Instalación:
Asumiendo que ya tienes tu ambiente virtual corriendo de maravilla y configurado (no olvides poner en modo puente las tarjetas de red de tus maquinas virtuales, te quitará unos cuantos dolores de cabeza), comencemos con la instalación del Framework en nuestro equipo atacante, lo cual se realizará de la siguiente manera.

1) En una terminal ejecute las siguientes instrucciones:
  • git clone https://github.com/sethsec/crossdomain-exploitation-framework.git
  • cd  crossdomain-exploitation-framework
  • ./SWF-server 
Esto debe ser suficiente para realizar la instalación del Framework en nuestro equipo.

Explotación:


1) Continuamos con la modificación de nuestro "ActionScript" para generar nuestro archivo "SWF", el cual se encargara de explotar la política del "Cross-Domain", para ello, necesitamos realizar las siguientes acciones.

  • Ingrese a la carpeta "actionscript-templates" y con un editor de texto abra el archivo "StealData.as".
  • Introduzca las direcciones URL del servidor vulnerable y del servidor que utilizara para almacenar nuestro archivo "SWF",  tal como en la imagen que adjunto:



3) En una terminal, introduzca la siguiente instrucción (tienes que estar en el path "crossdomain-exploitation-framework"):
  • /opt/flex/bin/mxmlc ./actionscript-templates/StealData.as --output ./webroot/exploit.swf
4) Copie el archivo "exploit.swf" (que se encuentra en la carpeta "crossdomain-exploitation-framework/webroot") al servidor  Web que se utilizará para recolectar información (recomiendo pegarlo en la raíz, ejemplo: /var/www/html/).


5) Cree los siguientes dos archivos, "test.html" y "collector.php" en el servidor Web.

test.html




collector.php




6) Inicia sesión en la aplicación "bWAPP" desde el equipo atacante, en otra pestaña del navegador ingresa la dirección URL del servidor Web que ordenara la ejecución del archivo "SWF", en este caso será el archivo "test.html".

7) Finalmente, observe el contenido del archivo "thanks_for_sharing.txt" dentro del servidor Web, el cual muestra la información obtenida del sitio victima.


Cabe mencionar, que con este fallo de seguridad, puedes traerte toda la vista presentada del usuario en sesión sobre el servidor vulnerable...

Saludos.
Autor: 1nf4mousmx. 

Referencias
https://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html
https://github.com/sethsec/crossdomain-exploitation-framework
https://sethsec.blogspot.com/p/about.html (Para hacer honor a quien honor merece, les dejo un poco de información del desarrollador de tan magnifico Framework, ya que sin su trabajo no hubiera sido posible realizar esta PoC).

miércoles, 12 de septiembre de 2018

Entendiendo un poco de Google Dorks


Hola visitantes de este blog tan magnifico!

El día de hoy tengo el gusto de presentar mi primer post tras años de ausencia y para ello he decido hablar sobre GOOGLE DORKS, también conocido como GOOGLE HACKING

Es bien sabido que GOOGLE es un buscador muy potente y que podemos encontrar cualquier cosa gracias a que sus mecanismos de búsqueda ofrecen un sin fin de información, pero en este momento lo último de lo que queremos hablar es de cómo encontrar el nombre de aquella serie que veíamos, o el nombre de aquel villano con el que soñábamos ser en la infancia.

Así que comencemos…
¿Qué es Google Dorks?
Básicamente, son operadores cuya función es el filtrar información en el buscador de Google, esto para acotar los resultados encontrados en una búsqueda a solo aquellos resultados que nos son de mayor utilidad, por ejemplo filtrar el tipo de archivos o que los resultados contengan explicitamente una palabra.

¿Y eso significa qué? Veamos un ejemplo!

Tratando de encontrar un buen libro de Hacking en formato PDF se me ocurre lo siguiente:
Buscar la palabra "Hacking".


Y en efecto! Millones de resultados, pero… ¿y mi libro de Hacking?
Es ahí donde entran los operadores de nuestro amigo GOOGLE, en este caso “filetype”.


Bastó con la siguiente búsqueda: Hacking filetype: pdf para encontrar algunos libros en formato PDF, te adjunto una tablita con los operadores mas comunes:

OPERADOR
DESCRIPCIÓN
INURL
Busca una palabra en la URL de la pagina.
SITE
Limita la busqueda a un dominio determinado.
INTEXT
Busca una palabra en el texto de una pagina.
FILETYPE
Busca archivos con una extensión determinada.

Bueno y ahora te preguntaras que tiene de Hacking esto… y yo te responderé que la respuesta esta en tu imaginación, contamos con operadores para encontrar: texto especifico en una pagina web, texto especifico en las direcciones URL y formatos específicos como ya lo vimos, para dejar mas claro lo que pretendemos explicar y se tenga esa sensación de que hoy aprendimos algo de Hacking les dejo el siguiente ejemplo para encontrar formularios de "login" de un famoso CMS llamado “WordPress” con el operador inurl… So let's get started it!

Un poco de paciencia y mucha imaginación nos ayudará a encontrar lo que buscamos, sin embargo te recomiendo no abusar de los "Dorks" de Google, ya que no creo que quieras recibir una demanda y ser catalogado como un ciberdelincuente.

En los próximos post estaré explicando más a detalle los operadores y daré unos ejemplos interesantes.

Autor: 1nf4mousmx. 

jueves, 28 de febrero de 2013

Exposición ¿Que es Fibra Óptica?

La fibra óptica es una delgada hebra de vidrio o silicio fundido que conduce la luz. Se requieren dos filamentos para una comunicación bi-direccional: TX y RX.
 El grosor del filamento es comparable al grosor de un cabello humano, es decir, aproximadamente de 0,1 mm. En cada filamento de fibra óptica podemos apreciar 3 componentes:

 • La fuente de luz: LED o laser.
 • el medio transmisor : fibra óptica.
 • el detector de luz: fotodiodo. Aquí les dejo el link mas detallado. 
 Gracias.

¿Cómo identificar un SQL Injection? ¿Es vulnerable el parámetro?

¡Hola a todos! nuevamente tras mucho tiempo desaparecido dadas algunas aventuras en el lado obscuro de la seguridad informática (así es... e...