Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Liebe Leser! Inhaltsverzeichnis   Materialien zum Buch   Geleitwort 1   Einleitung
1.1   Über dieses Buch 1.2   Zielgruppe 1.3   Wie Sie mit dem Buch arbeiten 1.4   Die Autoren
2   Exploit! So schnell führt ein Programmierfehler zum Root-Zugriff
2.1   Das Szenario 2.2   Die Vorbereitungsarbeiten, Informationssammlung 2.3   Analyse und Identifikation von Schwachstellen 2.4   Ausnutzung der XSS-Schwachstelle 2.5   Analyse und Identifikation weiterer Schwachstellen 2.6   Zugriff auf das interne Netzwerk 2.7   Angriff auf das interne Netz 2.8   Privilege Escalation am Entwicklungsserver 2.9   Analyse des Angriffs
3   Einführung in die sichere Softwareentwicklung
3.1   Ein Prozessmodell für sichere Softwareentwicklung 3.2   Die Praktiken der sicheren Softwareentwicklung
3.2.1   Code-Review 3.2.2   Architectural Risk Analysis 3.2.3   Risk-Based Security-Tests 3.2.4   Penetration Testing 3.2.5   Abuse Cases 3.2.6   Security Operations
3.3   Fachwissen für sichere Softwareentwicklung
3.3.1   Injection 3.3.2   Broken Authentication 3.3.3   Sensitive Data Exposure 3.3.4   XML External Entities (XXE) 3.3.5   Broken Access Control 3.3.6   Security Misconfiguration 3.3.7   Cross Site Scripting (XSS) 3.3.8   Insecure Deserialization 3.3.9   Using Components with Known Vulnerabilities 3.3.10   Insufficient Logging & Monitoring
4   Grundlagenwissen für sicheres Programmieren
4.1   Praktiken der agilen Softwareentwicklung 4.2   Die Programmiersprache C
4.2.1   Ein einfaches C-Programm 4.2.2   Automatisierung des Build-Prozesses 4.2.3   Die Erstellung und Verwendung von Bibliotheken in C
4.3   Die Programmiersprache Java
4.3.1   Ein einfaches Java-Programm 4.3.2   Automatisierung des Build-Prozesses 4.3.3   Die Erstellung und Verwendung von Bibliotheken in Java
4.4   Versionierung von Quellcode 4.5   Debugging und automatisiertes Testen
4.5.1   Debugging 4.5.2   Automatisiertes Testen
4.6   Continuous Integration 4.7   Beispiele auf GitHub und auf rheinwerk-verlag.de
5   Reverse Engineering
5.1   Analyse von C-Applikationen
5.1.1   Die x86-Architektur 5.1.2   Die x86-64-Architektur 5.1.3   Speicheraufteilung von C-Applikationen 5.1.4   Der GNU Debugger 5.1.5   Die Verwendung des Heap 5.1.6   Die Verwendung des Stacks 5.1.7   Reverse Engineering: Ein konkretes Beispiel
5.2   Analyse von Java-Applikationen
5.2.1   Classdateiformat 5.2.2   Speicheraufteilung von Java-Applikationen 5.2.3   Befehlssatz 5.2.4   Der Java-Disassembler 5.2.5   Class Loader 5.2.6   Garbage Collectors 5.2.7   Just-in-Time Compiler 5.2.8   Reverse Engineering Java: Ein konkretes Beispiel
5.3   Code Obfuscation
6   Sichere Implementierung
6.1   Reduzieren Sie die Sichtbarkeit von Daten und Code
6.1.1   Zugriffskontrollen in Java 6.1.2   Objekte als Parameter 6.1.3   Object Serialization 6.1.4   Immutable Objects 6.1.5   Java Reflection API
6.2   Der sichere Umgang mit Daten
6.2.1   Repräsentation von Daten 6.2.2   Input-Validierung 6.2.3   Output-Codierung
6.3   Der richtige Umgang mit Fehlern
6.3.1   Fehlercodes 6.3.2   Exceptions 6.3.3   Logging
6.4   Kryptografische APIs richtig einsetzen
6.4.1   Java Cryptography Architecture 6.4.2   Sichere Datenspeicherung
6.5   Statische Codeanalyse
6.5.1   Manuelles Code-Review 6.5.2   Automatisiertes Code-Review 6.5.3   Analyse von Bibliotheken
7   Sicheres Design
7.1   Architekturbasierte Risikoanalyse
7.1.1   Analyse der Angriffsfläche 7.1.2   Bedrohungsmodellierung
7.2   Designprinzipien für sichere Softwaresysteme 7.3   Das HTTP-Protokoll
7.3.1   HTTP-Transaktionen 7.3.2   Cookies 7.3.3   HTTPS 7.3.4   Interception Proxy
7.4   Sicheres Design von Webapplikationen
7.4.1   Clientseitige Kontrolle 7.4.2   Zugriffskontrolle 7.4.3   Authentifizierung 7.4.4   Session-Management 7.4.5   Autorisierung 7.4.6   Datenspeicherung 7.4.7   Verhinderung von Browserangriffen
8   Kryptografie
8.1   Verschlüsselung
8.1.1   Grundbegriffe 8.1.2   Symmetrische Verschlüsselung: Designideen von AES 8.1.3   Asymmetrische Verschlüsselung: Hinter den Kulissen von RSA 8.1.4   RSA: Security-Überlegungen 8.1.5   Diffie-Hellman Key Exchange
8.2   Hash-Funktionen
8.2.1   Grundlegende Eigenschaften von Hash-Funktionen 8.2.2   Angriffe auf Hash-Funktionen 8.2.3   Ausgewählte Architekturen von Hash-Funktionen
8.3   Message Authentication Codes und digitale Signaturen
8.3.1   Message Authentication Codes 8.3.2   Digitale Signaturen
8.4   NIST-Empfehlungen
9   Sicherheitslücken finden und analysieren
9.1   Installation der Windows-Testinfrastruktur
9.1.1   Installation des i.Ftp-Clients 9.1.2   Installation der Debugging-Umgebung 9.1.3   Installation der PyWin-Umgebung
9.2   Manuelle Analyse der Anwendung
9.2.1   Identifikation von Datenkanälen in die Anwendung 9.2.2   Analyse der XML-Konfigurationsdateien
9.3   Automatische Schwachstellensuche mittels Fuzzing 9.4   Analyse des Absturzes im Debugger 9.5   Alternativen zum Fuzzing 9.6   Tools zur Programmanalyse
9.6.1   Olly Debug 9.6.2   Immunity Debugger 9.6.3   WinDebug 9.6.4   x64dbg 9.6.5   IDA Pro 9.6.6   Hopper 9.6.7   GDB – Gnu Debugger 9.6.8   EDB – Evan’s Debugger 9.6.9   Radare2 9.6.10   Zusammenfassung der Tools
10   Buffer Overflows ausnutzen
10.1   Die Crash-Analyse des i.Ftp-Clients 10.2   Offsets ermitteln 10.3   Eigenen Code ausführen 10.4   Umgang mit Bad Characters 10.5   Shellcode generieren
10.5.1   Bind Shellcode 10.5.2   Reverse Shellcode
10.6   Exception Handling ausnutzen 10.7   Analyse unterschiedlicher Buffer-Längen 10.8   Buffer Offsets berechnen 10.9   SEH-Exploits 10.10   Heap Spraying
11   Schutzmaßnahmen einsetzen
11.1   ASLR 11.2   Stack Cookies 11.3   SafeSEH 11.4   SEHOP 11.5   Data Execution Prevention 11.6   Schutz gegen Heap Spraying
12   Schutzmaßnahmen umgehen
12.1   Was sind Reliable Exploits? 12.2   Bypass von ASLR
12.2.1   Review des i.Ftp-Exploits 12.2.2   Verwendung von ASLR-freien Modulen 12.2.3   Verwendung von ASLR-freien Modulen – i.Ftp.exe 12.2.4   Partielles Überschreiben der Sprungadresse 12.2.5   Egg Hunting 12.2.6   Verwendung von ASLR-freien Modulen – Lgi.dll 12.2.7   Brute Force einer Sprungadresse 12.2.8   Partielles Überschreiben der Return-Adresse II 12.2.9   Ermitteln der Adressen aus dem laufenden Programm 12.2.10   Fehlertolerante Sprungbereiche
12.3   Bypass von Stack Cookies 12.4   Bypass von SafeSEH 12.5   Bypass von SEHOP 12.6   Data Execution Prevention (DEP) – Bypass mittels Return Oriented Programming
12.6.1   DEP unter Windows 12.6.2   Return Oriented Programming
12.7   DEP Bypass mittels Return-to-libc
13   Format String Exploits
13.1   Formatstrings 13.2   Die fehlerhafte Anwendung 13.3   Aufbau der Analyseumgebung 13.4   Analyse des Stack-Inhalts 13.5   Speicherstellen mit %n überschreiben 13.6   Die Exploit-Struktur 13.7   Die Ermittlung von Adressen und Offsets 13.8   Die Verifikation der Adressen im Debugger 13.9   Die erste lauffähige Version des Exploits 13.10   ASLR Bypass
14   Real Life Exploitation
14.1   Heartbleed 14.2   SSL OpenFuck 14.3   Shellshock 14.4   Eternal Blue 14.5   Spectre und Meltdown 14.6   Stagefright
Stichwortverzeichnis Rechtliche Hinweise Über den Autor
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion