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: 490a0046304402207c422de569995f0d9c2c2f059faef67b8e3eacacc7a59cc5ba5b35f6add01f6e02201f543221cfae394c99dae315c10a05a54651651ba88d390811a147811d957a8f:922c64590222798bb761d5b6d8e72950
