Dig Dug: The Lost Art of Network Tunneling

Workshop Prerequisites

DEFCON 30



The Dig Dug workshop can be completed in either Python or C++. Please bring a laptop to the workshop. There might not be power outlets nearby so make sure your laptop is fully charged beforehand. Your laptop should be configured for either the Python or the C++ environments (or both if you like a challenge). Coming to the workshop prepared will allow you to enjoy the workshop more. To minimize the chance of problems during the workshop, please configure your laptop for BOTH Python and C++. This way, if one of them is misconfigured you will still have the other as a backup! Isn't redundancy great? =)


Workshop Files



Overview


  • For the Python workshop... Python 3.x is required (www.python.org/downloads)
  • For the C++ workshop... a compiler with C++ 17 support and CMake (version 3.13 or later) are required. MSVC, GCC and Clang compilers are all supported.
  • You'll be writing some code, so make sure that you have a good text editor installed. Visual Studio, Notepad++, or Gnome Gedit are all good choices.
  • Visual Studio 2022 Community Edition is my preferred choice for a development environment. CMake comes bundled with Visual Studio 2022 if you choose the "Desktop development with C++" during the installation wizard. (www.visualstudio.microsoft.com/downloads). I've only tested the Linux environment with gcc and CMake so you might want to stick with these for Linux laptops.
  • Please configure your laptop ahead of time for either the Python or C++ workshop. You will enjoy the workshop more if you aren't fighting with your OS during the 4 hours. But if for some reason your laptop isn't properly configured, there will be USB drives available with Python binaries (as a last-ditch Hail Mary). This is probably the ONLY TIME at DEFCON that you can trust a stranger's USB drive. You could theoretically also attempt to configure your laptop at the beginning of the workshop if you have Internet connectivity. For this to happen, you will need to provide your own Internet (tether to your phone, etc) since the workshop doesn't provide any.

Windows OS


  • Tested on Windows 10, but other versions of Windows should also work.
  • For the Python workshop... download & run python-3.10.6.exe (32 bit) or python-3.10.6-amd64.exe (64 bit).
  • For the C++ workshop... install Visual Studio 2022 Community Edition and choose "Desktop development with C++" during the installation wizard to get CMake as well.

Linux OS


  • The workshop will work on a variety of Linux distros. I tested on Debian 11.4.0.
  • For the Python workshop... you can "apt-get install python3". You can also download & extract Python-3.10.6.tar.xz or Python-3.10.6.tgz. Follow the instructions in the Python README file. You will need to build & install Python manually. (apt-get is the easy way imho)
  • For the C++ workshop... install build-essential: "apt-get install build-essential". This will install the GCC compiler. Then, you can install CMake: "apt-get install cmake". You can verify both at the cmd prompt via "gcc --version" and "cmake --version"
  • NOTE: I did NOT test Visual Studio/Code on Linux. For Linux laptops my recommendation would be to stick with GCC and CMake so that you don't have problems during the workshop. You definitely can't go wrong with Linux, GCC, and CMake.

Mac OS


  • Not tested on Mac since I don't have one. However, there is no reason the workshop shouldn't work fine on a Mac, assuming you have the following installed.
  • For the Python workshop... download & run python-3.10.6-macos11.pkg
  • For the C++ workshop... install Visual Studio 2022 Community Edition and choose "Desktop development with C++" during the installation wizard to get CMake as well.
  • As long as you have a C++ 17 compiler (MSVC, GCC, Clang) and CMake 3.13 or greater installed, you should be able to complete the workshop.