Finding vulnerable servers in Shodan

We can easily make a script that obtains the results of a server that can be vulnerable to heartbleed due to a vulnerable OpenSSL version.

You can find the following code in the ShodanSearchOpenSSL.py file in the heartbleed_shodan folder:

import shodanimport socketSHODAN_API_KEY = "v4YpsPUJ3wjDxEqywwu6aF5OZKWj8kik"api = shodan.Shodan(SHODAN_API_KEY)# Wrap the request in a try/ except block to catch errorstry:    # Search Shodan OpenSSL/1.0.1    results = api.search('OpenSSL/1.0.1')    # Show the results    print('Total Vulnerable servers: %s' % results['total'])    for result in results['matches']:        print('IP: %s' % result['ip_str'])        print('Hostname: %s' % socket.getfqdn(result['ip_str']))        print(result['data'])except ...

Get Mastering Python for Networking and Security now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.