lehrerbibliothek.deDatenschutzerklärung
Hacking  Die Kunst des Exploits Deutsche Ausgabe der 2. amerikanischen Auflage
Hacking
Die Kunst des Exploits


Deutsche Ausgabe der 2. amerikanischen Auflage

Jon Erickson

dpunkt.verlag
EAN: 9783898645362 (ISBN: 3-89864-536-3)
518 Seiten, paperback, 16 x 24cm, September, 2008

EUR 46,00
alle Angaben ohne Gewähr

Umschlagtext
Jon Erickson

Hacking



"Hacking" ist die Kunst, kreativ Probleme zu lösen – vom Entwickeln einer unkonventionellen Programmierlösung bis hin zum Aufdecken von Sicherheitslöchern in einem schlampig entworfenen Programm. Viele Menschen bezeichnen sich als Hacker, aber nur wenige besitzen das eigentlich notwendige Hintergrundwissen.



Jon Erickson zeigt nicht, wie man sich existierende Exploits beschafft und diese einsetzt, sondern vermittelt detailliert, wie Hacking-Techniken und Exploits tatsächlich funktionieren. Dazu führt er aus einer Hacker-Perspektive in die Grundlagen der Programmiersprache C ein und erklärt die wesentlichen Aspekte der Computersicherheit in den drei eng zusammenhängenden Bereichen Programmierung, Vernetzung und Kryptografie.



Nach der Lektüre werden Sie u.a. verstehen:



- wie man in C, Assembler und mit Shell-Skripten programmiert,

- wie man den Hauptspeicher durch Buffer Overflows und Format-String-Angriffe korrumpiert,

- wie man Prozessor-Register und Hauptspeicher mit einem Debugger untersucht und so die Programmabläufe nachvollzieht,

- wie man gängige Sicherheitsbarrieren – z.B. Intrusion-Detection-Systeme – überlistet,

- wie man sich mit Port-Binding Zugang zu fremden Servern verschafft,

- wie man Netzwerkverkehr umleitet und TCP-Verbindungen übernimmt.



Mit der beiliegenden Live-CD und den darauf enthaltenen Beispielen können Sie die neu erworbenen Kenntnisse gleich praktisch anwenden.



In der zweiten Auflage wurden alle Kapitel aktualisiert und erweitert, insbesondere die Einführung in die grundlegenden Funktionsweise eines Computers.



Auf der CD / DVD:

* Boot-fähiges Linux-System

* Debugging- und Programmier-Tools

* Beispielcodes



Zielgruppe:

* Programmierer

* Systemadministratoren
Rezension
Was finden "Hacker" überhaupt dabei, in andere Rechner einzudringen? Warum hauen sie sich Nächte um die Ohren - ohne irgendeinen materiellen Gewinn von ihren Taten zu haben? Wer dieses Buch gelesen hat, wird nicht nur viel über Computer und das Programmieren erfahren haben, er wird auch die Faszination verstehen, die es bereitet, durch genaue Kenntnis der Hard- und Software die Maschine dazu zu bringen, das zu tun was man selber - und kein anderer Programmierer oder Computerbauer - wollte.
Dabei ist diese Buch sicher kein Buch für den Laien. Auch wenn die ersten Kapitel eine Einführung ins Programmieren bieten, merkt man recht bald, dass doch Kenntnisse in IT vorausgesetzt sind. Es ist dennoch faszinierend wie es Jon Erickson gelingt, den eigentlich spröden Stoff doch so faszinierend zu beschreiben, dass man sich durch dieses Buch durchbeißt. Dazu trägt auch die die beigefügte CD mit einer Linux Entwicklungsumgebung bei, die hilft die Beispiele aus dem Buch nachzuvollziehen. So verwundert es nicht, dass dieses Buch in den USA schon eine zweite Auflage erlebt hat, und dort zu den Standartwerken in diesem Bereich zählt.
Verlagsinfo
Jon Erickson
Hacking
Die Kunst des Exploits

"Hacking" ist die Kunst, kreativ Probleme zu lösen – vom Entwickeln einer unkonventionellen Programmierlösung bis hin zum Aufdecken von Sicherheitslöchern in einem schlampig entworfenen Programm. Viele Menschen bezeichnen sich als Hacker, aber nur wenige besitzen das eigentlich notwendige Hintergrundwissen.

Jon Erickson zeigt nicht, wie man sich existierende Exploits beschafft und diese einsetzt, sondern vermittelt detailliert, wie Hacking-Techniken und Exploits tatsächlich funktionieren. Dazu führt er aus einer Hacker-Perspektive in die Grundlagen der Programmiersprache C ein und erklärt die wesentlichen Aspekte der Computersicherheit in den drei eng zusammenhängenden Bereichen Programmierung, Vernetzung und Kryptografie.

Mit der beiliegenden Live-CD und den darauf enthaltenen Beispielen können Sie die neu erworbenen Kenntnisse auch gleich praktisch anwenden.

Nach der Lektüre werden Sie u.a. verstehen:

- wie man in C, Assembler und mit Shell-Skripten programmiert,
- wie man den Hauptspeicher durch Buffer Overflows und Format-String-Angriffe korrumpiert,
- wie man Prozessor-Register und Hauptspeicher mit einem Debugger untersucht und so die Programmabläufe nachvollzieht,
- wie man gängige Sicherheitsbarrieren – z.B. Intrusion-Detection-Systeme – überlistet,
- wie man sich mit Port-Binding Zugang zu fremden Servern verschafft,
- wie man Netzwerkverkehr umleitet und TCP-Verbindungen übernimmt.

Mit der beiliegenden Live-CD und den darauf enthaltenen Beispielen können Sie die neu erworbenen Kenntnisse gleich praktisch anwenden.

In der zweiten Auflage wurden alle Kapitel aktualisiert und erweitert, insbesondere die Einführung in die grundlegenden Funktionsweise eines Computers.

Auf der CD / DVD:
* Boot-fähiges Linux-System
* Debugging- und Programmier-Tools
* Beispielcodes

Zielgruppe:
* Programmierer
* Systemadministratoren

Autor / Autorin:
Jon Erickson hat ein Informatikstudium absolviert und hält häufig Vorträge auf Konferenzen über Computersicherheit überall auf der Welt. Er arbeitet als Kryptologe und Sicherheitsspezialist im Norden von Kalifornien.
Inhaltsverzeichnis
0x100 Einführung 1
0x200 Programmierung 7
0x210 Was ist Programmierung? 8
0x220 Pseudocode 9
0x230 Kontrollstrukturen 10
0x231 If-then-else 10
0x232 While/Until-Schleifen 12
0x233 For-Schleifen 13
0x240 Weitere grundlegende Programmierkonzepte 14
0x241 Variablen 14
0x242 Arithmetische Operatoren 15
0x243 Vergleichsoperatoren 17
0x244 Funktionen 19
0x250 Die Hände schmutzig machen 22
0x251 Das große Ganze 24
0x252 Der x86-Prozessor 27
0x253 Assembler-Sprache 29
0x260 Zurück zu den Wurzeln 43
0x261 Strings 43
0x262 Signed, Unsigned, Long und Short 48
0x263 Zeiger 50
0x264 Formatstrings 54
0x265 Typecasting 58
0x266 Kommandozeilenargumente 65
0x267 Geltungsbereich von Variablen (Scoping) 69
0x270 Speichersegmentierung 77
0x271 Speichersegmente in C 85
0x272 Den Heap nutzen 87
0x273 Fehlerprüfendes malloc() 89
0x280 Auf den Grundlagen aufbauen 91
0x281 Dateizugriff 91
0x282 Zugriffsrechte 97
0x283 Benutzer-IDs 99
0x284 Strukturen (structs) 108
0x285 Funktionszeiger 112
0x286 Pseudozufallszahlen 113
0x287 Ein Glücksspiel 115
0x300Exploits 127
0x310 Allgemeine Exploit-Techniken 130
0x320 Pufferüberlauf (Buffer Overflow) 131
0x321 Stackbasierte Pufferüberlauf-Schwachstellen 134
0x330 Experimente mit BASH 146
0x331 Die Umgebung nutzen 156
0x340 Überläufe in anderen Segmenten 165
0x341 Ein grundlegender heapbasierter Überlauf 165
0x342 Überflutung von Funktionszeigern 171
0x350 Formatstrings 183
0x351 Formatparameter 183
0x352 Die Formatstring-Sicherheitslücke 186
0x353 Beliebige Speicheradressen lesen 188
0x354 An beliebige Speicheradressen schreiben 189
0x355 Direkter Parameterzugriff 197
0x356 Short Writes nutzen 199
0x357 Umwege mit .dtors 201
0x358 Eine weitere notesearch-Sicherheitslücke 207
0x359 Überschreiben der globalen Offset-Tabelle 209
0x400 Netzwerke 213
0x410 OSI-Modell 213
0x420 Sockets 216
0x421 Socket-Funktionen 217
0x422 Socket-Adressen 219
0x423 Netzwerk-Bytereihenfolge 221
0x424 Konvertierung von Internetadressen 222
0x425 Ein einfaches Server-Beispiel 222
0x426 Ein Webclient-Beispiel 227
0x427 Ein Tinyweb-Server 233
0x430 Die tieferen Schichten 237
0x431 Sicherungsschicht 238
0x432 Vermittlungsschicht 240
0x433 Transportschicht 242
0x440 Netzwerk-Sniffing 245
0x441 Raw-Socket-Sniffer 247
0x442 libpcap-Sniffer 249
0x443 Decodierung der Schichten 251
0x444 Aktives Sniffing 261
0x450 Denial of Service 274
0x451 SYN-Flooding 274
0x452 Der Ping des Todes 279
0x453 Teardrop 279
0x454 Ping-Flooding 280
0x455 Verstärkende Angriffe 280
0x456 Verteiltes DoS-Flooding 281
0x460 TCP/IP-Hijacking 281
0x461 RST-Hijacking 282
0x462 Fortlaufendes Hijacking 287
0x470 Port-Scanning 287
0x471 Verdeckter (Stealth) SYN-Scan 288
0x472 FIN-, X-mas- und Null-Scans 288
0x473 Spoofing mit »Lockadressen« 289
0x474 Idle-Scanning 289
0x475 Proaktive Abwehr (shroud) 291
0x480 Hole aus und hacke jemanden 297
0x481 Analyse mit GDB 298
0x482 Zählt nur rohe Gewalt? 300
0x483 Port-bindender Shellcode 303
0x500Shellcode 307
0x510 Assembler versus C 307
0x511 Linux-Systemaufrufe in Assembler 310
0x520 Der Weg zum Shellcode 313
0x521 Den Stack nutzende Assembler-Instruktionen 313
0x522 Untersuchung mit GDB 315
0x523 Nullbytes entfernen 317
0x530 Shellcode zum Öffnen einer Shell 322
0x531 Eine Frage der Privilegien 327
0x532 Und noch kleiner 330
0x540 Port-bindender Shellcode 331
0x541 Standarddateideskriptoren duplizieren 336
0x542 Sprung-Kontrollstrukturen 338
0x550 Shellcode zum Herstellen von Verbindungen 343
0x600 Gegenmaßnahmen 349
0x610 Erkennende Gegenmaßnahmen 350
0x620 System-Daemons 350
0x621 Signal-Crashkurs 352
0x622 Tinyweb-Daemon 354
0x630 Handwerkszeug 358
0x631 Exploit-Tool tinywebd 359
0x640 Log-Dateien 364
0x641 Mischen Sie sich unters Volk 365
0x650 Das Offensichtliche übersehen 367
0x651 Ein Schritt nach dem anderen 367
0x652 Die Dinge wieder zurechtrücken 372
0x653 Kinderarbeit 378
0x660 Tarnung für Fortgeschrittene 380
0x661 Geloggte IP-Adresse fälschen 380
0x662 Exploit ohne Log 385
0x670 Die gesamte Infrastruktur 388
0x671 Sockets wiederverwenden 388
0x680 Nutzdaten einschmuggeln 393
0x681 Stringcodierung 393
0x682 Wie man einen NOP-Block versteckt 397
0x690 Puffer-Beschränkungen 397
0x691 Polymorpher druckbarer ASCII-Shellcode 400
0x6a0 Die Gegenmaßnahmen verbessern 411
0x6b0 Nicht ausführbarer Stack 411
0x6b1 ret2libc 412
0x6b2 Rückkehr nach system() 412
0x6c0 Zufälliger Stackbereich 414
0x6c1 Untersuchungen mit BASH und GDB 416
0x6c2 Aus linux-gate herausspringen 420
0x6c3 Angewandtes Wissen 424
0x6c4 Ein erster Versuch 424
0x6c5 Überlegenheit ausspielen 426
0x700 Kryptologie 429
0x710 Informationstheorie 430
0x711 Unbedingte Sicherheit 430
0x712 One-Time-Pads 430
0x713 Quanten-Schlüsselverteilung 431
0x714 Effektive Sicherheit 432
0x720 Laufzeit eines Algorithmus 433
0x721 Asymptotische Notation 434
0x730 Symmetrische Verschlüsselung 434
0x731 Lov Grovers Quanten-Suchalgorithmus 436
0x740 Asymmetrische Verschlüsselung 436
0x741 RSA 437
0x742 Peter Shors Quanten-Faktorisierungsalgorithmus 441
0x750 Hybride Chiffren 442
0x751 Man-in-the-Middle-Angriffe 443
0x752 Unterschiedliche Host-Fingerprints der SSH-Protokolle 447
0x753 Fuzzy Fingerprints 451
0x760 Passwörter knacken 455
0x761 Dictionary-Angriffe 457
0x762 Vollständige Brute-Force-Angriffe 460
0x763 Hash-Lookup-Tabelle 461
0x764 Passwort-Wahrscheinlichkeitsmatrix 462
0x770 Drahtlose 802.11b-Verschlüsselung 472
0x771 Wired Equivalent Privacy 472
0x772 Stromchiffre RC4 474
0x780 WEP-Angriffe 475
0x781 Offline Brute-Force-Angriffe 475
0x782 Wiederverwendung von Schlüsselströmen 476
0x783 IV-basierte Enschlüsselungstabellen 477
0x784 IP-Redirection 477
0x785 Fluhrer-Mantin-Shamir-Angriff 479
0x800 Fazit 489
Literatur 491
Referenzen 491
Quellen 492

Index 493