Title Page
Copyright Page
About the Author
About the Technical Reviewer
Brief Contents
Contents in Detail
Foreword by Katie Moussouris
Acknowledgments
Introduction
Why Read This Book?
What’s in This Book?
How to Use This Book
Contact Me
Chapter 1: The Basics of Networking
Network Architecture and Protocols
The Internet Protocol Suite
Data Encapsulation
Network Routing
My Model for Network Protocol Analysis
Final Words
Chapter 2: Capturing Application Traffic
Passive Network Traffic Capture
Quick Primer for Wireshark
Alternative Passive Capture Techniques
Advantages and Disadvantages of Passive Capture
Active Network Traffic Capture
Network Proxies
Final Words
Chapter 3: Network Protocol Structures
Binary Protocol Structures
Dates and Times
Tag, Length, Value Pattern
Multiplexing and Fragmentation
Network Address Information
Structured Binary Formats
Text Protocol Structures
Encoding Binary Data
Final Words
Chapter 4: Advanced Application Traffic Capture
Rerouting Traffic
Configuring a Router
Network Address Translation
Forwarding Traffic to a Gateway
Final Words
Chapter 5: Analysis from the Wire
The Traffic-Producing Application: SuperFunkyChat
A Crash Course in Analysis with Wireshark
Identifying Packet Structure with Hex Dump
Developing Wireshark Dissectors in Lua
Using a Proxy to Actively Analyze Traffic
Final Words
Chapter 6: Application Reverse Engineering
Compilers, Interpreters, and Assemblers
The x86 Architecture
Operating System Basics
Static Reverse Engineering
Dynamic Reverse Engineering
Reverse Engineering Managed Languages
Reverse Engineering Resources
Final Words
Chapter 7: Network Protocol Security
Encryption Algorithms
Random Number Generators
Symmetric Key Cryptography
Asymmetric Key Cryptography
Signature Algorithms
Public Key Infrastructure
Case Study: Transport Layer Security
Final Words
Chapter 8: Implementing the Network Protocol
Replaying Existing Captured Network Traffic
Repurposing Existing Executable Code
Encryption and Dealing with TLS
Final Words
Chapter 9: The Root Causes of Vulnerabilities
Vulnerability Classes
Memory Corruption Vulnerabilities
Default or Hardcoded Credentials
User Enumeration
Incorrect Resource Access
Memory Exhaustion Attacks
Storage Exhaustion Attacks
CPU Exhaustion Attacks
Format String Vulnerabilities
Command Injection
SQL Injection
Text-Encoding Character Replacement
Final Words
Chapter 10: Finding and Exploiting Security Vulnerabilities
Fuzz Testing
Vulnerability Triaging
Exploiting Common Vulnerabilities
Writing Shell Code
Memory Corruption Exploit Mitigations
Final Words
Appendix: Network Protocol Analysis Toolkit
Passive Network Protocol Capture and Analysis Tools
Active Network Capture and Analysis
Network Connectivity and Protocol Testing
Web Application Testing
Fuzzing, Packet Generation, and Vulnerability Exploitation Frameworks
Network Spoofing and Redirection
Executable Reverse Engineering
Index
Resources
The Electronic Frontier Foundation (EFF)
Footnotes