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,discovery

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: 4a0a004730450220485f52627f4a1da9858eab64bb9b3bf2a056f5138eb533995a5da725e3cd29eb022100a75afb078033b9cdef842343da3e718bde694e6f49c89ef324ea53b36fecc9cb:922c64590222798bb761d5b6d8e72950