Categorías
FileSystem Hacking Networking

Cómo montar un laboratorio de Active Directory con Windows Server 2022 desde cero – Parte 2 de 2

Demostración en vídeo de éste post

En la primera parte de esta serie has visto cómo configurar un sistema Windows Server 2022, o al menos, una configuración mínima para tener un dominio de Active Directory. En esta segunda parte, verás como vincular una estación de trabajo con Windows 11 al dominio creado anteriormente, además de ver cómo ejecutar el proyecto BadBlood para tener un dominio «mal configurado» con cientos de objetos, de tal manera que tendrás un entorno parecido a lo que hay en cualquier empresa de tamaño medio, al menos en lo que respecta al número de objetos gestionados por el directorio activo.

Configuración inicial y vinculación del sistema al Dominio.

En primer lugar, se debe tener instalado un sistema Windows 11, el cual puedes descargar desde aquí:

Descargar Windows 11

Se puede utilizar VirtualBox o VMWare para la creación de una máquina virtual con dicho sistema, en el primer caso es recomendable instalar el «VirtualBox Guest Additions» y en el segundo, VMWare tools.

Dicho esto, se describen los pasos que se deben realizar en la estación de trabajo con Windows 11 para que se pueda unir al dominio.

  1. Asignar un nombre a la estación de trabajo recién instalada. Para ello, puedes ir a:  Windows -> en el campo de búsqueda escribir «PC Name» y luego, seleccionar la opción «Renombrar ordenador». Tal como aparece en el vídeo de YouTube, se ha asignado el nombre «THW-WORKSTATION»
  2. En la barra inferior, pinchar en conexiones de red -> Red & Internet -> Configuración de red avanzada -> pinchar en «Ethernet» -> Ver propiedades adicionales -> Asignación de servidor DNS -> Introducir la IP del DC.
  3. Unirse al dominio: Escribir en la barra de búsqueda -> «Dominio» -> Seleccionar «Obtener acceso a trabajo o escuela»
    1. Pinchar en «Connect» o «Conectarse». A continuación, seleccionar la opción «Unir este dispositivo a un dominio local de Active Directory«.
    2. En el campo donde se debe introducir el dominio, escribir «thehackerway.local» o el nombre de dominio indicado cuando se ha configurado el controlador de dominio. Dado que ya se ha configurado el servidor DNS en la estación de trabajo en el paso anterior, debería resolver dicho nombre de dominio sin problema. Pinchar en «Siguente».
    3. Ahora, el sistema solicita un usuario y contraseña para acceder al Active Directory. Debe ser un usuario de dominio, por lo tanto se recomienda crear primero un usuario en controlador de dominio.
    4. Finalmente, el sistema pedirá vincular una cuenta de usuario de dominio con esta máquina y si dicho usuario de dominio será un administrador de la estación de trabajo, a lo que se puede responder que sí. Llegados a este punto, es conveniente seleccionar la opción «reiniciar ahora».
  4. Para comprobar que la estación de trabajo se encuentra vinculada al dominio, basta con dirigirse al controlador de dominio en: Administrador de Servidor -> Herramientas -> Usuarios y Equipos de Active Directory y el nodo de «Computers» que cuelga del dominio principal, se podrá ver la estación de trabajo con el nombre asignado debidamente registrada.

 

Ejecución de BadBlood.

Se trata de un script en PowerShell que se encarga de  crear objetos en un AD de forma aleatoria, muchos de ellos con características inseguras con el objetivo de ejecutar diferentes tipos de ataques. Está diseñado para crear usuarios, estaciones de trabajo, ACLs, grupos, OUs, entre otras cosas.
Cada vez que se ejecuta es capaz de producir objetos y configuraciones distintas, genera objetos de forma aleatoria. Hay que tener en cuenta que una vez se ejecuta la herramienta, no hay forma de revertir estos cambios, a menos que se cree otro script en powershell para limpar todo lo que ha hecho BadBlood y lo que había antes de ejecutar la herramienta también. Por lo tanto es aconsejable generar un snapshot o instantánea del servidor antes de ejecutar este script y para tener la capacidad de revertir los cambios que genera BadBlood.
Son necesarios permisos de administrador para poder ejecutarlo y el procedimiento para
ejecutar BadBlood se describe a continuación.

  1. Es necesario subir o descargar el script de PowerShell al controlador de dominio. Dicho programa se encuentra en el repositorio Github del proyecto
  2. Se debe abrir una terminal  de PowerShell con permisos de Administrador y ejecutar el siguiente comando:Set-ExecutionPolicy unrestrictedA continuación, ubicarse en la ruta donde se encuentra el script y ejecutar «.\Invoke-BadBlood.ps1». Esto abrirá una nueva terminal y generará una serie de mensajes que advierten del uso de este programa en un entorno productivo (algo que bajo ningún concepto se debe hacer).
  3. Finalmente escribir en la terminal «badblood» cuando se solicite y esperar a que finalice el proceso. Puede tardar varios minutos.

Con estos sencillos pasos, puedes empezar a probar herramientas de pentesting para entornos de Active Directory y comprobar su funcionamiento, ya tendrás un entorno debidamente configurado (o mejor dicho, mal configurado) para hacer tus pruebas.

Un saludo y Happy Hack!
Adastra.

Categorías
Explotación de Software Hacking Services - Software

Cómo montar un laboratorio de Active Directory con Windows Server 2022 desde cero – Parte 1 de 2

Demostración en vídeo de éste post.

Me resulta muy interesante la evolución de los sistemas Windows, tanto en estaciones de trabajo como servidores. Parece que pocas cosas cambian entre las diferentes versiones, pero lo cierto es que desde la perspectiva de un técnico, cada nueva versión introduce características (y vulnerabilidades) que nos obligan a mantenernos al día y estudiar continuamente. Por poner un ejemplo, en los últimos años gracias a Microsoft Azure, es posible tener controladores de dominio en la nube y contar con servicios distribuidos en diferentes ubicaciones geográficas, algo que mejora la escalabilidad, pero plantea nuevos retos y amenazas que antes no existían.
Precisamente por este motivo, en Securízame hemos creado los entrenamientos 100% prácticos sobre entornos Windows, que esperamos volver a realizar en el 2023, así que si esto te interesa, te recomiendo que estés atento a los anuncios que emitiremos este año.
En éste post y en vídeo que tienes disponible en YouTube (mira un poco más arriba) he decidido explicar cómo montar un laboratorio vulnerable con Windows Server 2022 y al menos una estación de trabajo con Windows 11.
Si bien el procedimiento es prácticamente el mismo que para otras versiones de Windows Server y Windows «Workstation», hay algunos detalles en los que difiere un poco y que explicaré a continuación.

Requisitos

En primer lugar, debes descargar las imágenes de Windows 11 y Windows Server 2022 desde la página web de Microsoft.

Descargar Windows Server 2022

Descargar Windows 11

Aunque puedes utilizar cualquier solución de virtualización, en este caso concreto verás cómo llevar a cabo el proceso con VirtualBox.

Primeros pasos

El proceso de instalación de las máquinas virtuales es básico y lo puedes ver en el vídeo anterior que está subido en YouTube, partiendo de esa base puedes empezar a aplicar algunas configuraciones básicas que explico a continuación.

Configuraciones básicas en el DC

  1. Asignar un nombre al controlador de dominio recién instalado. Para ello, puedes ir a:  Windows -> en el campo de búsqueda escribir «PC Name» y luego, seleccionar la opción «Renombrar ordenador». Tal como aparece en el vídeo de YouTube, se ha asignado el nombre «THW-DC»
  2. Click en «Configuración de red e internet» -> «Opciones de uso compartido» -> «Activar detección de redes» para público, privado y dominio.
  3. Click en «Configuración de red e internet» -> «Centro de redes y recursos compartidos» -> «Cambiar adaptador de red» -> Cambiar configuración para IPv4 y poner como DNS primario la IP del gateway (p.e. 192.168.1.1) y establecer una IP estática.
    A continuación, desde la configuración del adaptador de red pinchar en «Cambiar configuración para IPv6» y poner «obtener automáticamente el servidor DNS».
  4. Llegados a éste punto, es mejor reiniciar.
  5. Ahora se pueden configurar los servicios del Domain Controller
    1. Desde la aplicación de «Server Manager» -> Administrar -> Añadir Roles y características -> Seleccionar siguiente hasta «Roles de Servidor».
    2. En «Roles de Servidor» seleccionar -> «Active Directory Domain Services» o «Servicios de dominio de Active Directory» -> Add Features. Finalmente, Siguiente -> Siguiente -> Install.
    3. Cuando termina la instalación, en la aplicación «Server Manager», se debe pinchar en el botón de «Warning» y comenzar con la configuración del AD seleccionando la opción que pone «Promover el servidor a controlador de dominio.»
    4. Pinchar en «Agregar a un nuevo bosque» e introducir un valor como por ejemplo «thehackerway.local» y Siguiente.
    5. En opciones de controlador, se debe escribir la contraseña para el modo de restauración de servicios de directorio (DSRM).
    6. Continuar con los valores por defecto. Al final del proceso es necesario reiniciar. Se podrá ver en la pantalla de inicio de sesión que ahora aparece thehackerway.local\Administrador

Configuración de los servicios AD CS (Certificate Services).

Los servicios de Active Directory Certificate Services representan la implementación de PKI oficial de Microsoft y están dando mucho de qué hablar desde el 2021, especialmente desde vulnerabilidades como PetitPotam, noPac y una de las más recientes a la fecha de redactar este post, identificada con el CVE-2022-26923 y que le permite a un atacante que ya cuenta con un usuario de dominio, solicitar un certificado para una máquina arbitraria en la red (como un controlador de dominio) y suplantarle, para ello basta simplemente con cambiar el atributo DnsHostName de una cuenta de máquina, la cual se puede crear fácilmente utilizando el script «addmachine.py» de Impacket o una de las tantas utilidades para pentesting sobre sistemas Windows que se encuentran disponibles.
El proceso de instalación de esta implementación de PKI es muy simple y en todo caso,  se realiza sobre el controlador de dominio siguiendo los siguientes pasos:

  1. En la herramienta de administración del servidor -> Agregar características y roles -> Siguiente hasta Roles de servidor. Seleccionar todas las características de «Servicios de Certificado de Active Directory». Siguiente, siguiente, instalar.
  2. Una vez instalado, es necesario configurar los servicios. Se debe pinchar en la advertencia que aparece en la herramienta de «administración del servidor» y a continuación, seleccionar todos los servicios de rol.
  3. En cuenta de servicio para NDES, especificar la cuenta del servicio. Se puede seleccionar la cuenta del Administrador. Siguiente.
  4. En información de RA, se puede dejar todo por defecto y continuar con el asistente hasta el final.
  5. Ahora, se puede abrir una CMD de Powershell con permisos de administrador y se instala el módulo PSPKI además, también se permite la instalación de NuGet y PowerShellGet.Install-Module -Name PSPKI
  6. A continuación, se puede importar el módulo y comprobar la configuración de Enrollment.Import-Module PsPKI
    Get-CertificationAuthority | Select Name, Enroll* | Format-List *

Con los pasos anteriores ya se cuenta con un controlador de dominio con una configuración mínima.

En el siguiente post explicaré cómo habilitar varias características que harán que el dominio sea vulnerable y además, cómo unir una estación de trabajo con Windows 11.

Un saludo y Happy Hack!
Adastra.

Categorías
automatizacion Ciberinteligencia Hacking Services - Software

Aprende a aplicar técnicas OSINT en Instagram con OSINTGram

Demostración en vídeo de este post:

Una de las cosas que más me piden, desafortunadamente, es sobre cómo «jakear» facebook, instagram, etc. Lo cierto es que muchas veces se trata de troles que quieren hacerte perder el tiempo, en mi caso no dedico ni un solo segundo en contestar a este tipo de solicitudes, simplemente paso completamente y dado que se aburren al no recibir respuesta, no vuelven a contactar. No obstante, sí que es cierto que cuando nos referimos a las técnicas de investigación OSINT sobre redes sociales estamos hablando de algo completamente distinto y por supuesto, mucho más interesante. Hace algún tiempo he explicado en un post sobre OSINT que gracias a las APIs disponibles en servicios como Twitter o Facebook, es posible automatizar la recolección de información y obtener detalles sobre cuentas concretas. Con este tipo de componentes, es posible llevar a cabo procesos de OSINT completos y precisamente por ese motivo, existen utilidades específicas que se aprovechan de la potencia de estos servicios para extraer toda la información posible de una cuenta. En este caso explicaré OSINTGram y cómo esta pequeña utilidad escrita en Python es capaz de sacar todo tipo de información de una cuenta en Instagram.

Instalación y uso de OSINTGram

En primer lugar, la herramienta se puede instalar manualmente descargando el contenido que hay en el repositorio y ejecutando el programa «main.py» o por medio de Docker. Cualquiera de las dos opciones es fácil y rápida, tal como se explica en la documentación disponible del proyecto.

Antes de empezar a usarlo, es necesario establecer un nombre de usuario y contraseña para una cuenta de Instagram. Esto es necesario ya que para usar los servicios disponibles en la API Rest de Instagram, el usuario debe estar autenticado. Dichos valores deben indicarse en el fichero de configuración ubicado en <OSINTGRAM_HOME>/config/credentials.ini en los campos correspondientes. Evidentemente, NO es recomendable dejar las credenciales en dicho fichero ya que supondría una fuga de información en tu sistema.

A continuación, se puede ejecutar la herramienta rápidamente sin ningún parámetro especial, simplemente indicando la cuenta de Instagram que pretendes analizar.

Como se puede ver en la imagen anterior, lo primero que hace la herramienta es utilizar las credenciales que se han indicado en el fichero «credentials.ini» para autenticarse y a continuación, enseña el identificador de la cuenta objetivo.

A partir de éste punto, se pueden ejecutar el comando «list» para enseñar todos los comandos disponibles en la herramienta.

Simplemente con leer la descripción de cada comando es suficiente para saber qué es lo que hace. Como se puede apreciar es muy intuitivo y fácil de utilizar. Algunos de los comandos disponibles permiten descargar información, como por ejemplo imágenes o «stories», toda esta información quedará almacenada en un directorio llamado «output». Si la instalación de la herramienta ha sido manual y se está ejecutando directamente el script Python, dicho directorio se encuentra ubicado en la misma ruta desde donde se ejecuta el script. Si la instalación se ha basado en un contenedor Docker, a la hora de crear dicho contenedor ha sido necesario indicar la ruta donde se encuentra el directorio de salida mediante un volumen Docker.

Algunos comandos que pueden ser especialmente interesantes para OSINT se listan a continuación:

addrs: Permite obtener las direcciones registradas en las fotos publicadas por el objetivo

info: Devuelve la información que se encuentra publicada en el perfil del usuario objetivo.

likes: Devuelve el número total de likes en los posts que se han publicado en la cuenta

wtagged y wcommented: Enseña las cuentas que han etiquetado o comentado alguna publicación de la cuenta objetivo

captions: Enseña en orden cronológico, las descripciones que se han puesto en cada una de las publicaciones de la cuenta objetivo

fwersemail, fwingsemail, fwersnumber, fwingsnumber: Por último, estos comandos son útiles en OSINT ya que permiten recolectar emails y los números de teléfono  de los seguidores y a los que sigue la cuenta utilizada para las consultas. Evidentemente, para obtener dicha información, es necesario que se encuentre disponible públicamente.

Sin duda OSINTGram destaca por su simplicidad de uso y la cantidad de información que puede aportar. ¿Qué tal te ha parecido, conoces alguna otra herramienta similar?, te leo en los comentarios 🙂

Un saludo y Happy Hack!
Adastra.

Categorías
Hacking

Nuevo curso en THW: Técnicas de investigación en Internet con OSINT – creado por AIBOT

Este es el primer curso del 2023 en la plataforma The Hacker Way, un curso básico e introductorio a las técnicas de investigación en Internet con OSINT.
Uno de los temas que más interés despierta en la comunidad es todo lo relacionado con la ciberinteligencia y por supuesto, con el OSINT. Por este motivo, he decido contactar con Ana Isabel, o AIBot, que es como le gusta que la llamen. Seguramente ya la conoces, es una reconocida profesional en el campo de la ciberinteligencia y en esta ocasión, se ha animado a publicar este curso sobre técnicas de investigación en Internet con  OSINT.
Se trata de una formación compuesta por vídeos grabados y recursos preparados por ella misma. Podrás ver, paso a paso, las principales técnicas OSINT para llevar a cabo una investigación y perfilar usuarios en Internet, todo ello dentro de los límites que marca la legislación actual.

Como ocurre con todos los cursos disponibles en la plataforma, tendrás la posibilidad de contactar con la persona que imparte el curso en caso de dudas y además, tendrás acceso a todos los recursos online sin limite de tiempo. Esto significa que puedes adquirir el curso ahora y, si no tienes disponibilidad para empezar a estudiarlo en este momento, lo puedes hacer más adelante cuando quieras.
El temario resumido de la formación, en el que podrás ver lo que aprenderás es el siguiente:

✔ Introducción al curso

✔ Introducción al OSINT

✔ Preparando nuestra nueva identidad

✔ ¿Por qué debemos crear un sockpuppet?

✔ herramientas para creación de un sockpuppet

✔ Preparación del S.O:

  • Maquinas virtuales
  • VPN
  • Vistazo a distintos S.O:
    • Windows
    • GNU/Linux
    • Android
    • Raspberry Pi OS

✔ Uso de buscadores para OSINT

✔ Búsqueda de información:

  • Personas físicas:
  • Personas Jurídicas

✔ Elaboración del Informe

Como puedes apreciar, es una formación que te pondrá en contexto y te servirá como introducción al apasionante mundo de la ciberinteligencia y lo mejor, con el acompañamiento de una gran profesional como es Ana Isabel.

El curso ahora mismo se encuentra en preventa con un descuento especial por lanzamiento, una vez publicados los contenidos, el día 06 de Marzo, volverá a su precio normal. Te podrías ahorrar €30 si lo adquieres antes de dicho día, así que si te interesa esta formación, te recomiendo que la adquieras antes de que finalice el período de preventa.

Si quieres saber más y adquirir el curso, puedes hacerlo en este enlace

Un saludo y Happy Hack!
Adastra.

Categorías
devsecops Hacking Networking Services - Software

Crea tu infraestructura de contenedores con Docker Compose

Demostración en vídeo de éste post:

Docker es una tecnología robusta y potente, te permite crear espacios virtuales conocidos como «contenedores», los cuales se basan en una imagen que tiene todo preparado para que simplemente funcionen. Si bien es una tecnología que inicialmente tiene una pequeña curva de aprendizaje, por si sola no es escalable. Esto significa que solamente utilizando Docker es un tanto complicado gestionar una infraestructura completa en la que tengas que trabajar con múltiples contenedores y precisamente por este motivo existen soluciones como Kubernetes o Docker Swarm. No obstante existe otra alternativa en el caso de que no quieras trabajar con todas las prestaciones (y lidiar con las complejidades) que vienen implícitas de un «enjambre» de contenedores distribuidos en múltiples máquinas, esta alternativa es Docker Compose o simplemente Compose.

Esta herramienta se encuentra integrada en las últimas versiones de Docker y permite levantar múltiples contenedores al mismo tiempo, que compartan volúmenes y redes e incluso que se conecten entre ellos, lo único que hace falta es definir dichas condiciones en un fichero en formato YAML que siga la sintaxis de Compose. Representa un modelo sencillo para trabajar y especialmente útil cuando quieres ejecutar aplicaciones y herramientas que usan múltiples contenedores y no quieres levantarlos uno a uno, ni tampoco instalar un orquestador como K8S que lo haga por ti.

Hay que tener en cuenta, eso sí, que la estructura del fichero YAML es estricta, tienes que respetar la indentación y conocer las palabras reservadas, de lo contrario tu infraestructura con Compose no va a funcionar. Por otro lado, si bien es habitual utilizar un único fichero YAML, es posible crear varios e importarlos o en uno principal, de tal manera que puedes controlar mejor tu infraestructura y definir ficheros que están pensados para un entorno de desarrollo, staging, pruebas, pre-producción, producción, etc.

Algunos comandos en Docker-Compose

Lo mejor de Compose es que tiene un conjunto de comandos reducido y es muy fácil de ejecutar, tal como indicaba anteriormente, su complejidad se encuentra en los ficheros YAML, pero incluso éstos son fáciles de manejar cuando aprendes la sintaxis y las instrucciones mínimas. A continuación, verás algunos comandos disponibles en Compose.

docker-compose build

Permite construir las imágenes definidas en el fichero docker-compose.yml

docker-compose images

Permite consultar las imágenes que se han construido previamente en el fichero “compose” actual.

docker-compose stop

Detiene los contenedores de los servicios especificados, sin destruirlos.

docker-compose run

Equivalente de «docker run» permite ejecutar un comando sobre uno o varios de los servicios definidos en el fichero compose.

docker-compose up

Ejecuta los comandos «build» y «run» de docker-compose.

docker-compose ps

Listado de los contenedores en ejecución para el fichero compose actual.

docker-compose down

Detiene todos los servicios para el fichero compose actual y limpia todos los recursos
(contenedores, redes, volúmenes, imágenes).

Fichero YAML para Docker-Compose

El corazón de ésta tecnología se encuentra en el fichero YAML que lee el comando «docker compose» o «docker-compose», el cual normalmente declara las siguientes secciones:

version: Permite definir la versión con la que trabajará Docker-compose. Dependiendo del número de versión definido en esta sección, tendrás más o menos instrucciones que puedes aplicar en tu fichero YAML.

services: Se refiere a cada uno de los servicios que se pueden definir en Compose y a efectos prácticos, son los contenedores que Docker-Compose va a levantar por ti. Esta es probablemente la sección más completa, ya que aquí es posible indicar cuántos contenedores se deben levantar para la imagen especificada, si tiene relaciones con otros servicios (contenedores), si utiliza algún volumen o si se debe conectar a un red Docker concreta, etc.

volumes: Aquí se pueden declarar los volúmenes que se utilizarán por parte de los servicios.

networks: Aquí se pueden declarar las redes a las que se van a conectar los servicios definidos en el compose.

Ejemplo de Docker-Compose con WordPress.

Un ejemplo que describe fácil y rápidamente el uso de Docker-Compose sería levantar un WordPress. Este tipo de aplicación requiere un servidor web con soporte a PHP y una base de datos (típicamente MySQL) para poder funcionar. Un YAML como el siguiente permitirá tener una instalación de WordPress perfectamente funcional y lo mejor de todo, con persistencia gracias al uso de volúmenes.

Normalmente, para montar esto tendrías que crear los volúmenes y las redes por separado, luego crear los contenedores y conectarlos a la red creada anteriormente, es decir, mucho trabajo. Con Compose lo haces todo con un comando y la herramienta lo hace todo por ti.


Una maravilla.

En este post se ha hecho una introducción rápida a Docker-Compose, pero hay muchas más opciones disponibles que merece la pena conocer. Te invito a que leas la documentación oficial y te fijes en los ejemplos que aportan, la verdad es que es un proyecto que merece la pena dedicarle tiempo para aprenderlo en detalle.

Un saludo y Happy Hack!
Adastra.