Gaining information about current version of an application or operating system in order to find a vulnerability.
Fingerprinting is a term that describes the process of identifying a system based upon the services it runs and the behaviour it exhibits.