id: smtp-commands-enum

info:
  name: SMTP Commands Enumeration
  author: pussycat0x,userdehghani,AV-IO
  severity: info
  description: |
    Attempts to use EHLO and HELP to gather the Extended commands supported by an SMTP server.
  reference:
    - https://nmap.org/nsedoc/scripts/smtp-commands.html
  metadata:
    verified: true
    max-request: 1
    shodan-query: smtp
  tags: network,enum,smtp,mail,tcp,discovery

tcp:
  - inputs:
      - data: ""
        read: 256
      - data: "EHLO x\r\n"
        name: ehlo
        read: 1024
      - data: "QUIT\r\n"
        read: 8

    host:
      - "{{Hostname}}"
    port: 25,2525,465,587

    matchers:
      - type: word
        name: ehlo
        part: ehlo
        words:
          - '250'

    extractors:
      - type: regex
        part: ehlo
        group: 1
        regex:
          - '250[\- ]([A-Z0-9 \-]+)'

  - inputs:
      - data: ""
        read: 256
      - data: "HELP\r\n"
        name: help
        read: 2048
      - data: "QUIT\r\n"
        read: 8

    host:
      - "{{Hostname}}"
    port: 25,2525,465,587

    matchers:
      - type: word
        name: help
        part: help
        words:
          - "214"
          - "This server supports"
        condition: and

    extractors:
      - type: regex
        part: help
        group: 1
        regex:
          - '214[\- ](.*)'
# digest: 4b0a00483046022100e459dac411289cac77cf79ea4d6eaef5f5946b80ded52721ace4c79868b30350022100d5353a71a4c6c210454d992ae54c9053df1c94d00000144e8a53d7a906e8573d:922c64590222798bb761d5b6d8e72950