I want to write a python script that is able to fingerprint ports on a server to identify the FTP client running on the port.

While there is often a Banner message upon connection, this message is not reliable or can be removed easily.

Is there any tool / database etc available which can help to identify the different clients by behavior? e.g. by digging through source code i noticed that the PyFTPd Server uses the message "I'm going to ignore this command..." which can be used to identify that service.

I am happy for any help, as many FTP commands are supported and included in all daemons so it is difficult to find all the differences... I am trying to distinguish between

  • I would suggest to use nmap or zmap – CDRohling Nov 19 '19 at 22:51

The standard tool on Kali is nmap, specifically with the -sV or -A option.

If that doesn't detect your application or version properly, you can contact the developers.

You may be able to dig through the nmap source code to figure out how their detection works, but consider yourself warned: detection routines almost always includes a massive pile of regular expressions to puzzle through.

I've found nmap to be fairly reliable, but we don't run any of the daemons you've listed so I don't know if it can detect those.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.