id: aws-credentials

info:
  name: AWS Credentials - Detect
  author: m4lwhere
  severity: high
  description: AWS credentials found via /.aws/credentials endpoint.
  reference:
    - https://aws.amazon.com/blogs/security/what-to-do-if-you-inadvertently-expose-an-aws-access-key/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
    cvss-score: 9.4
    cwe-id: CWE-200
  metadata:
    verified: true
    max-request: 1
  tags: config,exposure,aws,credential

http:
  - method: GET
    path:
      - "{{BaseURL}}/.aws/credentials"

    matchers-condition: and
    matchers:
      - type: regex
        regex:
          - 'aws_access_key_id\s*=\s*'

      - type: dsl
        dsl:
          - "!contains(tolower(body), '<html')"
          - "!contains(tolower(body), '<body')"
        condition: and

      - type: status
        status:
          - 200

    extractors:
      - type: regex
        part: body
        regex:
          - "(A3T[A-Z0-9]|AKIA|AGPA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}"
          - "([a-zA-Z0-9+/]{40})"
# digest: 4a0a004730450220161bdf4c49df5be4d7bb4140a5c8c536d636088012fb9675de816a5e86e1d933022100d8172d11bc03142f4abd7e2596cefaea0d2a87bce52978919460fe5b89eb6e44:922c64590222798bb761d5b6d8e72950