Today, I worked on the TCP server a bit more. Some progress was made, but it took roughly one hour to complete:
- Banners work now. Clients connecting can now be sent a static string to mimic your favorite server.
- send and recv methods for dealing with socket I/O.
- General code cleanup. Corrected a few pylint warnings.
- Added IP address validation for bindaddr.
Some goals for the future are:
- Ability to make “scripts” for fuzzing similar to the CLI fuzzer.
- Ability to save position in case a client gets disconnected. No need to start over from the beginning.
- Expect support: client sends specific string, server reacts accordingly.
- Binary protocol support.
- TCPFuzzServer object that can be imported into a Python script and used to make a fuzzer very quickly for any protocol that uses TCP.
Sorry for the brief post today. Real life was pretty demanding.