Betrifft den Punkt „Auskundschaftung“ der Cyber Kill Chain.


Ein einfach zu benutzendes Werkzeug für den schnellen Schwachstellenscan für WebServices ist nikto. Nikto liefert eine Liste mit „Auffälligkeiten“. Diese Liste ist rudimentär, daher sollte man die gefundenen Themen mit anderen Werkzeugen weiter analysieren.

nikto ist Teil von Kali Linux und kann hier geladen werden: https://cirt.net/Nikto2

Mit nikto -url <Domain oder IP-Adresse> -port <80 oder 443> kann man einen schnellen Scan des WebServices durchführen. Natürlich kann man auch Geräte im eigenen Netzwerk scannen, beispielsweise den eigenen DSL-Router, den eigenen Netzwerkspeicher, den Internetkühlschrank, die SmartHome Geräte, die eigene Solaranlagensteuerung, …

Beispiel

Die Seite hackthissite.org ist eine Lernseite für angehende Hacker und Haecksen. Daher ist die ideal für den Schwachstellenscan mit nikto.

nikto -url hackthissite.org -port 443 zeigt folgende „Auffälligkeiten“

nikto hackthissite
nikto hackthissite

Was bedeutet das alles?

Lesehinweis:

Schwachstellen ändern sich ständig. Täglich werden neue Schwachstellen gefunden und andere werden geschlossen. Die Erklärungen der gefundenen Themen sind höchstwahrscheinlich nicht vollständig oder teilweise schon wieder obsolete.

Falls Sie auch einen Scan mit nikto durchführen, informieren Sie sich bitte immer zum aktuellen Stand und der Interpretation der gefundenen Themen – nutzen Sie eine Suchmaschine.

Cookie created without the secure flag und Cookie created without the httponly flag

Bedeutet, dass die Inhalte der WebSeiten-Cookies nicht verschlüsselt sind. Die Inhalte können also durch einen Angreifer ausgelesen und sogar verändert werden. Dafür könnte man das Werkzeug Wireshark benutzen, den Datenstrom abfangen, den Inhalt verändern und dann an die WebSeite weiterleiten.

Cookies dieser Art dürfen also auf gar keinen Fall sensible Daten enthalten.

Retrieved access-control-allow-origin header: *

WebServices können untereinander Ressourcen aufrufen. Das ist hilfreich wenn man verschiedene unternehmensinterne Dienste auf einer WebSeite miteinander vereinen möchte. Der access-control-allow-origin header regelt die Zugriffserlaubnis der WebServices untereinander.

So kann ein WebService A eine Datenbank von WebService B aufrufen. Bei WebService B sollte also stehen „access-control-allow-origin header: A

Schreibt man jedoch ein *, so wie in diesem nikto Beispiel, heißt das, dass jedweder fremder WebService Ressourcen aufrufen darf. Da alle Anfragen von fremden WebServices erlaubt sind kann ein Angreifer das natürlich ausnutzen.

The anti-clickjacking X-Frame-Options header is not present

Frames sind Bestandteile einer WebSeite. In Frames können Inhalte angezeigt werden. Diese Inhalte können auch Elemente zur Benutzerinteraktionen sein, beispielsweise ein Benutzerlogin mit Passwort. Wikipedia dazu: https://de.wikipedia.org/wiki/Frame_(HTML).

Das Problem bei Frames ist, dass der Benutzer normalerweise nicht weiß ob ein Frame von der eigentlichen WebSeite oder von einer fremden WebSeite stammt.

So kann man beispielsweise eine WebSeite für die Abfrage von eMails erstellen und darin ein fremdes Frame für den Login einbinden. Der Benutzer gibt nun also sein Login und sein Passwort ein um seine eMails zu lesen. Das Frame „gehört“ jedoch dem Angreifer. Nach der Benutzerinteraktion kennt der Angreifer also das Login und das Passwort des Benutzers.

Stichwort: Phishing

X-XSS-Protection header has been set to disable XSS Protection

XSS steht für Cross Site Scripting. Was XSS bedeutet erklärt Wikipedia ganz gut unter https://de.wikipedia.org/wiki/Cross-Site-Scripting.

Moderne Browser können einen XSS-Angriff erkennen. Durch das Setzen des XSS-Protection headers könnte ein solcher Angriff verhindert werden. Wenn der Schutz jedoch explizit ausgeschaltet wurde, wie in diesem Beispiel, dann wird der XSS-Angriff natürlich nicht unterbunden.

Relativ populär sind XSS-Angriffe über Benutzereingaben. So könnte man statt eines Logins einfach mal ein JavaScript eingeben.

<script> alert("Meldung") </script>

Solche Script-Eingaben sollten eigentlich abgefangen werden. Die WebSeiten die das zulassen sind potentiell anfällig für XSS-Angriffe.

Uncommon header ‚public-key-pins-report-only‘ found, with contents: pin-sha256=“YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=“; pin-sha256=“Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys=“; max-age=2592000; includeSubDomains; report-uri=“https://hackthissite.report-uri.com/r/d/hpkp/reportOnly“

Diese Header-Information entspricht nicht mehr Stand der Technik und ist veraltet. Sie wird von allen modernen Browsern ignoriert.

Da es sich hier um eine „Hacken-Lernen-Seite“ handelt, wollen die Betreiber wahrscheinlich eine Angriffsfläche zum Lernen bieten.

Uncommon header ‚feature-policy‘ found, with contents: fullscreen *

Das erlaubt allen (i)Frames der WebSeite in Vollbild dargestellt zu werden. Damit können andere Inhalte der WebSeite überblendet werden. Selbst wenn die Frames von einer fremden Quelle kommen (siehe oben „Retrieved access-control-allow-origin header: *“).

Uncommon header ‚report-to‘ found, with contents: {„group“:“default“,“max_age“:31536000,“endpoints“:[{„url“:“https://hackthissite.report-uri.com/a/d/g“}],“include_subdomains“:true}

Dieser Parameter beschreibt eigentlich nur, dass die Seite überwacht wird.

Da es sich hier um eine „Hacken-Lernen-Seite“ handelt, wollen die Betreiber wahrscheinlich wissen, was mit der Seite alles gemacht wird.

Uncommon header ‚onion-location‘ found, with contents: http://hackthisjogneh42n5o7gbzrewxee3vyu6ex37ukyvdw6jm66npakiyd.onion/

Diese „Hacken-Lernen-Seite“ gibt es auch im Tor-Netzwerk unter der genannten onion-Adresse.

Uncommon header ’nel‘ found, with contents: {„report_to“:“default“,“max_age“:31536000,“include_subdomains“:true,“success_fraction“:0.0,“failure_fraction“:0.1}

nel ist eine relativ neue Funktion für moderne Browser und steht für network error logging.

Damit können Browserverhalten und Browsermeldungen untersucht werden.

Da es sich hier um eine „Hacken-Lernen-Seite“ handelt, wollen die Betreiber wahrscheinlich wissen, was mit der Seite alles gemacht wird.

The site uses SSL and Expect-CT header is not present

Diese „Hacken-Lernen-Seite“ ist verschlüsselt. Allerdings wird durch den fehlenden Expect-CT Parameter nicht überprüft, ob ein Verschlüsselungszertifikat valide ist.

Ein Angreifer könnte also auch ein nicht signiertes Verschlüsselungszertifikat benutzen und so den Datenstrom der WebSeite, beispielsweise zwischen WebService und Benutzerinterkation, mitlesen und manipulieren.

The X-Content-Type-Options header is not set

MIME steht für Multipurpose Internet Mail Extensions. MIME beschreibt welche Datentypen die Informationen haben die zwischen WebSeiten / WebServices (und dem Benutzerbrowser) ausgetauscht werden. So kann man beispielsweise den Zeichensatz oder die Formate für Bilder / Videos festlegen. Mit dieser Information kann der Browser die WebSeite korrekt darstellen.

Ist der Parameter nicht festgelegt, können die Informationen oder die Darstellung der WebSeite geändert werden; evtl. sogar derart, wie es der WebSeiten Betreiber gar nicht möchte oder vorgesehen hat.

So könnte man beispielsweise den Browser dazu veranlassen eine WebSeite komplett herunter zu landen, anstatt sie nur anzuzeigen.

„robots.txt“ contains 2 entries which should be manually viewed

Diese WebSeite benutzt eine „Anweisung“ für Suchmaschinen. In dieser Anweisung steht welche Seiten und Unterseiten eine Suchmaschine analysieren darf.

Für diese Seite speziell gibt es die folgenden Anweisungen (https://www.hackthissite.org/robots.txt)

User-agent: *

Disallow: /missions/

Disallow: /killing/all/humans/

The Content-Encoding header is set to „deflate“

Der Inhalt der WebSeite ist komprimiert. Das dient hauptsächlich dafür, dass die WebSeite schneller geladen werden kann.

Für die Dekomprimierung wird normalerweise zlib (siehe https://z-lib.org/) benutzt.

zlib hat(te) eine gravierende Schwachstelle, welche im März 2022 behoben wurde. Hoffentlich ist die jetzt überall geschlossen.


Wichtiger Hinweis:

In Deutschland gibt es den Hackerparagrafen: §202c (StGB). Dieses Gesetz verbietet es fremde Systeme auszuspionieren oder anzugreifen. Falls Sie also selbst Hacken lernen wollen, bspw. mit Kali Linux, analysieren Sie bitte nur Systeme in Ihrem eigenen (Heim)Netzwerk und lassen Sie sich von Ihrer IT-Abteilung eine entsprechende Freigabe dafür geben.


weitere Fachbeiträge …


Informationssicherheit und Datenschutz – Beratung und Konzeption – Landsberg am Lech