id: ssh-weakkey-exchange-algo

info:
  name: SSH Weak Key Exchange Algorithms Enabled
  author: pussycat0x
  severity: low
  description: |
    SSH Weak Key Exchange Algorithms Enabled indicates that the SSH server or client is configured to allow the use of less secure key exchange methods, posing a potential security risk during the establishment of secure connections. It's crucial to update configurations to prioritize stronger key exchange algorithms.
  reference:
    - https://www.tenable.com/plugins/nessus/153953
  metadata:
    verified: true
    max-request: 2
    shodan-query: product:"OpenSSH"
  tags: js,enum,ssh,misconfig,network

javascript:
  - pre-condition: |
      isPortOpen(Host,Port);
    code: |
      let m = require("nuclei/ssh");
      let c = m.SSHClient();
      let response = c.ConnectSSHInfoMode(Host, Port);
      Export(response);
    args:
      Host: "{{Host}}"
      Port: "22"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "ServerKex"

      - type: word
        words:
          - "diffie-hellman-group-exchange-sha1"
          - "diffie-hellman-group1-sha1"
          - "gss-gex-sha1"
          - "gss-group1-sha1"
          - "gss-group14-sha1"
          - "rsa1024-sha1"
        condition: or
# digest: 4b0a00483046022100befebbb66d9a144decdccdbc510a7867f86c5945c6525459c69cc4d76a8c4e5e0221008e321d163d3884e694add93b28f1cc94f18106c0f5d560e1bef2fd42e78ea380:922c64590222798bb761d5b6d8e72950