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

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