# Fuzzing ISC BIND (verified with 9.15.4) # **Requirements** * honggfuzz (1.9 or from the master branch) * clang-5.0 or newer (the newer, the better) * ISC Bind (tested with 9.15.4) **Preparation** 1. Compile honggfuzz 2. Download bind-9.15.4.tgz from https://downloads.isc.org/isc/bind9/ 3. Decompress/unpack and patch it ```shell $ cd $ tar -xvzf bind-9.15.4.tar.gz $ cd bind-9.15.4 $ patch -p1 < /examples/bind/bind-9.15.4.patch $ chmod 755 compile.sh ``` 4. Configure, compile and install ISC Bind * edit _compile.sh_, so it contains the correct dist (_--prefix_) path ```shell $ vim compile.sh # [edit the --prefix] $ ./compile.sh $ make install ``` 5. Copy the custom configuration files to ```/bind/dist/etc/named.conf``` (i.e. to your bind/named dist directory) ```shell $ cp honggfuzz/examples/bind/named.conf /bind/dist/etc/ $ cp honggfuzz/examples/bind/test.zone /bind/dist/etc/ ``` 6. Fix the _directory_ configuration directive inside your /bind/dist/etc/named.conf ```shell $ vim /bind/dist/etc/named.conf # [edit the *directory* directive] ``` 7. **Fuzz it!** ```shell $ /honggfuzz -i input_corpus -- ./dist/sbin/named -c /bind/dist/etc/named.conf -g ```