Commit Graph

2775 Commits

Author SHA1 Message Date
94ef475255 Merge pull request #2461 from akabe1/3.2
Add mTLS new feature to support scans with client authentication
2024-02-27 15:47:03 +01:00
f84e8c05f5 Merge pull request #2470 from Tazmaniac/renego_timing_fix
Correct client_renego timing bug.
2024-02-21 17:17:51 +01:00
af20952b86 Fix subshell killing to avoid zombies
Learned from the rest of the code ...
2024-02-19 16:19:23 +01:00
6277613906 Usual spell fixes. 2024-02-13 15:41:35 +01:00
4066766de5 MongoDB identification fix
The actual code grep for "MongoDB" keyword in the head of the HTTP
session.
In case of "compressed" HTML, a big page is on one line.
On a IT page, we could encounter the "MongoDB" keyword and
miss-identify the application protocol.

Fixed by matching on a longuer string taken from a live MogoDB
server.
2024-02-13 15:00:19 +01:00
faae91edbc Correct client_renego timing bug.
OpenSSL will buffer only the first command till the establishment of the
session.
In case of slow session establishment, we could:
  * loose some renego trys missing proper mitigation implementation
  * loose some renego trys missing a real vulnerable host if 2/3 of the
    tries are lost during session establishment (very slow startup).

Wait for the session to be fully establised before starting the renego
loop.
2024-02-13 14:40:53 +01:00
eb661dadb8 Add SNI to ticketbleed check 2024-02-08 15:01:12 +01:00
ec4ceb2c20 Add mTLS feature
Added new feature to support mutual TLS via client certificate and private key, when a remote server requires client authentication.
2024-01-20 11:49:05 +01:00
4cc02a63ef One more spell fix... 2024-01-19 17:09:44 +01:00
02a3c2cc14 Fixed regression in printing results
And improve it with the effective number of renego before disconnection
as it is now tracked.
2024-01-19 16:22:50 +01:00
ad04a90b2a Merge pull request #2459 from Tazmaniac/client-renego-fix
Secure Client-Initiated Renegotiation : fixes/enhancements
2024-01-18 18:37:58 +01:00
67c362c89a One more spell fix 2024-01-15 10:07:09 +01:00
de364b0c84 Introduce SSL_REGEG_WAIT and reduce wait to 0.25s
Reduce wait between reneg test to 0.25s. Still robust and accelerates
the test as now we do up to 10 renego tests.

With the global loop timeout, the backoff identification seem unneeded.
But if we switch to 0.25s, we no longuer trigger the global timeout so
it is still valuable.
Adjust write out messages as bash do not support floating point number
arithmetic.
2024-01-12 11:30:35 +01:00
9b79e3917a Bump SSL_RENEG_ATTEMPTS=10 for Stormshield
Stormshield allows 9x and then blocks. So then 10x should be tested.
Example: https://ems.ocapiat.fr
2024-01-11 18:34:47 +01:00
b793f54c3e Add timeout for the client initiated renego loop
Some site hang/block the connection after some renego reties
Example: https://feedback.amadeus.com

Hand written timeout logic because:
- we want to get the result of the command in case of normal exit
- we want to have working log fd redirection
- we want to known the timeout condition
2024-01-11 18:30:44 +01:00
d30d8e09f2 tab/space corrections and "grep -ac" in place of "grep -a | wc -l" 2024-01-10 18:31:41 +01:00
810e870d16 Merge pull request #2454 from Odinmylord/3.2
Make cert_keysize output consistent
2024-01-10 12:21:42 +01:00
e404cf8bdb add utf8 support to intermediate cert names 2024-01-03 14:27:11 +01:00
f4b1bb28a0 Update certificate_info function to include key algorithm in error messages 2024-01-02 14:06:18 +01:00
3f9cc7b6a5 Merge pull request #1871 from dcooper16/quit_on_cmd_line_errors
Quit testssl.sh on all command line errors
2023-12-24 15:34:00 +01:00
bbf770ac7f Merge pull request #2447 from Odinmylord/3.2
Add Brainpool signature algorithms to output
2023-12-24 14:00:42 +01:00
c5265e33b7 fix wrong temp file var 2023-12-23 13:13:16 +01:00
3b5f2022b3 fix typo 2023-12-23 13:03:57 +01:00
8e517e0a70 Bail out if user error bc of umask
If a user chose a broken umask testssl.sh will start but emits
subsequent errors.

This patch adds two sanity checks whether it is allowed to create
and read files in the temp directory.

Fixes #2449
2023-12-23 12:58:05 +01:00
90272f1d12 Add Brainpool signature algorithms to output 2023-12-13 14:23:28 +01:00
2c84a525cc Fix mitigation detection with debug level 0 2023-12-07 18:58:58 +01:00
52c6ac7fec Spell fix. 2023-11-28 15:22:01 +01:00
429db592e2 Crudely detect exponential backoff as a mitigation 2023-11-28 14:41:25 +01:00
81ba1fe818 Implement warning for wildcard match
fixes #2122
2023-11-10 15:37:13 +01:00
e867e53ff9 Quit testssl.sh on all command line errors
As suggested in #1844, this commit changes testssl.sh so that the parent process quits immediately if there is an error in the command line for one of the child processes.

Currently, a signal is sent to the parent process to quit if the child process encounters an error and calls help(), but sometimes parse_cmd_line() just prints an error message and calls fatal() rather than help(), in which case the parent process does not stop. This commit addresses the issue by creating a new function, fatal_cmd_line(), which is almost the same as fatal(), but additionally sends a signal to the parent indicating that the parent should stop. This commit also changes calls to fatal() to calls to fatal_cmd_line() if json_header(), csv_header(), html_header(), or prepare_logging() encounter a problem. The same is done if prettyprint_local() with the command-line option provided for it.

There may be other places in which it would be appropriate to call fatal_cmd_line() rather than fatal() (e.g., in parse_hn_port() or check_proxy()), but those changes are not made in this commit.
2023-11-01 11:55:06 -07:00
cbb32d375b Fix output: PROXY string vs $PROXY variable
See also #2428.
2023-10-30 21:39:30 +01:00
a9103fdfee Put the redirection into the right spot 2023-10-30 15:27:37 +01:00
92b28c5f1c Fix weird bash globbing #2429
What was problematic was the error message when the certificate
stores were missing. This fixes it by redirecting the error
message to /dev/null so that if the sub function detects the missing
file it returns with an error by the program and not by executing
"basename"
2023-10-30 15:11:10 +01:00
b21c5ee780 Add IP protocol to debug msg 2023-10-11 15:22:46 +02:00
f50a958fa9 Merge pull request #2417 from vsbs-david/local_hostname_drill
Added drill command to get_a[aaa]_record() for local hostname
2023-10-11 15:19:44 +02:00
3f7428083e Used debugme function 2023-10-11 09:26:43 +02:00
cbefcf0feb Fixed redirect stderr to /dev/null, added debug echo for mDNS resolution failure, fixed some spelling 2023-10-10 13:55:34 +02:00
b8f770dbe3 Added drill command to get_a[aaa]_record() for local hostname 2023-10-10 09:05:48 +02:00
bdeda3ab1c Bump version number 2023-10-09 22:51:44 +02:00
e09e2c519c Fix SMTP detection.
Extended regex was missing -E.
2023-10-07 14:15:40 +02:00
16e6826225 Improve detection for POP3 and IMAP. 2023-10-07 13:56:39 +02:00
65da627820 better English 2023-10-03 15:56:18 +02:00
d46301e9f7 Deprecate --ssl-native 2023-10-03 15:51:58 +02:00
2acffa5a3f fix spellcheck issues 2023-10-03 15:06:46 +02:00
06e7205687 Support OpenSSL with no TLSv1
RFC 8996, Deprecating TLS 1.0 and TLS 1.1, states that TLS clients MUST NOT send a TLS 1.0 or TLS 1.1 ClientHello and MUST respond to a TLS 1.0 or TLS 1.1 ServerHello with a "protocol_version" alert.

At the moment, all versions of OpenSSL support TLS 1.0, TLS 1.1, and TLS 1.2. However, TLS 1.0 and TLS 1.1 are disabled in LibreSSL 3.8.1 and it is possible to compile OpenSSL without support for these protocols (using the configure options no-tls1, no-tls1_1, and no-tls1_2). This commit adds support for versions of $OPENSSL that do not support TLS 1.0 or TLS 1.1.
2023-09-07 07:26:48 -07:00
765b5855cc Merge pull request #2386 from drwetter/strict_parsing_HSTS
Strict parser for HSTS
2023-08-28 19:55:57 +02:00
01ab3acde5 Strict parser for HSTS
As suggested in #2381 this parses strictly the value for mag-age
in the HSTS header line. While it is implemented only in run_hsts()
it could be extracted to a separate functioni in the future and used
elsewhere too.

The improvement is more strict and catches e.g. '==' signs and issues
a warning. See https://www.rfc-editor.org/rfc/rfc6797#section-6.1.1 .

Also it is picky regarding quotes now which are only allowed enclosing
the value.
2023-08-28 18:33:41 +02:00
c55207d45c Merge pull request #2385 from drwetter/hide_fast
Hide --fast option in help() and issue a warning when it's used
2023-08-28 18:26:36 +02:00
0fcddff1cd Warn when using --fast
... in the terminal only for now.
2023-08-28 16:08:04 +02:00
d19675136a Deprecating $FAST / --fast
As this option shows inconsistencies / wrong results and a fix would require
too much work at this moment this option is being hidden from the help. It
wasn't in the ~/doc .

See #849 , #2382, #1732 etc.
2023-08-28 15:53:02 +02:00