Windows-Hacking. NTSI. Emanuel Jöbstl. 4 BHITN. 08/09. Seite 7 von 16. LM,
NTLM und NTLMv2 im Vergleich. LM. NTLMv1. NTLMv2. Password case
sensitive.
Windows-Hacking
NTSI
Emanuel Jöbstl
Referat
Windows-Hacking
Emanuel Jöbstl, 4BHITN Schuljahr 2008/2009
4 BHITN
08/09
Seite 1 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
NTSI-Referat – Windows-Hacking Team: Jöbstl
Anmerkung Dieses Referat ist dazu gedacht, euch den Standpunkt eines Eindringlings näher zu bringen. Wer sich wirklich gut schützen möchte, muss denken können wie ein Angreifer.
Inhalt 3 3 4 5 5 7 8 8 9 10 11 11 12 13 13 15 16
4 BHITN
Mein Ziel kennen Portscanner Erweiterte Systemscanner Erfolgreich Eindringen LM, NTLM und NTLMv2 LM, NTLM und NTLMv2 knacken Angriffe auf Kerberos RPC (Remote Procedure Call) RPC Exploits Autoplay Exploits Drinnen, was nun? Windows Security Unentdeckt bleiben Windows-Viren in der Praxis Die MMC Windows Rechner sichern Quellen
08/09
Seite 2 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Mein Ziel kennen Die wahrscheinlich wichtigste Voraussetzung für einen erfolgreichen Angriff ist es, sein Ziel zu kennen. Bei Windowsrechnern kann man sich zusätzliche Vorteile schaffen, wenn man installierte Services etc. herausfindet. Dazu kann man einen der zahllos verfügbaren Netzwerkscanner verwenden. Oft ist es für Sicherheitsexperten und Administratoren auch Ratsam, ihre eigenen Netzwerke zu scannen, um auf etwaige Sicherheitslücken aufmerksam zu werden. Portscanner Grundlegend kann hierzu ein einfacher Portscanner verwendet werden, der oft benutzte Ports scannt. Der hier gezeigte Screenshot zeigt einen kleinen Auszug aus einem Netzwerk eines gewissen Schülerheimes. Man kann gut erkennen, dass auf einem dieser Computer (192.168.0.1.121) ein ungeschützter Apache Webserver verwendet wird.
Solle das Ziel eines Scans ein Windows-Host sein, ist es ratsam, auch die Ports 139, 135, 445 und 1026 miteinzubeziehen, da diese für RPC, Fileund Printersharing, Taskplanung und vieles mehr verwendet werden, aber dazu später mehr. Diese Ports sollten unbedingt auf jeden öffentlich erreichbaren Rechner (z.B. Webserver) gesperrt bzw. geschützt sein, denn es passiert nicht 4 BHITN
08/09
Seite 3 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
selten, dass sich Skript-Kiddies, nachdem sie einen größeren IP-Bereich gescannt haben, mit diversen Exploits Zugriff auf diesen Rechner verschaffen. Erweiterte Systemscanner Wem einfache Portscanner zu einfach sind, der kann auch auf das HighEnd der Netzwerkscanner zurückgreifen. Einer der besonders vielseitigen ist ARI (Advanced Remote Info), der speziell für Windowssysteme zugeschnitten wurde.
Dieser Screenshot zeigt eine ARI Instanz, bei der der Localhost mit Administratorrechten gescannt wurde. Über das Netzwerk, besonders bei Rechnern mit Firewall, können die Ergebnisse leider um einiges nüchterner ausfallen. Allerdings lassen sich mit einem normalen Useraccount bzw. Gastaccount schon einige wichtige Informationen herausfinden. Ein weiteres, nützliches Tool ist epdump, das später in diesem Referat behandelt wird. Natürlich gibt es noch viele weitere Tools (auch Cain & Abel hat ähnliche Fähigkeiten), allerdings kann man meistens auch viel mit den StandardWindowskomponenten anfangen, daher will ich mich nicht so lange auf diesen Teil des Referates beschränken. 4 BHITN
08/09
Seite 4 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Erfolgreich eindringen LM, NTLM und NTLMv2 LM, NTLM und NTLMv2 sind Challenge-Response Authentifizierungsprotokolle. Das bedeutet, dass bei allen drei Protokollen der Server ein paar zufällige Bytes (8, um genau zu sein) an den Client, der sich authentifizieren will sendet und dieser Client dann mit einem durchgehashten Mix aus dem Benutzerpasswort und diversen anderen Daten antwortet. Tatsächlich unterscheiden sich diese Protokolle zu Großteil auch nur an den Daten, die der Client dem Server zurücksendet. Bei Windows werden diese Protokolle benutzt, um Benutzer, die über das Netzwerk auf Ressourcen zugreifen, anzumelden. Der aktuelle Standard ist NTLMv2. Allerdings wird aus Gründen der Rückwärtskompatibilität manchmal auf ältere Protokolle zurückgegriffen, sofern der Server bzw. der Client NTLMv2 nicht unterstützt. Diese Eigenschaft lässt sich jedoch über Gruppenrichtlinien abschalten. Wichtig anzumerken ist hierbei, dass Client und Server vor der Authentifizierung Informationen über unterstützte Protokolle etc. austauschen. LM Die LM-Response (LAN Manager Response), die ursprünglich von allen Windowsversionen vor Windows 2000 und Windows NT Service Pack 4 benutzt wurde, wird aus dem LM-Hash (Siehe NTSI Hashing) des Userpassworts und der Challenge des Servers berechnet. Dabei wird der LM-Hash mit Nullen verlängert und so aufgeteilt, dass drei DES-Keys entstehen, mit denen dann die Challenge verschlüsselt wird. Diese verschlüsselte Challenge wird schlussendlich als Response an den Server zurückgesandt, der dieselbe Prozedur durchführt und die beiden Ergebnisse vergleicht. Sind sie gleich, war die Authentifizierung erfolgreich. LM wird als unsicher eingestuft, ist aber meistens noch aus Rückwärtskompatibilitätsgründen in aktuellen Windows-Versionen vorhanden. Gründe für die Unsicherheit von LM sind:
Das Benutzerpasswort wird vor dem Berechnen des LM-Hashes in Großbuchstaben konvertiert, was den Aufwand für einen BruteForce-Angriff erheblich verringert. Sollte das Passwort kleiner als acht Zeichen sein, ergibt ein gewisser Teil der Response eine bekannte Konstante, da die fehlenden Bytes des Passworts mit Nullen aufgefüllt werden.
4 BHITN
08/09
Seite 5 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
LM-Hashes lassen sich bei einer Bruteforce-Attacke einfach in zwei Teile zerlegen und einzeln knacken.
NTLM Die Berechnung der NTLM-Response funktioniert im Grunde wie bei der LM-Response. Der einzige Unterschied besteht darin, dass die Response nicht aus dem LM-Hash des Userpassworts sondern aus dem NT-Hash berechnet wird (Siehe NTSI Hashing). Allerdings wird einer NTLMResponse aus Kompatibilitätsgründen praktisch immer eine LM-Response nachgeschickt. Dies ermöglicht einem Angreifer, das LM-Password in Großbuchstaben via Bruteforce zu knacken und das NT-Password anschließend durch ein paar Versuche herauszufinden. Die Schwächen belaufen sich daher praktisch auf dieselben Punkte wie bei LM. Bei Windows XP wird NTLM Standardmäßig verwendet, Abhilfe schaffen kann man mit gewissen Patches. Sollte man diese installiert haben, werden NTLMv2-Responses verwendet und falls diese nicht unterstützt werden, die sichereren NTLM-Session Responses.
NTLMv2 NTLMv2 ist eine um einigeres sicherere, ab Windows Vista standardmäßig verwendete Version von NTLM. Die Berechnung einer NTLMv2 Response ist recht kompliziert. Bei NTLMv2 werden auch Benutzernamen, Zielinformationen und ein Timestamp zum Passwort hinzugefügt. NTLMv2 ist dank eines 128-bit Schlüssels sicher, sofern ein sicheres Passwort verwendet wird.
LMv2 LMv2 ist eine Pass-Through Lösung, bei der der Server die LM-Response nur an einen Domainkontroller zur Authentifizierung weitersendet. NTLM-Session NTLM-Session ist eine Übergangslösung, für Server bzw. Clients, die kein NTLMv2 unterstützen, aber gleichzeitig sicherer als NTLM. 4 BHITN
08/09
Seite 6 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
LM, NTLM und NTLMv2 im Vergleich
LM
NTLMv1
NTLMv2
Password case sensitive
No
Yes
Yes
Hash key length
56bit + 56bit
-
-
Password hash algorithm
DES (ECB mode)
MD4
MD4
Hash value length
64bit + 64bit
128bit
128bit
C/R key length
56bit + 56bit + 16bit
56bit + 56bit + 16bit
128bit
C/R algorithm
DES (ECB mode)
DES (ECB mode)
HMAC_MD5
C/R value length
64bit + 64bit + 64bit
64bit + 64bit + 64bit
128bit
LM, NTLM und NTLMv2 knacken LM und NTLM lassen sich relativ einfach mit Brute-Force knacken, wobei das knacken von LM-Hashes wirklich sehr schnell geht. Aufgrund der Challange, die mit in das Passwort einfließt, lassen sich diese Hashes allerdings nicht so gut mit vorausberechneten Regenbogentabellen knacken, aber dagegen kann man natürlich etwas unternehmen. NTLM-Downgrading NTLM-Donwgrading ist ein Angriff auf die Daten, die vor der Authentifizierung ausgetauscht werden. Benötigt wird dazu eine laufende Man-In-The-Middle Attacke, damit die ausgetauschten Daten verändert werden können. Der Angreifer verändert die Pakete, in denen Client und Server ihre unterstützen Authentifizierungsprotokolle austauschen einfach so, dass beide auf eine möglichst unsichere Version (im besten Fall LM) zurückfallen. NTLM-Challenge Spoofing Bei NTLM-Challenge Spoofing ist wieder eine laufende MITM-Attacke vonnöten. Sendet der Server seine Challenge, mit der der Client sein Passwort verschlüsseln und zurücksenden sollte, tauscht der Angreifer die originale Challenge gegen eine Challange aus, für die er vorberechnete Regebogentabellen besitzt. Die Authentifizierung wird in jeden Fall Fehlschlagen, daher ist diese Angriffstechnik mit Vorsicht zu genießen.
4 BHITN
08/09
Seite 7 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Angriffe auf Kerberos [Zur Funktionsweise von Kerberos ziehe man bitte die NTMA-Unterlagen dieses Jahres zu rate] Kerberos ist ein Protokoll, das prinzipiell sehr sicher ist. Auch sind die übertragenen Passwörter sehr schwer zu knacken. Es gibt allerdings einen Ansatzpunkt, um Benutzerpasswörter herauszufinden. Man nehme dazu einfach ein geeignetes Paket, und teste so viele Schlüssel, bis die Entschlüsselung des Timestamps, der in jeden Paket enthalten ist, ein Ergebnis liefert, dass dem Timestamp-Format gleicht. Sollte dies der Fall sein, hat man mit einer großen Wahrscheinlichkeit das Passwort herausgefunden. RPC (Remote Procedure Call) In Windows-Systemen gibt es einen sehr nützlichen Mechanismus, den Remote Procedure Call. Dieser Mechanismus erlaubt es Programmierern (Und leider auch Angreifen) ganz einfach Funktionen eines Programms auf einem entfernten Rechner über das Netzwerk aufzurufen und das Resultat über das Netzwerk zurückzusenden. Selbst die Ordnerfreigabe von Windows funktioniert mit RPC. Wenn man auf den Share eines Servers zugreift, wird einfach über RPC die Funktion aufgerufen, um den Ordnerinhalt aufzulisten. Praktischerweise kann man sich nicht nur Ordner etc. zurückliefern lassen, sondern beispielsweise auch Programme über das Netzwerk starten. Sogar Remoteshells sind realisierbar. Sollte ein Angreifer durch die zuvor genannten Methoden an einen Benutzeraccount kommen, ist RPC oft das Hintertürchen, das einem Angreifer volle Kontrolle über einen Rechner ermöglicht.
4 BHITN
08/09
Seite 8 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Außerdem gibt es auf Port 135 den so genannten End-Point-Mapper, eine kleine Datenbank, die sich sozusagen um das Freigeben von ServiceInformationen kümmert. Diese Datenbank lässt sich mit dem Tool epdump auslesen.
RPC-Exploits RPC mit allen seinen Funktionen ist sehr kompliziert. Daher gibt es auch diverse kleine Fehler wie zum Beispiel Buffer-Overfolws. Vor kurzem, genauer gesagt im Oktober 2008, wurde eine kritische Sicherheitslücke bekannt, die unautorisierten Angreifern Remote-Code Ausführung erlaubte. Diese Lücke machte es auch dem legendären Wurm Conflicker möglich, sich so extrem zu verbreiten.
4 BHITN
08/09
Seite 9 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Autoplay Exploits Autoplay ist eine scheinbar sehr nützliche Funktion, die automatisch eine Aktion ausführt, wenn eine CD eingelegt oder ein USB-Stick eingesteckt wird.
Allerdings sind mit dieser Funktion auch große Sicherheitslücken verbunden. So werden Autoplaydateien auch für Laufwerke, und noch schlimmer, auch für Netzlaufwerke angewendet. Bei Windows XP und Windows Vista wird inzwischen vom Benutzer abgefragt, welches Programm man ausführen möchte oder wie mit dem Inhalt der CD oder des Laufwerkes verfahren werden soll, dennoch gibt es Wege, dies zu umgehen. Schwerwiegende Angriffe sind z.B. eine Autorun.inf auf dem Netzlaufwerkes eines Domainadministrators abzulegen, die nichts anderes tut, als eine Batchdatei oder ein Programm auszuführen, das einen gewissen User zur Gruppe Domainadministratoren hinzufügt. Auch verbreiten sich einige Viren über solche Sicherheitslücken. Autoplay lässt sich übrigens über Gruppenrichtlinien deaktivieren.
4 BHITN
08/09
Seite 10 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Drinnen, was nun? Sollte man erfolgreich über das Netzwerk in einen Windows-Rechner eingedrungen sein, kann man diesen Vorteil auf vielerlei Arten nutzen. Man könnte zum Beispiel den Administrator über die Sicherheitslücken aufklären. Ein Angreifer allerdings würde Passwörter und Rechte ändern, Daten klauen oder einfach den Computer als „Proxy“ für weitere Hackeraktivitäten benutzen. Doch was wäre, wenn der User, dessen Account geknackt wurde, sein Passwort ändert? Dann hätte unser böser Hacker auf einmal keinen Zutritt durch diesen Account mehr. Deshalb werden meist kleine Hintertürchen installiert. Dies kann auch über Autorun-Exploits geschehen. Um zu verstehen, wie diese Hintertürchen funktionieren, ist es Ratsam, sich das Sicherheitsmodell von Windows genauer anzusehen. Windows-Security Das Windows Sicherheitssystem ist sehr komplex. Es besteht aus einer Vielzahl von Komponenten, die die Sicherheits- und Authentifizierungsfunktionen bereitstellen. Wichtig für uns ist LSASS, das Subsystem der Lokalen Sicherheitsinstanz (Local Security Authority Sub System), das sich um das Durchsetzen der Gruppenrichtlinien etc. kümmert und der Sicherheitsmonitor (SRM), der den Zugriff auf Objekte überprüft und die Benutzerrechte verwaltet. Wenn man bedenkt, dass in Windows alles ein Objekt ist, ist es für die meisten Viren ein Ziel, letzteren auszuhebeln oder zu umgehen. Weitere bekannte Komponenten sind Winlogon und GINA (Graphical Identification and Authentication). Leider muss man dazu aber auch sagen, dass dies meist gar nicht nötig ist, wenn sich jemand mit einem Administratorkonto einen Virus einfängt, da ein Administrator die Rechte besitzt, einen Prozess im lokalen Systemkonto zu starten, das praktisch alles darf. In Windows Vista und Windows 7 gibt es daher die neue UAC-Funktion, die eine Bestätigung des Users einfordert, sobald ein Programm mit Administratorrechten ausgeführt wird.
4 BHITN
08/09
Seite 11 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Leider erscheinen UAC-Meldungen so häufig, dass weniger erfahrene Benutzer einfach immer auf Weiter klicken und sich nichts dabei denken (ähnlich wie bei Sicherheitswarnungen des IEs). Sollte ein Prozess nun ausgeführt werden, erhält er das Sicherheitstoken (Ein Objekt, das die Berechtigungen eines Benutzers beschreibt) des Benutzers, der den Prozess gestartet hat bzw. im Falle von Windows Vista und 7 eventuell ein Token mit eingeschränkten Rechten oder durch UAC ein Token mit den vollen Rechten es Benutzers. Im Moment sind keine Fehler in Windows öffentlich bekannt, die es einer Anwendung erlauben würden, die UAC zu umgehen oder LSASS oder den Sicherheitsmonitor auszutricksen. Auf ungepatchten Systemen kann man allerdings diverse Exploits benutzen, um Schadcode via Buffer Overflows und ähnlichem in das Betriebssystem einzuschleusen. Unentdeckt bleiben Im Falle dass ein User Windows XP verwendet, UAC deaktiviert hat oder UAC-Meldungen einfach bestätigt, ist es meist ein leichtes, einen kleinen Trojaner unsichtbar zu machen. Die meisten Viren bewerkstelligen das (grob gesehen) durch die folgenden Schritte: Sicherheitstoken verändern Sollte der Benutzer, der sich den Virus eingefangen hat, Administrator sein, ist es ein leichtes, den Prozess des Schadprogramms mit dem Sicherheitstoken des Lokalen Systems zu versehen. Das ist äußerst kritisch, denn das Lokale System darf alles. Schadsoftware tarnen Die geschieht entweder dadurch, dass besagter Virus, der nun im Kernelmodus agiert, seinen Code einfach in eine DLL des Systems injiziert (DLL-Injection) oder indem er einen Gerätetreiber installiert, der sich zwischen den Festplattentreiber und das System schaltet und einfach alle Nachrichten, die seinen Dateinamen enthalten, herausfiltert. Letzteres führt dazu, dass die ausführbare Datei des Programms einfach nicht mehr für Programme aufscheint, die die Windows API verwenden. Allerdings lassen sich diese Dateien mit Programmen wie zum Beispiel den RootkitRevaler von Sysinternals.com aufdecken.
4 BHITN
08/09
Seite 12 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Ausführung des Virus sichern Um sicherzustellen, dass der Virus bei jedem Start ausgeführt wird, gibt es ebenfalls verschiedene Varianten. Durch das injizieren des Codes in eine DLL, die beim Start geladen wird, wird er Virus automatisch auch ausgeführt. Man kann den Virus natürlich auch einfach in den Autostart einfügen oder als Service installieren, aber dies lässt sich meist leicht feststellen. Eine weitere Methode ist das umschreiben des MBR (Master Boot Records). Dies ist zwar sehr komplex, aber dafür ist ein Virus z.B. auch nach dem Neuaufsetzen eines Betriebssystems noch aktiv und es erschwert das Finden der Schadsoftware ungemein. Windows-Viren in Der Praxis Die hier beschriebenen Techniken werden von den meisten Würmern und Viren benutzt. Der berühmte Conflicker-Wurm beispielsweise verbreitete sich auch über einen Buffer-Overflow Exploit im RPC bzw. über Autoplay. Hierbei muss angemerkt werden, dass die Auswirkung dieses Exploits in Windows Vista durch das neue Sicherheitsmodell um vieles abgeschwächt wurde. XP Rechner wurden von diesem Exploit mit voller Härte getroffen. Die MMC Jeder, der jemals den MCP-Kurs besucht hat, müsste die MMC (Microsoft Management Console) noch gut in Erinnerung haben. Mit der MMC lässt sich von Gruppenrichtlinien bis zu den Services über die Hardware praktisch alles an einem Computer konfigurieren. Doch die MMC beschränkt sich nicht nur auf den lokalen Computer. Man kann sich damit auch auf einen Remotecomputer verbinden, um Fernwartung zu betreiben. Ein Angreifer mit einem gekaperten Account könnte diese Fähigkeit 4 BHITN
08/09
Seite 13 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
benutzen, um beispielsweise das Anti-Viren-Programm oder die Firewall hinunterzufahren um danach ein paar Trojaner auf dem Rechner zu platzieren. Auch wäre es möglich, dem Administrator über Gruppenrichtlinien wichtige Rechte zu entziehen.
Anhand dieses Beispieles zeigt sich wieder, dass man die Wirksamkeit von Standard-Tools nie unterschätzen sollte.
4 BHITN
08/09
Seite 14 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Windows Rechner sichern Die Methoden, um einen Windows Rechner zu sichern sind praktisch immer noch dieselben.
Umstieg auf Windows Vista Windows XP ist gegen gewisse Angriffe und Exploits aufgrund seiner Systemarchitektur nicht so gut gewappnet. Daher wird es empfohlen, auf Windows Vista umzusteigen.
Installieren aller aktuellen Patches Automatische Updates sind wichtig, da sie bekannte Sicherheitslücken schließen.
Installieren einer guten Anti-Viren-Software Siehe Referat „Antivirenprogramme“ von Paule P.
Services deaktivieren / blocken Windows hat von Haus aus diverse Services aktiviert, die die Administration und Fernwartung erleichtern sollen. Allerdings werden diese nicht immer benötigt und können daher beendet oder geblockt bzw. deinstalliert werden. o Epamp (TCP 135) (End-Point-Mapper) Eine Mini-Service Datenbank, die Informationen über Services im Netzwerk verbreitet. o Microsoft-ds (TCP/UDP 445) Dieser Port wird ähnlich wie bei NetBIOS ebenfalls für Filesharing, Browsing und RPC verwendet. o Mstaskp (UDP 1026) Über diesen Port ist der Dienst des Taskplaners zugänglich.
UAC bei Vista und 7 aktiviert lassen Die UAC mag lästig erscheinen, aber sie ist wie ein Sicherheitsgurt bei einem Auto. Man braucht sie vielleicht drei Jahre lang nicht, aber wenn es kracht rettet sie einem das Leben.
Aktivieren einer Firewall Selbst die Windows-Firewall ist besser als nichts.
Autoplay via Gruppenrichtlinien deaktivieren
NTLMv2 via Gruppenrichtlinien vorschreiben
4 BHITN
08/09
Seite 15 von 16
Windows-Hacking
NTSI
Emanuel Jöbstl
Quellen http://davenport.sourceforge.net/ntlm.html http://www.blackhat.com http://www.securityfriday.com/ http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx http://www.sysinternals.com Windows Internals
4 BHITN
08/09
Seite 16 von 16