Commit Graph

2182 Commits

Author SHA1 Message Date
Dirk Wetter
8a53039de6 Fix #1982: Newer openssl.cnf break openssl detection (3.0)
Newer configuration files from openssl may include statements
which aren't compatible with our supplied old openssl version.
This commit adds an autodetection of such a file and uses a
openssl.cnf provided by this project then.

The openssl.cnf is from a Debian Jessie package.

See also #1987
2021-09-15 11:25:10 +02:00
Dimitri Papadopoulos
ca1043bda5
Typos found by codespell
Run codespell in CI
2021-09-14 14:10:33 +02:00
Dirk
7be262f287 Fix minor inconsistency in description of cipher categories
A longer while back the section ~ "Testing standard ciphers" was
renamed to "Testing cipher categories". However the internal help
didn't reflect that.

This fixes that, including an addtion to the documentation.

Note: the help still lists "-s --std, --standard" as a cmd line
switch.
2021-09-09 21:50:03 +02:00
Andreas Perhab
f7b8f93fd0 Fix dig -r check to only run if dig is available 2021-09-06 10:24:51 +02:00
Dirk
80cbdf2748 Fix cases where dig -r wasn't working (3.0)
Similar to #1972.

* the ignore ~/.digrc option from dig is now parsed from the builtin help
* there was a potential DNS call which is now avoided
* the +noidnout check is now parsed from the builtin help
* the OPENSSL_CONF="" in check_resolver_bins() was moved a few lines higher to avoid other errors in the terminal
* redo check for noidnout by also using the help function of dig

See also #1949
2021-09-01 18:51:03 +02:00
David Cooper
00ffcb8c00 Fix #1961 in 3.0 branch
This commit is the same as #1962, but for the 3.0 branch.
2021-08-30 13:52:00 -04:00
Dirk Wetter
8b5f25a113
Merge pull request #1959 from dcooper16/use_all+_3.0
Use all+ in calls to tls_sockets() in 3.0
2021-08-07 16:07:22 +02:00
David Cooper
ff5b321d38 Use all+ in calls to tls_sockets() in 3.0
get_server_certificate() includes a few calls to tls_sockets() in which the response will be TLS 1.3 and in which the response will be useless if it cannot be decrypted (since the goal is to obtain the server's certificate). So, these calls to tls_sockets() should specify "all+" rather than "all".
2021-08-04 14:31:42 -04:00
Dirk Wetter
65d6c27551 Redirect debugme() outputs to stderr
... to address #1956 and other places.
2021-08-04 19:33:01 +02:00
Dirk Wetter
556208815a Merge remote-tracking branch 'origin/3.0' into digrc_3.0 2021-08-01 20:20:24 +02:00
Dirk Wetter
16c18789cd Legacy removals + housekeeping
* remove relics (CVS)
* add diff to HTML CI run
2021-08-01 18:25:13 +02:00
Dirk Wetter
2f398d3cd0
Merge pull request #1951 from drwetter/fix_1717_3.0
Look-ahead trick for -U --ids-friendly (3.0)
2021-08-01 17:46:58 +02:00
Dirk
e293b7d839 Look-ahead trick for -U --ids-friendly
If the order of the cmdline is '-U --ids-friendly' then we need to make sure we catch --ids-friendly. Normally we do not,
 see #1717. The following statement makes sure. In the do-while + case-esac loop  the check for --ids-friendly will be
executed again, but it does not hurt
2021-07-31 18:47:00 +02:00
Dirk
ac2b43170b Move dig down the row of DNS resolvers
... because there's a higher possibility for the stable branch
that people use $HOME/.digrc
2021-07-31 15:22:05 +02:00
Dirk
8d6609f1b9 Ignore $HOME/.digrc
Newer dig versions have an option to ignore $HOME/.digrc, older
don't.

This commit adds a patch checking for the availability of
such an option and uses it by default.

If doesn't exist then still dig is used and can still lead to
wrong output. Unfortunately Debian-based distros are not very
good at this. Debian 10, Ubuntu 18.04 still use dig 9.11, whereas
Opensuse 15.2 has 9.16.

Debian 11 and Ubuntu 20.04 use that too.

Thus to be considered for the stable 3.0-branch: move
dig in the resolver functions a couple of lines down.
2021-07-31 14:37:36 +02:00
Dirk
13303753ff Disable ANSI codes for italic when TERM == screen
... otherwise it is being printed in reverse, see #1928.
Same as #1946 but for the 3.0 branch.
2021-07-31 13:22:47 +02:00
Dirk Wetter
5ae17681f6 Improved SSL/TLS portdetection in nmap greppable files (3.0)
As mentioned in #1931 the port detection for nmap greppable files
leaves space for improvements.

Ths PR adds a pattern detection of ssl and https in the forth or fifth
parameter of an open port, so those ports will be added to a scan when
a nmap greppable output file is supplied as input to testssl.sh .

Also it does minor code adjustments to utils/gmap2testssl.sh .

Same as #1938, only for 3.0.
2021-07-30 14:47:17 +02:00
Dirk
3544014fe3 Fix problem when nmap file has .txt extension (3.0)
This addresses a bug filed in #1935 in 3.1dev when the supplied file
has a .txt extension. In this scenario the input file was nulled
as from the input file in nmap format an internal input file was
generated which has a .txt extension, in the same directory.
The idea was to persist the file for the user.

Now, this internal input file is ephemeral and only written to $TEMPDIR.
2021-07-25 16:40:16 +02:00
Dirk Wetter
19feed169e Fix indentation and redundant message (BREACH) when client certificate required
... see #1915
2021-06-17 09:23:34 +02:00
Dirk Wetter
f6a9044315 Display time as suggested in utc (3.0)
This fixes #1895
2021-06-03 19:29:26 +02:00
David Cooper
7d5e24c62f
Print errors to stderr
Same as #1888, but for the 3.0 branch.
2021-05-13 11:21:48 -04:00
Geert Hendrickx
388f3aea19
hostname is not defined by POSIX, use portable uname -n instead. 2021-05-13 13:58:07 +02:00
Dirk Wetter
f5fde2a93b Bump version 2021-05-10 12:16:12 +02:00
Dirk Wetter
4976da43b0
Merge pull request #1883 from drwetter/epoch_180hsts_1879.branch_3.0
Fix "off by one" error in HSTS
2021-05-10 11:18:53 +02:00
Chad Brigance
ca4a0b23f7 fixed minor bug with json output for TLS1.1 #1884 2021-05-09 09:46:57 +00:00
Dirk Wetter
68cbdf8dc8 Fix "off by one" error in HSTS
There was by mistake a 179 days threshold and also the error message
was wrong when HSTS was exactly set to 179 days, see #1879.

This commit sets it to 180 days and corrects the error messages on
screen.
2021-05-08 14:55:30 +02:00
David Cooper
c0f29f6234
Improve compatibility with OpenSSL 3.0
This commit makes the same changes to the 3.0 branch as #1868 makes to the 3.1dev branch.
2021-04-08 12:10:29 -04:00
Dirk
c461702112 Ensure certain regex patterns work as expected and aren't localized (3.0)
Same as #1865.

This PR is trying to address an issue where probably newer bash versions treat
regexes differently in other locales. W is with a swedish locale just a variant
of V (#1860) see also e.g.

https://collation-charts.org/opensolaris/opensolaris.2008.05.sv_SE.UTF-8.html
https://www.sqlservercentral.com/forums/topic/order-by-name-not-works#post-1644177
2021-04-05 11:38:17 +02:00
Dirk
a1777cdd0e Fix file output formatting for heartbleed
Quotes were wrong for different results, which lead to some confusion
for finding, cve and cwe.

Fixes #1828
2021-01-20 09:04:11 +01:00
Dirk Wetter
b8e76a3861 Fixes trailing dot error in URL handling
For DNS queries a trailing dot in the variable $NODE is always fine. For
HTTP queries it is not. and causes the https request to fail.

Backport from 4f1da9b192

Also: removal of ancient CVS_REL relict in $TEMPDIR/environment.txt
2021-01-13 11:35:31 +01:00
Dirk Wetter
0de00f4322 Fix issuer check for Let's Encrypt (3.0)
Fixes #1816 for 3.0 by a proper halving of the dates
2021-01-07 10:29:08 +01:00
Dirk
ca89328ed4 Change version number
To avoid clashes with distributors it may be is smarter to stick
to three numbers and not intoducing another digit.

3.0.4 <-- 3.0.3.1
2020-11-20 11:09:17 +01:00
Dirk
e441357efe Fix reading SSLv2 socket (3.0 branch)
This fixes #1779. There was a problem introduced in
3c97412a61 which counted
the size of the file name rather than the size of the
socket reply.
2020-11-20 11:06:22 +01:00
Dirk
b08b5d8b98 Bump version to 3.0.3 2020-11-19 09:41:12 +01:00
Dirk Wetter
99a158d952 Stop labeling X-XSS-Protection as green (3.0 branch)
* X-XSS-Protection is now labled as a neutral finding as suggested in #1762
* Also it adds colons to header values

This a quick fix for the stable version as opposed to #1764 ff.
It also changes the color from lite cyan to neutral
2020-11-13 13:57:21 +01:00
Dirk Wetter
3c97412a61 Address complaint by Travis + RC4 SSLv2 ciphers shortcut
Despite the fact google doesn't support RC4 ciphers, testssl.sh called
sslv2_sockets(). Google answered with a >= TLS alert. Building a sum then
failed then in sslv2_sockets().

This fixes sslv2_sockets() and introduces count_chars() as a helper function
(tested also under old FreeBSD to make sure it works under MacOSX).

Also it adds a shortcut: if we are sure we don't have sslv2 we don't need
to test any RC4 SSLv2 ciphers
2020-10-28 11:45:41 +01:00
Dirk
4ddc90d98d Fix run_freak() when sslv2 server hello is empty (3.0 branch)
This fixes #1754 by avoiding further string operations if the SSLv2 socket reply is empty as bash 5.1 seems to have a problem with that. The fix is done in sslv2_sockets() .

Also sslv2 is not being used in run_freak() if known not to be supported.
2020-10-27 22:48:50 +01:00
Dirk
08feaf4a0c Fix Secure Client-Initiated Renegotiation false positive (3.0 branch)
Server side closed the connection but openssl retrieved
a zero exit code. In addition now we look for "closed"
and if that was returned from the server we label it
as not vulnerable.

This fixes #1725.

Same fix as for 3.1dev, see #1726
2020-09-16 18:13:47 +02:00
David Cooper
b7dab55b6c Fix #1699 in 3.0 branch
This commit makes the same change as #1711, but in the 3.0 branch.
2020-08-31 10:42:11 -04:00
Dirk
d9866d875a Revised risk for BREACH --> medium 2020-07-10 19:56:18 +02:00
David Cooper
cb5305e42d Fix printing of unrecognized option in 3.0 branch
When testssl.sh is called with an unknown option it prints something like:

     0: unrecognized option "--option"

It should be printing the name of the program rather than "0". This commit fixes that.
2020-07-07 07:39:28 -04:00
David Cooper
e2dce19559
Fix #1665 in 3.0 branch
This commit fixes #1665 by adding the certificate number to the JSON identifier for cert_eTLS.
2020-06-25 13:24:10 -04:00
David Cooper
f7ef50b968
Fix #1662 in 3.0 branch
This commit fixes #1662 in the 3.0 branch by changing the fileout to use the value of $cert_ext_keyusage rather than the string "cert_ext_keyusage".
2020-06-25 07:37:37 -04:00
Dirk
11c03790bf Fix wrong variable declaraton in get_mx_record()
mx was declared, mxs used instead. This fixes
it by correcting the declaration.
2020-05-25 21:28:44 +02:00
Dirk Wetter
b1eda9b2bf Just bump version 2020-05-07 19:55:04 +02:00
David Cooper
d4bb2dd906 Fix copy and paste error
This commit fixes a bug in the 3.0 branch that was introduced by an accidental copy and paste.
2020-05-07 12:31:55 -04:00
David Cooper
3d48e6c7cb
Backport #1609 and #1616
This commit back ports #1609 and #1616 to the 3.0 branch.
2020-05-06 08:39:22 -04:00
Dirk Wetter
6df3f2bd4e Remove not needed if clause in starttls_io()
.. amends 35833c1979
2020-05-04 23:05:53 +02:00
Dirk Wetter
35833c1979 Fix STARTTLS pretests, improve XMPP handshakes (backport)
There was a empty variable in determine_optimal_proto() which prevented to save STARTTLS_OPTIMAL_PROTO. This is fixed.

The buffers and return codes for XMPP in starttls_io() were under not every
circumstances correct. This fixes those cases and making that in general more
robust (hopefully).
2020-05-04 23:03:01 +02:00
Dirk
c5cee3ddb6 Address further potential license restriction
.. see https://github.com/drwetter/testssl.sh/issues/1590#issuecomment-623526604

Added some formatting and verbal improvements in the intruductory comment section.
2020-05-04 20:24:24 +02:00