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
  • Enumerating the Password Policy - from Linux - Credentialed
  • Enumerating the Password Policy - from Linux - SMB NULL Sessions
  • Using rpcclilent
  • Obtaining the Password Policy using rpcclient
  • Using enum4linux
  • Using enum4linux-ng
  • Enumerating Null Session - from Windows
  • Establish a null session from windows
  • Error: Account is Disabled
  • Error: Password is Incorrect
  • Error: Account is locked out (Password Policy)
  • Enumerating the Password Policy - from Linux - LDAP Anonymous Bind
  • Using ldapsearch
  • Enumerating the Password Policy - from Windows
  • Using net.exe
  • Using PowerView
  • Analyzing the Password Policy
  • Next steps
  1. Hacking Notes (Learning Path)
  2. (HTB) Penetration Tester
  3. Introduction to Active Directory Enumeration & Attacks
  4. Sighting In, Hunting For A User

Enumerating & Retrieving Password Policies

PreviousPassword Spraying OverviewNextPassword Spraying - Making a Target User List

Last updated 14 days ago

Enumerating the Password Policy - from Linux - Credentialed

Como se mencionó en la sección anterior, podemos obtener la política de contraseñas del dominio de varias maneras, dependiendo de la configuración del dominio y de si contamos con credenciales de dominio válidas. Con credenciales de dominio válidas, la política de contraseñas también puede obtenerse remotamente mediante herramientas como o rpcclient.

crackmapexec smb <ip> -u <user> -p <pass> --pass-pol

Enumerating the Password Policy - from Linux - SMB NULL Sessions

Sin credenciales, podríamos obtener la política de contraseñas mediante una sesión SMB NULL o un enlace anónimo LDAP. El primero es mediante una sesión SMB NULL. Las sesiones SMB NULL permiten a un atacante no autenticado obtener información del dominio, como una lista completa de usuarios, grupos, equipos, atributos de cuenta de usuario y la política de contraseñas del dominio. Las configuraciones incorrectas de las sesiones SMB NULL suelen deberse a actualizaciones de controladores de dominio heredados, lo que conlleva configuraciones inseguras, que existían por defecto en versiones anteriores de Windows Server.

Al crear un dominio en versiones anteriores de Windows Server, se concedía acceso anónimo a ciertos recursos compartidos, lo que permitía la enumeración del dominio. Una sesión SMB nula se puede enumerar fácilmente. Para la enumeración, podemos usar herramientas como enum4linux, CrackMapExec, rpcclient, etc.

Podemos utilizar para verificar un controlador de dominio en busca de acceso a sesión SMB NULL.

Una vez conectado, podemos emitir un comando RPC para querydominfoobtener información sobre el dominio y confirmar el acceso a la sesión NULL.

Using rpcclilent

rpcclient -U "" -N <ip>-c "querydominfo"

También podemos obtener la política de contraseñas. Vemos que es relativamente débil, permitiendo una contraseña mínima de 8 caracteres.

Obtaining the Password Policy using rpcclient

rpcclient -U "" -N <ip> -c "querydominfo"

Probemos esto con . enum4linuxEs una herramienta basada en el nmblookup , nety rpcclientque smbclientse utiliza para la enumeración de hosts y dominios de Windows. Está preinstalada en muchas distribuciones de pruebas de penetración, incluyendo Parrot Security Linux. A continuación, se muestra un ejemplo de salida que muestra la información que puede proporcionar enum4linux. A continuación, se muestran algunas herramientas de enumeración comunes y los puertos que utilizan:

Tool
Ports

nmblookup

137/UDP

nbtstat

137/UDP

net

139/TCP, 135/TCP, TCP and UDP 135 and 49152-65535

rpcclient

135/TCP

smbclient

445/TCP

Using enum4linux

enum4linux -P <ip>

Using enum4linux-ng

enum4linux-ng -P <ip> -oA ilfreight

Enum4linux-ng nos proporcionó una salida un poco más clara y una salida JSON y YAML útil usando la -oAbandera.

Enumerating Null Session - from Windows

Es menos común realizar este tipo de ataque de sesión nula desde Windows, pero podríamos usar el comando net use \\host\ipc$ "" /u:""para establecer una sesión nula desde una máquina Windows y confirmar si podemos realizar más de este tipo de ataques.

Establish a null session from windows

C:\htb> net use \\DC01\ipc$ "" /u:""
The command completed successfully.

También podemos usar una combinación de nombre de usuario y contraseña para intentar conectarnos. Veamos algunos errores comunes al intentar autenticarse:

Error: Account is Disabled

C:\htb> net use \\DC01\ipc$ "" /u:guest
System error 1331 has occurred.

This user can't sign in because this account is currently disabled.

Error: Password is Incorrect

C:\htb> net use \\DC01\ipc$ "password" /u:guest
System error 1326 has occurred.

The user name or password is incorrect.

Error: Account is locked out (Password Policy)

C:\htb> net use \\DC01\ipc$ "password" /u:guest
System error 1909 has occurred.

The referenced account is currently locked out and may not be logged on to.

Enumerating the Password Policy - from Linux - LDAP Anonymous Bind

Using ldapsearch

ldapsearch -h <ip> -x -b "<base de dominio>" -s sub "*" | grep -m 1 -B 10 pwdHistoryLength

Aquí podemos ver que la longitud mínima de la contraseña es 8, el umbral de bloqueo es 5 y la complejidad de la contraseña está establecida ( pwdPropertiesestablecida en 1).

Enumerating the Password Policy - from Windows

Si podemos autenticarnos en el dominio desde un host Windows, podemos usar los binarios integrados de Windows, por ejemplo, net.exepara recuperar la política de contraseñas. También podemos usar diversas herramientas como PowerView, CrackMapExec adaptado a Windows, SharpMapExec, SharpView, etc.

Usar comandos integrados es útil si accedemos a un sistema Windows y no podemos transferirle herramientas, o si el cliente nos asigna un sistema Windows, pero no tenemos forma de transferirle herramientas. Un ejemplo con el binario net.exe integrado es:

Using net.exe

net accounts

Aquí podemos obtener la siguiente información:

  • Las contraseñas nunca caducan (la edad máxima de la contraseña se establece en Ilimitada)

  • La longitud mínima de la contraseña es de 8, por lo que es probable que se utilicen contraseñas débiles.

  • El umbral de bloqueo es de 5 contraseñas incorrectas

  • Las cuentas permanecieron bloqueadas durante 30 minutos

Esta política de contraseñas es excelente para la pulverización de contraseñas. El mínimo de ocho caracteres permite probar contraseñas débiles comunes como [nombre del Welcome1usuario]. El límite de bloqueo de 5 caracteres permite de 2 a 3 intentos (por seguridad) cada 31 minutos sin riesgo de bloquear ninguna cuenta. Si una cuenta ha sido bloqueada, se desbloqueará automáticamente (sin intervención manual del administrador) después de 30 minutos, pero debemos evitar bloquear ANYcuentas a toda costa.

PowerView también es bastante útil para esto:

Using PowerView

import-module .\PowerView.ps1
Get-DomainPolicy

PowerView nos dio el mismo resultado que nuestro net accountscomando, solo que en un formato diferente, pero también reveló que la complejidad de la contraseña está habilitada ( PasswordComplexity=1).

Al igual que con Linux, disponemos de numerosas herramientas para recuperar la política de contraseñas en un sistema Windows, ya sea nuestro sistema de ataque o uno proporcionado por el cliente. PowerView/SharpView son siempre una buena opción, al igual que CrackMapExec, SharpMapExec y otras. La elección de las herramientas depende del objetivo de la evaluación, las consideraciones de sigilo, cualquier antivirus o EDR instalado y otras posibles restricciones en el host objetivo. Veamos algunos ejemplos.

Analyzing the Password Policy

Hemos revisado la política de contraseñas de varias maneras. Analicemos la política del dominio INLANEFREIGHT.LOCAL paso a paso.

  • La longitud mínima de la contraseña es de 8 (8 es muy común, pero hoy en día, vemos que cada vez más organizaciones exigen una contraseña de 10 a 14 caracteres, lo que puede eliminar algunas opciones de contraseña para nosotros, pero no mitiga por completo el vector de pulverización de contraseñas)

  • El umbral de bloqueo de la cuenta es 5 (no es raro ver un umbral inferior, como 3, o incluso ningún umbral de bloqueo establecido)

  • La duración del bloqueo es de 30 minutos (puede ser mayor o menor dependiendo de la organización), por lo que si bloqueamos accidentalmente (¡evitemos!) una cuenta, se desbloqueará después de que pase la ventana de 30 minutos.

  • Las cuentas se desbloquean automáticamente (en algunas organizaciones, el administrador debe desbloquear la cuenta manualmente). Nunca queremos bloquear cuentas mientras se rocía contraseñas, pero sobre todo queremos evitar bloquear cuentas en una organización donde un administrador tendría que intervenir y desbloquear cientos (o miles) de cuentas manualmente o mediante un script.

  • La complejidad de la contraseña está habilitada, lo que significa que un usuario debe elegir una contraseña con 3/4 de los siguientes: una letra mayúscula, una letra minúscula, un número, un carácter especial ( Password1o Welcome1que satisfaga el requisito de "complejidad" aquí, pero que aún sean contraseñas claramente débiles).

La política de contraseña predeterminada cuando se crea un nuevo dominio es la siguiente, y ha habido muchas organizaciones que nunca cambiaron esta política:

Política

Valor predeterminado

Hacer cumplir el historial de contraseñas

24 días

Edad máxima de la contraseña

42 días

Edad mínima de la contraseña

1 día

Longitud mínima de la contraseña

7

La contraseña debe cumplir con los requisitos de complejidad

Activado

Almacenar contraseñas usando cifrado reversible

Desactivado

Duración del bloqueo de la cuenta

No establecido

Umbral de bloqueo de cuenta

0

Restablecer el contador de bloqueo de cuenta después

No establecido

Next steps

Ahora que tenemos la política de contraseñas en la mano, necesitamos crear una lista de usuarios objetivo para nuestro ataque de rociado de contraseñas. Recuerde que, en ocasiones, no podremos obtener la política de contraseñas si realizamos un rociado de contraseñas externo (o si estamos en una evaluación interna y no podemos recuperarla mediante ninguno de los métodos que se muestran aquí). En estos casos, MUSTextremamos la precaución para no bloquear las cuentas. Siempre podemos solicitar a nuestro cliente su política de contraseñas si el objetivo es una evaluación lo más completa posible. Si solicitar la política no se ajusta a las expectativas de la evaluación o el cliente no desea proporcionarla, deberíamos realizar uno o dos intentos de rociado de contraseñas (independientemente de si somos internos o externos) y esperar más de una hora entre intentos si decidimos intentar dos. Si bien la mayoría de las organizaciones tienen un umbral de bloqueo de 5 intentos de contraseña incorrectos, una duración de bloqueo de 30 minutos y las cuentas se desbloquean automáticamente, no siempre podemos dar por sentado que esto sea normal. He visto muchas organizaciones con un umbral de bloqueo de 3, que requieren la intervención de un administrador para desbloquear las cuentas manualmente.

La herramienta es una reescritura de enum4linuxPython, pero ofrece funciones adicionales, como la posibilidad de exportar datos como archivos YAML o JSON, que posteriormente pueden utilizarse para procesarlos o alimentarlos a otras herramientas. También admite salida en color, entre otras funciones.

permiten a atacantes no autenticados obtener información del dominio, como una lista completa de usuarios, grupos, equipos, atributos de cuentas de usuario y la política de contraseñas del dominio. Esta configuración es heredada y, a partir de Windows Server 2003, solo los usuarios autenticados pueden iniciar solicitudes LDAP. Esta configuración aún se observa ocasionalmente, ya que un administrador puede haber tenido que configurar una aplicación específica para permitir enlaces anónimos y haber otorgado más acceso del previsto, otorgando así a los usuarios no autenticados acceso a todos los objetos de AD.

Con un enlace anónimo de LDAP, podemos usar herramientas de enumeración específicas de LDAP, como windapsearch.py, ldapsearch, ad-ldapdomaindump.py, etc., para extraer la política de contraseñas. Con , puede ser un poco engorroso, pero factible. Un ejemplo de comando para obtener la política de contraseñas es el siguiente:

CrackMapExec
rpcclient
enum4linux
conjunto de herramientas Samba
enum4linux-ng
Los enlaces anónimos de LDAP
ldapsearch