nmap_vscan can finish Service and Application Version Detection without Nmap installation. It is not an official release from the Nmap Project.
- Python 2.7
- Works on Linux, Windows, Mac OSX, BSD
The quick way:
pip install nmap_vscan
Please download https://svn.nmap.org/nmap/nmap-service-probes at first.
>>> from nmap_vscan import vscan >>> nmap = vscan.ServiceScan('./nmap-service-probes')
Let's try to scan HTTP, MYSQL, SSH, REDIS and so on.
>>> nmap.scan('www.apache.org', 80, "tcp") {'match': {'pattern': '^HTTP/1\\.[01] \\d\\d\\d .*\\r\\nServer: Apache[/ ](\\d[-.\\w]+) ([^\\r\\n]+)', 'versioninfo': {'cpename': ['apache:http_server:2.4.7'], 'devicetype': [' v'], 'hostname': [], 'info': ['(Ubuntu)'], 'operatingsystem': [], 'vendorproductname': ['Apache httpd'], 'version': ['2.4.7']}}, 'probe': {'probename': 'GetRequest', 'probestring': 'GET / HTTP/1.0\\r\\n\\r\\n'}}>>> nmap.scan('192.168.1.245', 3306, 'tcp') {'match': {'pattern': '^.\\0\\0\\0\\x0a(5\\.[-_~.+\\w]+)\\0', 'versioninfo': {'cpename': ['mysql:mysql:5.5.28-log'], 'hostname': [], 'info': [], 'operatingsystem': [], 'vendorproductname': ['MySQL'], 'version': ['5.5.28-log']}}, 'probe': {'probename': 'NULL', 'probestring': ''}}>>> nmap.scan('192.168.1.245', 6379, 'tcp') {'match': {'pattern': '^\\$\\d+\\r\\n(?:#[^\\r\\n]*\\r\\n)*redis_version:([.\\d]+)\\r\\n', 'versioninfo': {'cpename': [], 'hostname': [], 'info': [], 'operatingsystem': [], 'vendorproductname': ['Redis key-value store'], 'version': ['2.6.12']}}, 'probe': {'probename': 'redis-server', 'probestring': '*1\\r\\n$4\\r\\ninfo\\r\\n'}}