Hacking en Active Directory - [CPAD-100]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacking en ACTIVE DIRECTORY
    • ADVERTENCIA
    • Conoce a tu academia
    • Conoce a tu instructor
    • Aprende con nuestro curso
      • ¿Que Significa CPAD-100?
  • Introducción a Directorio Activo – (AD)
    • Fundamentos de AD
    • Componentes importantes de un Active Directory
    • Principales conceptos de un Directorio Activo
      • Diferencias entre GPO y ACL
    • ¿Por qué los atacantes van tras los controladores de dominio?
      • Ransomware en AD
    • Introduccion a Kerberos
      • Capa de transporte
      • Agentes
      • Claves de cifrado
      • Tickets
      • Privilege Attribute Certificate (PAC)
      • Mensajes
    • Proceso de autenticación en Kerberos
      • Kerberos Explicado con Parques y Atracciones
    • ¿Como funciona Kerberos?
    • S4U (Service for User)
    • Usuarios y grupo por defectos en AD
    • Biblia de comandos para el CPAD
  • Fundamentos Ofensivos
    • Introduccion al Curso Profesional de Pentesting para Juniors - [CPPJ]
    • ¿Qué es un Red Team?
      • Assume breach
    • ¿Qué es un Pentesting?
    • Instalacion de Kali Linux
      • Utilizando IP publica para auditorias reales
    • Transferencias de archivos
    • Cyber Kill Chain
    • MITRE
      • Ejemplo teorico
  • Enumeracion Externa
    • Credenciales expuestas
    • La importancia de la enumeracion en un red team
    • Reconocimiento y Recopilacion
    • Activos de informacion publicos
      • DNS records
      • Redes sociales
  • Vectores de ataque fisico
    • Physical Red Team Operations
    • Que es la intrusion fisica
      • Vectores de ataque
    • Rubber Ducky
    • Stuxnet
    • Introduccion a Flipper Zero
      • BadUSB
  • Introduccion Al Hacking Web
    • Tu primer Red Team contra Active Directory
      • Objetivos
      • CyberKillChain en CPAD
    • La importancia del hacking web en un red team contra AD
    • Curso gratuito con los labs de PortSwigger
    • Enumeracion sobre un servidor web desplegado en IIS
    • Inyeccion de comandos desde un formulario web
  • Post-explotacion en windows
    • Fundamentos de la Enumeracion local en un Windows
    • Enumeracion basica desde una WebShell
    • Fundamentos de escalacion de privilegios en Windows
      • ¿Que son altos privilegios en windows?
      • ¿Que son bajos privilegios en windows?
      • Identificando mis privilegios actuales
      • Tokens de acceso en Windows
      • Niveles de integridad en procesos de Windows
    • Privilegios en Windows
    • Abusando de los privilegios SeImpersonatePrivilege SeAssignPrimaryTokenPrivilege
    • Introduccion al Curso Profesional de Pentesting contra Windows - [CPPW]
    • NT AUTHORITY\SYSTEM
    • Reverse Shell en PowerShell Indetectable
      • Introduccion al Curso RedTeam Ops Developer Senior
    • Migracion de WebShell a BurpSuite
    • Migracion de WebShell a Reverse Shell via PowerShell
    • Diferencia entre una WebShell y Reverse Shell
    • Introducción a PowerUp
    • Introducción a WinPEAS
  • Persistencia en Windows Local
    • Introduccion a la post-explotación y persistencia en Windows
    • Creacion de usuarios con net
    • Qué es Mimikatz
      • LSASS
      • Extraccion de credenciales con Mimikatz con binario
      • Extraccion de credenciales con Mimikatz con PowerShell
      • Resolucion de errores con Mimikatz
      • Mimikatz en la actualidad
  • Enumeracion en AD
    • Identificando un Domain Controller (DC) en red
    • ActiveDirectoryRights en el Contexto de Red Team
    • Enumeracion manual con GUI
    • Enumeracion con PowerShell ofensivo
      • Guia de comandos de PowerView.ps1
        • Enumeracion de usuarios
        • Enumeracion de Grupos
        • Enumeracion de Computadores
        • Enumeracion de GPO
        • Enumeracion de ACL
      • Utilizando ADPeas
    • Enumeracion con AD Module DLL
    • Enumeracion con BloodHound
    • Enumeracion con klist
    • Security Identifiers (SIDs)
    • Distinguished Name o DN
  • Vulnerabilidades y ataques en AD
    • Fundamentos de vulnerabilidades en AD
    • Password Spraying
      • La importancia de generar contraseñas personalizadas
      • Kerbrute
    • Relay Attacks
      • ¿Que es NTLM?
      • Utilizando impacket-ntlmrelayx
        • Análisis de impacket-ntlmrelayx
    • Credenciales en descripcion
      • Utilizando CrackMapExec
      • Utilizando BloodHound
    • Kerberoasting
      • Utilizando BloodHound
      • Utilizando Rubeus
      • Utilizando Impacket-GetUserSPNs
      • Utilizando CrackMapExec
      • Utilizando PowerView
    • ASREProastable
      • Utilizando Rubeus
      • Utilizando CrackMapExec
      • Utilizando Impacket-GetNPUsers
      • CVE-2022-33679
    • Unconstrained Delegation
      • TrustedToAuthForDelegation vs TrustedForDelegation
    • Constrained Delegation
      • Usuario
      • Computadora
        • Utilizando Rubeus
    • DnsAdmins
      • Utilizando PowerView.ps1
      • Utilizando NET
      • Cargando una dll maliciosa con dnscmd
      • Generando una DLL maliciosa
    • LAPS Reader
    • (RBCD) Resource-based constrained
    • Abuso de ACL
      • Enumeracion con PowerView
      • Tipos de permisos
        • Tabla de Referencia de Permisos y Derechos en Active Directory
      • Access Control Entry (ACE)
      • WriteDacl sobre Computador
      • GenericAll sobre Grupo
      • GenericAll sobre usuario
      • GenericWrite sobre computador
    • Abuso de GPO
      • ¿Qué es SysVol?
      • Utilizando PowerView
      • Solicitando TGT para el usuario gpowrite.user
      • Utilizando SharpGPOAbuse
      • Forzando la actualizacion de GPO
    • Zerologon - CVE-2020-1472
  • Movimiento lateral
    • Fundamentos de movimiento lateral en AD
    • Impersonation
    • Pass-the-Hash (PtH)
      • Identificando servicios para realizar el PTH
      • Utilizando Evil-WinRm
      • Utilizando impacket-psexec
      • Utilizando RDP
  • Persistencia y post-explotacion en AD
    • Fundamentos de persistencia y la post-explotación en AD
    • DCSync
      • Extracción de Credenciales del Dominio de Active Directory
      • Utilizando CrackMapExec
      • Utilizando Mimikatz
      • Utilizando Impacket-secretsdump
    • Creacion de usuarios en el dominio con net
    • Silver Ticket
      • Service Principal Name (SPN)
      • Silver Ticket para CIFS
    • Golden Ticket
      • Diferencias entre Silver Ticket y Golden Ticket
      • ¿Que es KRBTGT?
      • Variantes del Golden Ticket
        • Golden Ticket tradicional utilizando Mimikatz
        • Golden Ticket Inter-realm TGT
    • Pass The Ticket
      • PTT en Linux
      • PTT en Windows
    • Diamond Ticket
    • Bosques y relaciones de confianza
      • TrustAttributes y TrustType
      • Enumeracion utilizando ADPeas.ps1
      • Enumeracion utilizando nltest
      • Enumeracion utilizando .NET Framework
      • Enumeracion utilizando con PowerView
      • Enumerando con SharpHound
  • Introduccion a la evasion de defensas
    • Fundamentos de evasión de defensas
    • Introduccion a UAC
      • Bypass UAC utilizando FodhelperUACBypass.ps1
      • Bypass utilizando Kerberos y SMBExec
    • Evasión de antivirus
      • Utilizando HoaxShell
    • Introduccion a LOLBAS
    • AMSI para Hackers
    • Utilizando IP publicas y dominios confiables para el almacenamiento de herramientas
    • Codificando tus comandos de PowerShell en base64
      • Transferencia de archivos con base64
    • Política de ejecución de PowerShell
    • Introduccion a Sysinternals
    • Introduccion a AppLocker
    • Apagando defensas basicas
  • Introduccion a ataques modernos en AD
    • Fundamentos de Azure Active Directory
    • DCSync utilizando MSOL
    • Introduccion al Curso de Pentesting Contra Azure - [CPAZ]
  • Introduccion al Blue Team en Active Directory
    • Blue Team y SOC
    • Introduccion al Curso Profesional de Blue Team - [CPBLT]
    • Introduccion a Sysmon
      • Deteccion de comportamiento anomalo con ElasticSearch
  • Muchas Gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página
  • Ejecuccion de whoami
  • Veamos más en detalle qué es y cómo funciona:
  • ¿Porque obtuvimos una shell con este usuario?

¿Te fue útil?

  1. Introduccion Al Hacking Web

Inyeccion de comandos desde un formulario web

En Windows, la concatenación de comandos permite ejecutar múltiples comandos en una sola línea dentro de la línea de comandos o en un script de batch. Esto puede ser útil para realizar una serie de tareas en un orden específico sin tener que ejecutar comandos individualmente. Existen varios operadores que puedes usar para concatenar comandos en Windows:

  1. &: Ejecuta el segundo comando independientemente del resultado del primero.

    • Ejemplo: dir & echo Hola

  2. &&: Ejecuta el segundo comando solo si el primero se completó con éxito (sin errores).

    • Ejemplo: cd C:\Windows && dir

  3. ||: Ejecuta el segundo comando solo si el primero falló.

    • Ejemplo: cd C:\NoExiste || echo "La ruta no existe"

  4. ;: En algunos shells, como en PowerShell, el punto y coma se utiliza para separar comandos, similar al operador & en el CMD.

    • Ejemplo (en PowerShell): Get-ChildItem; Write-Host "Listado completado"

  5. (): Los paréntesis se pueden usar para agrupar comandos y controlar el orden de ejecución, especialmente en combinación con los operadores anteriores.

    • Ejemplo: (cd C:\Windows && dir) & echo "Listado completado"

La concatenación de comandos en sistemas operativos, como Windows, está estrechamente relacionada con la ejecución de comandos. En términos simples, mientras que la "ejecución" se refiere al proceso de llevar a cabo un comando o instrucción, la "concatenación" es una técnica que permite enlazar y ejecutar múltiples comandos de manera secuencial o condicional. Veamos cómo se relacionan:

  1. Secuencia: La concatenación permite la ejecución secuencial de múltiples comandos en un orden específico. Por ejemplo, usando el operador & en Windows, puedes ejecutar un comando inmediatamente después de otro, independientemente del resultado del primero.

  2. Condicionales: Algunos operadores de concatenación permiten la ejecución condicional basada en el éxito o el fracaso de un comando anterior. El operador && ejecutará el segundo comando solo si el primero tuvo éxito, mientras que || ejecutará el segundo comando solo si el primero falló. Esto es útil cuando quieres ejecutar comandos en función de si una operación anterior fue exitosa o no.

  3. Agrupación y Orden de Ejecución: Con la concatenación, puedes agrupar comandos usando paréntesis para asegurarte de que se ejecuten en un orden específico. Esto puede ser vital en scripts o situaciones donde el orden de las operaciones importa.

  4. Eficiencia: En lugar de ejecutar comandos individualmente, esperando que uno termine para iniciar el siguiente, puedes concatenarlos para que se ejecuten uno tras otro automáticamente. Esto es especialmente útil en scripts o tareas automatizadas.

  5. Comprensión: Al concatenar y ejecutar comandos en una sola línea, puedes obtener una vista rápida de una serie de operaciones que se llevarán a cabo, lo cual puede ser más comprensible en algunos casos que tener múltiples líneas de comandos individuales.

  6. Riesgos de Seguridad: Desde una perspectiva de seguridad, especialmente en la ciberseguridad, la concatenación de comandos puede ser utilizada por actores maliciosos para ejecutar series de acciones rápidamente. Un atacante podría, por ejemplo, usar la concatenación para obtener información y luego exfiltrarla, todo en una rápida secuencia.

Ejecuccion de whoami

En la siguiente evidencia, vamos a intentar inyectar el comando whomi:

El usuario IIS AppPool\DefaultAppPool se refiere a una identidad de aplicación utilizada por el Internet Information Services (IIS), que es el servidor web incorporado en Windows. IIS utiliza las identidades de la aplicación para ejecutar aplicaciones web en su propio entorno aislado, asegurando que no interfieran entre sí y proporcionando una capa adicional de seguridad.

Veamos más en detalle qué es y cómo funciona:

  1. Identidades de Aplicación: En IIS, cada aplicación web (o "App Pool") puede ejecutarse bajo su propia identidad de usuario. Esta identidad de usuario es virtual, lo que significa que no verás esta cuenta si buscas en el directorio de usuarios en tu sistema. Estas identidades son específicas de IIS.

  2. DefaultAppPool: Cuando instalas IIS y creas una aplicación web sin especificar una identidad personalizada, se utiliza el "DefaultAppPool". Es, como su nombre indica, la piscina de aplicaciones predeterminada para las aplicaciones web.

  3. Seguridad y Aislamiento: Una de las principales ventajas de usar identidades de aplicación es el aislamiento. Si tienes varias aplicaciones web ejecutándose en el mismo servidor, y una de ellas tiene un problema o es comprometida, el problema se limita a esa aplicación específica y no afecta a las demás.

  4. Permisos: Las identidades de aplicación, como IIS AppPool\DefaultAppPool, tienen permisos asociados. Por ejemplo, si una aplicación web necesita acceder a un archivo o base de datos, deberás asegurarte de que la identidad de la aplicación tenga los permisos necesarios.

  5. Configuración: A través del administrador de IIS, puedes cambiar la identidad bajo la cual se ejecuta una aplicación web. Esto es útil si, por ejemplo, una aplicación específica necesita más privilegios o necesita ejecutarse bajo una cuenta de dominio para acceder a recursos en una red.

  6. Uso común en Troubleshooting: Es común ver la referencia a estas identidades cuando estás solucionando problemas relacionados con permisos. Por ejemplo, si tu aplicación web no puede leer un archivo en el sistema de archivos, es posible que necesites otorgar permisos a la identidad de la aplicación (como IIS AppPool\DefaultAppPool) para acceder a ese archivo.

¿Porque obtuvimos una shell con este usuario?

Cuando se compromete una aplicación web en un servidor que utiliza IIS, y se logra obtener una shell o una ejecución remota de comandos, a menudo se hace bajo el contexto del usuario que ejecuta la aplicación. En el caso de IIS, es típico que la aplicación web se ejecute bajo la identidad de una piscina de aplicaciones, como IIS AppPool\DefaultAppPool.

A continuación, te explico por qué ocurre esto:

  1. Contexto de Ejecución: La mayoría de las vulnerabilidades de ejecución de comandos o inyección de código en aplicaciones web permiten al atacante ejecutar comandos con los mismos privilegios que el proceso de la aplicación web. Dado que IIS ejecuta aplicaciones web bajo identidades específicas de la piscina de aplicaciones, cualquier comando o shell que se obtenga como resultado de una vulnerabilidad se ejecutará con esos privilegios.

  2. Aislamiento y Seguridad: Una de las razones por las que IIS utiliza identidades de piscinas de aplicaciones es para proporcionar aislamiento y seguridad. Si una aplicación web se ve comprometida, la cantidad de daño que un atacante puede hacer se limita a lo que esa identidad de piscina de aplicaciones puede hacer. Aunque obtener una shell bajo la identidad de IIS AppPool\DefaultAppPool todavía puede ser perjudicial, es menos arriesgado que si la aplicación se ejecutara con privilegios de administrador o de sistema.

  3. Escalamiento de Privilegios: Aunque inicialmente un atacante podría obtener acceso con la identidad limitada de una piscina de aplicaciones, uno de los siguientes pasos que podría intentar es escalar sus privilegios. Si hay vulnerabilidades en el servidor o si la configuración es insegura, el atacante podría aprovecharse de esto para obtener privilegios más altos.

  4. Importancia de la Seguridad de Aplicaciones: Este escenario subraya la importancia de asegurar aplicaciones web. Aunque las identidades de piscinas de aplicaciones proporcionan una capa de seguridad, es esencial mitigar las vulnerabilidades en las aplicaciones web para prevenir compromisos iniciales.

AnteriorEnumeracion sobre un servidor web desplegado en IISSiguienteFundamentos de la Enumeracion local en un Windows

Última actualización hace 1 año

¿Te fue útil?