
Encontre arquivos interessantes armazenados em compartilhamentos do (System Center) Configuration Manager (SCCM/CM) via HTTP(s)
Os pontos de distribuição (DPs) do SCCM são os servidores usados pelo Microsoft SCCM para hospedar todos os arquivos usados em instalações de software, patches, implantações de scripts, etc. Por padrão, esses servidores permitem acesso via SMB (TCP/445) e HTTP/S (TCP/80 e/ou TCP/443) e exigem algum tipo de autenticação do Windows (ou seja, NTLM).
As ferramentas atuais de coleta de DPs do SCCM dependem da capacidade de navegar por compartilhamentos SMB para coletar arquivos.
No entanto, não é incomum uma organização limitar o acesso SMB de entrada aos servidores em redes internas, e é prática padrão impedir o acesso SMB de entrada pela internet. O acesso HTTP/S, por outro lado, geralmente não é restrito em redes internas e frequentemente é permitido pela internet. Isso apresenta uma oportunidade para um invasor se houver uma maneira de obter arquivos do DP do SCCM via HTTP/S.
As ferramentas SMB funcionam enumerando a pasta DataLib do compartilhamento SCCMContentLib$ para encontrar arquivos <filename.ext>.INI que contêm o hash do arquivo. Elas podem então localizar o arquivo real em FileLib/<hash[0:4]>/<hash>. Isso funciona porque, com acesso ao compartilhamento, é possível enumerar todos os arquivos na pasta DataLib.
Usando HTTP/S, as coisas são diferentes. Navegar para http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib mostra uma listagem de diretórios de arquivos numerados e INIs.
Por vários motivos (como velocidade), esses pontos de distribuição podem ser configurados para permitir acesso anônimo.

No entanto, navegar para os links que não são INI simplesmente mostra a mesma página, o que limita o número de arquivos diretamente acessíveis àqueles no diretório "raiz" do Datalib, já que os hashes extraídos dos arquivos INI para diretórios não podem ser usados para encontrar os diretórios no FileLib, pois ele armazena apenas arquivos reais.

No entanto, navegar diretamente para o nome do diretório a partir da raiz http://<SCCM DP>/SMS_DP_SMSPKG$/ mostrará os arquivos nesse diretório, que podem ser baixados diretamente.

É assim que o sccm-http-looter funciona normalmente. Ele analisa a listagem do diretório Datalib em busca de diretórios, depois requisita esses diretórios e analisa cada um em busca de arquivos, antes de baixar quaisquer arquivos com extensões que estejam na lista de permissões especificada pelo usuário.
No caso de o acesso anônimo estar habilitado, mas a listagem de diretórios fora da raiz http://<SCCM DP>/SMS_DP_SMSPKG$/ estar desabilitada, existe uma segunda técnica para recuperar arquivos que pode ser usada executando a ferramenta com -use-signature-method. Nesse modo, a ferramenta faz o seguinte:
http://<SCCM DP>/SMS_DP_SMSPKG$/Datalibhttp://<SCCM DP>/SMS_DP_SMSSIG$/<filename>.tar, onde <filename> é o elemento final de qualquer href da página Datalib (ou seja, 12300005.1)http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib/<filename>/<extracted filename>.INIhttp://<SCCM DP>/SMS_DP_SMSPKG$/Filelib/<hash[0:4]>/<hash> renomeando-o para o nome de arquivo correto, conforme especificado no arquivo de assinatura.Os arquivos de assinatura são arquivos .tar, mas não são tars reais. Eles contêm nomes de arquivo 512 bytes antes da sequência de bytes 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, conforme mostrado abaixo.

A ferramenta procura por essa sequência de bytes e extrai todos os nomes de arquivo dos arquivos de assinatura.