Apuntes Ciberseguridad (Cibaism)
HTBGitHubLinkedInNotion (Writeups)
  • Welcome to My Digital Garden
  • About me
  • Hacking notes (Personal)
    • Tratamiento TTY
    • Hacking Web Tecniques
      • File Inclusion
    • Linux Privilage Escalation
    • Arreglar bloodhound
  • Hacking Notes (Learning Path)
    • (HTB) Penetration Tester
      • Getting Started
        • Common Terms
          • Tipos de Shell
          • Puertos importantes
          • OWASP Top 10
        • Service Scanning
          • Nmap
          • Attacking Network Services
            • Captura de banners
            • FTP
            • SMB
            • SNMP
        • Web Enumeration
        • Public exploits
          • Encontrar exploits públicos
          • Introducción a Metasploit
        • Types of Shells
          • Reverse Shell
          • Bind Shell
          • Web Shell
        • Privilage escalation
        • Transferring Files
      • Footprinting
        • Infrastructura Based Enumeration
          • Domain Information
          • Cloud Resources
          • Staff
        • Host Based Enumeration
          • FTP
          • SMB
          • NFS
          • DNS
          • SMTP
          • IMAP / POP3
          • SNMP
          • MySQL
          • MSSQL
          • Oracle TNS
          • IPMI
          • Protocolos de administración remota de Linux
          • Protocolos de administración remota de Windows
      • Introduction to Active Directory Enumeration & Attacks
        • Tools of the Trade
        • Initial enumeration
          • External Recon and Enumeration Principles
          • Initial Enumeration of the Domain
        • Sniffing out a Foothold
          • LLMNR/NBT-NS Poisoning - from Linux
          • LLMNR/NBT-NS Poisoning - from Windows
        • Sighting In, Hunting For A User
          • Password Spraying Overview
          • Enumerating & Retrieving Password Policies
          • Password Spraying - Making a Target User List
        • Spray Responsibly
          • Internal Password Spraying - from Linux
      • File Inclusion
        • File Disclousure
          • Local File Inclusion (LFI)
          • Basic Bypasses
          • PHP Filters
        • Remote Code Execution
          • PHP Wrappers
    • (CRTA) Red Team Analyst
      • (CRTA) Red Team Analyst - Lab
    • (eJPT) Junior Penetration Tester
      • Assessment Methodologies
        • Assessment Methodologies: Footprinting & Scanning
          • Windows Recon: Nmap Host Discovery
          • Scan the Server 1
          • Windows Recon: SMB Nmap Scripts
        • Assessment Methodologies: Enumeration
          • Importing Nmap Scan Results Into MSF
          • T1046 : Network Service Scanning
          • FTP Enumeration
          • Samba Recon: Basics
          • Apache Enumeration
          • MySQL Enumeration
          • SSH Login
          • Postfix Recon: Basics
        • Assessment Methodologies: Vulnerability Assessment
          • Windows: IIS Server DAVTest
          • Shellshock
          • Web App Vulnerability Scanning With WMAP
      • Host & Network Penetration Testing
        • Host & Network Penetration Testing: System/Host Based Attacks
          • Windows
            • Windows: IIS Server: WebDav Metasploit
            • Windows: SMB Server PSexec
            • Windows: Insecure RDP Service
            • WinRM: Exploitation with Metasploit
            • UAC Bypass: UACMe
            • Privilege Escalation: Impersonate
            • Unattended Installation
            • Windows: Meterpreter: Kiwi Extension
          • Linux
            • ProFTP Recon: Basics
            • Samba Recon: Dictionary Attack
            • Cron Jobs Gone Wild II
            • Exploiting Setuid Programs
            • Password Cracker: Linux
        • Host & Network Penetration Testing: Network-Based Attacks
          • NetBIOS Hacking
          • SNMP Analysis
          • DNS & SMB Relay Attack
        • Host & Network Penetration Testing: The Metasploit Framework (MSF)
          • Windows: Java Web Server
          • Windows: HTTP File Server
          • Vulnerable FTP Server
          • Vulnerable File Sharing Service
          • Vulnerable SSH server
          • Vulnerable SMTP Server
          • Meterpreter Basics
          • Upgrading Command Shells To Meterpreter Shells
          • Windows Post Exploitation Modules
          • UAC Bypass: Memory Injection (Metasploit)
          • Exploiting SMB With PsExec
          • Windows: Enabling Remote Desktop
          • Clearing Windows Event Logs
          • Pivoting
  • Blue team notes
    • Digital Forensics
      • Malware Analysis with VirusTotal
      • Wireshark
    • (Falcon) CrowdStrike
      • FALCON 104: Getting Started with the Endpoint Security Module
      • FALCON 106: Customizing Dashboards in Falcon
      • FALCON 180: Falcon Forensics Fundamentals
  • Programming
    • Powershell
Powered by GitBook
On this page
  • Tareas
  • Puntos de datos clave
  • TTPs
  • Identificación de hosts
  • Identificación de usuarios
  • Identificación de vulnerabilidades potenciales
  1. Hacking Notes (Learning Path)
  2. (HTB) Penetration Tester
  3. Introduction to Active Directory Enumeration & Attacks
  4. Initial enumeration

Initial Enumeration of the Domain

Tareas

Nuestras tareas a realizar para esta sección son:

  • Enumere la red interna, identificando hosts, servicios críticos y posibles vías para establecerse.

  • Esto puede incluir medidas activas y pasivas para identificar usuarios, hosts y vulnerabilidades que podamos aprovechar para mejorar nuestro acceso.

  • Documentar cualquier hallazgo que encontremos para su posterior uso. ¡Extremadamente importante!

Comenzaremos desde nuestro host de ataque Linux sin credenciales de usuario de dominio. Es común iniciar una prueba de penetración de esta manera. Muchas organizaciones querrán ver qué puede hacer desde una perspectiva ciega, como esta, antes de proporcionarle más información para la prueba. Esto ofrece una visión más realista de las posibles vías que un adversario podría usar para infiltrarse en el dominio. Puede ayudarles a ver qué podría hacer un atacante si obtiene acceso no autorizado a través de internet (es decir, un ataque de phishing), acceso físico al edificio, acceso inalámbrico externo (si la red inalámbrica toca el entorno de AD) o incluso un empleado deshonesto. Dependiendo del éxito de esta fase, el cliente podría proporcionarnos acceso a un host unido al dominio o a un conjunto de credenciales para la red para agilizar las pruebas y permitirnos cubrir la mayor cantidad de terreno posible.

A continuación, se presentan algunos de los puntos de datos clave que debemos buscar en este momento y anotar en nuestra herramienta de toma de notas preferida y guardar la salida del escaneo/herramienta en archivos siempre que sea posible.

Puntos de datos clave

Punto de datos

Descripción

AD Users

Estamos intentando enumerar cuentas de usuarios válidas que podemos utilizar para rociar contraseñas.

AD Joined Computers

Las computadoras clave incluyen controladores de dominio, servidores de archivos, servidores SQL, servidores web, servidores de correo Exchange, servidores de bases de datos, etc.

Key Services

Kerberos, NetBIOS, LDAP, DNS

Vulnerable Hosts and Services

Cualquier cosa que pueda ser una victoria rápida (es decir, un host fácil de explotar y ganar un punto de apoyo).

TTPs

Enumerar un entorno de AD puede ser abrumador si se aborda sin un plan. AD almacena una gran cantidad de datos, y filtrarlos puede llevar mucho tiempo si no se analizan en etapas progresivas, y es probable que pasemos por alto algunos. Necesitamos establecer un plan de acción y abordarlo paso a paso. Cada persona trabaja de forma ligeramente diferente, así que a medida que adquirimos más experiencia, comenzaremos a desarrollar nuestra propia metodología repetible que mejor se adapte a nuestras necesidades. Independientemente de cómo procedamos, normalmente comenzamos desde el mismo punto y buscamos los mismos datos. Experimentaremos con diversas herramientas en esta sección y en las siguientes. Es importante reproducir cada ejemplo e incluso intentar recrearlo con diferentes herramientas para ver cómo funcionan de forma diferente, aprender su sintaxis y encontrar el enfoque que mejor se adapte a nuestras necesidades.

Comenzaremos passiveidentificando los hosts de la red, seguido de activela validación de los resultados para obtener más información sobre cada uno (servicios en ejecución, nombres, posibles vulnerabilidades, etc.). Una vez que sepamos qué hosts existen, podemos proceder a sondearlos en busca de cualquier dato interesante que podamos obtener de ellos. Tras completar estas tareas, deberíamos reorganizarnos y analizar la información disponible. En este punto, esperamos tener un conjunto de credenciales o una cuenta de usuario para establecernos en un host unido al dominio o poder iniciar la enumeración de credenciales desde nuestro host de ataque Linux.

Veamos algunas herramientas y técnicas que nos ayudarán con esta enumeración.

Identificación de hosts

Desplácese hasta la parte inferior, genere el objetivo, conéctese al host de ataque Linux usando xfreerdpWireshark y active para comenzar a capturar tráfico.

Iniciar Wireshark en ea-attack01

sudo -E wireshark

Los paquetes ARP nos permiten conocer los hosts.

MDNS nos informa sobre el host.

Salida de Tcpdump

sudo tcpdump -i <interfaz de red>

No existe una única forma correcta de escuchar y capturar el tráfico de red. Existen numerosas herramientas que pueden procesar datos de red. Wireshark y tcpdump son solo algunas de las más fáciles de usar y conocidas. Dependiendo del host que utilice, es posible que ya tenga una herramienta de monitorización de red integrada, como [insertar nombre de pktmon.exeusuario], que se añadió a todas las ediciones de Windows 10. Como nota para las pruebas, siempre es recomendable guardar el tráfico PCAP capturado. Puede revisarlo más tarde para buscar más sugerencias, y es una excelente información adicional para incluir al redactar sus informes.

Nuestro primer análisis del tráfico de red nos indicó un par de hosts a través de MDNSy ARP. Ahora, utilicemos una herramienta llamada Responderpara analizar el tráfico de red y determinar si aparece algo más en el dominio.

Iniciando Responder

sudo responder -I <interfaz de red> -A 

Resultado del resonder

Al iniciar Responder con el modo de análisis pasivo habilitado, veremos el flujo de solicitudes en nuestra sesión. Observe a continuación que encontramos algunos hosts únicos no mencionados previamente en nuestras capturas de Wireshark. Vale la pena anotarlos, ya que estamos creando una buena lista de IP y nombres de host DNS.

Nuestras comprobaciones pasivas nos han proporcionado algunos hosts que debemos anotar para una enumeración más exhaustiva. Ahora, realicemos algunas comprobaciones activas, comenzando con un barrido ICMP rápido de la subred usando fping.

FPiing Controles activos

Aquí comenzaremos fpingcon algunas banderas: apara mostrar los objetivos que están vivos, spara imprimir estadísticas al final del escaneo, gpara generar una lista de objetivos de la red CIDR y qpara no mostrar resultados por objetivo.

fping -asgq <ip de la red>

El comando anterior valida qué hosts están activos en la /23red y lo hace de forma discreta, en lugar de saturar la terminal con resultados para cada IP de la lista de objetivos. Podemos combinar los resultados exitosos con la información obtenida de nuestras comprobaciones pasivas en una lista para un análisis más detallado con Nmap. Con el fpingcomando, podemos ver 9 hosts activos, incluyendo el host de ataque.

Escaneo de Nmap

Ahora que tenemos una lista de hosts activos en nuestra red, podemos enumerarlos con más detalle. Buscamos determinar qué servicios ejecuta cada host, identificar hosts críticos como Domain Controllersy web servers, e identificar hosts potencialmente vulnerables para investigarlos posteriormente. Centrándonos en AD, tras un análisis general, sería prudente centrarnos en los protocolos estándar que suelen acompañar a los servicios de AD, como DNS, SMB, LDAP y Kerberos, por nombrar algunos. A continuación, se muestra un ejemplo rápido de un análisis sencillo con Nmap.

sudo nmap -v -A -iL hosts.txt -oN full_network_scan.txt

Identificación de usuarios

Si nuestro cliente no nos proporciona un usuario para iniciar las pruebas (lo cual suele ocurrir), tendremos que encontrar la manera de establecernos en el dominio mediante la obtención de credenciales de texto sin cifrar o un hash de contraseña NTLM para un usuario, un shell de SISTEMA en un host unido al dominio o un shell en el contexto de una cuenta de usuario del dominio. Obtener un usuario válido con credenciales es fundamental en las primeras etapas de una prueba de penetración interna. Este acceso (incluso en el nivel más bajo) abre muchas oportunidades para realizar enumeraciones e incluso ataques. Veamos una forma de comenzar a recopilar una lista de usuarios válidos en un dominio para usarla más adelante en nuestra evaluación.

Kerbrute - Enumeración interna de nombres de usuario de AD

Clonación del repositorio de Kerbrute en GitHub

sudo git clone https://github.com/ropnop/kerbrute.git

Al escribir make helpse nos mostrarán las opciones de compilación disponibles.

Opciones de comilación de listados

make help

Podemos elegir compilar solo un binario o escribir make ally compilar uno para usar en sistemas Linux, Windows y Mac (una versión x86 y x64 para cada uno).

Compilación para múltiples plataformas y arquitecturas

sudo make all

El directorio recién creado distcontendrá nuestros binarios compilados.

Listado de los binarios compilados en dist

ls dist/

Luego podemos probar el binario para asegurarnos de que funciona correctamente. Usaremos la versión x64 en el host de ataque Parrot Linux proporcionado en el entorno objetivo.

Prueba del binario kerbrute_linux_amd64

./kerbrute_linux_amd64 

Podemos agregar la herramienta a nuestro PATH para que sea fácilmente accesible desde cualquier lugar del host.

Añadiendo la herramienta a nuestra ruta

echo $PATH

Mover el binario

sudo mv kerbrute_linux_amd64 /usr/local/bin/kerbrute

Ahora podemos escribir kerbrutedesde cualquier ubicación del sistema y acceder a la herramienta. Siéntete libre de seguir las instrucciones en tu sistema y practicar los pasos anteriores. Ahora veamos un ejemplo del uso de la herramienta para recopilar una lista inicial de nombres de usuario.

Enumeración de usuarios con Kerbrute

kerbrute userenum -d <dominio> --dc <DC ip> wordlist.txt -o valid_ad_users

Identificación de vulnerabilidades potenciales

Hay varias formas de obtener acceso a nivel de SISTEMA en un host, incluidas, entre otras:

  • Exploits remotos de Windows como MS08-067, EternalBlue o BlueKeep.

  • Fallas de escalada de privilegios locales en sistemas operativos Windows, como el día cero del Programador de tareas de Windows 10.

  • Obtener acceso de administrador en un host unido a un dominio con una cuenta local y usar Psexec para iniciar una ventana de comandos SYSTEM

Al obtener acceso a nivel de SISTEMA en un host unido a un dominio, podrá realizar acciones como, entre otras:

  • Enumere el dominio utilizando herramientas integradas o herramientas ofensivas como BloodHound y PowerView.

  • Realizar ataques Kerberoasting / ASREPRoasting dentro del mismo dominio.

  • Ejecute herramientas como Inveigh para recopilar hashes Net-NTLMv2 o realizar ataques de retransmisión SMB.

  • Realizar una suplantación de token para secuestrar una cuenta de usuario de dominio privilegiado.

  • Realizar ataques ACL.

PreviousExternal Recon and Enumeration PrinciplesNextSniffing out a Foothold

Last updated 1 month ago

Primero, dediquemos un tiempo a escuchar la red y ver qué sucede. Podemos usar Wiresharky TCPDumppara estar al tanto y ver qué hosts y tipos de tráfico de red podemos capturar. Esto es especialmente útil si el enfoque de evaluación es de "caja negra". Observamos algunas solicitudes y respuestas y otros paquetes básicos (al estar en una red conmutada, estamos limitados al dominio de difusión actual), algunos de los cuales podemos ver a continuación. Este es un excelente punto de partida que nos proporciona información sobre la configuración de red del cliente.

es una herramienta diseñada para escuchar, analizar y envenenar LLMNRsolicitudes NBT-NSy MDNSrespuestas. Tiene muchas más funciones, pero por ahora, solo la utilizamos en modo Analizar. Esto escuchará pasivamente la red y no enviará paquetes envenenados. Analizaremos esta herramienta con más detalle en secciones posteriores.

nos proporciona una capacidad similar a la de la aplicación ping estándar, ya que utiliza solicitudes y respuestas ICMP para contactar e interactuar con un host. La principal ventaja de fping reside en su capacidad para enviar paquetes ICMP a una lista de varios hosts simultáneamente y su capacidad de scripting. Además, funciona de forma rotatoria, consultando los hosts cíclicamente en lugar de esperar a que regresen varias solicitudes a un solo host antes de continuar. Estas comprobaciones nos ayudarán a determinar si hay algo más activo en la red interna. ICMP no es una solución integral, pero es una forma sencilla de obtener una idea inicial de lo que existe. Otros puertos abiertos y protocolos activos pueden apuntar a nuevos hosts para su posterior análisis. Veámoslo en acción.

El análisis realizará varias funciones. Una de las más importantes es una enumeración rápida de puertos conocidos, incluyendo servicios web, servicios de dominio, etc. En nuestro archivo hosts.txt, algunos resultados de Responder y fping se solaparon (encontramos el nombre y la dirección IP), por lo que, para simplificar, solo se introdujo la dirección IP en hosts.txt para el análisis.

puede ser una opción más discreta para la enumeración de cuentas de dominio. Aprovecha que los fallos de preautenticación de Kerberos no suelen generar registros ni alertas. Utilizaremos Kerbrute junto con las listas de jsmith.txtusuarios jsmith2.txtde . Este repositorio contiene diversas listas de usuarios que pueden ser extremadamente útiles al intentar enumerar usuarios sin autenticación. Podemos dirigir Kerbrute al controlador de dominio que encontramos anteriormente y alimentarlo con una lista de palabras. La herramienta es rápida y nos proporcionará resultados que nos permitirán saber si las cuentas encontradas son válidas o no, lo cual es un excelente punto de partida para lanzar ataques como la pulverización de contraseñas, que abordaremos en profundidad más adelante en este módulo.

Para empezar a usar Kerbrute, podemos descargar para la herramienta y realizar pruebas desde Linux, Windows y Mac, o podemos compilarlos nosotros mismos. Esta suele ser la mejor práctica para cualquier herramienta que implementemos en un entorno cliente. Para compilar los binarios y usarlos en el sistema que elijamos, primero clonamos el repositorio:

La cuenta NT AUTHORITY\SYSTEM es una cuenta integrada en los sistemas operativos Windows. Tiene el nivel de acceso más alto en el sistema operativo y se utiliza para ejecutar la mayoría de los servicios de Windows. También es muy común que los servicios de terceros se ejecuten en el contexto de esta cuenta de forma predeterminada. Una SYSTEMcuenta en un domain-joinedhost podrá enumerar Active Directory suplantando la cuenta del equipo, que es esencialmente otro tipo de cuenta de usuario. Tener acceso a nivel de SISTEMA dentro de un entorno de dominio es prácticamente equivalente a tener una cuenta de usuario de dominio.

Abusar de un servicio que se ejecuta en el contexto de [nombre del servicio SYSTEM account] o abusar de SeImpersonatelos privilegios de la cuenta de servicio mediante . Este tipo de ataque es posible en sistemas operativos Windows antiguos, pero no siempre es posible con Windows Server 2019.

ARP ,
MDNS
de capa 2
Responder
Fping
-A (Opciones de análisis agresivo)
Kerbrute
Insidetrust
binarios precompilados
de sistema local
[nombre del servicio]