Day 0: Fuzzing A Game

0. Introduction

The goal is to fuzz a game! Specifically, we are going to fuzz Counter-Strike 1.6!

I choose this game for several reasons:

In this blog we will be fuzzing:

1. Get The Game!

You can buy/download Counter-Strike 1.6 here.

2. Labortory Setup

  1. Start WireShark
  2. Start TCPView
  3. Start Counter-Strike 1.6

The Counter-Strike 1.6 game engine is called GoldSource. The game engine also has a Software Development Kit (SDK), called Half-Life SDK.

I started the game and I created a server.

I created a Python script to print a table of process IDs, process names, and their associated network port numbers. Knowing the port numbers allows me to filter the network traffic! Here's the output of the script as a table:

Process ID Process Name Port
19112 hl.exe 58479
19112 hl.exe 57438
19112 hl.exe 27005
19112 hl.exe 27015
19112 hl.exe 7025
I updated the Python scirpt to generate WireShark Display Filters for the hl.exe ports.
  tcp.port == 58479 || tcp.port == 57438 || tcp.port == 27005 || tcp.port == 27015 || tcp.port == 27025
Hmm, that didn't seem to work.

2. Standing On The Shoulders of Giants.

Where the writeups at?