beafn28
  • 👩‍💻¡Bienvenidos a mi HackBook!
  • WRITEUPS
    • DockerLabs
      • BuscaLove
      • Amor
      • Injection
      • BorazuwarahCTF
      • Trust
      • Picadilly
      • Pinguinazo
      • AguaDeMayo
      • BreakMySSH
      • NodeClimb
      • Move
      • Los 40 ladrones
      • Vulnvault
      • Pntopntobarra
      • Library
      • Escolares
      • ConsoleLog
      • Vacaciones
      • Obsession
      • FirstHacking
      • SecretJenkins
      • HedgeHog
      • AnonymousPingu
      • ChocolateLovers
      • Dockerlabs
      • Pressenter
      • Candy
      • JenkHack
      • ShowTime
      • Upload
      • Verdejo
      • WalkingCMS
      • WhereIsMyWebShell
      • Whoiam
      • Winterfell
      • -Pn
      • Psycho
      • Mirame
      • Backend
      • Paradise
      • Balurero
      • Allien
      • Vendetta
      • FindYourStyle
      • Stellarjwt
      • File
      • Redirection (Por completar)
      • Extraviado
      • Patriaquerida
      • Tproot
      • Internship
      • Walking Dead
      • Bicho (Por completar)
      • BaluFood
    • TryHackMe
      • Brooklyn Nine Nine
      • Blue
    • HackTheBox
      • Nibbles
      • Starting Point
        • Meow
        • Fawn
        • Dancing
        • Redeemer
        • Appointment
        • Sequel
        • Crocodile
        • Responder
        • Three
        • Archetype
        • Oopsie
        • Vaccine
        • Unified
        • Explosion
        • Preignition
        • Mongod
        • Synced
        • Ignition
        • Bike
        • Funnel
        • Pennyworth
        • Tactics
        • Included
        • Markup
        • Base
      • BoardLight
      • Cap
      • TwoMillion
      • Lame
      • Legacy
      • Devel
      • Beep
      • Optimum
      • Arctic
      • Jerry
      • Sau
      • GoodGames
      • Challenges
        • Emdee five for life
        • MarketDump
      • Intro to Dante
      • Heist
      • OpenAdmin
      • Nest
      • Curling
    • Vulnhub
      • Wakanda
      • Election (Por terminar)
    • The Hacker Labs
      • Avengers
      • Can you hack me?
      • Fruits
      • Microchoft
      • TickTakRoot
      • Grillo
      • Mortadela
      • Zapas Guapas
      • Sal y Azúcar
      • Cyberpunk
      • Papafrita
      • PizzaHot
      • Decryptor
      • Academy
      • Cocido andaluz
      • Find Me
      • Quokka
      • Campana Feliz
      • Bocata de Calamares
      • Casa Paco
      • Torrijas
    • Vulnyx
      • Fuser
      • Blogguer
      • Lower
      • Exec
      • Diff3r3ntS3c
      • Hacking Station
      • Experience
      • Eternal
      • Agent
      • Infected
      • Admin
      • War
      • Hosting
    • OverTheWire
      • Natas
        • Nivel 0-5
        • Nivel 6-11
        • Nivel 12-17
        • Nivel 18-23
        • Nivel 24-29
        • Nivel 30-34
      • Leviathan
        • Nivel 0-7
      • Krypton
      • Bandit
        • Nivel 0-10
        • Nivel 11-20
        • Nivel 21-30
        • Nivel 31-34
    • Proving Ground Play
      • Monitoring
      • DriftingBlues6
  • APUNTES HACKING
    • Pentesting Basics
      • Web Enumeration
      • Public Exploits
      • Types of Shells
      • Privilege Escalation
      • Transfering Files
    • Network Enumeration with NMAP
      • Host Discovery
      • Host and Port Scanning
      • Saving the Results
      • Service Enumeration
      • Nmap Scripting Engine
      • Performance
      • Firewall and IDS/IPS Evasion
    • Footprinting
      • Domain Information
      • Cloud Resources
      • FTP
      • SMB
      • NFS
      • DNS
      • SMTP
      • IMAP/POP3
      • SNMP
      • MySQL
      • MSSQL
      • Oracle TNS
      • IPMI
      • Linux Remote Management Protocols
      • Windows Remote Management Protocols
    • Information Gathering - Web Edition
      • WHOIS
      • DNS
        • Digging DNS
      • Subdomains
        • Subdomain Bruteforcing
        • DNS Zone Transfers
        • Virtual Hosts
        • Certificate Transparency Logs
      • Fingerprinting
      • Crawling
        • robots.txt
        • Well-Known URIs
        • Creepy Crawlies
      • Search Engine Discovery
      • Web Archives
      • Automating Recon
    • Vulnerability Assessment
      • Vulnerability Assessment
      • Assessment Standards
      • Common Vulnerability Scoring System (CVSS)
      • Common Vulnerabilities and Exposures (CVE)
    • Nessus
      • Getting Started with Nessus
      • Nessus Scan
      • Advanced Settings
      • Working with Nessus Scan Output
      • Scanning Issues
    • OpenVAS
      • OpenVAS Scan
      • Exporting The Results
    • Reporting
    • File Transfers
      • Windows File Transfer Methods
      • Linux File Transfer Methods
      • Transferring Files with Code
      • Miscellaneous File Transfer Methods
      • Protected File Transfers
      • Catching Files over HTTP/S
      • Living off The Land
      • Detection
      • Evading Detection
    • Shells & Payloads
      • Anatomy of a Shell
      • Bind Shells
      • Reverse Shells
      • Payloads
        • Automating Payloads & Delivery with Metasploit
        • Crafting Payloads with MSFvenom
        • Infiltrating Windows
        • Infiltrating Unix/Linux
        • Spawning Interactive Shells
      • Introduction to Web Shells
        • Laudanum, One Webshell to Rule Them All
        • Antak Webshell
        • PHP Web Shells
      • Detection & Prevention
    • Metasploit
      • MSFConsole
      • Modules
      • Targets
      • Payloads
      • Encoders
      • Databases
      • Plugins
      • Sessions
      • Meterpreter
      • Writing and Importing Modules
      • Introduction to MSFVenom
      • Firewall and IDS/IPS Evasion
    • Password Attacks
      • John The Ripper
      • Network Services
      • Password Mutations
      • Password Reuse / Default Passwords
      • Attacking SAM
      • Attacking LSASS
      • Attacking Active Directory & NTDS.dit
      • Credential Hunting in Windows
      • Credential Hunting in Linux
      • Passwd, Shadow & Opasswd
      • Pass the Hash (PtH)
  • WEB SECURITY
    • Path Traversal
    • SQL Injection
    • Control de Acceso
  • Mis CTFs
    • Pequeñas Mentirosas
    • CryptoLabyrinth
    • Elevator
    • Facultad
  • PREPARAR EJPTv2
    • Máquinas
    • Curso de Mario
      • Presentación + Preparación de Laboratorios
      • Conceptos Básicos de Hacking
      • Explotación de Vulnerabilidades y Ataques de Fuerza Bruta
      • Explotación vulnerabilidades Web
      • Enumeración y Explotación del Protócolo SMB, SAMBA, SNMP, IIS y RDP
      • Hacking Entornos CMS
      • Escalada de Privilegios + Post Explotación
      • Pivoting con Metasploit
  • Preparar OSCP
    • Información
    • Máquinas
      • Linux
        • Fácil
        • Medio
        • Difícil
      • Windows
        • Fácil
        • Medio
        • Difícil
Powered by GitBook
On this page
  • Almacenamiento de Credenciales
  • Linux
  • Archivo Shadow
  • Archivo Passwd
  • Proceso de Autenticación en Windows
  • LSASS
  • Base de Datos SAM
  • Administrador de Credenciales
  • NTDS

Was this helpful?

  1. APUNTES HACKING

Password Attacks

PreviousFirewall and IDS/IPS EvasionNextJohn The Ripper

Last updated 7 months ago

Was this helpful?

Almacenamiento de Credenciales

Cada aplicación que admite mecanismos de autenticación compara las credenciales ingresadas con bases de datos locales o remotas. En el caso de bases de datos locales, estas credenciales se almacenan localmente en el sistema. Las aplicaciones web a menudo son vulnerables a inyecciones SQL, lo que puede llevar al peor de los casos donde los atacantes pueden ver la totalidad de los datos de una organización en texto plano.

Existen muchas listas de palabras que contienen las contraseñas más comúnmente usadas. Un ejemplo de una de estas listas es rockyou.txt. Esta lista incluye aproximadamente 14 millones de contraseñas únicas y se creó después de una filtración de datos de la empresa RockYou, que contenía un total de 32 millones de cuentas de usuario. La empresa RockYou almacenaba todas las credenciales en texto plano en su base de datos, las cuales los atacantes pudieron ver tras un exitoso ataque de inyección SQL.

Sabemos que todos los sistemas operativos admiten estos tipos de mecanismos de autenticación. Por lo tanto, las credenciales almacenadas se guardan localmente. Veamos cómo se crean, almacenan y gestionan en más detalle en sistemas basados en Windows y Linux.

Linux

Como ya sabemos, los sistemas basados en Linux manejan todo en forma de archivos. Por lo tanto, las contraseñas también se almacenan cifradas en un archivo. Este archivo se llama el archivo shadow y se encuentra en /etc/shadow, que es parte del sistema de gestión de usuarios de Linux. Además, estas contraseñas se almacenan comúnmente en forma de hashes. Un ejemplo puede verse así:

Archivo Shadow

root@htb:~# cat /etc/shadow
...SNIP...
htb-student:$y$j9T$3QSBB6CbHEu...SNIP...f8Ms:18955:0:99999:7:::

El archivo /etc/shadow tiene un formato único en el que las entradas se registran y guardan cuando se crean nuevos usuarios.

htb-student:    $y$j9T$3QSBB6CbHEu...SNIP...f8Ms:    18955:    0:    99999:    7:    :    :    :
<nombre de usuario>:    <contraseña cifrada>:    <día del último cambio>:    <edad mínima>:    <edad máxima>:    <período de advertencia>:    <período de inactividad>:    <fecha de expiración>:    <campo reservado>

El cifrado de la contraseña en este archivo está formateado de la siguiente manera:

$ <id>    $ <salt>    $ <hash>
$ y       $ j9T       $ 3QSBB6CbHEu...SNIP...f8Ms

El tipo (id) es el método de hash criptográfico utilizado para cifrar la contraseña. Muchos métodos criptográficos de hash se han utilizado en el pasado y algunos sistemas todavía los usan hoy en día.

ID
Algoritmo de Hash Criptográfico

$1$

MD5

$2a$

Blowfish

$5$

SHA-256

$6$

SHA-512

$sha1$

SHA1crypt

$y$

Yescrypt

$gy$

Gost-yescrypt

$7$

Scrypt

Sin embargo, hay unos pocos archivos más que pertenecen al sistema de gestión de usuarios de Linux. Los otros dos archivos son /etc/passwd y /etc/group. En el pasado, la contraseña cifrada se almacenaba junto con el nombre de usuario en el archivo /etc/passwd, pero esto fue cada vez más reconocido como un problema de seguridad, ya que el archivo puede ser visto por todos los usuarios en el sistema y debe ser legible. El archivo /etc/shadow solo puede ser leído por el usuario root.

Archivo Passwd

sherlock28@htb[/htb]$ cat /etc/passwd
...SNIP...
htb-student:x:1000:1000:,,,:/home/htb-student:/bin/bash
htb-student:    x:    1000:    1000:    ,,,,:    /home/htb-student:    /bin/bash
<nombre de usuario>:    <contraseña>:    <uid>:    <gid>:    <comentario>:    <directorio de inicio>:    <comando ejecutado después de iniciar sesión>

La x en el campo de la contraseña indica que la contraseña cifrada está en el archivo /etc/shadow. Sin embargo, la redirección al archivo /etc/shadow no hace que los usuarios en el sistema sean invulnerables, ya que si los permisos de este archivo están configurados incorrectamente, el archivo puede ser manipulado para que el usuario root no necesite escribir una contraseña para iniciar sesión. Por lo tanto, un campo vacío significa que podemos iniciar sesión con el nombre de usuario sin ingresar una contraseña.

Proceso de Autenticación en Windows

El proceso de autenticación de clientes de Windows puede ser a menudo más complicado que en los sistemas Linux y consta de muchos módulos diferentes que realizan los procesos completos de inicio de sesión, recuperación y verificación. Además, hay muchos procedimientos de autenticación diferentes y complejos en el sistema Windows, como la autenticación Kerberos.

La Autoridad de Seguridad Local (LSA, por sus siglas en inglés) es un subsistema protegido que autentica a los usuarios e inicia su sesión en el equipo local. Además, la LSA mantiene información sobre todos los aspectos de la seguridad local en un equipo. También proporciona varios servicios para la traducción entre nombres y IDs de seguridad (SIDs, por sus siglas en inglés).

El subsistema de seguridad realiza un seguimiento de las políticas de seguridad y cuentas que residen en un sistema informático. En el caso de un Controlador de Dominio, estas políticas y cuentas se aplican al dominio donde se encuentra el Controlador de Dominio. Estas políticas y cuentas se almacenan en Active Directory. Además, el subsistema LSA proporciona servicios para verificar el acceso a objetos, revisar los permisos de los usuarios y generar mensajes de monitoreo.

El inicio de sesión interactivo local se realiza mediante la interacción entre el proceso de inicio de sesión (WinLogon), el proceso de la interfaz de usuario de inicio de sesión (LogonUI), los proveedores de credenciales, LSASS, uno o más paquetes de autenticación, y SAM o Active Directory. Los paquetes de autenticación, en este caso, son bibliotecas de enlace dinámico (DLLs) que realizan verificaciones de autenticación. Por ejemplo, para inicios de sesión interactivos en máquinas no unidas a un dominio, se utiliza el paquete de autenticación Msv1_0.dll.

Winlogon es un proceso confiable responsable de gestionar las interacciones de seguridad relacionadas con los usuarios. Estas incluyen:

  • Lanzar LogonUI para ingresar contraseñas en el inicio de sesión.

  • Cambiar contraseñas.

  • Bloquear y desbloquear la estación de trabajo.

Winlogon se basa en los proveedores de credenciales instalados en el sistema para obtener el nombre de cuenta o contraseña del usuario. Los proveedores de credenciales son objetos COM ubicados en DLLs.

Winlogon es el único proceso que intercepta las solicitudes de inicio de sesión desde el teclado enviadas a través de un mensaje RPC desde Win32k.sys. Inmediatamente después, lanza la aplicación LogonUI en el inicio de sesión para mostrar la interfaz de usuario para el inicio de sesión. Después de obtener el nombre de usuario y la contraseña de los proveedores de credenciales, Winlogon llama a LSASS para autenticar al usuario que intenta iniciar sesión.

LSASS

Local Security Authority Subsystem Service (LSASS) es una colección de muchos módulos y tiene acceso a todos los procesos de autenticación que se pueden encontrar en %SystemRoot%\System32\Lsass.exe. Este servicio es responsable de la política de seguridad del sistema local, la autenticación de usuarios y el envío de registros de auditoría de seguridad al registro de eventos. En otras palabras, es la bóveda para los sistemas operativos basados en Windows.

Paquetes de Autenticación

Paquete de Autenticación
Descripción

Lsasrv.dll

El servicio del servidor LSA aplica políticas de seguridad y actúa como el administrador de paquetes de seguridad para la LSA. LSA contiene la función Negotiate, que selecciona el protocolo NTLM o Kerberos dependiendo de cuál se determine que tendrá éxito.

Msv1_0.dll

Paquete de autenticación para inicios de sesión en la máquina local que no requieren autenticación personalizada.

Samsrv.dll

El Security Accounts Manager (SAM) almacena cuentas de seguridad locales, aplica políticas almacenadas localmente y soporta APIs.

Kerberos.dll

Paquete de seguridad cargado por la LSA para la autenticación basada en Kerberos en una máquina.

Netlogon.dll

Servicio de inicio de sesión basado en red.

Ntdsa.dll

Biblioteca usada para crear nuevos registros y carpetas en el registro de Windows.

Cada sesión de inicio de sesión interactiva crea una instancia separada del servicio Winlogon. La arquitectura de Graphical Identification and Authentication (GINA) se carga en el área de proceso utilizada por Winlogon, recibe y procesa las credenciales, e invoca las interfaces de autenticación a través de la función LSALogonUser.

Base de Datos SAM

El Security Account Manager (SAM) es un archivo de base de datos en los sistemas operativos Windows que almacena las contraseñas de los usuarios. Puede utilizarse para autenticar usuarios locales y remotos. SAM utiliza medidas criptográficas para evitar que usuarios no autenticados accedan al sistema. Las contraseñas de los usuarios se almacenan en un formato de hash en una estructura de registro, ya sea como un hash LM o NTLM. Este archivo se encuentra en %SystemRoot%/system32/config/SAM y está montado en HKLM/SAM. Se requieren permisos de nivel SYSTEM para verlo.

Los sistemas Windows pueden asignarse a un grupo de trabajo o dominio durante la configuración. Si el sistema ha sido asignado a un grupo de trabajo, maneja la base de datos SAM localmente y almacena todos los usuarios existentes en esta base de datos. Sin embargo, si el sistema se ha unido a un dominio, el Controlador de Dominio (DC) debe validar las credenciales desde la base de datos de Active Directory (ntds.dit), que se almacena en %SystemRoot%\ntds.dit.

Microsoft introdujo una característica de seguridad en Windows NT 4.0 para mejorar la seguridad de la base de datos SAM contra ataques fuera de línea. Esta es la característica SYSKEY (syskey.exe), que cuando está habilitada, cifra parcialmente la copia en disco duro del archivo SAM para que los valores hash de las contraseñas de todas las cuentas locales almacenadas en SAM estén cifrados con una clave.

Administrador de Credenciales

El Administrador de Credenciales es una función incorporada en todos los sistemas operativos Windows que permite a los usuarios guardar las credenciales que utilizan para acceder a varios recursos de red y sitios web. Las credenciales guardadas se almacenan en función de los perfiles de usuario en el Credential Locker de cada usuario. Las credenciales se cifran y se almacenan en la siguiente ubicación:

PS C:\Users\[Username]\AppData\Local\Microsoft\[Vault/Credentials]\

Existen varios métodos para descifrar las credenciales guardadas utilizando el Administrador de Credenciales. Practicaremos algunos de estos métodos en este módulo.

NTDS

Es muy común encontrar entornos de red donde los sistemas Windows están unidos a un dominio de Windows. Esto es común porque facilita a los administradores la gestión de todos los sistemas de las organizaciones respectivas (gestión centralizada). En estos casos, los sistemas Windows enviarán todas las solicitudes de inicio de sesión a los Controladores de Dominio que pertenecen al mismo bosque de Active Directory. Cada Controlador de Dominio aloja un archivo llamado NTDS.dit que se mantiene sincronizado entre todos los Controladores de Dominio, con la excepción de los Controladores de Dominio de Solo Lectura. NTDS.dit es un archivo de base de datos que almacena los datos en Active Directory, incluyendo pero no limitado a:

  • Cuentas de usuario (nombre de usuario y hash de la contraseña)

  • Cuentas de grupo

  • Cuentas de equipo

  • Objetos de política de grupo

Más adelante en este módulo practicaremos métodos que nos permitan extraer credenciales del archivo NTDS.dit.

Ahora que hemos cubierto los conceptos de almacenamiento de credenciales, estudiemos los diversos ataques que podemos realizar para extraer credenciales y avanzar en nuestras evaluaciones.

696KB
Password_Attacks_Module_Cheat_Sheet.pdf
pdf