id: smb-version-detect

info:
  name: SMB Version - Detection
  author: pussycat0x
  severity: info
  description: |
    SMB version detection involves identifying the specific Server Message Block protocol version used by a system or network. This process is crucial for ensuring compatibility and security, as different SMB versions may have distinct features and vulnerabilities.
  metadata:
    max-request: 1
    shodan-query: "port:445"
    product: dionaea
    vendor: dionaea
  tags: js,network,smb,enum

javascript:
  - pre-condition: |
      isPortOpen(Host,Port);
    code: |
      let m = require("nuclei/smb");
      let c = new m.SMBClient();
      let response = c.ConnectSMBInfoMode(Host, Port);
      Export(response);

    args:
      Host: "{{Host}}"
      Port: "445"

    extractors:
      - type: json
        name: smb-version
        json:
          - '.Version.VerString'
# digest: 4a0a004730450220472beef6141d0bf0d9406a2effd2c0aa6c41fb83ef33c30d8b6a77b266636cf1022100b865196766e19bcdc2e4aa6b3241856f47e707916e8737ba05054826498d32dc:922c64590222798bb761d5b6d8e72950