Table of contents
- About Book:
- What’s in This Book?
- Contents in detail
- Chapter 1: THE BASICS OF NETWORKING
- Chapter 2: CAPTURING APPLICATION TRAFFIC
- Chapter 3: NETWORK PROTOCOL STRUCTURES
- Chapter 4: ADVANCED APPLICATION TRAFFIC CAPTURE
- Chapter 5: ANALYSIS FROM THE WIRE
- Chapter 6: APPLICATION REVERSE ENGINEERING
- Chapter 7: NETWORK PROTOCOL SECURITY
- Chapter 8: IMPLEMENTING THE NETWORK PROTOCOL
- Chapter 9: THE ROOT CAUSES OF VULNERABILITIES
- Chapter 10: FINDING AND EXPLOITING SECURITY VULNERABILITIES
بسم الله الرحمن الرحيم , اللهم صلي و سلم و بارك علي سيدنا محمد صلي الله عليه وسلم
About Book:
About the Author: James Forshaw is a renowned computer security researcher at Google Project Zero
Book on amazon: Attacking Network Protocols: A Hacker’s Guide to Capture, Analysis, and Exploitation
This book is named Attacking Network Protocols because to find security vulnerabilities in a network-connected device.
The book aims to equip readers with the mindset of attackers to identify vulnerabilities in network-connected devices, particularly focusing on network protocols. While many resources cover network traffic capture for diagnostics, this book stands out by emphasizing the security aspects of protocol analysis.
What’s in This Book?
Here’s a breakdown of the chapters:
Chapter 1 (Basics of Networking): Covers fundamental concepts and introduces a model for protocol analysis.
Chapter 2 (Capturing Application Traffic): Introduces passive and active capture techniques using Canape Core.
Chapter 3 (Network Protocol Structures): Explores common structures in network protocols for faster analysis.
Chapter 4 (Advanced Application Traffic Capture) : Discusses advanced capture techniques like NAT configuration and ARP spoofing.
Chapter 5 (Analysis from the Wire): Introduces methods for analyzing captured traffic using the
SuperFunkyChat
application.Chapter 6 (Application Reverse Engineering): Describes techniques for reverse engineering network-connected programs.
Chapter 7 (Network Protocol Security): Provides background on securing network protocols.
Chapter 8 (Implementing the Network Protocol): Explains implementing application network protocols for testing.
Chapter 9 (The Root Causes of Vulnerabilities): Describes common security vulnerabilities in network protocols.
Chapter 10 (Finding and Exploiting Security Vulnerabilities): Guides on discovering and exploiting vulnerabilities, including shell code development and exploit mitigation bypass.
💡 The book covers all content in detail, including some information. I’ll provide resources in each chapter that can assist both you and me.
Contents in detail
Chapter 1: THE BASICS OF NETWORKING
1.1 Network Architecture and Protocols
1.2 The Internet Protocol Suite
1.3 Data Encapsulation
Headers, Footers, and Addresses
Data Transmission
1.4 Network Routing
1.5 My Model for Network Protocol Analysis
Final Words
Chapter 2: CAPTURING APPLICATION TRAFFIC
2.1 Passive Network Traffic Capture
2.2 Quick Primer for Wireshark
2.3 Alternative Passive Capture Techniques
System Call Tracing
The
strace
Utility on LinuxMonitoring Network Connections with
DTrace
Process Monitor on Windows
2.4 Advantages and Disadvantages of Passive Capture
2.5 Active Network Traffic Capture
2.6 Network Proxies
Port-Forwarding Proxy
SOCKS Proxy
HTTP Proxies
Forwarding an HTTP Proxy
Reverse HTTP Proxy
Final Words
Chapter 3: NETWORK PROTOCOL STRUCTURES
3.1 Binary Protocol Structures
Numeric Data
Booleans
Bit Flags
Binary Endian
Text and Human-Readable Data
Variable Binary Length Data
3.2 Dates and Times
POSIX/Unix Time
Windows FILETIME
3.3 Tag, Length, Value Pattern
3.4 Multiplexing and Fragmentation
3.5 Network Address Information
3.6 Structured Binary Formats
3.7 Text Protocol Structures
Numeric Data
Text Booleans
Dates and Times
Variable-Length Data
Structured Text Formats
3.8 Encoding Binary Data
Hex Encoding
Base64
Final Words
Chapter 4: ADVANCED APPLICATION TRAFFIC CAPTURE
4.1 Rerouting Traffic
Using Traceroute
Routing Tables
4.2 Configuring a Router
Enabling Routing on Windows
Enabling Routing on *nix
4.3 Network Address Translation
Enabling SNAT
Configuring SNAT on Linux
Enabling DNAT
4.4 Forwarding Traffic to a Gateway
DHCP Spoofing
ARP Poisoning
Final Words
Chapter 5: ANALYSIS FROM THE WIRE
5.1 The Traffic-Producing Application:
SuperFunkyChat
Starting the Server
Starting Clients
Communicating Between Clients
5.2 A Crash Course in Analysis with Wireshark
Generating Network Traffic and Capturing Packets
Basic Analysis
Reading the Contents of a TCP Session
5.3 Identifying Packet Structure with Hex Dump
Viewing Individual Packets
Determining the Protocol Structure
Testing Our Assumptions
Dissecting the Protocol with Python
5.4 Developing Wireshark Dissectors in Lua
Creating the Dissector
The Lua Dissection
Parsing a Message Packet
5.6 Using a Proxy to Actively Analyze Traffic
Setting Up the Proxy
Protocol Analysis Using a Proxy
Adding Basic Protocol Parsing
Changing Protocol Behavior
Final Words
Chapter 6: APPLICATION REVERSE ENGINEERING
6.1 Compilers, Interpreters, and Assemblers
Interpreted Languages
Compiled Languages
Static vs. Dynamic Linking
6.2 The x86 Architecture
The Instruction Set Architecture
CPU Registers
Program Flow
6.3 Operating System Basics
Executable File Formats
Sections
Processes and Threads
Operating System Networking Interface
Application Binary Interface
6.3 Static Reverse Engineering
A Quick Guide to Using IDA Pro Free Edition
Analyzing Stack Variables and Arguments
Identifying Key Functionality
6.4 Dynamic Reverse Engineering
Setting Breakpoints
Debugger Windows
Where to Set Breakpoints?
6.5 Reverse Engineering Managed Languages
.NET Applications
Using ILSpy
Java Applications
Dealing with Obfuscation
6.6 Reverse Engineering Resources
Final Words
Chapter 7: NETWORK PROTOCOL SECURITY
7.1 Encryption Algorithms
Substitution Ciphers
XOR Encryption
7.2 Random Number Generators
7.3 Symmetric Key Cryptography
Block Ciphers
Block Cipher Modes
Block Cipher Padding
Padding Oracle Attack
Stream Ciphers
7.4 Asymmetric Key Cryptography
RSA Algorithm
RSA Padding
Diffie–Hellman Key Exchange
7.5 Signature Algorithms
Cryptographic Hashing Algorithms
Asymmetric Signature Algorithms
Message Authentication Codes
7.6 Public Key Infrastructure
X.509 Certificates
Verifying a Certificate Chain
7.7 Case Study: Transport Layer Security
The TLS Handshake
Initial Negotiation
Endpoint Authentication
Establishing Encryption
Meeting Security Requirements
Final Words
Chapter 8: IMPLEMENTING THE NETWORK PROTOCOL
8.1 Replaying Existing Captured Network Traffic
Capturing Traffic with Netcat
Using Python to Resend Captured UDP Traffic
Repurposing Our Analysis Proxy
8.2 Repurposing Existing Executable Code
Repurposing Code in .NET Applications
Repurposing Code in Java Applications
Unmanaged Executables
8.3 Encryption and Dealing with TLS
Learning About the Encryption In Use
Decrypting the TLS Traffic
Final Words
Chapter 9: THE ROOT CAUSES OF VULNERABILITIES
9.1 Vulnerability Classes
Remote Code Execution
Denial-of-Service
Information Disclosure
Authentication Bypass
Authorization Bypass
9.2 Memory Corruption Vulnerabilities
Memory-Safe vs. Memory-Unsafe Programming Languages
Memory Buffer Overflows
Out-of-Bounds Buffer Indexing
Data Expansion Attack
Dynamic Memory Allocation Failures
9.3 Default or Hardcoded Credentials
9.4 User Enumeration
9.5 Incorrect Resource Access
Canonicalization
Verbose Errors
9.6 Memory Exhaustion Attacks
9.7 Storage Exhaustion Attacks
9.8 CPU Exhaustion Attacks
Algorithmic Complexity
Configurable Cryptography
9.10 Format String Vulnerabilities
9.11 Command Injection
9.12 SQL Injection
9.13 Text-Encoding Character Replacement
Final Words
Chapter 10: FINDING AND EXPLOITING SECURITY VULNERABILITIES
10.1 Fuzz Testing
The Simplest Fuzz Test
Mutation Fuzzer
Generating Test Cases
10.2 Vulnerability Triaging
Debugging Applications
Improving Your Chances of Finding the Root Cause of a Crash
10.3 Exploiting Common Vulnerabilities
Exploiting Memory Corruption Vulnerabilities
Arbitrary Memory Write Vulnerability
10.4 Writing Shell Code
Getting Started
Simple Debugging Technique
Calling System Calls
Executing the Other Programs
Generating Shell Code with Metasploit
10.5 Memory Corruption Exploit Mitigations
Data Execution Prevention
Return-Oriented Programming Counter-Exploit
Address Space Layout Randomization (ASLR)
Detecting Stack Overflows with Memory Canaries
Final Words
10.6 NETWORK PROTOCOL ANALYSIS TOOLKIT
10.6.1 Passive Network Protocol Capture and Analysis Tools
Microsoft Message Analyzer
TCPDump and LibPCAP
Wireshark
10.6.2 Active Network Capture and Analysis
Canape
Canape Core
Mallory
10.6.3 Network Connectivity and Protocol Testing
Hping
Netcat
Nmap
10.6.4 Web Application Testing
Burp Suite
Zed Attack Proxy (ZAP)
Mitmproxy
10.6.5 Fuzzing, Packet Generation, and Vulnerability Exploitation Frameworks
American Fuzzy Lop (AFL)
Kali Linux
Metasploit Framework
Scapy
Sulley
10.6.6 Network Spoofing and Redirection
DNSMasq
Ettercap
10.6.7 Executable Reverse Engineering
Java Decompiler (JD)
IDA Pro
Hopper
ILSpy
.NET Reflector
❤️ Thanks to complete bro, follow me here : Twitter