O que é virtualização ?
O que é uma infraestrutura , onde começou , definição e suas vantagens.
Conhecimento foi feito para ser partilhado e não guardado.
Conheça o site oficial
https://www.shodan.io/
Agora não é só arquivos sensíveis que estão expostos na internet , nossos dispositivos conectados a internet também podem estar expostos e pessoas com má índole pode usar isso para o mal.
Em 2009 John Matherly lançou na internet um mecanismo chamado Shodan que tem como objetivo não só encontrar sites , IPs , mais também de encontrar dispositivos conectados com a internet.
Podemos retornar diversos dispositivos que estão conectados na rede usando o Shodan , como por exemplo:
O Shodan usa o mecanismo de pesquisa de banners de serviço , isso tudo nada mais é que metadados que são retornados ao usuário quando inicia a comunicação com um serviço.
Ele nos retorna informações desde mensagens de boas vindas , versões de serviço e outras coisas que pode acontecer quando se está iniciando uma conexão com algum serviço.
Quando falamos de dispositivos conectados com a rede estamos falando de tudo o que está conectado a rede de computadores , desde computadores , celulares , televisores , semáforos e até equipamentos hospitalares.
Além de poupar recursos no uso de informações públicas também tem um serviço muito interessante que ele usa as informações retornadas através dos banners , ele bate essas informações com versões de serviços , se tiver alguma vulnerabilidade naquele serviço ele retorna o Common Vulnerabilities and Exposures (CVE) que é o RG da possível falha e assim já podemos procurar por mais informações referente.
O Shodan é um serviço semelhante ao Google , a diferença é que com ele podemos encontrar dispositivos conectados a internet. Ele tem servidores em diversos lugares do mundo , dessa forma pode tentar evitar o bloqueio em outros países. Ele usa rastreadores para buscar por dispositivos e para enumerar de serviços. Ele funciona primeiro pegango um IPv4 aleatório , depois ele usa uma porta aleatória para testar usando uma lista de portas que o shodan entende , assim pega o banner da aplicação ,filtrar as informações para salvar no banco de dados e checar podemos usar elas posteriormente.
Além disso ele já automatiza toda a comunicação com o dispositivo e ainda nos retorna se ele está vulnerável ou não a alguma falha.
Podemos realizar buscas usando um IP , dessa forma podemos saber a:
O próximo passo é conhecer os operadores , só que para isso é necessário criar uma conta , para usar esse tipo de filtro e obter mais informações.
Crie uma conta no site do Shodan , não custa nada e para realizar esse estudo é o necessário.
Caso tenha um email educacional da sua faculdade , podemos ter uma conta com mais privilégios e com limite maior de busca.
Podemos usar os operadores do Shodan para realizar buscar , sejam elas:
Podemos filtrar por hosts em um determinado pais usando o operador country.
country:br
É possível também filtrar por cidade , basta usar o operador city.
city:Bauru
Podemos filtrar por sistemas operacionais , isso pode ser muito valido quando sai uma nova vulnerabilidade em um terminado sistema operacional e especialistas com o operador OS podemos realizar esse filtro.
Buscando por sistemas operacionais Windows:
os:"Windows"
Podemos buscar por sistemas operacionais Linux:
os:"Linux"
Podemos buscar por informações sobre um grupo que usa a mesma porta , por exemplo uma buscar por portas 3306 que são por padrão usadas por banco de dados:
port:3386
Podemos buscar por um determinado IP da seguinte forma.
ip:37.59.174.225
Podemos ver informações detalhadas clicando em details:
Podemos buscar informações de uma determinada rede , podemos usar o operador:
net:
Veja um exemplo com diversos endereços , se lembra do ASN CIDR ?
Vamos usar o CIDR da globo para buscar por servidores desssa rede:
net:186.192.80.0/20
Podemos pesquisar por HOSTS , podemos usar o domínio para realizar esse teste e ter informações como por exemplo:
Veja um exemplo usando o facebook:
hostname:facebook.com
Podemos realizar outro exemplo usando o site da Globo.com
hostname:globo.com
Com o uso do Server podemos obter informações sobre câmeras , sistemas e até webcam.
Server: SQ-WEBCAM
Podemos ver que temos 99 resultado , veja uma imagem:
Veja outro modelo de câmera
Server: U S Software Web Server
Podemos buscando por caixas ATM no Brasil , tudo o que precisamos é usar a palavra atm.
Veja a união de uma palavra chave junto de um operador que filtra pais:
atm country:br
Podemos unir o uso de operadores , palavras chaves e criar Dorks complexas para filtrar as nossas buscas
Dessa forma podemos buscar por câmeras que estejam localizadas no Brasil e na cidade de Bauru
camera country:br city:Bauru
Até o momento apenas 21 servidores windows foram identificados , isso não significa que só temos 21 servidores Windows funcionando na cidade e sim que apenas 21 foram indexados.
os:"Windows" country:br city:Bauru
Esses exemplo foram testados em um sistema Linux - Debian Stretch.
Para instalar o shodan temos diversas formas , no site oficial eles recomendam o uso de easy_install e é possivel usar tambem o pip.
easy_install shodan
Caso queira instalar a versão mais antiga da biblioteca podemos usar
easy_install -U shodan
Podemos usar o PIP para o python e o PIP3 para o python3.
Caso queira instalar o pip ,usando apt.
apt-get install python-pip
Podemos instalar agora o pip
pip install shodan
Eu uso o pip3 para as minhas instalações , mais todos são iguais.
apt-get install python3-pip
Agora podemos instalar o shodan usando o PIP3.
pip install shodan
Podemos ir até o site do shodan e logar na sua conta como já foi explicado.
https://account.shodan.io
Lá no subdominio account vamos obter a nossa API KEY para nossos testes.
Devemos inserir a nossa chave para usar o shodan sem problemas.
shodan init "RPyjZUBjabK1Yld5iKjc8vuPwjPQJDqh"
Essa é a minha Key e você deve inserir a sua , ela pode ser reiniciada caso precise.
Se tudo ocorreu bem vamos receber a mensagem Successfully initialized.
Podemos usar o Shodan depois de inicializar ele usando init.
Vamos ver as opções que temos , podemos usar –help ou até -h.
shodan --help
E toda opção como por exemplo o search , pode ter uma outra opção de help.
shodan search --help
Podemos buscar informações de um determinado alvo usando o host , ele pode trazer informações importantes na hora de um reconhecimento baseado em OSINT.
Podemos ver informações como onde ele está localizado , portas abertas e qual é a organização que possui o IP. Podemos usar a opção host seguido do endereço IP.
shodan host 104.18.55.48
Podemos usar a opção myip para nos retornar nosso endereço IP.
shodan myip
Vamos imaginar o cenario em que temos em mãos um exploit ou até o zero-day do Apache 2.4.
Podemos ter uma ideia de quantos possíveis alvos estarão disponíveis , podemos usar a opção count.
shodan count Apache 2.4
Nesse caso foi retornado 70147 hosts usando o Apache 2.4.
Podemos criar um arquivo e salvar os alvos para analisar futuros host vulneráveis.
Vamos usar a opção download.
Vamos salvar o arquivo como nome de apache-2.4.
E vamos pesquisar por hosts usando Apache 2.4.
shodan download apache-2.4 Apache 2.4
Podemos ver a saida com 70147 possíveis alvos.
Search query: Apache 2.4
Total number of results: 70147
Query credits left: 0
Output file: apache-2.4.json.gz
[] 100%
Notice: fewer results were saved than requested
Saved 100 results into file apache-2.4.json.gz
Devido a nossa conta ser uma conta free vamos ter apenas 100 resultados salvos em nosso arquivo de saída.
O nosso arquivo de saida é o apache-2.4.json.gz.
Podemos usar a opção parser para filtrar os dados obtidos em nossa pesquisa usando o download anteriormente.
Ele nos permite filtrar campos , filtrar o arquivo JSON em um CSV e é amigável para usar com outros programas.
O exemplo abaixo filtra o IP , porta e a organização.
Não podemos esquecer que o arquivo apache-2.4.json.gz foi criado usado a opção download.
shodan parse --fields ip_str,port,org --separator , apache-2.4.json.gz
A saída vai ser algo como
50.57.241.67,80,Liquid Web, L.L.C,
61.128.111.161,80,CNINFONET Xingjiang,
50.57.255.220,80,Liquid Web, L.L.C,
217.26.52.21,80,Hostpoint AG, Switzerland,
122.144.130.4,80,China Unicom Shanghai network
Podemos usar a opção search para buscar por alvos.
Por padrão ele vai exibir o IP, Porta , nomes de host e dados do host.
Podemos usar a opção fields para nos auxiliar a filtrar , no exemplo abaixo vai ser retornado IP,porta,organização e hostnames de possíveisralvos usando Apache 2.4.
shodan search --fields ip_str,port,org,hostnames Apache 2.4
A saída vai ser algo como
87.216.162.99 80 Jazz Telecom S.A. 99.162.216.87.static.jazztel.es
2a00:d70:0:b:2002:0:d91a:35a5 80 sl173.web.hostpoint.ch
50.56.151.158 80 Liquid Web, L.L.C
184.106.55.63 80 Rackspace Ltd. lb1-n01.wc1.lan3.stabletransit.com
217.26.52.127 80 Hostpoint AG, Switzerland www.airbornescan.com
159.135.21.159 80 Liquid Web, L.L.C
77.20.51.99 80 Vodafone Kabel Deutschland ip4d143363.dynamic.kabel-deutschland.de
202.104.180.155 3749 China Telecom Guangdong province Dongguan MAN netw
Documentação Oficial https://shodan.readthedocs.io/
Primeiro exemplo https://shodan.readthedocs.io/en/latest/examples/basic-search.html