RED TEAM
  • Presentación
  • Apuntes Linux
  • Apuntes Blue Team
  • Apuntes Python
  • Ricardev github
  • RECON
    • OSINT
    • DESCUBRIENDO LA RED
      • NMAP NSE
    • SNIFFING
      • TCPDUMP
  • TECHNIQUES
    • FUERZA BRUTA
      • HYDRA
      • MEDUSA
      • JOHN THE RIPPER
      • NCRACK
      • RAINBOW TABLES
      • CHEATSHEET
    • CLAVES RSA DÉBILES
  • WEB HACKING
    • FUZZING
      • GOBUSTER
      • WFUZZ
      • OTRAS HERRAMIENTAS DE RECONOCIMIENTO WEB
    • OWASP TOP 10
      • A1-2017. SQL INJECTION
        • LOGIN FORM BYPASS
        • EXTRACCIÓN DE INFORMACIÓN.
        • SQLI MODIFIED HEADERS
        • BOOLEAN BLIND SQLI
        • TIME-BASED BLIND SQLI
        • AUTOMATIC INJECTION
      • A2-2017. ATAQUES A SISTEMAS DE AUTENTICACIÓN
      • A3-2017 - EXPOSICIÓN DE DATOS SENSIBLES
      • A4-2017. XXE
      • A5-2017. CONTROL DE ACCESO VULNERABLE
      • A6-2017. SEGURIDAD MAL CONFIGURADA
      • A7-2017. XSS
      • A8-2017. DESERIALIZACIÓN INSEGURA
      • A9-2017. USO DE COMPONENTES CON VULNERABILIDADES CONOCIDAS
      • A10-2017. REGISTRO Y MONITOREO INSUFICIENTE
    • SERVICIOS WEB
      • APACHE TOMCAT (RCE)
      • PRTG NETWORK MONITOR (RCE)
  • SERVICES HACKING (BOTH)
    • 20,21 - FTP
      • FTP BOUNCE ATTACK - ESCANEO
      • FTP BOUNCE ATTACK- DESCARGA DE OTRA FTP
    • 23 - TELNET
    • 25, 465 587 - SMTP
    • 111, 2049 - RPCBIND Y NFS
    • 161,162,10161,10162/udp - SNMP
      • SNMP (RCE Linux)
    • 445 - SMB
      • ETERNALBLUE
    • 3306 - MYSQL
  • SERVICES HACKING (LINUX)
    • 3632 - DISTCCD
  • SERVICES HACKING (WINDOWS)
    • 135, 539 - MSRPC
    • 389, 636 - LDAP / LDAPS
    • 1443 - MSSQL
  • ACTIVE DIRECTORY HACKING
    • CREANDO UN LABORATORIO DE AD
      • 1. Instalación de Windows Server 2016
      • 2. ROL DE ACTIVE DIRECTORY
      • 3. MALAS PRÁCTICAS NECESARIAS
    • CONCEPTOS
      • SPN Y KERBEROS
    • ENUMERACIÓN
      • BLOODHOUND
    • ATAQUES
      • SMB RELAY
      • NTLM RELAY
      • KERBEROASTING
      • AS_REP ROASTING
  • PRIVESC
    • WINDOWS
    • LINUX
      • LXD/LXC GROUP
  • EXFILTRACIÓN
    • EXFILTRANDO INFORMACIÓN
  • SHELL AND POWERSHELL TRICKS
    • Transfiriendo datos (traducir)
    • MEJORANDO SHELL A TTY INTERACTIVA (Traducir)
  • PWN LINUX
    • CREANDO UN LABORATORIO SIN MITIGACIONES
    • TEORÍA
      • ESTRUCTURA DE UN BINARIO DE LINUX
        • HERRAMIENTAS
      • ENSAMBLADOR
      • CONVENCIÓN DE LLAMADAS
      • MITIGACIONES
      • SYSCALL Y SHELLCODE
      • FORMAT STRING
      • RETURN-ORIENTED PROGRAMMING
        • GADGETS
    • ESTRATEGIAS DE EXPLOIT
      • STACK EXPLOITS
        • ATAQUE “SMASH THE STACK” SENCILLO
        • ATAQUE RET2WIN
        • ATAQUE RET2SHELLCODE
        • ATAQUE FORMAT STRING RET2SHELLCODE 2 BYTES
        • ATAQUE FORMAT STRING RET2SHELLCODE 4 BYTES
        • CANARY BYPASS
        • ATAQUE RET2LIBC
    • PRÁCTICA
      • PHOENIX
        • SETUP
        • STACK-ZERO amd64
        • STACK-ONE amd64
        • STACK-TWO amd64
        • STACK-THREE amd64
        • STACK-FOUR amd64
        • STACK-FIVE amd64
        • STACK-SIX amd64
        • FORMAT-ZERO amd64
Con tecnología de GitBook
En esta página
  • INTRODUCCIÓN
  • Esquema de trabajo
  • Herramientas necesarias
  • Resumen
  • EXPLOIT
  • 1. Envenenar paquetes SMB
  • 2. Crackear el Hash
  • 3. Comprobar la contraseña
  • 4. Entender por qué no tenemos capacidad de Shell Remota
  • 5. Obtener una shell interactiva
  • 6. Post-Exploiting
  • REFERENCIAS

¿Te fue útil?

  1. ACTIVE DIRECTORY HACKING
  2. ATAQUES

SMB RELAY

Ataque orientado a entornos de AD con recursos compartidos por protocolo SMB.

AnteriorATAQUESSiguienteNTLM RELAY

Última actualización hace 3 años

¿Te fue útil?

INTRODUCCIÓN

Este ataque está relacionado a las :

  • 1. Generar recurso compartido SMB

  • 2. Desactivar el Firewall de Windows

  • 3. Desactivar las protecciones del Antivirus de Windows Defender

  • 4. Crear usuario Administrador con Password Temporal

  • 7. Convertir un usuario en Administrador local de los clientes

Esquema de trabajo

Vamos a explotar el siguiente esquema:

En los entornos empresariales existen actividades programadas que comprueban los recursos compartidos para ver si siguen existiendo. Esto hace que en muchas ocasiones, un equipo (normalmente con un administrador local detrás) se trate de conectar a muchos recursos compartidos que no existen a lo largo del día. Teniendo esto en cuenta, este ataque consiste en lo siguiente:

  1. El equipo víctima le preguntará al DC, ‘Oye, me dejas conectarme a \archivos?’

  2. El DC le responderá, ‘pues no tengo ni idea de lo que me estás hablando’

  3. El equipo víctima preguntará por tanto a nivel de red, '¿alguno sabe cómo me puedo conectar a \archivos?'

  4. El equipo del atacante responderá y le dirá ‘Yo, envíame tu Hash y te conectaré al recurso’

  5. El equipo víctima responderá ‘Okey, pues ahí te envío mi Hash’

Herramientas necesarias

Responder

Es un envenenador de tráfico que se puede aplicar a una gran variedad de protocolos.

CrackMapExec

Es una herramienta de post-explotación que se aprovecha de protocolos y características propias de los entornos de Directorio Activo para obtener una gran cantidad de información sobre los mismos.

Utiliza Impacket y Powersploit Toolkit

Impacket

Es una colección de clases de Python para trabajar con protocolos de red. Está pensada para obtener control a bajo nivel de los paquetes utilizados por algunos protocolos y, en algunos casos como SMBv1, la propia implementación del protocolo en sí mismo.

PowerSploit Toolkit

Es una colección de scripts de Powershell orientados a ayudar a pentesters en su proceso. Éste repositorio se encuentra deprecated.

John the Ripper

Es un crackeador de Hashes que se caracteríza por su velocidad y versatilidad.

RPCClient

Herramienta para ejecutar el cliente de MS-RPC. Viene instalada por defecto en Linux.

PTH-WinExe

Una aplicación que forma parte de la suite PTH-Toolkit y que permite ejecutar comandos en Windows realizando la técnica de PassTheHash.

Resumen

  • Vamos a utilizar responder para envenenar paquetes smb y así obtener el hash NetNTLM-v2.

  • Este Hash lo vamos a crackear con john.

  • Comprobaremos con CrackMapExec sí esta contraseña es correcta

  • Entenderemos por qué o por qué no tenemos capacidad de obtener una shell interactiva.

  • Utilizaremos Impacket-psexec para obtener una shell interactiva.

  • Aprovecharemos las ventajas que nos brinda este acceso.

EXPLOIT

1. Envenenar paquetes SMB

El repeater se encuentra configurado por defecto para envenenar paquetes SMB, por lo tanto, vamos a comprobar que el archivo de configuración del repeater está por defecto (Todo ON):

head -n 20 /usr/share/responder/Responder.conf

[Responder Core]

; Servers to start
SQL = On
SMB = On
RDP = On
Kerberos = On
FTP = On
POP = On
SMTP = On
IMAP = On
HTTP = On
HTTPS = On
DNS = On
LDAP = On
DCERPC = On
WINRM = On

; Custom challenge. 
; Use "Random" for generating a random challenge for each requests (Default)

Hemos comprobado que sí, por lo tanto, lanzamos el responder con el siguiente comando:

sudo responder -I eth0 -rdw

Con el responder activo, la victima tratará de abrir un recurso compartido que no existe y el responder envenenará esta solicitud:

2. Crackear el Hash

É​ste Hash que hemos recuperado no sirve para la tecnica PassTheHash pero si para crackearlo y obtener acceso.

En el directorio /usr/share/responder/logs encontramos unos logs con la forma SMB-NTLMv2-SSP-$IP.txt donde se almacenan todos los Hashes NetNTLM-v2 capturados.

Copiamos este fichero asegurándonos de que solo contenga un hash de cada victima y se los pasamos a john para que los crackee.

john --wordlist=/usr/share/wordlists/rockyou.txt /RUTA_A/hash.txt --format=netntlmv2

3. Comprobar la contraseña

Utilizando CrackMapExec podemos averiguar si esta password es correcta y si podemos obtener una shell interactiva. Para ello utilizamos el siguiente comando:

cme smb IP_VICTIMA -u USUARIO -P PASSWORD

Como podemos ver en la captura anterior, Password1 no es la contraseña (Pone [-] al lado de los intentos de logon) mientras que Password2 si que lo es ([+] a los intentos de logon).

4. Entender por qué no tenemos capacidad de Shell Remota

Vamos a intentarlo en este caso con el usuario mvazquez que hemos dicho que sí que es administrador local de la red (administrador en los clientes pero no en el servidor).

Tras realizar el proceso anterior hemos descubierto que la password de mvazquez es Password1.

Como vemos, mvazquez, al pertenecer al grupo administradores, si que tiene capacidad de Shell Remota sobre los equipos de la red.

5. Obtener una shell interactiva

Ya sabemos que con este usuario podemos obtener una shell interactiva así que vamos a utilizar una utilidad de Impacket que se llama PSExec para obtener nuestra shell full interactiva.

impacket-psexec DOMINIO/USUARIO:PASSWORD@IP cmd.exe

Si el equipo víctima tiene la Protección en tiempo real de Windows Defender activa, este ataque no se puede realizar. Por eso es tan importante tener un buen antivirus en ambientes empresariales.

Ya tenemos una shell interactiva en un activo de la empresa desde el que poder realizar movimiento lateral al DC.

6. Post-Exploiting

Por otra parte, si hemos conseguido las credenciales del Administrador de Dominio es lógico que tendremos acceso al DC así como a todos los equipos de la red.

Obtener información con RPCClient

Una vez tenemos unos credenciales válidos, podemos utilizar RPCClient para obtener los nombres de usuario y la información de los mismos así como información de los grupos.

Utilizamos el comando rpcclient para obtener información sobre

A mi me interesa saber quienes forman parte del grupo Admins. del Dominio (rid 0x200) pues lo intentamos:

Hay dos usuarios en el grupo Admins del Dominio. Podemos ver los detalles de cada uno de ellos a ver si tenemos suerte.

Como habiamos generado un usuario administrador del dominio con contraseña temporal, hemos conseguido obtener esta contraseña utilizando RPCClient para ver los datos de los usuarios que pertenecen al grupo que nos interesa.

Esto no es habitual pero tampoco es extraño encontrar un usuario con bajos privilegios y la contraseña temporal escrita en la Descripción.

Utilizando estos nuevos credenciales, vemos que efectivamente hemos comprometido a un Administrador de dominio

Dumpear la SAM

Ahora que tenemos los credenciales del Administrador de Dominio y si quisieramos convertir éste ataque en un ataque de PassTheHash o quisieramos obtener credenciales para el resto de los usuarios de la red, podemos hacerlo con CME dumpeando la SAM.

Dumpear NTDS

De la misma manera podemos dumpear el NTDS (La base de datos del Directorio Activo) donde encontraremos el historial de contraseñas de todos los usuarios de AD.

PassTheHash

Por último podemos utilizar PTH-Winexe para utilizar estos Hashes para acceder al equipo:

REFERENCIAS

Pero... No vemos nada de capacidad de obtener una shell con PSexec. Esto se debe a que, como hemos visto cuando implementabamos las en nuestro servidor, el usuario vgarcia no es administrador de su dispositivo y por lo tanto no tiene capacidad de shell remota por defecto como ocurre con los administradores locales.

Esta parte está sacada exactamente del ejemplo de S4vitar en el siguiente .

malas prácticas
malas prácticas
video
https://en.hackndo.com/pass-the-hash/#protocol-ntlm
https://ethicalhackingguru.com/the-complete-ntlm-relay-attack-tutorial/
GitHub - SpiderLabs/Responder: Responder is a LLMNR, NBT-NS and MDNS poisoner, with built-in HTTP/SMB/MSSQL/FTP/LDAP rogue authentication server supporting NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP and Basic HTTP authentication.GitHub
GitHub - byt3bl33d3r/CrackMapExec: A swiss army knife for pentesting networksGitHub
GitHub - SecureAuthCorp/impacket: Impacket is a collection of Python classes for working with network protocols.GitHub
GitHub - PowerShellMafia/PowerSploit: PowerSploit - A PowerShell Post-Exploitation FrameworkGitHub
GitHub - openwall/john: John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAsGitHub
Logo
Logo
Logo
Logo
Este recurso está siendo accedido desde un cliente y no existe.
Como podemos ver, tenemos el hash NetNTLM-v2 de vgarcía.
log de Hashes extraidos. contiene tres veces el Hash de mvazquez.
Como vemos, la contraseña es Password2.
Si amplia la imagen podrá ver como se verifica que Password2 es la contraseña correcta.
Si ampliamos veremosq ue al lado de los intentos de logon pone la palabra (Pwn3d!).
¡Premio!
Listamos los usuarios del domino (el rid es el identificador del usuario).
Listamos los grupos del dominio (el rid es el identificador del grupo).
Hay dos usuarios en el grupo Admins. del Dominio.
Este es el usuario Administrador.
¡Premio!
DC-COMPANY es el Domain Controler.
Estos Hashes son NTLM y permiten el acceso por PassTheHash.
Así ganamos acceso al NTDS.
¡Premio!
Logo
rpcclient
Logo
GitHub - byt3bl33d3r/pth-toolkit: Modified version of the passing-the-hash tool collection made to work straight out of the boxGitHub
Logo