Por Marcos Almeida

/ Em Segurança da Informação /

Postado em

mar 19, 2020

Teste de Intrusão em Ambiente SharePoint

Neste artigo iremos abordar técnicas de teste de intrusão voltadas exclusivamente para o ambiente do SharePoint.

O Microsoft SharePoint é uma plataforma de aplicações Web da Microsoft, com utilização na criação de portais e intranets empresariais, gestão de conteúdo, gestão documental, criação de portais colaborativos e publicação de aplicações web. 

Lançado em 2001, a plataforma SharePoint é geralmente associada à gestão de conteúdos e gestão documental, mas é de fato uma plataforma muito mais ampla para tecnologias web, podendo ser configurado para abranger diversas outras áreas de serviços e aplicações.

Metodologias

Para realizar todos os testes em ambiente SharePoint, iremos seguir as seguintes metodologias:

  • Coleta de Informações
  • Scanning & Enumeração
  • Análise de Vulnerabilidades
  • Exploração & Bypass

Coleta de informações

A parte principal e essencial de todo pentest é a coleta de informações. Nessa fase, um atacante irá coletar o máximo de informações possíveis sobre seu alvo, para seguir com o processo de exploração.

Existem dois tipos de coleta de informações: a coleta ativa e a coleta passiva.

Na coleta ativa o atacante tem contato direto com o alvo, utilizando ferramentas de enumeração e scans os quais enviam as requisições diretamente para o servidor que está sendo analisado. Já na coleta passiva o atacante tem contato indireto com o alvo, utilizando informações que já estão públicas na internet, dificultando sua detecção.

Iremos mostrar algumas técnicas utilizadas para coletar estas informações:

Google Hacking

O Google Hacking é uma prática muito utilizada para encontrar arquivos e/ou falhas a partir do Google, usando-o como uma espécie de scanner, dando comandos e possibilitando manipular buscas avançadas por strings chamadas de “dorks” ou “operadores de pesquisa”. Desta forma, o atacante consegue filtrar com mais precisão os ambientes o qual pretende explorar.

Algumas dorks que serão utilizadas:

  • inurl:”termo”
    • Pesquisa apenas por urls que contenham esse termo
  • allinurl:termo1 termo2
    • Semelhante ao operador inurl, porém para vários termos
  • site:site.com
    • Restringe a busca ao site especificado

Neste exemplo utilizamos a dork “inurl:/_layouts/viewlsts.aspx site:br”
Como retorno, recebemos diversos web sites contendo a dork inserida em sua url.

Considerando o arquivo da dork um arquivo sensível, apenas pelo Google já é possível listarmos diversas aplicações interessantes para serem futuramente analisadas:

Figura 1 – Google Hacking

Caso o atacante opte por um escopo mais específico, como procurar estes arquivos apenas para um único domínio de sua escolha, é possível mesclar as dorks para aprimorar estas filtragens.

Utilizando como exemplo o domínio alvo: example.com

Uma dork para filtrar pelo arquivo “viewlsts” apenas em seus subdomínios, ficaria semelhante a: “inurl:/_layouts/viewlsts.aspx site:example.com -www”

Desta forma, é possível fazer um ataque mais direcionado ao escopo escolhido.

Nesta outra pesquisa de exemplo, estamos buscando por páginas de autenticação utilizando a dork “inurl:/_layouts/AreaWelcomePage.aspx”.

Figura 2 – Google Hacking

Shodan

O Shodan é um mecanismo de busca que permite ao usuário encontrar tipos específicos de computadores e diversos dispositivos IoTs conectados à Internet usando uma variedade de filtros.

Alguns exemplos de queries que podem ser utilizadas:

No exemplo abaixo, foi utilizada a query ‘“MicrosoftSharePointTeamServices” country:br’, filtrando alguns sharepoints públicos e suas devidas informações, como endereços de IP, portas abertas, headers etc.

Figura 3 – Pesquisas utilizando o motor de busca shodan

Censys IO

O Censys é um mecanismo de busca que verifica na Internet a procura de dispositivos e retorna relatórios agregados sobre como os recursos (ou seja, dispositivos, sites e certificados) são configurados e implantados. A ferramenta também verifica diariamente o espaço de endereço IPv4, pesquisando todos os dispositivos e coletando informações relacionadas.

Figura 4 – Pesquisas utilizando o motor de busca censys

Ferramentas

Existem algumas ferramentas que podem ser utilizadas para facilitar um pouco a análise desse tipo de ambiente. Com essas ferramentas é possível fazer enumeração de diretórios, obter versões, entre outras informações:

  • SharePwn
  • SPartan
  • Sparty
  • SPScan

Neste artigo iremos utilizar somente a ferramenta SharePwn.

Para baixá-la é muito simples, basta clonar o repositório para o seu Kali Linux.

  • $ git clone https://github.com/0rigen/SharePwn.git

Instale todos os requerimentos:

  • $ pip install -r requirements.txt

Depois de tudo configurado execute a ferramenta:

  • python sharepwn.py
Figura 5 – Utilização da ferramenta SharePwn

Análise de Vulnerabilidades & Exploração

Existem diversas vulnerabilidades que podem ser exploradas em ambiente SharePoint, como XSS, CSRF,Bypass etc.

A grande maioria das vulnerabilidades exploradas são de configuração incorreta, ou seja, configurações padrão.

Conforme mostrado no exemplo abaixo, conseguimos ter acesso a todos os arquivos do site apenas colocando seu diretório default, podendo até mesmo baixá-los.

Para isso, foi identificado o endereço do sharepoint por meio das técnicas de reconhecimento e enumeração anteriormente citadas. Com isso, foi requisitado para a aplicação o acesso ao arquivo “viewlsts.aspx”, fazendo com que a aplicação fizesse um bypass na página de login e fosse diretamente ao arquivo solicitado.

Figura 6 – Diretórios e seus arquivos

Podemos também encontrar por serviços de SOAP do SharePoint, permitindo assim listar os seus recursos.

Figura 7 – Lista de serviços SOAP do SharePoint

Exploração Prática

É possível explorar esses sites de diversas formas, utilizando somente as técnicas explicadas, de pesquisa avançada.

No exemplo abaixo, utilizaremos uma aplicação real para demonstrar como esta exploração seria feita em um ambiente prático.

Como padrão, vamos utilizar nosso velho amigo: example.com para simbolizar a aplicação alvo.

Na imagem a seguir, foi tentado acessar um possível arquivo do sharepoint que estaria público, porém a aplicação nos redirecionou para à página de login:

Figura 8 – Página de login

Em alguns sites, se você for removendo a URL e ir efetuando testes, é possível encontrar diretórios que permitam sua listagem de arquivos. Neste caso, alteramos a URL até encontrar um diretório que estivesse com a listagem disponível.

URL original: example.com/_layout/15/login/login.aspx?…

URL modificada: example.com/_layout/

Figura 9 – Diretórios e seus arquivos

É possível também encontrar algumas informações relevantes no código-fonte, como outros possíveis arquivos e diretórios que estão acessíveis publicamente.

Figura 10 – Análise do código fonte

Acessando um dos diretórios expostos no código fonte, foi possível listar outros endpoints da aplicação:

Figura 11 – Informações para consulta no diretório /_vti_bin/spsdisco.aspx

Utilizando a ferramenta SharePwn para coletar mais informações:

Figura 12 – Análise de versões
Figura 13 – Força bruta em diretórios

Efetuando o acesso de algumas URLs, conseguimos ter acesso à arquivos internos do SharePoint que podem ser baixados.

Em alguns casos, algumas configurações de segurança são aplicadas ao SharePoint, impedindo que você efetue o download desses arquivos.

SharePoint
Figura 14 – Galeria de arquivos
SharePoint
Figura 15 – Galeria de páginas mestre do SharePoint

Se tentarmos efetuar o download desses arquivos, somos redirecionados para a página de login do SharePoint, porém é possível realizar o bypass e fazer o download desses arquivos.

SharePoint
Figura 16 – Tentativa de efetuar o download dos arquivos
SharePoint
Figura 17 – Tentativa de fazer download de arquivos sem sucesso

Se analisarmos as propriedades desses arquivos, temos acesso à outras informações de nosso interesse.

SharePoint
Figura 18 – Visualização das propriedades do arquivo

Ao acessar as propriedades do arquivo conseguimos efetuar o download dele, ignorando a requisição de login anteriormente solicitada:

SharePoint
Figura 19 – Download realizado com sucesso

Verificando outros arquivos do SharePoint, por exemplo no diretório “Web Part Gallery”, não temos a opção de visualizar as propriedades dos arquivos ou efetuar download, então como iremos realizar o download desses arquivos?

SharePoint
Figura 20 – Diretório web part gallery
SharePoint
Figura 21 – Tentativa de download sem sucesso

Bypassing Sharepoint Download Option Using IDOR Exploitation

É nessa parte que entra o mindset. Verificando as informações do diretório anterior, detectamos que ele faz a chamada de um form na seguinte URL /Forms/DispForm.aspx?ID=4” que permitiu com que fizéssemos o download do arquivo.

Exemplo: example.com/_layout/15/Forms/DispForm.aspx?ID=4

SharePoint
Figura 22 – Página de informações sobre o arquivo

Pensando na lógica, o que aconteceria se colocássemos esse mesmo caminho do formulário em outro diretório?

URL que conseguimos fazer download:
example.com/_layout/15/Forms/DispForm.aspx?ID=4

URL que estamos sendo bloqueados:
example.com/_catalog/Forms/ALLItems.aspx

Neste caso, foi substituído o arquivo “ALLItems.aspx” por “DispForm.aspx?ID=10”, substituindo o ID 4 por outro número qualquer.

Fazendo essa alteração, observou-se que a aplicação interpretou a requisição e fez download de um dos arquivos do diretório que estava nos bloqueando:

SharePoint
Figura 23 – Alteração da URL

Dessa forma conseguimos efetuar o download de arquivos com sucesso, agora basta somente mudar o ID para enumerar todos os arquivos do SharePoint, sem nenhum tipo de bloqueio, pode até mesmo utilizar o BurpSuite para essa tarefa:

SharePoint
Figura 24 – Bypass realizado com sucesso
SharePoint
Figura 25 – Enumerando outros arquivos

Conclusão

Como podemos observar no decorrer deste artigo, existem diversas vulnerabilidades que podem ser facilmente exploradas por atacantes e nem sempre envolvem ferramentas automatizadas. Explorações lógicas podem ser tão críticas quanto.

A forma mais simples de manter este tipo de ambiente seguro é manter sempre a versão mais atualizada possível e realizar a configuração correta, aplicando um hardening no ambiente.

Referências:
https://github.com/0rigen/SharePwn
https://github.com/sensepost/SPartan
https://github.com/adityaks/sparty
https://github.com/toddsiegel/spscan
https://pt.wikipedia.org/wiki/Microsoft_SharePoint
https://www.shodan.io/
https://censys.io/

0

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *