Discovery

Audit SSH algorithms on port 22

Enumerate a domain and flag weak SSH host keys, key exchange, ciphers, and MACs from an unauthenticated banner. The check does not log in.

AuthorTrickest
100%

Notes on this workflow

Results

findings.jsonl. Summary first, then one row per finding. A modern-only host is counted and is not a finding.

How it works

subfinder lists hosts. banner reads the SSH banner. kex reads KEXINIT. weak-kex and weak-cipher flag weak algorithms. The audit does not log in and does not treat Terrapin-mitigation markers as weak KEX.

Target

Put a domain on subfinder. The audit checks at most 80 hosts on port 22.

Overview

SSH weakness is visible before anyone authenticates. The server sends its key exchange list in the clear. This workflow enumerates hosts, connects to port 22, sends a banner, and reads KEXINIT. It flags broken host keys, SHA1 key exchange, CBC and legacy ciphers, and weak MACs. It does not try a password and it does not offer a key. Point it at a domain you are authorised to test, and treat a weak algorithm as a hardening ticket in exposure management.

Pipeline

  1. subfinder enumerates hosts for the domain you set.
  2. banner reads the SSH banner on port 22, on at most 80 hosts. It does not log in.
  3. kex reads KEXINIT only for hosts that answered.
  4. weak-kex and weak-cipher flag weak algorithms. Terrapin-mitigation markers are not treated as weak key exchange.
  5. report writes findings.jsonl, one row per weak algorithm, plus a summary.

Inputs

  • Domain. Set on the subfinder node. Hosts come from that enumeration.

Outputs

  • findings.jsonl. One JSON line per host with a weak algorithm, plus a summary.

Integrations

  • Subfinder. Host enumeration for the domain.

Sample output

The line below is the summary from a completed run on brokencrystals.com on 2026-09-24. Subfinder returned 74 hosts. None answered with an SSH banner on port 22, so there is no key-exchange finding.

kindtargetsssh_endpointshighpqc_readyscanned_at
summary00002026-09-24T10:21:53Z

FAQ

Does this attempt a login?

No. It reads the banner and the algorithm list. It does not send a password or a key.

Which algorithms are weak?

ssh-dss and ssh-rsa host keys, SHA1 key exchange, CBC and legacy ciphers, and MD5 or SHA1 MACs.

How many hosts are checked?

At most 80 hosts from the subfinder output.

Where should I run it?

On a domain you are authorised to test.

Get a personalized demo

See Trickest in Action

A 30-minute walkthrough. We map the platform to your stack and answer pricing and deployment questions for your environment.