[tutorial] API shodan python

Iniciado por kodo no kami, Abril 28, 2017, 00:55:53 AM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

kodo no kami

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