bom galera eu ja escrevi um artigo sobre o motor de busca shodan, ja ensinei como usar um auxiliary do shodan no metasploit, agora vamos ver como usar uma API do shodan em python, como ja citei o shodan é um motor de busca parecido com o google porem diferente do google que retorna apenas links de sites o shodan retorna informações de servidores como os cabeçalhos daquele servidor, o shodan é usado constantemente para levantamento de informação sobre tal servidor ou ate mesmo busca de servidores especifico como as versões do mesmo, voce pode usar o shodan para diversos fins como criar um sistema de estatisticas ou ate mesmo para fins maliciosos como ataques em grande escala (que não é o nosso caso ~ por outro lado se estiver procurando pessoal para trampo em segurança e programação quem sabe \o), para começar temos que baixar esse modulo então podemos usar o pip (bom galera to com uma baita preguiça de reiniciar para o linux entao vou esta usando o windows nesse tutorial como tambem funciona no linux e esse modulo funciona tanto no python2 quanto no python3)
pip install shodan
ou direto no python
python3 -m pip install shodan
https://i.imgur.com/pAje8Er.jpg
depois de instalado basta a gente logar no shodan e pegar nossa APIKey
https://i.imgur.com/5xJ0n5G.jpg
com a APIKey em mãos criamos o nosso script, pra começar importamos o modulo do shodan
#!/usr/bin/python3
import shodan
agora instanciamos o shodan.Shodan passamos como argumento para ele nossa APIKey
#!/usr/bin/python3
import shodan
kodo = shodan.Shodan("MINHA_APIKEY")
agora podemos usar alguns metodos entre eles o search que nos permite retornar determinada pesquisa, para usar o search passamos como argumento a pesquisa e atribuimos o retorno para uma variavel
#!/usr/bin/python3
import shodan
kodo = shodan.Shodan("MINHA_APIKEY")
kami = kodo.search("apache 2.2")
o retorno para a variavel sera uma matriz onde a primeira posição dela chamado "matches" tera toda busca, e a segunda posição sera "total" com a quantidade total encontrado, entao um exemplo que exibe apenas a quantidade total de busca encontradas seria isso
#!/usr/bin/python3
import shodan
kodo = shodan.Shodan("MINHA_APIKEY")
kami = kodo.search("apache 2.2")
print("total de pesquisa: ", kami["total"])
https://i.imgur.com/LkMqHmo.jpg
o matches tambem é uma matriz onde cada posição é um busca um servidor diferente
#!/usr/bin/python3
import shodan
kodo = shodan.Shodan("MINHA_APIKEY")
kami = kodo.search("apache 2.2")
print(kami["matches"][0])
https://i.imgur.com/DQH0KmR.jpg
para ir alternando os servidores basta mudar a posição
#!/usr/bin/python3
import shodan
kodo = shodan.Shodan("MINHA_APIKEY")
kami = kodo.search("apache 2.2")
print(kami["matches"][30])
https://i.imgur.com/dfAGKhu.jpg
tambem podemos acessar essas informações como se fosse a propria posição na matriz
#!/usr/bin/python3
import shodan
kodo = shodan.Shodan("MINHA_APIKEY")
kami = kodo.search("apache 2.2")
print("ip: ", kami["matches"][12]["ip_str"])
print("info: ", kami["matches"][12]["info"])
print("produto: ", kami["matches"][12]["product"])
print("versao: ", kami["matches"][12]["version"])
print("porta: ", kami["matches"][12]["port"])
https://i.imgur.com/6xI9a2O.jpg
bom galera existem outros metodos alem do search nesse modulo sem dizer que a versão free do shodan é bem limitada permitindo retornar apenas uma certa quantidade de buscas
by kodo no kami