|
1 | 1 | # ssh-audit
|
2 |
| -[](https://travis-ci.org/arthepsy/ssh-audit) |
3 |
| -[](https://coveralls.io/github/arthepsy/ssh-audit) |
4 |
| -**ssh-audit** is a tool for ssh server auditing. |
| 2 | +<!-- |
| 3 | +[](https://travis-ci.org/arthepsy/ssh-audit) |
| 4 | +[](https://ci.appveyor.com/project/arthepsy/ssh-audit) |
| 5 | +[](https://codecov.io/gh/arthepsy/ssh-audit) |
| 6 | +[](https://sq.evolutiongaming.com/dashboard?id=arthepsy-github%3Assh-audit%3Adevelop) |
| 7 | +--> |
| 8 | +**ssh-audit** is a tool for ssh server & client configuration auditing. |
5 | 9 |
|
6 | 10 | ## Features
|
7 | 11 | - SSH1 and SSH2 protocol server support;
|
| 12 | +- analyze SSH client configuration; |
8 | 13 | - grab banner, recognize device or software and operating system, detect compression;
|
9 | 14 | - gather key-exchange, host-key, encryption and message authentication code algorithms;
|
10 | 15 | - output algorithm information (available since, removed/disabled, unsafe/weak/legacy, etc);
|
11 | 16 | - output algorithm recommendations (append or remove based on recognized software version);
|
12 | 17 | - output security information (related issues, assigned CVE list, etc);
|
13 | 18 | - analyze SSH version compatibility based on algorithm information;
|
14 | 19 | - historical information from OpenSSH, Dropbear SSH and libssh;
|
15 |
| -- no dependencies, compatible with Python 2.6+, Python 3.x and PyPy; |
| 20 | +- no dependencies |
16 | 21 |
|
17 | 22 | ## Usage
|
18 | 23 | ```
|
19 |
| -usage: ssh-audit.py [-1246pbnvl] <host> |
| 24 | +usage: ssh-audit.py [-1246pbcnvlt] <host> |
20 | 25 |
|
21 | 26 | -1, --ssh1 force ssh version 1 only
|
22 | 27 | -2, --ssh2 force ssh version 2 only
|
23 | 28 | -4, --ipv4 enable IPv4 (order of precedence)
|
24 | 29 | -6, --ipv6 enable IPv6 (order of precedence)
|
25 | 30 | -p, --port=<port> port to connect
|
26 | 31 | -b, --batch batch output
|
| 32 | + -c, --client-audit starts a server on port 2222 to audit client |
| 33 | + software config (use -p to change port) |
27 | 34 | -n, --no-colors disable colors
|
28 | 35 | -v, --verbose verbose output
|
29 | 36 | -l, --level=<level> minimum output level (info|warn|fail)
|
30 |
| - |
| 37 | + -t, --timeout=<secs> timeout (in seconds) for connection and reading |
| 38 | + (default: 5) |
31 | 39 | ```
|
32 | 40 | * if both IPv4 and IPv6 are used, order of precedence can be set by using either `-46` or `-64`.
|
33 | 41 | * batch flag `-b` will output sections without header and without empty lines (implies verbose flag).
|
34 | 42 | * verbose flag `-v` will prefix each line with section type and algorithm name.
|
35 | 43 |
|
36 |
| -### example |
37 |
| - |
| 44 | +### Server Audit Example |
| 45 | + |
| 46 | + |
| 47 | +### Client Audit Example |
| 48 | +TODO |
38 | 49 |
|
39 | 50 | ## ChangeLog
|
| 51 | +### v2.1.0 (???) |
| 52 | + - Added client software auditing functionality (see `-c` / `--client-audit` option). |
| 53 | + - Fixed crash while scanning Solaris Sun_SSH. |
| 54 | + - Added 9 new key exchanges: `gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==`, `gss-gex-sha1-toWM5Slw5Ew8Mqkay+al2g==`, `gss-group14-sha1-`, `gss-group14-sha1-toWM5Slw5Ew8Mqkay+al2g==`, `gss-group14-sha256-toWM5Slw5Ew8Mqkay+al2g==`, `gss-group15-sha512-toWM5Slw5Ew8Mqkay+al2g==`, `diffie-hellman-group15-sha256`, `ecdh-sha2-1.3.132.0.10`, `curve448-sha512`. |
| 55 | + - Added 1 new host key type: `ecdsa-sha2-1.3.132.0.10`. |
| 56 | + - Added 4 new ciphers: `idea-cbc`, `serpent128-cbc`, `serpent192-cbc`, `serpent256-cbc`. |
| 57 | + |
| 58 | + |
| 59 | +### v2.0.0 (2019-08-29) |
| 60 | + - Forked from https://github.com/arthepsy/ssh-audit (development was stalled, and developer went MIA). |
| 61 | + - Added RSA host key length test. |
| 62 | + - Added RSA certificate key length test. |
| 63 | + - Added Diffie-Hellman modulus size test. |
| 64 | + - Now outputs host key fingerprints for RSA and ED25519. |
| 65 | + - Added 5 new key exchanges: `[email protected]`, `[email protected]`, `[email protected]`, `diffie-hellman-group16-sha256`, `diffie-hellman-group17-sha512`. |
| 66 | + - Added 3 new encryption algorithms: `des-cbc-ssh1`, `blowfish-ctr`, `twofish-ctr`. |
| 67 | + - Added 10 new MACs: `hmac-sha2-56`, `hmac-sha2-224`, `hmac-sha2-384`, `hmac-sha3-256`, `hmac-sha3-384`, `hmac-sha3-512`, `hmac-sha256`, `[email protected]`, `hmac-sha512`, `[email protected]`. |
| 68 | + - Added command line argument (-t / --timeout) for connection & reading timeouts. |
| 69 | + - Updated CVEs for libssh & Dropbear. |
| 70 | + |
40 | 71 | ### v1.7.0 (2016-10-26)
|
41 | 72 | - implement options to allow specify IPv4/IPv6 usage and order of precedence
|
42 | 73 | - implement option to specify remote port (old behavior kept for compatibility)
|
|
0 commit comments