M2 UD2.3 - Tutorial Shodan
M2 UD2.3 - Tutorial Shodan
3 -
Tutorial Shodan
1. Introdução
O Shodan tem um elevado potencial e certamente é uma ferramenta que qualquer hacker ou
pentester vai usar. É frequentemente referido como o motor de busca para hackers. O Shodan
pode ser acedido em https://www.shodan.io.
O que é que o Shodan tem de único? Os motores de busca como o Google, Bing, entre outros,
indexam websites, enquanto que o Shodan indexa muito mais coisas, tais como webcams, servidores
de bases de dados, dispositivos médicos, routers, e muito mais. Qualquer coisa que esteja ligada à
Internet é indexada pelo Shodan . Pense no Shodan como o Google para diferentes dispositivos. De
facto, é realmente bom em encontrar coisas como dispositivos IoT, e como sabemos, muitos destes
não são bem protegidos. Assim, à medida que nos deparamos com webcams, frigoríficos, termóstatos
ou mesmo sistemas de alarme, essa pode ser uma ótima maneira de entrar na organização alvo, e
poderá eventualmente usar isso como porta de entrada e ponto de pivot na rede.
O fundador do Shodan , John Matherly, no seu livro Complete Guide to Shodan[1], refere que o
Shodan tem uma série de crawlers[2] (ou rastreadores Web) espalhados pelo mundo, a funcionar 24/7
e a atualizar as bases de dados em tempo real. O algoritmo dos crawlers é simplesmente:
Este algoritmo não se limita a pesquisar websites - ele encontra tudo e indexa. A opção de não haver
scans incrementais (mas aleatórios) nas gamas de endereços ou portos é para que os resultados
sejam o mais equilibrados possíveis, evitando bloqueios, resultados enviesados e garantindo uma
cobertura uniforme da internet. Importa referir, por exemplo, que se um dispositivo (e.g., uma webcam)
estiver configurado com portos diferentes do standard (e.g., em vez de usar o porto 80 utiliza um porto
alto aleatório como o 57650), não deverá ser detetado pelo Shodan .
Vamos agora, de forma sucinta, dar alguns exemplos de consultas que podem ser feitas com o
Shodan .
2. Utilizar o Shodan
O Shodan utiliza uma sintaxe de pesquisa própria. Para poder utilizar os filtros mais importantes na
pesquisa (e.g., country para restringir resultados aos endereços num país, ou net para restringir
resultados à gama de endereços de uma organização), é necessário realizar login (mesmo com
subscrição gratuita).
Pode, no entanto, se não pretender usar filtros, fazer pesquisas mesmo sem login (e.g., pesquisas
simples apenas usando strings de pesquisa como o endereço IP ou um nome de domínio). Os termos
da pesquisa são inseridos na caixa de texto para o efeito (ver Figura1).
A primeira coisa que deve fazer, para poder usar filtros, é registar-se para obter uma conta no
Shodan . Isto pode ser feito navegando diretamente neste link. Note-se que apesar de dar para usar
filtros, com o login gratuito os resultados são limitados.
Nota - para esta e outras situações em que temos que dar um email para uso pontual (e.g., fazer
download de relatórios, instalar ferramentas, entre outras), devem ter uma conta de email
especifica, e que não usem para fins pessoais. Não é obrigatório, mas é uma boa prática
criarem uma conta para esse efeito, caso não a tenham já. No caso concreto das pesquisas de
OSINT e especialmente no uso de ferramentas para reconhecimento ativo, é recomendado
mesmo a utilização de contas falsas descartáveis conforme veremos mais à frente no curso,
claro que, isso é necessário apenas em casos concretos e sempre dentro da legalidade e
legitimidade para o efeito.
Para configurar filtros, utilizam-se aspas para restringir a pesquisa a uma string. Os operadores + ou -
podem incluir ou excluir termos de pesquisa, sendo que o operador + é implícito quando temos um
espaço entre strings.
Neste caso, podemos obter os endereços IP de diversas camaras web acessíveis na Internet. Basta
abrir a hiperligação no Shodan correspondente a um qualquer resultado obtido (i.e., endereço),
verificar qual o porto que devolve as imagens web e abrir com o browser, colocando na URL o IP com
o porto onde o serviço está a correr, e.g., IP:Porto , e conseguem-se visualizar as imagens em
tempo real.
Conforme vimos no módulo 1, o scripting é algo que facilita a tarefa dos administradores de rede mas
também dos hackers. O Shodan permite acesso através da linha de comandos, e portanto, permite
realizar scripts que facilitam as pesquisas que pretendemos. Contudo, para obter resultados mais
interessantes (i.e., com filtros), a conta usada tem de ter uma subscrição paga associada.
Depois de ter criado uma conta, clique no botão "Account" (no canto superior direito) para obter a
chave da API (Interface de Programação de Aplicação, provém do Inglês Application Programming
Interface). Guarde a chave API para utilizar no script.
shodan init [API key] , onde deve substituir a string "API Key" pela chave obtida na sua área
de utilizador no website.
Agora, já pode fazer uma pesquisa, por exemplo, pesquisar as páginas indexadas que têm nome de
domínio nome_dominio.pt
Se quisermos usar filtros específicos do shodan, é necessário pagar para tal. Por exemplo,
poderíamos pesquisar o mesmo comando que usámos anteriormente no website:
Figura 4 - Mensagem de erro por ser necessário subscrição paga par usar filtros na API
Com acesso ao Shodan através da API, é possível criar scripts em bash script (conforme vimos no
módulo 1) ou mesmo em Python.
Agora, pode criar um script python com o nano , por exemplo nano shodanscript.py .
O código seguinte, que deverá poder copiar e colar no seu script (atenção à identação - Tabs - pois o
Python interpreta a identação), alterando apenas onde diz "SUBSTITUIR", nomeadamente a API_key
e a string de pesquisa.
Depois de salvar o código e fechar o nano , pode então executar o script com:
python2 shodanscript.py
As possibilidades são imensas. Por exemplo, é possível comentar o código onde se imprime no ecrã
(colocar um # antes dos print ) exceto na linha que imprime os endereços IP encontrados. Assim,
obteríamos apenas os endereços IP que podemos usar para fazer um scan mais intenso (na fase de
reconhecimento ativo).
4. Notas Finais
O Shodan é uma ferramenta bastante poderosa que é quase sempre utilizada nos pentests. O
Shodan pode ser utilizado com resultados obtidos por outras ferramentas. Por exemplo, os
subdomínios e endereços IP obtidos com o Sublist3r podem entrar nos filtros de pesquisa do
Shodan . Ou pode ser dada como string de pesquisa (e.g., net:X.X.X.X/24 ) a gama de rede da
organização obtida com o Whois . De igual modo, as coordenadas da localização física da
organização, obtidas por exemplo com o Google Maps, podem ser colocadas como um filtro na
pesquisa do Shodan (e.g., geo:[coordenadas do google maps] ). Por outro lado, o Shodan pode
ser integrado noutras ferramentas, tal como o Maltego ou o Metasploit .
Para referência futura e para quem quiser explorar mais o Shodan, existem vários tutoriais na internet,
ou o próprio livro do autor do Shodan . Deixo alguns tutoriais bons e fáceis de seguir, que descrevem
1. https://ia800705.us.archive.org/17/items/shodan-book-extras/shodan/shodan.pdf ↩︎
2. https://pt.wikipedia.org/wiki/Rastreador_web ↩︎
3. https://media.defcon.org/DEF CON 18/DEF CON 18 presentations/DEF CON 18 - Schearer-
SHODAN.pdf ↩︎
4. https://thedarksource.com/shodan-cheat-sheet/ ↩︎
5. https://www.security-hive.com/post/shodan-tutorial ↩︎
6. https://blog.shodan.io/ ↩︎