martes, 23 de enero de 2018

#Biohackeando bacterias en @RootedCON

Compartir este artículo:
Muy buenas a todos, hoy os queríamos contar que este año volveremos a RootedCON una vez más :) para presentaros un tema muy novedoso sobre biohacking, relacionado con técnicas de almacenamiento en el ADN de bacterias.

Cómo os imaginaréis es un tema que a los informáticos se nos queda algo alejado de nuestro ámbito de conocimiento, al tratarse de una colaboración que une ambos mundos, la Bioquímica, que vendrá de la mano de la Dra. Patricia Rada, una fuera de serie en su campo, y que me acompañará al escenario de RootedCON, y la informática, cuya vena informática-hacker la pondrá un servidor:


No os podemos dar más detalles sobre la charla, ya sabéis que uno de los compromisos de ir a RootedCON es el de presentar temas novedosos y que no hayan sido tratados hasta el momento, por lo que en apenas un mes tendréis la oportunidad de ver nuestra investigación, y la cual personalmente creo que con una buena inversión por parte de un gobierno o empresa privada, podría suponer un avance gigante a los sistemas de almacenamiento tal y como hoy los conocemos.


Nos vemos en RootedCON!

sábado, 20 de enero de 2018

Nos vamos a la @CONAND

Compartir este artículo:
Muy buenas a todos, la semana del 5 de Febrero trasladamos los bártulos al país vecino el X1RedMasSegura Team, Josep Albors, Angelucho y servidor nos vamos a Andorra a la CONAND para dar un ciclo de conferencias a los más jóvenes los días 5 y 6 y hablarles sobre los peligros de la red.


Podéis ver la agenda completa del evento en el siguiente enlace:


Aunque nuestras charlas van dirigidas a jóvenes menores de edad, el resto del evento tiene unas conferencias de gran nivel a las que os animo a asistir :)



Así que abrigaros bien y prepararos para una semana de fiestas haxor de las buenas :)

Nos vemos en Andorra!

viernes, 19 de enero de 2018

Nueva edición del CHEE de TSS. Disponible junto al HCPP también

Compartir este artículo:
El próximo 29 de enero da comienzo el curso online de Certificado de Hacking Ético nivel Avanzado de la empresa Security Sentinel. Como novedad surge la posibilidad de adquirir el curso Certificado de Hacking Ético impartido por Jaime junto al curso Pentesting con Powershell impartido por Pablo González. El curso tiene una duración de 9 semanas, o 180 horas, y es completamente online y grabado, por lo que puedes visualizarlo las veces que quieras. Con el curso se hará entrega de 1 libro: Pentesting con Powershell. El profesor de la formación es Jaime de la empresa Security Sentinel.

El precio del curso es de 390 € (O 410€ si coges el CHEE + HCPP todo junto) y tiene como obsequio el libro de 0xWord comentado anteriormente. Para reservar tu plaza o pedir más información puedes escribir a info@thesecuritysentinel.es. A continuación, os dejamos el contenido del curso, no lo dudes y aprovecha esta formación sobre hacking ético. Según me comentaron en Security Sentinel cada tema lleva prácticas y ejercicios para entregar, así como varios retos a lo largo del curso que deberán entregarse. Al finalizar el curso, y aprobar el examen, se te entregará un certificado donde conste la realización del curso, la superación del examen y la nota correspondiente.

1ª Semana:
-   Introducción y objetivos del curso
-   Herramientas a utilizar:
Vmware
Virtualbox
TPS (tutorial de herramientas), Kali
-    Linux 100%

2ª Semana:
-    Metasploit 100%
Repaso a la herramienta
Fases del hacking
Adicionales
Creación de exploits (semana 4)

3ª Semana:
-    Introducción Python-hacking
Introducción a la programación Python
Uso de librerías específicas

4ª Semana:
-    Introducción Ruby-hacking
Introducción a la programación Ruby
Implementación a metasploit

5ª Semana:
-    Hacking Web
Taxonomía de un ataque
Ejemplos de vulnerabilidades y ataques:
Inyección Sql
Xss
LFI
Inyección de codigo
RFI
Phising

6ª Semana:
-    Hacking Infraestructuras
Redes
Linux
Windows
OS

7ª Semana:
-    Hacking Infraestructuras
Escalada de privilegios de cero a 100
Shell scripting
Linux
Windows

8ª Semana:
-    Malware:
CrypterFudear crypter
Creación de un crypter
Análisis de malware
Sandbox
Botnet
Crear una botnet
Troyano
Crear un troyano
Cliente
Servidor

9ª Semana:
-   La auditoría
Presupuesto
Contrato
Alcance
Ejemplo de auditoría

Si adquieres el CHEE junto al HCPP:


SEMANA 1: INTRODUCCIÓN A POWERSHELL

¿Qué es Powershell?
Línea de comandos
Versiones
Conceptos básicos del entorno
Gestor de ayuda de Powershell
Comandos básicos
Seguridad básica de Powershell

SEMANA 2: INTRODUCCIÓN AL SCRIPTING

Powershell ISE: Entorno de Scripting
Perfiles de Powershell
Scripting básico
Variables y operadores
Arrays
Hash tables
Condicionales
Bucles
Scripting medio
Funciones
Parámetros

SEMANA 3: SCRIPTING ORIENTADO AL PENTESTING

Scripting avanzado
Creación de objetos .NET y uso
Filtros
Utilización de clases y métodos
WMI
Workflows
Interacción con el registro de Windows
Escenario de post-explotación con Powershell

SEMANA 4: PENTESTING CON POWERSHELL

Escenario con post-explotación
Creación de un exploit en Powershell
Examen final

jueves, 18 de enero de 2018

DLL Hijacking: Aprendiendo los conceptos básicos

Compartir este artículo:
Hace un tiempo estuve leyendo el libro Gray Hat Python de Justin Seitz, recomendable, así que dejo el enlace al libro en Amazon. En él se explican cosas bastante interesantes, entre otras se puede ver cómo crear un debugger básico para Windows o cómo hacer una inyección de shellcode o DLL en un proceso.

Esta última tarea, la inyección de DLL en un proceso es de la que voy a hablar en este post. Os dejo una definición de la Wikipedia:

DLL injection es una técnica utilizada para ejecutar lenguaje de máquina dentro del espacio de direcciones de otro proceso forzándolo a cargar una biblioteca de enlace dinámico.”
Antes de empezar hay que tener en cuenta lo siguiente:

·       Se hace uso de Python 3 (usar versión de 32 bits para inyecciones de 32 y la de 64 para la correspondiente)
·       DLL de 32 bits para aplicaciones de 32 bits
·       DLL de 64 bits para aplicaciones de 64 bits
·       Uso de Process Hacker para ver información del proceso objetivo
·       Yo uso Windows 10

Se muestra a continuación el código por partes. Empecemos:


La primera parte no tiene mucho que explicar. Vemos que se comprueba la versión de Python que está corriendo (para saber si es de 32 bits o 64 bits), se hace uso de argparse par los 2 argumentos que necesitamos, PID del proceso y ruta de la DLL. Al final se ve la definición de 3 constantes:
·       PAGE_READWRITE: sirve para establecer un acceso de lectura y escritura.
·       PROCESS_ALL_ACCESS: todos los accesos posibles al proceso.
·       COMMIT_RESERVE: para reservar espacio en las direcciones virtuales, asegurándonos de que al acceder el contenido esté en 0.

Continuamos con más código:



Vemos como cargamos un “envoltorio” a través del objeto windll, que nos permitirá acceder a las funciones de la librería kernel32, acto seguido manejamos los parámetros recibidos al llamar al script y comprobamos si la dll existe con la función isfile. Vemos que se obtiene la longitud de la ruta de la dll, es necesario para reservar la memoria en los siguientes pasos.
Se llama a la función OpenProcess, que si va bien, nos devolverá un manejador al proceso, si no tendremos un NULL y salimos. El prototipo de la función es el siguiente:


Se procede a llamar a VirtualAllocEx, si se procesa con éxito, se devolverá la región de memoria asignada, si no NULL y salimos. El prototipo a continuación:


Ya estamos llegando al final, penúltima parte del código:


Se hace la llamada a WriteProcessMemory, si falla devolverá 0, y si no un valor distinto a 0. Y su prototipo es:


Se obtiene la dirección de memoria de la función “LoadLibraryA”, si todo va bien seguimos, si no salimos, no tiene sentido seguir. Y pasamos a la última parte del código:


Aquí lo primero que hacemos es crear un tipo de datos que se va a necesitar para definir los tipos de argumentos de la función, LPSECURITY_ATTRIBUTES, se trata de una estructura de C, y que tiene 3 campos. Acto seguido, se definen los tipos que se le van a pasar a la función CreateRemoteThread (podemos ver la estructura, aunque la dejaremos como None), si no hacemos esto, en la versión de 64 bits fracasaremos , y finalmente se llama a la función, y si va como esperamos, devolverá un manejador al nuevo hilo, si no devolverá NULL. El prototipo de la función es como sigue:


Para hacer la primera prueba, yo tengo un XAMPP de 32 bits corriendo, voy a utilizar la herramienta Process Hacker para obtener el PID, aquí también se podría hacer uso del administrador de tareas:


Ahora ejecutamos el script, en mi PC tengo instalada tanto la versión de 32 bits, como la de 64 bits (en la PATH).


Vemos que se ha podido inyectar la DLL en el proceso con PID 5128, si ahora hacemos uso de Process Hacker, click derecho del ratón en nuestro proceso objetivo, y damos en Properties, ahí vamos a la pestaña Modules, y buscamos la DLL inyectada. (Nota: en esta prueba se utilizo una versión antigua del script, que solo corría en 32 bits).
La segunda prueba es para 64 bits, y hago uso de Android Studio:


Si se mira en Process Hacker, se ve la DLL de Python inyectada, se deja a continuación una captura, ya que en la otra prueba no se mostró:



Para jugar puedes crear tu propia DLL, consulta la siguiente página de Microsoft, por ejemplo, en el caso de DLL_PROCESS_ATTACH, puedes escribir:
            MessageBox(0, "Flu-project!", "DLL Injected…", 0);
            break;

Es posible que en algunos procesos no se tengan los permisos suficientes y falle la inyección, además, si intentas inyectar una DLL de 64 bits en algún proceso de 32 bits no habrá errores, pero la inyección no se realizará (y viceversa).
El código se puede consultar en mi GitHub en este link: DLL injection. Hasta la próxima.

Autor: Josué Encinar García (@JosueEncinar). Ingeniero de Software por la Universidad Rey Juan Carlos, estudiante del Máster Universitario en Seguridad de Tecnologías de la Información y de las Comunicaciones en la Universidad Europea de Madrid. Analista de Seguridad en Accenture. Co-Fundador de @_ciberbyte_.