class: middle, inverse # Gefahren des Internets ## Symposium Haus Overbach ## März 2018 .autoren[ Harald Bongen
Marco Jagodzinska
Benjamin Poniatowski
Johanna Roussel
] --- # Das Szenario - - - - - - - - Auf eurem Schulweg befinden sich mehrere Ampeln. Insgesamt braucht ihr dadurch 10 Minuten länger zur Schule. Da ihr morgens lieber etwas länger schlafen würdet, müsst ihr die einzelnen Ampeln überlisten! .center.v50[![Schlafen](img/sleep.svg)] --- # Task 1 - HTTP (Hypertext Transfer Protocol) - - - - - - - - .center[![http](img/Http.svg)] - Striktes Anfrage / Antwort Muster - hauptsächlich für den Transfer von Webseiten - Standard-Anfragemethode - **GET**: alle zu übermittelnden Informationen stecken in der URL - Beispiel: `GET /index.html`**`?username=admin`** - eine in der Adresszeile des Browsers angegebene URL wird an den Webserver per GET übermittelt --- # Task 1 - HTTP Request - - - - - - - - ```html *telnet localhost 8000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. *GET /index.html HTTP/1.1 *host: localhost ```
Eingabe der URL im Browser entspricht auch einem GET Request: .center[![get](img/getrequest_browser.PNG)] --- # Task 1 - HTTP Response - - - - - - - - ```http HTTP/1.0 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 2334 Access-Control-Allow-Origin: * Server: Werkzeug/0.14.1 Python/3.6.3 Date: Wed, 21 Feb 2018 13:56:30 GMT Connection closed by foreign host. ``` --- # Task 1 - Der Versuchsaufbau - - - - - - - - .v70.center[![Bild vom Versuchaaufbau](img/aufbau.svg)] --- # Task 1 - Aufgabenstellung - - - - - - - - Die zentrale Steuerung der Ampel läuft über WLAN. Findet die Serveradresse und ändert die Ampelschaltung! Wer schafft es zuerst die Fußgängerampel permanent auf grün zu schalten? :) - **Ziel:** Die Fußgängerampel soll dauerhaft auf `grün` geschaltet sein. .container[ .left-column[ - **Tools:** - Nmap (Finden der Serveradresse) - Wireshark (Analyse des Netzverkehrs) - Browser/curl (Ändern der Ampelschaltung) ] .right-column[ .v30.right[![Ampelmädchen](img/green_traffic_girl.png)] ] ] --- # Task 1 - Lessons Learned - - - - - - - - Ist das Szenario realistisch? Findet Parallelen aus eurem Leben! .v60.center[ ![Hotel](img/hotel.jpg) .bildunter[Quelle: [wikimedia](https://commons.wikimedia.org/wiki/File:Frankfurt,_Nieder-Eschbach,_BB-Hotel.JPG)] ] ??? * erwartete Antworten * offenes WLAN --> problematisch Traffic mitlesen * In Geschäften/Hotels --> immer wenn man kein Passwort eingeben muss --- # Task 1 - Lessons Learned - - - - - - - - .left-column[ * Mitlesen in offenen WLANs ohne viel Aufwand möglich * Je nach Programierung einer Webseite, sogar sicherheitskritisch * Webseitenaufrufe immer mitlesbar ] .right-column[ .v60.right[![wifis Aachen Marktplatz](img/wifis-aachen.jpg)] ] --- class: center middle # Und bei verschlüsselten WLANs? Live Demonstration mit einer vorher aufgenommen capture-Datei --- # Ergebnisse - - - - - - - - * unverschlüsseltes WLAN * Netzwerkkarte in Monitormode versetzen * WEP-verschlüsselt * Netzwerkkarte in Monitormode versetzen * Wifi-Schlüssel herausfinden * Schlüssel bei Wireshark hinterlegen * WPA2-verschlüsselt * Netzwerkkarte in Monitormode versetzen * Wifi-Schlüssel erfragen / Krack-Attacke * Schlüssel bei Wireshark hinterlegen ??? # Notizen - Bei WEP wird der Schlüssel einfach durch Mithören der Kommunikation berechnet - Krack-Attacke, bei ungepatcheten Routern --- # Task 2 - Need to know - - - - - - - - **Sessions (Sitzungen)** - gekennzeichnete Verbindung zwischen User (Client) und Server über eine **eindeutige** Identifikation (_Session-Id_) - _Session-Id_ wird auf Serverseite und im Browser gespeichert (Cookie) - User schickt Session-Id bei jeder Anfrage mit - Session-Beginn: z.B. über Login/Aufruf Website - Session-Ende: z.B. über Logout/Zeitüberschreitung/Browser-Schließen .center.v40[![session](img/session.PNG)] --- # Task 2 - Aufgabenstellung - - - - - - - - Der Admin gibt sein Passwort am PC ein. Erwischt den Admin beim Login! - **Ziel:** Passwort des Admins - **Tools:** Smartphone, Browser .v40.center[ ![Smartphone](img/smartphone.jpeg) ] --- # Task 2 - Lessons Learned - - - - - - - - Ist das Szenario realistisch? Findet Parallelen aus eurem Leben! .v60.center[ ![NY_CentralStation](img/oeffentl_platz.jpeg) ] --- # Task 2 - Lessons Learned - - - - - - - - .middle[#### An öffentlichen Orten sollte man Passworteingaben vermeiden Lösungen: 1. Passwortmanager 2. Auf möglichst umfassenden Sichtschutz achten ] --- # Task 3 - Need to know - - - - - - - - # HTTP-Methoden .left-column[ #### GET - alle zu übermittelnden Informationen stecken in der URL - Standard wenn der Programmierer keine Angabe macht ] .right-column[ #### POST - zu übermittelnde Daten (z.B. Formulareingaben) werden nicht wie bei GET an die URL angehängt, sondern werden als Inhalt der Nachricht übertragen - sinnvoll zum Beispiel bei der Übermittlung von Passwörtern ] --- # Task 3 - Aufgabenstellung - - - - - - - - Der Admin loggt sich regelmäßig an der Ampelschaltung ein. Schneiden Sie sein Passwort mit! - **Ziel:** Mit dem Admin-Passwort einloggen. - **Tools:** Wireshark, Browser --- # Task 3 - HTTP Methoden - - - - - - - - #### GET ```http GET /login?username=hanna&password=abc123 HTTP/1.1 Host: 192.168.1.241:8000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://192.168.1.241:8000/ Connection: keep-alive Upgrade-Insecure-Requests: 1 ``` --- # Task 3 - HTTP Methoden - - - - - - - - #### POST ```http POST /login HTTP/1.1 Host: 192.168.1.241:8000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://192.168.1.241:8000/index.html Cookie: remember_token=hanna|3bc7d722fee7125c440e8798026ea65f634150c6ecf32a3ed2c6bf4a03f02f4cdcc2e96c0f8270f0263679a1a636511976d917dad83df4cb72bf34ed1e92299c; session=.eJwlzjEOwzAIAMC_MGfAYAjOZyrbgNIlQ9JMVf_eSn3ASfeGR55x7bC9zjsWeDwdNhAO1zFsGikK-zAPQrKCWbJ5C11bZtROZJVVNWQYReneMlJlOpaSpTOh2-xkQtiazME8ZFSXta5dyaeFc5aqiisJomBy-wlY4L7i_Gf2fhwdPl9R9jBY.DXF-qA.NI3bHpdZFBbE2VD90ZHkKCidCtU Connection: keep-alive Upgrade-Insecure-Requests: 1 Content-Type: application/x-www-form-urlencoded Content-Length: 30 username=hanna&password=abc123 ``` --- # Task 3 - Lessons Learned - - - - - - - - Ist das Szenario realistisch? Findet Parallelen aus eurem Leben! .v60.center[ ![Cafe](img/cafe.jpeg) ] --- # Task 3 - Lessons Learned - - - - - - - - ![Sky](img/sky_marked.PNG) --- # Task 3 - Lessons Learned - - - - - - - - ![Browsing without HTTPS](img/tlscomic.png) - bei HTTP kann jeder den Traffic mitlesen - am besten unterschiedliche Passwörter für verschiedene Seiten nutzen --- # Task 4 - Symmetrische Chiffre - - - - - - - - ![symmetrische Chiffre](img/symChiffre.svg) --- # Task 4 - Asymmetrische Chiffre - - - - - - - - ![asymmetrische Chiffre](img/asymChiffre.svg) --- # Task 4 - TLS/SSL - - - - - - - - ![ssl](img/ssl.svg) --- # Task 4 - TLS/SSL - - - - - - - - - unter der Verwendung des Netzwerkprotokolls TLS wird sichergestellt, dass Daten mit einer verschlüsselten Verbindung übertragen werden - erkennbar durch http**s**: (**s** = secure) ![https](img/https.PNG) - Sensible Daten wie z.B. Passwörter können so nicht von Unbefugten mitgelesen werden ⇨ Wie könnte man nun - trotz TLS-Verschlüsselung - an das Passwort des Admins kommen? .v30.right[![https](img/question.jpg)] --- # Task 4 - Need to know - - - - - - - - .center[ .v70[ ![bruteforce comic](img/brute-force.jpg) ] .bildunter[ Quelle [datamation](https://www.datamation.com/news/tech-comics-brute-force-cyberattack-explained-2.html) ] ] --- # Task 4 - Brute Force Attacke - - - - - - - - Das Raten von Passwörten kann man "programmieren" - Es existieren bereits Tools die die Arbeit erleichtern: - **Burp-Suite** - Webslayer - hydra - Metasploit - etc .center.h70[ ![wordlists](img/wordlists.jpg) ] ??? Die aktuellen Passwordlisten sind in Kali im Verzeichniss /usr/share/wordlists/metasploit
--- # Task 4 - Aufgabenstellung - - - - - - - - Aufgrund der TLS-Verschlüsselung hilft uns das Mitschneiden des Datenverkehrs nun nicht mehr weiter. Knackt das Passwort des Admins mit *Brute-force!* - **Ziel:** Benutzername und Passwort herausfinden und einsetzen - **Tools:** Wireshark, Burp-Suite, Browser --- # Task 4 - Lessons Learned - - - - - - - - Ist das Szenario realistisch? Findet Parallelen aus eurem Leben! ![Lessons Learned](img/lessons_learned.jpg) ??? schwache Passwörter sind problematisch --- # Worauf sollte man achten? - - - - - - - - - Verschlüsselung ist ein guter Schutz - Ist das WLAN, in dem ich mich befinde, vertrauenswürdig? - Ist die besuchte Website TLS/SSL verschlüsselt? (HTTPS!) - Wahl der Passwörter - Verschiedene Passwörter auf verschiedenen Seiten verringern die Angriffsfläche - Komplexität des Passworts ist entscheidend ⇨ Kombination aus Bewusstsein für Verschlüsselung und einem sicheren Passwort