testssl.sh: testssl.sh:



Ähnliche Dokumente
Ich schreibe meinen eigenen SSL/TLS-Checker. Ist doch ganz einfach, oder??

eigenen SSL/TLS-Checker zu schreiben schreiben

Aus unserer Projekt- und Schulungserfahrung Oracle TechNet

HTTPS Checkliste. Version 1.0 ( ) Copyright Hahn und Herden Netzdenke GbR

Ipsec unter Linux 2.6

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Eprog Starthilfe. 5. Oktober Einleitung 2

Behebung des sog. Heartbleed-Bugs (CVE ) in der Krypto-Bibliothek OpenSSL.

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

1 SICHERHEITSZERTIFIKATE (TLS)

Thunderbird. Freier -Client für Windows, Linux und Mac. Version: ab 17.0.x. Getestet mit: Windows 7, Windows 8. Kontakt:

Linux Prinzipien und Programmierung

Windows Server 2012 RC2 konfigurieren

Web Grundlagen zum Spidering

1 WEB ANALYTICS: PROFESSIONELLE WEB-ANALYSEN UND REPORTING FÜR IHR ONLINE MARKETING.

Transport Layer Security Nachtrag Angriffe

German Metasploit Framework Tutorial 16. August 2005 dav

Enigmail Konfiguration

Frequently Asked Questions (FAQs) zu VPN

WLGauge: : Web Link Gauge to Measure the Quality of External WWW Links. Andreas Lübcke

Low-Level Client-Server Architektur

Spam und SPIT. Moritz Mertinkat mmertinkat AT rapidsoft DOT de. Aktuelle Schutzmöglichkeiten und Gegenmaßnahmen

Anleitung für Zugriff auf SHV-Systeme mit RDS auf Terminal-Server

Android VPN. Am Beispiel eines Netzwerktunnels für das Domain Name System (DNS) 1 Andiodine - Android DNS-VPN

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Lokales Netzwerk Probleme beim Verbinden eines Linux-Clients mit einem Windows 2003 Server Frage:

Digitale Signatur. Digitale Signatur. Anwendungen der Kryptographie. Secret Sharing / Splitting. Ziele SSL / TLS

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

IT-Sicherheit Kapitel 11 SSL/TLS

1. Den richtige Webbrowser benutzen Einen Vollzugriff auf alle Funktionen von Outlook Web App ist ausschliesslich mit folgenden Webbrowser möglich.

TLS/SSL-Serverkonfiguration testen mit O-Saft Köln, 23. November 2017

Einrichtung von Mozilla Thunderbird

Konfiguration IKMZ / Universitätsrechenzentrum des Cisco VPN-Clients v3.6 Netze und Datenkommunikation

Anbindung des eibport an das Internet

Video Überwachung mit Smarthome / Homematic Integration

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Sichere mit OpenPGP und S/MIME

STRATO Mail Einrichtung Mozilla Thunderbird

Informatik I: Einführung in die Programmierung

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Security-Webinar. Dezember Dr. Christopher Kunz, filoo GmbH

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Drucken von Webseiten Eine Anleitung, Version 1.0

CCC Bremen. R.M.Albrecht

CHECKZRK Benutzerhandbuch

Open-Source-Softwareentwicklung Free/Libre Open Source Software

UP4DAR HOWTO: Firmware-Update via RS232- Schnittstelle

Übungen zur Vorlesung Systemsicherheit

Einrichten des fhb-wlan

SSL-Zertifikate. ausgestellt bzw. bezogen von den Informatikdiensten. Dieter Hennig. 25. November ETH Zürich. SSL-Zertifikate.

eurovat Magento Extension Magento - Extension Extension V1.4.2 Dokumentation Version 1.0 SNM-Portal UG (haftungsbeschränkt) & Co. KG Vorherstraße 17

Lagebild zur Internet-Sicherheit Internet-Kennzahlen

VPN help&faqs. Probleme, Ursachen, Lösungen: Keine VPN-Client-SW? ZIM/CZ PHKA, Bau III, Tutoren in Raum 216

ISA Server Exchange RPC over HTTPS mit NTLM-Authentifizierung

Vitaminkapseln.ch - SEO Check

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Matrix42. Matrix42 Cloud Trial Erste Schritte. Version

Einrichtung eines -konto mit Thunderbird

Heartbleed beats hard

WEBSEITEN ENTWICKELN MIT ASP.NET

Installation Microsoft Lync 2010 auf Linux

we run IT! ArGO Mail Inhaltsverzeichnis Services zurzeit in ArGO Mail aktiv: Mail

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

IIS 7.5 mit Exchange Server 2010 OWA FBA Intern und Extern ueber Forefront TMG

Installation des Zertifikats am Beispiel eines Exchang -Servers. Voraussetzungen. Zertifikate importieren. Outlook-Webaccess

Secure Socket Layer V.3.0

PK TLS-Check am Langversion/Einführung:

Web Services Security

Amt für Natur und Umwelt Uffizi per la natira e l ambient Ufficio per la natura e l ambiente

Heartbleed analysis daemon hbad - Clientseitiges Heartbleed-Tool Version: 1.0

<Insert Picture Here> Ohne Fenster-zur-Welt SSO mit ios-apps und Oracle Access Manager

Kerberos - Alptraum oder Zusammenspiel?

Zabbix 2.4. What's new? What's new in Zabbix of

ITT AQUAVIEW WEB-Server. Kurzbedienungsanleitung

Heartbleed in Osterreich: 100 Tage danach

Fragen Arthur Zaczek. Apr 2015

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Anleitung zur Erstbenutzung von Ventrilo Seite 1 von 1

DATENSCHUTZ. Konzernweite Mailverschlüsselung. sselung

> Soft.ZIV. Maple Mathematisches Software System

Release Notes. NCP Local License Server (Win32/64) 1. Neue Leistungsmerkmale und Erweiterungen. 3. Bekannte Einschränkungen

Remote Tools. SFTP Port X11. Proxy SSH SCP.

Schwachstellenanalyse 2012

Installationsanleitung SSL Zertifikat

Information über die WebServices der Parlamentsdienste

<script type="text/javascript"> <! <%= page(page.searchsuggestionsscript) %> // > </script>

Alice & More Anleitung. GigaMail.

FL1 Hosting Technische Informationen

IPv6 kurz vor der Einführung Was ist tun?

Neues aus dem 52 North WPS Projekt. Benjamin Proß, FOSSGIS,

Broadcasting mit. WhatsApp. Ein neues Tool für die Jugendarbeit.

Übung - Konfigurieren einer Windows 7-Firewall

BTD Antivirus Evasion: Von der Idee zum PoC. Daniel Sauder SySS GmbH

STRATO Mail Einrichtung Android 4.4

Autorisierungsanleitung für ArcGIS Desktop 10.0 Concurrent Use Lizenzen

Luis Kornblueh. May 22, 2014

Konfiguration des Novell GroupWise Connectors

Transkript:

testssl.sh: testssl.sh: Über Über die die Herausforderungen, Herausforderungen, SSL-Testing SSL-Testing in in /bin/bash /bin/bash zu zu implementieren implementieren Dirk Dirk Wetter Wetter @drwetter Licence: http://creativecommons.org/licenses/by-nc-sa/4.0/

https://drwetter.eu/ 1. :~> whoami Unabhängiger Sicherheitsberater (selbständig) Pentests / Absicherung / Beratung + Projektmanagement Historisch starker Unix-/Networking-Hintergrund Hochsprachenentwicklung: long time ago Ehrenamt GUUG PK-Leiter FFGs, Linux-Kongress Ex-Vorstand Ehrenamt OWASP OWASP AppSec Research 2013 German OWASP Day 2012, 2014 German Chapter Lead

2. Einleitung Was ist testssl.sh Besonderheit: Kommandozeile! /bin/bash Kompatibel: Linux Mac OS X (Free)BSD Windows: MSYS2, Cygwin

2. Einleitung Anno 2005 OpenSSL als Schweizer Messer Mit paar Befehlen überprüf CN / expiration date Zertifikate Protokollversionen Cipher Trust: s.o. / -verify Browser Demo (1) Bild: https://de.wikipedia.org/wiki/datei:victorinox_evolution_14.jpg von Vdv-r31. Lizenz: CC BY-SA 4.0

2. Einleitung testssl.sh Gestartet 2005 als Inhouse-Tool (Pentests) Open sourced: <= 2010 2/2014: gleichnamige Domain 4/2014: bitbucket 10/2014: github Distros: ArchLinux, BackTrack, BlackArch Linux, Weakerthan Linux Debian : testing Flag: https://upload.wikimedia.org/wikipedia/commons/0/00/flag_of_saint_helena.svg from Patricia Fidi. Licence public domain

2. Einleitung Anno 2005 Mehr? Brauchte es (fast) nicht Ok ok... es gab da so ein paar Bugs ;-) Debian weak keys (2006, CVE-2008-0166) Sonst: Version/Banner Fingerprinting Sonst: NSE Plugin ggf.

3. Heute Anno 2015 Tierisch gewachsen Gut 5000 Zeilen Code Relativ reif Viele Features Drei Releases Demo (2)

3. Heute Anno 2015 Verwundbarkeiten Demo (3)

3. Code Aber wie macht der das mit Heartbleed TLS Extension Heartbeat: sinnlose Extension (für die meisten) Demo (4) Picture http://heartbleed.com/heartbleed.svg from Leena Snidate / Codenomicon. Licence CC0 1.0

Request

Heartbeat-Request (mit Heartbleed Payload)

Heartbleed Response

3. Sockets vs. OpenSSL 3. Code Aber wie macht der das mit Heartbleed TLS Extenstion Heartbeat: sinnlose Extension für die meisten Buffer Overflow, mem access Trivialer Zugriff Geht nicht mit OpenSSL! PoC in bash sockets Demo (5)

3. Code Sockets vs. OpenSSL Heartbleed CCS Injection TLS Extension braucht auch Sockets SSLv2 Handshake TLS Handshake

3. Code Sockets vs. OpenSSL TLS Handshakes Client hello Generell Proxy STARTTLS Senden Parser für Server Hello Demo=Code (6)

3. Code Sockets vs. OpenSSL TLS Handshakes Client hello Senden Parser für Server Hello Schönes Abfallprodukt: Generell Proxy STARTTLS TLS TIME (je nach OpenSSL Version) Geht immer: HTTP Time Stamp } Version & Architektur

3. Code Sockets vs. OpenSSL Neue Distributionen / Mac OS X: Fixes Null, Anonymous Ciphers SSLv2 Wg. SSL-Poodle: SSLv3 maybe coming? export ciphers (FREAK) weak DH ciphers (Logjam)

3. Code Sockets vs. OpenSSL OTOH.. Verteilung von Binaries Basierend auf Peter Mosmans fork Linux, BSD, Darwin, ARM Borken features / ciphers Advanced features / ciphers 3x Chacha20/Poly1305 cipher -proxy, -xmpphost <host>, Horizont: OpenSSL 1.1.0: CCM Cipher Häßlich: github Docker images

3. Status Sockets vs. OpenSSL Beides! Sockets, ggw. wo nötig Protokoll check SSLv2 - TLS 1.1 TLS time s.o. HB+CCS

3. Shell rulz but is also difficult... Cmd line parser /bin/bash: getopts /usr/bin/getopt geht immer (BSDs / Linux) Haken: keine --long Option Linux (util-linux): GNU (long und short options) BSD: halt anders ==> eigener Parser Peter Mosmans

3. Shell rulz Statische Code Analyse Shellcheck (github.com/koalaman/shellcheck) Demo: shellcheck.net Demo an testssl.sh Sicherheit: eher zufällig Demo (7)

So old school! 3. Shell rulz sed & awk /bin/bash! cat $x sed 's/pattern/replace/g' ${x//pattern/replace} echo n $line wc c echo ${#line} var="0x00,0xa5 DH DSS AES256 GCM SHA384 TLSv1.2 Kx=DH/DSS Au=DH Enc=AESGCM(256) Mac=AEAD echo "$var" awk '{ print $NF }' echo ${var##0x* }

sed & awk /bin/bash! In testssl.sh: Vieles, noch nicht 100%ig Tipps http://www.cyberciti.biz/tips/bash-shell-parameter-substituti on-2.html http://tldp.org/ldp/abs/html/string-manipulation.html http://wiki.bash-hackers.org/syntax/pe

3. Shell rulz Script-Farbe N00b + erster Blick key feature! Problem Linux / BSD ANSI + termcap / ncurses 256 Farben? Demo

3. Shell rulz Grenzen Threads / Events Wichtig für borken Server/ Load Balancer etc. Gibt's nicht, Krücke: printf "$GET_REQ11" $OPENSSL s_client -quiet -connect $NODEIP:$PORT \ $PROXY $SNI 1>$HEADERFILE 2>$ERRFILE & wait_kill $! $MAXSLEEP # wait_kill() waits for PID (= $!) in # the background for $HEADER_MAXSLEEP # seconds.!=0: killed Pollen, Resultate in $HEADERFILE, $ERRFILE

4. Gefahr, Gefahr

4. Gefahr, Gefahr Mehr? Threat Modeling: Ins Web stellen, siehe z.b. testssl.sh S $(dig +short testssl.sh) https://www.jacobmansfield.co.uk/p/2015/04/28/testingfor-ssl-vulnerabilities/ https://code.google.com/p/google-security-research/issue s/detail?id=546 (unabhängig voneinander) Command Injection Idee (9)

5. Bugs ähm Features Es wird langsam kompliziert...

6. Zusammenfassung Lustiger Debian/Ubuntu Bug Sonst: Debian Wheezy, Ubuntu 15.04

5. Bugs ähm Features OpenLiteSpeed SSLv2: disabled by default Antwortet trotzdem Demo (10) Problem1: Plaintext Problem2: Es gibt keinen RFC-Handshake in SSLv2 IIS 6.0 Support ist ausgelaufen (Für einige wohl egal) OpenSSL 1.0.2: Handshake failure Demo (11) handshake-size limit, OpenSSL 1.0.2 hat mehr Cipher

5. Bugs ähm Features Cisco ACE Loadbalancer Client Hello mit >128 Cipher Again: Handshake Limit Alte F5 BigIP Load Balancer SSL Request stall Handshake < 256 kbytes F5 SSL Offload Engine (Web Acc) Header Request stalls

6. Zusammenfassung Projekt testssl.sh ist kicking and alive Es gibt Releases! Letztes: 2.6, contributions++ Proxy TLS_FALLBACK_SCSV Peter Mosmans OpenSSL fork

6. Zusammenfassung Herausforderungen Verwundbarkeiten: Am Ball bleiben Kaputte Handshakes Erwartungen: wird weniger Drumrum programmieren Testplattformen! Plattform-Kompatibilität Serverseite

6. Zusammenfassung So what's new (2.7dev) Überprüfen der Trust Chain Mozilla / Microsof / JDK 1.8 / Linux ca-bundle.crt support Wie, erst jetzt?? OpenSSL constraints, don't get me started...

6. Zusammenfassung So what's new (2.7dev) Support for servers with X509 client authentication SSL Session ID check Smart logging Some workarounds for buggy systems

7. Ausblick Zukunf Features targeted for 2.8: github.com/drwetter/testssl.sh/milestones/2.7dev%20(2.8)%20 Mehr Sockets CN Hostname Validierung EC Kurven Maschinenlesbarer Output TLS 1.2: extensions Disabled ciphers JSON HTML: gibt's bereits über aha Rating!

7. Ausblick Zukunf, cont'd Interne Verbesserungen Codequalität ;-) Shellcheck! Dokumentation

7. Schlusspointe Bestellung auf Webseite: Beste Verschlüsselung

7. Schlusspointe Bestätigungsmail Mit allen zuvor eingegebenen Daten

Danke! https://testssl.sh/ dirk aet testssl.sh mail aet drwetter eu @drwetter