Samba XP fuzzing tutorial prerequisites
douglas.bagnall at catalyst.net.nz
Wed May 5 08:59:03 UTC 2021
Roughly tomorrow (depending on your timezone), at SambaXP, I will do a
sort of introductory tutorial to fuzzing Samba.
Most likely you don't need to read this because you are either not
attending SambaXP, or you are gong to watch Namjae Jeon talking about
cifsd/ksmbd and Ralph Böhme about VFS changes, both of which are
concurrent with this.
Also, it is completely OK to just follow along passively or discursively.
But if you *do* want to join in with actual fuzzing, it will help if you
have the following bits ready in advance.
1. A clean Samba git checkout, and all the build dependencies. On a bare
cloud instance, you can do something like:
$ git clone git://git.samba.org/samba.git
$ cd samba
$ sudo bootstrap/generated-dists/ubuntu2004/bootstrap.sh
replacing 'ubuntu2004' with something else there if it sounds more like
your distro. There are limited choices. For an existing samba tree, just
de-configure it with `rm -r bin`.
2. Honggfuzz and its compilation prerequisites
$ cd ..
$ git clone https://github.com/google/honggfuzz.git
$ sudo apt install libbfd-dev libunwind-dev clang-11
$ cd honggfuzz
It doesn't need to be clang-11; apparently anything >= clang-5 is OK.
3. The samba-fuzz-seeds repository
$ cd ..
$ git clone https://gitlab.com/samba-team/samba-fuzz-seeds.git
and you can just leave that one sitting there mysteriously for now.
More information about the samba-technical