hacks-leaks-and-revelations icon indicating copy to clipboard operation
hacks-leaks-and-revelations copied to clipboard

Code that goes along with the Hacks, Leaks, and Revelations book

Hacks, Leaks, and Revelations

This git repository contains the code that goes along with the book Hacks, Leaks, and Revelations.

If you find any errors in this repo, please let me know. You can contact me at [email protected].

Part 1: Sources and Datasets

Chapter 1: Protecting Sources and Yourself

  • Exercise 1-1: Encrypt Your Internal Disk
  • Exercise 1-2: Encrypt a USB Disk
  • Exercise 1-3: Install and Use Dangerzone

Chapter 2: Acquiring Datasets

  • Exercise 2-1: Download BlueLeaks
  • Exercise 2-2: Installing and Using Signal
  • Exercise 2-3: Play with Tor and OnionShare

Part 2: Tools of the Trade

Chapter 3: The Command Line Interface

  • Exercise 3-1 for Windows Users: Install Ubuntu in Windows
  • Exercise 3-2 for Mac Users: Manage Packages with Homebrew
  • Exercise 3-3 for Windows and Linux Users: Manage Packages with Apt
  • Exercise 3-4: Practice Using the CLI with cURL
  • Exercise 3-5: Install a Text Editor
  • Exercise 3-6: Write Your First Shell Script
  • Exercise 3-7: Clone the Book's Git Repository

Chapter 4: Exploring Datasets in the Terminal

  • Exercise 4-1: Accessing the BlueLeaks Dataset
  • Exercise 4-2: Exploring BlueLeaks on the Command Line
  • Exercise 4-3: Finding Revelations with Grep
  • Exercise 4-4: Setting Up Your First VPS
  • Exercise 4-5: Exploring the Oath Keepers Dataset Remotely

Chapter 5: Docker, Aleph, and Making Datasets Searchable

  • Exercise 5-1 for Windows and Mac users: Install Docker Desktop
  • Exercise 5-2 for Linux users: Install Docker CE
  • Exercise 5-3: Run a WordPress Site with Docker Compose
  • Exercise 5-4: Run Aleph Locally in Linux Containers
  • Exercise 5-5: Add Part of BlueLeaks to Aleph

Chapter 6: Reading Other People's Emails

  • Exercise 6-1: Download Email Dumps
  • Exercise 6-2: Configure Thunderbird for Email Dumps
  • Exercise 6-3: Import EML Files Into Thunderbird
  • Exercise 6-4: Import MBOX Files Into Thunderbird
  • Exercise 6-5: Import PST Files Into Thunderbird

Part 3: Python Programming

Chapter 7: An Introduction to Python

  • Exercise 7-1: Install Python
  • Exercise 7-2: Your First Python Script
  • Exercise 7-3: Practice the Basics
  • Exercise 7-4: Practice Loops and Control Flow
  • Exercise 7-5: Practice Writing Functions

Chapter 8: Working With Data in Python

  • Exercise 8-1: Traverse the Filesystem
  • Exercise 8-2: Find the Largest Files in BlueLeaks
  • Exercise 8-3: Practice Command Line Arguments with Click
  • Exercise 8-4: Find the Largest Files in Any Dataset
  • Exercise 8-5: Map Out the CSVs in BlueLeaks
  • Exercise 8-6: Practice Reading and Writing Files

Part 4: Structured Data

Chapter 9: BlueLeaks and the CSV File Format

  • Exercise 9-1: Make BlueLeaks CSVs More Readable
  • Exercise 9-2: Make Bulk Emails Readable
  • Exercise 9-3: Make a CSV of BlueLeaks Sites

Chapter 10: BlueLeaks Explorer

  • Exercise 10-1: Install BlueLeaks Explorer
  • Exercise 10-2: Finish Building the Structure for JRIC

Chapter 11: Parler, January 6, and the JSON File Format

  • Exercise 11-1: Download the Parler Video Metadata
  • Exercise 11-2: Write a Script to Filter for Videos with GPS From January 6, 2021
  • Exercise 11-3: Update the Script to Filter for Insurrection Videos
  • Exercise 11-4: Update the Script to Create KML Files to Visualize

Chapter 12: Epik Fail and SQL Databases

  • Exercise 12-1: Create and Test a MySQL Server Using Docker and Adminer
  • Exercise 12-2: Query Your SQL Database
  • Exercise 12-3: Install and Test the Command Line MySQL Client
  • Exercise 12-4: Download and Extract Part of the Epik Dataset
  • Exercise 12-5: Import Epik Data Into MySQL

Part 5: Case Studies

Chapter 13: Pandemic Profiteers and COVID-19 Disinformation

Chapter 14: Neo-Nazis and Their Chat Rooms

Appendixes

Appendix A: Using the Windows Subsystem for Linux

Appendix B: Scraping the Web

  • HTTPX example script
  • Beautiful Soup example script
  • Selenium example script

Licenses

All of the source code in this repository is licensed GPLv3.

All of the human language text in this repository is licensed CC BY-NC-ND 4.0.