PenTest: Invandindo uma organização através do LinkedIn PT.1

O objetivo é de conscientizar tanto usuários como organizações, sobre a importância de implementar os melhores controles e as levar as boas práticas de segurança para seus usuários.

Introdução

Antes de iniciarmos os nossos testes, vamos definir como será o nosso laboratório, afinal não vamos usar ambientes reais, mas sim laboratórios controlados por mim ao qual vou simular um ataque real.

E nesse laboratório vai conter:

Kali Linux (Máquina que vou utilizar para os ataques)

Website com servidor Linux (Metasploitable, Ubuntu)

Windows 7 vulnerável

Então é com essas máquinas que vamos realizar os nossos testes

Contrato e Escopo

A equipe comercial enviou o contrato aonde o cenário é Black Box, aonde o cliente apenas fornece o nome da organização, com isso você vai precisar arrumar uma forma de ganhar acesso ao ambiente. E claro ele não restringiu ninguém fora do escopo, então ele se torna um potencial alvo também.

Planejamento

Após definir o Escopo dos testes, agora vamos preparar a nossa metodologia, ao qual se resume em

Coleta de Informação

Varredura

Exploração

Pós-exploração

Essas 4 etapas, claro adicionando a última relacionada ao report que será feito para o cliente, caso você queira entender um pouco mais sobre relatórios de PenTest eu recomendo esse artigo que eu mesmo fiz:

https://www.linkedin.com/pulse/como-desenvolver-um-bom-relat%C3%B3rio-de-pentest-joas-antonio-dos-santos/

Iniciando o PenTest

Fase de Coleta de Informação

Definido todos as questões comerciais, agora vamos realizar os testes, mas como o cliente não passou nenhum IP e nem uma aplicação, vamos ter que ir atrás de informações da empresa e do nome dele.

Por ora sabemos apenas os nome da empresa e dele, certo?

Vamos ver se ele tem LinkedIn?

Não foi fornecido texto alternativo para esta imagem

Bingo! Achamos o LinkedIn dele, parece que contém algumas informações a mais sobre ele como, aonde ele trabalhou, suas funções e também achamos o nome da empresa ao qual ele é CEO, porém o seu LinkedIn não é bem atualizado.

Não foi fornecido texto alternativo para esta imagem

Mas pelo menos já sabemos algumas coisas sobre ele, porém ainda preciso vasculhar esse perfil e procurar talvez o website ou alguma outra informação.

Não foi fornecido texto alternativo para esta imagem

Cliquei no icone da empresa e fui redirecionado para sua página no LinkedIn, e analisando podemos ver que a empresa possui 94 funcionários, vou clicar e vasculhar cada perfil até achar o site da empresa.

Não foi fornecido texto alternativo para esta imagem

Após uma varredura eu encontrei uma funcionária que mora no Reino Unido, ao qual trabalha na área de Marketing da empresa, então já temos o website da empresa, agora vamos em busca de levantar informações e fazer a varredura.

Nesse momento com a URL na mão vamos seguir as 4 etapas em busca de ganhar uma shell reversa.

Após conseguir a URL do website, eu vou atrás do endereço de ip do servidor e torcer para ser uma host próprio.

Então para isso vou utilizar o dig para verificar o nameserver.

Não foi fornecido texto alternativo para esta imagem

Então notamos que o IP 10.0.0.10 é relacionado ao servidor web (nosso alvo) e o 10.0.0.9 é relacionado ao servidor DNS. Com isso, vamos filtrar o endereço 10.0.0.10 e agora vamos partir para o nosso Kali Linux.

Poderiamos utilizar um Maltego para realizar um OSINT profundo no site e verificar outros IP administradores, subdominios ligados, emails registrados e etc… 

Além disso, você poderia utilizar ferramentas como Recon-ng, theHaverster ou Dnsrecon.

Scanning

Agora vamos para a parte de varredura e verificar quais serviços e porta esse servidor utiliza, então eu vou sair do meu Ubuntu Server para o Kali Linux.

E para isso vamos utilizar o NMAP uma ferramenta padrão para uma varredura. 

Para niciar vou fazer uma varredura básica, sem pingar a máquina 

Não foi fornecido texto alternativo para esta imagem

Ele me retornou muitas portas e serviços aberto, isso é interessante, podemos ir atrás de um Exploit para garantir uma shell reversa no servidor.

No caso vou explorar algo pelo FTP, mas vamos verificar a versão do serviço.

Não foi fornecido texto alternativo para esta imagem

Interessante, uma versão 2.3.4 ela é bem conhecida por ser vulnerável, vamos procurar algo no Exploit-db

Não foi fornecido texto alternativo para esta imagem

Achamos algo sobre essa vulnerabilidade, então vamos ao metasploit para verificar se termos o exploit dessa falha

Não foi fornecido texto alternativo para esta imagem

E em uma rápida pesquisa deu para encontrar uma exploit para essa versão do vsftpd, então partindo disso eu vou utilizar esse exploit e configurar os devidos parâmetros

Fase de Exploração

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

Selecionamos o exploit, depois passamos o RHOSTS que seria o nosso alvo, nesse caso o servidor web e agora vamos precisar definir o payload para nos retornar uma shell reversa, caso a exploração seja bem sucedida.

Digitando: 

Não foi fornecido texto alternativo para esta imagem

Temos esse cmd/unix/interact, então vamos passar os parâmetros para sua utilização

Não foi fornecido texto alternativo para esta imagem

Dando um options é de se notar que não tem necessidade de configurar um LHOST ou algo do tipo, então basta digitarmos “exploit” para iniciar a nossa exploração.

Não foi fornecido texto alternativo para esta imagem

Bingo! Conseguimos uma shell reversa no servidor, agora só precisamos digitar: sessions -i “numero da sessão” para ter acesso a shell.

Não foi fornecido texto alternativo para esta imagem

E aqui já digitei o meu primeiro comando: ls

Fase de Pós Exploração

Como ganhamos acesso root, não precisamos realizar uma escalação de privilégios, porém podemos utilizar o python para fazer uma shell interativa.

Não foi fornecido texto alternativo para esta imagem

Com isso, ele nos retorna uma shell mais apresentável e mais fácil de trabalhar.

Agora vamos tentar elevar de uma simples shell para um meterpreter?

Para isso, vou utilizar um módulo que se encontra no próprio metasploit, mas antes precisamos deixar nossa shell em segundo plano e para isso digite:

Não foi fornecido texto alternativo para esta imagem

Depois de dar um “Yes” pesquise por “Shell_to_meterpreter”

Não foi fornecido texto alternativo para esta imagem

Agora basta apenas passar os parâmetros desse módulo que seria um módulo de pós exploração.

Não foi fornecido texto alternativo para esta imagem

E agora vamos ver suas opções

Não foi fornecido texto alternativo para esta imagem

Perceba que vamos precisar passar o número da sessão que está rodando aquela simples shell, então é só digitar: “sessions -l” e pegar o “id”

Não foi fornecido texto alternativo para esta imagem

Possuindo essa informação, vamos digitar: “set SESSION 1″

Pronto! Agora só digitar: “exploit” e torcer para ocorrer a migração

Não foi fornecido texto alternativo para esta imagem

Ele nos retornou um erro na hora de executar o módulo, mas podemos verificar se ele abriu a sessão de qualquer maneira.

Não foi fornecido texto alternativo para esta imagem

Parece que ele abriu uma segunda sessão, vamos tentar entrar nela?

Não foi fornecido texto alternativo para esta imagem

Bacana! Conseguimos obter uma shell meterpreter, agora podemos realizar uma Pós-exploração bem melhorada.

Não foi fornecido texto alternativo para esta imagem

Digitando “help” ele nos retorna diversos comandos.

Mas agora, vamos realizar uma outra etapa da exploração, após realizar as tentativas de PIVOTING e não conseguir sucesso, você pode recorrer para outros métodos.

Porém eu ressalto que um Movimento lateral ou Pivoting é uma boa opção, pois é 100% mais efetivo como os métodos que vamos realizar agora.

Agora basicamente vamos tentar ganhar uma shell reversa por intermédio das informações que temos da pessoa pelo LinkedIn.

E esse método vai nos retornar para a coleta de informação, obviamente você já pode ter realizado essa etapa antes mesmo e ter garantido acesso as informações como o e-mail de algum funcionário.

Nessa etapa vamos tentar comprometer alguém de dentro da empresa por meio de um simples e-mail com um anexo malicioso que no caso seria um PDF.

Então nesse caso eu vou ir até a página do LinkedIn da empresa e procurar algum funcionário que deixou seu email de maneira publica ou algum tipo de contato. Alguns deixam email para contato e muitas vezes o email comercial da empresa fica exposto.

Você pode também utilizar ferramentas como o maltego para realizar um OSINT.

Não foi fornecido texto alternativo para esta imagem

No caso eu acessei um perfil de um funcionário e clicando na aba de “Informações de Contato” eu encontrei as seguintes informação

Não foi fornecido texto alternativo para esta imagem

Perceba que temos agora o Email de Johndoe, então para isso eu vou me passar por uma empresa como a Microsoft, fingindo que vou enviar um arquivo em pdf com uma boa proposta e torcer para ele abrir, mas já vamos partir do principio que possuimos a versão do adobe reader que a empresa utiliza por métodos como e-mail tracking e coleta de informações.

Uma boa ferramenta: https://www.readnotify.com/

Agora vamos gerar um pdf malicioso, para isso eu vou usar uns modelos existentes no Kali, mas você pode criar um pdf novo ou utilizar algum que você achar interessante.

Se eu der o comando: “locate .pdf” ele vai me retornar diversos pdfs de algumas ferramentas ou em branco, você pode utilizar qualquer um desses.

Vamos agora para a exploração?

O adobe reader é um software bem vulnerável, se digitarmos dentro do “msfconsole” o comando “search pdf” vamos ter diversos resultados

Não foi fornecido texto alternativo para esta imagem

Especificamente 172 resultados, mas vamos definir um exploit para podermos comprometer o alvo, pois na coleta de informação foi detectado uma versão do Adobe Reader bem antiga.

E já sei até um bom exploit para esse tipo de caso

Não foi fornecido texto alternativo para esta imagem

Vamos selecionar o primeiro exploit e definir os devidos parâmetros.

Não foi fornecido texto alternativo para esta imagem

Digitando “options” notamos que ele já tem definido o nome do pdf e o template que ele vai utilizar para que o evil.pdf se passe por ele.

Eu poderia definir uma Mensagem para que aparecesse na hora que a vítima executasse. 

No meu caso vou manter os parâmetros como está, apenas definirei o payload que será um Meterpreter

Não foi fornecido texto alternativo para esta imagem

Agora só nos resta definir nosso “LHOST” e com isso estamos livre para gerar nosso payload.

Não foi fornecido texto alternativo para esta imagem

Como lembrado o LHOST é nosso endereço IP, nosso endereço local, ou seja, o IP da minha máquina.

Agora vamos digitar “exploit” e esperar a mágica acontecer.

Não foi fornecido texto alternativo para esta imagem

Pronto! Geramos nosso pdf malicioso e agora é só preparar a engenharia social, perceba que ele parou no diretório /root/.msf4/local/evil.pdf, porém poderiamos mover ele para qualquer outro local, mas vou deixar aonde ele está mesmo e enviar um e-mail falso se passando por uma empresa como a famosa Microsoft.

Nessa etapa vou realizar um Email Spoofing utilizando a ferramenta Emkei, para acessar essa ferramenta basta entrar nesse site

https://emkei.cz/

Agora vamos criar um e-mail falso

Não foi fornecido texto alternativo para esta imagem

Então definimos o nome do remetente e seu e-mail, definimos também o destinatário e o titulo ou sujeito da nossa mensagem. E por fim eu coloquei o arquivo malicioso e uma mensagem para a vítima.

Agora é só enviar!

Mas antes no metasploit vamos iniciar uma shell reversa, então para isso vou utilizar um exploit genérico como o multi/handler.

Não foi fornecido texto alternativo para esta imagem

Agora vamos ter que definir o mesmo payload ao qual foi utilizado para gerar o nosso pdf malicioso, e além disso temos que inserir os mesmos parâmetros que passamos também.

Não foi fornecido texto alternativo para esta imagem
Não foi fornecido texto alternativo para esta imagem

Vamos definir o nosso LHOST e ai é só executarmos e esperar a vítima abrir o pdf.

Não foi fornecido texto alternativo para esta imagem

Abrirmos o Handler, aonde ele está esperando a vitima abrir o pdf e garantir a shell reversa

Não foi fornecido texto alternativo para esta imagem

Aqui é o e-mail com o anexo malicioso, no caso eu baixei e agora vou executar.

Não foi fornecido texto alternativo para esta imagem

Esse é o anexo, agora só precisamos clicar nele.

Não foi fornecido texto alternativo para esta imagem

Ao abrir ele vai aparecer essa mensagem, vale ressaltar que poderiamos modificar essa mensagem para algum tipo de erro existente, mas como é um laboratório podemos clicar em Open sem problema.

Não foi fornecido texto alternativo para esta imagem

Bingo! Temos nossa shell reversa e agora é só garantirmos a persistência e efetuar a escalação de privilégios.

Contras desse método

  1. Obviamente utilizamos um Laboratório, então não nos preocupamos com bypass, mas vale ressaltar que um ambiente corporativo vai ter filtros anti-spam e antivírus, por isso é bom conhecer de métodos de obfuscação e bypass.
  2. Muitos e-mail tem mecanismos de analise, então é bom conhecer de bypass também.
  3. Utilizar o emkei não é garantido que seu e-mail chegue, então é bom utilizar as opções avançadas como a opção de “confirmação de leitura e envio”
  4. Nem sempre vai ter uma versão do adobe vulnerável, então busque outros métodos iguais envolvendo o pacote office e macro, além disso você pode partir para a criação de Trojans para comprometer seu alvo.

Conclusão

Esse é um dos métodos para garantir uma shell reversa por meio do LinkedIn, vale ressaltar que cada informação é valiosa e isso ajuda muito em um PenTest, obviamente simulamos uma situação um caso prático, porém é mais comum do que parece, afinal ninguém se preocupa com a versão do sistema ou software que usa e isso é um grande risco. Além disso as redes sociais são as maiores amigas de um PenTester, afinal com informações básicas de email e o website, conseguimos 2 shell reversa e até mesmo podemos realizar um Movimento lateral em busca de comprometer mais máquinas em uma rede.

Então tome cuidado com suas informações e sempre respeite as politicas de segurança e implemente mecanismos de proteção avançada.

Espero que vocês tenham gostado desse artigo, foi básico, mas vale ressaltar que a partir disso você tem inúmeras possibilidades.

Veja outros artigos meus: https://www.linkedin.com/in/joas-antonio-dos-santos/

Hits: 101

Leave a Reply

Your email address will not be published. Required fields are marked *