Hashview: un frontal web para cracking y análisis de contraseñas

Hashview es una herramienta para profesionales de seguridad que ayuda a organizar y automatizar las tareas repetitivas relacionadas con el crackeo de contraseñas. Básicamente podemos decir que Hashview es una aplicación web que gestiona los comandos hashcat (https://hashcat.net).  Como requisito necesitaremos un entorno RVM funcionando (https://rvm.io/rvm/install) y sus principales características son:
  • Crea tareas predefinidas de hashcat
  • Administra jobs (conjunto de tareas predefinidas)
  • Análisis e informes
  • Encolamiento de jobs (no más tiempo de inactividad o ciclos perdidos)
  • Actualización retroactiva de los hashes previamente no crackeados
  • Búsqueda de resultados por nombre de usuario, hash o contraseñas
Os dejo el video con la presentación que hicieron en la conferencia DerbyCon 6.0 de Kentucky:


Shootback: herramienta en python para realizar un túnel TCP inverso

Shootback es una herramienta escrita en Python para realizar un túnel TCP inverso y permitir el acceso hacia una máquina detrás de un NAT o firewall. Consume menos de 1% de CPU y 8MB de memoria con una concurrencia de 800 conexiones (sockets). El cliente (Slaver) es un único fichero que sólo tiene como dependencia la librería estándar de python(2.7/3.4+) . 

Cómo funciona  

Escenarios típicos 

 1 Acceder al equipo de una compañía/escuela (sin IP pública) desde casa
 2 Hacer un sitio/red públicos
 3 Facilitar la intrusión a una red privada
 4 Ayudar a los participantes de un CTF offline
 5 Conectarse a un dispositivo con una IP dinámica, como una ADSL doméstica

Recursos y herramientas para el descubrimiento de subdominios

Todos los frameworks y metodologías existentes para tests de intrusión contemplan en sus fases iniciales el reconocimiento, y dentro del reconocimiento es fundamental el descubrimiento de subdominios ya que puede ayudar a un atacante o auditor a identificar y enumerar distintos sitios web del objetivo, algunos incluso mal configurados y vulnerables. A continuación se listan una serie de recursos online y herramientas de gran valor que facilitan enormemente esta tarea.

RECURSOS ONLINE

1.- Censys (https://censys.io/)

Es probablemente uno de los primeros motores de búsqueda que buscan subdominios. Además te muestra otra información como puertos abiertos, detalles del certificado y SSL y resultados del Whois.

2.- Shodan (http://shodan.io/)

Shodan es una plataforma de spidering con una base de datos enorme dirigida fundamentalmente a profesionales de seguridad. Tiene datos históricos y actuales sobre una gran franja de servidores en Internet, incluyendo subdominios descubiertos, versionado de servidores y mucho más.


3.- Pentest-tools (https://pentest-tools.com/information-gathering/find-subdomains-of-domain)

Dentro de la categoría de 'Information Gathering', Pentest-tools tiene una herramienta de búsqueda de subdominios que utiliza distintos métodos como transferencias de zona DNS, enumeración DNS basada en listas y peticiones a distintos motores de búsqueda.

Latch your World! Usando Micro-Latch en el mundo real

Hace una semana, liberamos el código de Micro-Latch, con lo cual daba ya por zanjado el tema, pero tras recibir "unos cuantos correos" y a petición popular me he visto "forzado" a publicar esta entrada en la cual veremos posibles montajes de Micro-Latch en el mundo real.

Ya de paso y coincidiendo con la liberación de la versión dev de Micro-Latch os pido que os sintáis libres de mandarnos las ideas que se os ocurran, las cuales las añadiremos al brainstorming del proyecto en su WIKI correspondiente.

Bueno vamos a ver unas pocas ideas..

En primer lugar tenemos una simplísimo y divertidísimo montaje; una unidad portable para lachear lo que queramos en donde queramos, el esquema se autoexplica por si sólo. Consta del propio Esp8266 y su unidad programadora, y el montaje es ideal mientras estamos desarrollando nuestras app y también lo hace idóneo para probar a lachear todo.. con la user-version del sofware el pareado y despareado del dispositivo lo podemos hacer mediante nuestro smartphone y el frontend web del dispositivo.

[Pentesterlab write-up] Web For Pentester I - Path traversal, LFI & RFI

Seguimos con el lab 'Web For Pentester' de Pentesterlab, esta vez con los bloques de vulnerabilidades del tipo 'directory traversal' y 'file inclusion', por los que un atacante puede leer e incluso ejecutar código llamando a ficheros fuera del document root del servidor web (tanto en local como, en ocasiones, remoto) usando path relativos ("../") o completos, normalmente porque tampoco se filtra correctamente la entrada de datos del lado del cliente.

 

DIRECTORY TRAVERSAL

Como decimos la explotación de estas vulnerabilidades tiene como resultado el acceso a archivos que no deberían ser accesibles.

Al empezar con cada uno de estos ejercicios de dir o path traversal no tendréis el enlace directamente sino unas pequeñas imágenes/iconos, por lo que hay que leer el código fuente (o usar botón derecho y "copy image location") previamente.

Ejercicio 1

El primer enlace es http://pentesterlab/dirtrav/example1.php?file=hacker.png y si lo abrís con el navegador os mostrará el código html en lugar de la imagen, seguramente porque no se ha especificado el Content-Type.

SERVIDOR
<?php 

$UploadDir = '/var/www/files/'; 

if (!(isset($_GET['file'])))
    die();


$file = $_GET['file'];

$path = $UploadDir . $file;

if (!is_file($path))
    die();

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: public');
header('Content-Disposition: inline; filename="' . basename($path) . '";');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($path));

$handle = fopen($path, 'rb');

do {
$data = fread($handle, 8192);
if (strlen($data) == 0) {
break;
}
echo($data);
} while (true);

fclose($handle);
exit();


?>

Como veis en el código del servidor no se filtra $file = $_GET['file']; por lo que explotar esta vulnerabilidad es trivial, simplemente añadiendo "../" unas cuantas veces para llegar hasta la raíz y, a partir de ahí, indicar las rutas y ficheros comunes o predecibles a leer. Eso sí, hay que tener en cuenta que podrás acceder a los ficheros con los permisos asignados al usuario que corre el servidor web, por lo que normalmente no podrás acceder a ficheros como por ejemplo /etc/shadow.

PAYLOAD:
http://pentesterlab/dirtrav/example1.php?file=../../../../../../../../etc/passwd

Cómo comprobar si un equipo Windows está infectado rápidamente y sin herramientas adicionales

Recientemente leía una entrada de un instructor de SANS con amplia experiencia en respuesta ante incidentes que propone una breve lista de acciones para determinar rápidamente si un equipo Windows está infectado, sin necesidad de instalar un software de terceros, simplemente desde la linea de comandos. Obviamente y como dice su autor no es un método infalible pero si es verdad que ayudará a detectar muchas infecciones de una manera rápida y eficiente.

Elementos de inicio mediante WMIC

Windows incorpora una herramienta muy potente que seguro que conocéis: WMIC que, entre otras cosas, puede mostrar los elementos que se ejecutan al inicio para una posterior investigación. Sólo tienes que abrir la consola y escribir 'wmic startup list full'.

Como se muestra en el ejemplo es fácil identificar un programa que se ejecuta en el directorio Local\Temp, para luego subir el hash sospechoso a malwr.com o VirusTotal.


Caché DNS

Ahora si escribes 'ipconfig /displaydns' se mostrarán los dominios que se han resuelto recientemente. Si ves algo extraño es recomendable buscar el nombre de dominio y la IP en VirusTotal o similar para determinar si es malicioso.

Micro-Latch y el Internet de las cosas ¡liberado!

Bueno pues ya está disponible el código en dos sabores distintos: tenemos la versión para desarrollo y la versión de usuario.

Vamos a ver en que difieren y el por qué de estas dos versiones, veremos cómo instalarlas en nuestro ESP8266 y su funcionamiento.

Pero antes vamos a ver qué es y para qué puede servir Micro-latch pues, después de dos entradas, todavía recibo preguntas del tipo "para qué sirve".

¿Para qué nos puede servir Micro-Latch ?

Está claro; Micro-Latch es un cliente de LATCH montado en un módulo wifi (esp8266-01) el cuál consulta el estado de nuestra aplicación pareada y actúa en consecuencia en sus salidas gpio.

Ése seria el montaje mas simple, puesto con módulos mas avanzados de esp8266 tendríamos más posibilidades, como la de leer sensores e integrarlos en las opciones de LATCH...en fin no he querido complicarlo demasiado, pero podíamos implementarlo de muchas, muchas formas...

Vamos a ver para que podría servir esto...

Imaginad que tenéis un coche con conexión wifi  y sois algo paranoicos con el que os lo roben.. Micro Latch podría ayudaros.

Bastaría con instalar Micro-Latch en el coche de manera que pueda cortar el suministro eléctrico a la bomba de la gasolina con lo cual, si cerráramos el interruptor de muestra app en nuestro móvil, el coche no arrancaría, o se pararía si estuviese funcionando con lo cuál en caso de robo el caco lo tendría muy chungo.

Stitch: un RAT multiplataforma escrito en Python

Stitch es un RAT multiplataforma escrito en Python que permite crear payloads personalizados para Windows, Mac OSX y Linux. Su autor, Nathan Lopez, lo creó con la motivación de avanzar en su conocimiento de python, hacking y para ver lo que podía lograr. Y, aunque apunto estuvo de abandonar el proyecto al ver que previamente se adelantó Pupy (otro pero impresionante RAT multiplataforma escrito en Python) al final decidió publicarlo después de todo el camino recorrido.


Sus características son:

Genéricas

- Multiplataforma
- Autocompletado de comandos y archivos
- Detección de Antivirus
- Capacidad de apagar/encender la pantalla
- Ocultar y mostrar archivos y directorios
- Ver/editar el archivo hosts
- Ver todas las variables de entorno de sistema
- Keylogger con opciones para ver el estado, iniciar, detener y volcar los logs
- Ver la ubicación y otra información de la máquina de destino
- Ejecutar scripts de python personalizados que devuelven lo que se imprima a la pantalla
- Capturas de pantalla
- Detección de máquina virtual
- Descargar/subir archivos hacia/desde el sistema de destino
- Volcado de los hashes de las contraseñas del sistema
- Las propiedades de los payloads están "disimuladas" como otros programas conocidos

Específicas para Windows

- Muestra un cuadro de diálogo con el usuario/contraseña para engañar al usuario
- Vuelca la contraseñas guardadas en Chrome
- Permite borrar los registros del sistema, de seguridad y de la aplicación
- Habilitar/deshabilitar servicios como RDP, UAC y Windows Defender
- Editar las propiedades de archivos accesibles, creados y modificados
- Crear un cuadro emergente personalizado
- Ver la cámara web conectada y tomar instantáneas
- Ver las conexiones wifi conectadas y guardadas junto con sus contraseñas
- Ver información acerca de las unidades conectadas
- Ver el resumen de valores de registro como DEP

Commandline Challenge (bash) writeup

Hace poco leía una entrada en el blog de nuestros compañeros de Cyberhades acerca de Commandline Challenge, una plataforma con distintos retos que pondrá a prueba nuestra pericia a manos de una consola con bash. Además se trata de un proyecto de código abierto que podéis obterner en Github, donde incluso encontraréis intrucciones para crear los vuestros propios.

Si queréis empezar ya a "jugar" sólo téneis que visitar la URL https://cmdchallenge.com/ e intentar realizar cada uno de los ejercicios:


Como veréis se empieza desde lo más básico y luego el nivel de dificultad va in crescendo. Aquí os dejo el write up completo por si acaso os atascáis en alguno:

SOLUCIONARIO/WRITE-UP
 
Are you up for the command line challenge? Solve the tasks printed below in a single line of bash.

hello_world/

# Print "hello world".
# Hint: There are many ways to print text on
# the command line, one way is with the 'echo'
# command.

# Try it below and good luck!

bash(☠️)> echo "hello world"
hello world
# 👍 👍 👍  Correct!


current_working_directory/

# You have a new challenge!
Print the current working directory.

bash(0)> pwd
/var/challenges/current_working_directory
# 👍 👍 👍  Correct!

list_files/

# You have a new challenge!
# List names of all the files in the current
# directory, one file per line.

bash(0)> ls
README
# 👍 👍 👍  Correct!

Hackean varios bancos en Polonia infectándoles a través de un Organismo Financiero Gubernamental


Esta semana ha saltado a la primera plana internacional el que ya está considerado como el mayor incidente de Ciberseguridad en la historia de Polonia: varios bancos del país han sido víctimas de un Malware y la fuente de la infección fue la Autoridad de Supervisión Financiera de Polonia (KNF), organismo oficial encargado precisamente de garantizar la seguridad en el sector financiero.

Por el momento se desconoce el número total de bancos afectados aunque se teoriza sobre unas 20 entidades distintas y se ha reportado la infección tanto de estaciones de trabajo como de servidores en varias instituciones bancarias de Polonia. Solamente se ha confirmado la exfiltración de datos e información confidencial y se ha descartado el robo de dinero o manipulación de cuentas bancarias, aunque el tráfico detectado contenía gran cantidad de datos cifrados por lo que es imposible discernir de momento el contenido.

La información es a día de hoy escasa y difusa, ya que está siendo controlada con cuentagotas para mitigar el posible pánico que pudiera desencadenar entre usuarios y clientes. 

El detonante de la investigación fue la detección de tráfico inusual a localizaciones exóticas y el hallazgo de ciertos ejecutables cifrados en servidores de varias entidades, quienes al cotejar los resultados de sus análisis y las IOC dieron la voz de alarma.

Vía de Entrada

Las primeras investigaciones señalan que el punto de partida de la infección fue el servidor web del regulador financiero polaco antes mencionado, KNF: www.knf.gov.pl

Dicha web ha permanecido caída durante los últimos días y hoy durante toda la jornada únicamente ha sido accesible desde Polonia y ha estado bloqueando por geolocalización toda conexión externa.

Mensaje de error en la web del KNF
Bloqueo por geolocalización de la web del KNF: conexión desde fuera y dentro de Polonia
El artículo de BadCyber escrito por varios analistas que han tenido acceso privilegiado a la investigación relata que el código de una librería Javascript de dicho servidor habría sido alterado para cargar un fichero Javascript o JSP externo alojado en un servidor remoto, aunque se desconoce cómo se habría logrado en primera instancia dicha modificación inicial.