id: unauth-ztp-ping

info:
  name: Unauthenticated ZyXEL USG ZTP - Detect
  author: dmartyn
  severity: high
  description: |
    Make a ZyXEL USG with ZTP support, pre CVE-2023-28771 patch, do a DNS lookup by asking it to make an ICMP request.
    This template can be used to detect hosts potentially vulnerable to CVE-2023-28771, CVE-2022-30525, and other issues, without actually exploiting the vulnerability.
  reference:
    - https://www.fullspectrum.dev/the-hunt-for-cve-2023-28771-friends-part-2-fingerprinting-handler/
    - https://www.zyxel.com/global/en/support/security-advisories/zyxel-security-advisory-for-remote-command-injection-vulnerability-of-firewalls
  classification:
    cpe: cpe:2.3:o:zyxel:usg1000_firmware:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: zyxel
    product: usg1000_firmware
    shodan-query: title:"USG FLEX"
  tags: misconfig,unauth,zyxel,ztp,rce,oast,vuln

http:
  - raw:
      - |
        POST /ztp/cgi-bin/handler HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"command":"ping","dest":"{{interactsh-url}}"}

    matchers-condition: and
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "dns"

      - type: word
        part: body
        words:
          - "message"
          - "result"
        condition: and

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100856b1d46542bb42789dc622501a62e63c7fb80ab7ea92a8e7988e0fc97caea200220753f3a6e310e8501cb34368a4f76680f46fdf1881527979cf06970b8c604fec6:922c64590222798bb761d5b6d8e72950