I want to know how to remotely detect a software version.
Once attacker knows the version installed, he can exploit published vulnerabilities. So it will be useful to know it when doing penetration testing.
closed as off topic by makerofthings7-C.Lamont, Scott Pack, Iszi, bethlakshmi, Lucas Kauffman Sep 30 '12 at 9:29
Questions on Information Security Stack Exchange are expected to relate to Information security within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here. If this question can be reworded to fit the rules in the help center, please edit the question.
Yes, of course. Service and OS fingerprinting is one of the first steps in the methodology.
Nmap does service fingerprinting and OS detection. But that requires that the service be available to the network (web server, SMB, etc.). You can even connect to a network port with telnet and request the service banner.
If you want to know an installed program that is not network-accessible, then you need to do meta-data analysis of files that the program created, or you need to perform social engineering or open source searches to get the version info. For instance, has an employee of the company posted on a tech support forum and revealed the version they use?
I see that the original version of the question asked for a specific service. For that, you can try nmap to see if that service will return a banner, or use the non-network accessible option I laid out above.