Os pontos de distribuição (DPs) SCCM são os servidores usados pelo Microsoft SCCM para hospedar todos os arquivos usados em instalações de software, patches, implantações de script, etc. Por padrão, esses servidores permitem acesso via SMB (TCP/445) e HTTP/S (TCP /80 e/ou TCP/443) e requerem algum tipo de autenticação do Windows (ou seja, NTLM).
As atuais ferramentas de saque do SCCM DP dependem da capacidade de navegar em compartilhamentos SMB para coletar arquivos.
No entanto, não é incomum que uma organização limite o acesso de entrada de SMB a servidores em redes internas e é uma prática padrão impedir o acesso de entrada de SMB pela Internet. O acesso HTTP/S, por outro lado, geralmente não é restrito a redes internas e geralmente é permitido pela Internet. Isso representa uma oportunidade para um invasor se houver uma maneira de obter arquivos do SCCM DP via HTTP/S.
As ferramentas SMB funcionam enumerando a pasta DataLib
do compartilhamento SCCMContentLib$
para localizar arquivos <filename.ext>.INI
que contêm o hash do arquivo. Eles podem então localizar o arquivo real em FileLib/<hash[0:4]>/<hash>
. Isso funciona porque com acesso ao compartilhamento, você pode enumerar todos os arquivos da pasta DataLib
.
Usando HTTP/S, as coisas são diferentes. Navegar para http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib
mostra uma lista 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 nã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, pois os hashes extraídos dos arquivos INI para diretórios não podem ser usados para encontrar o diretórios no FileLib, pois ele armazena apenas arquivos reais.
No entanto, navegar até o nome do diretório diretamente 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 de diretórios do Datalib em busca de diretórios, depois os solicita e analisa cada arquivo, antes de baixar quaisquer arquivos com extensões que estejam na lista de permissões especificada pelo usuário.
No caso em que o acesso anônimo está habilitado, mas a listagem de diretórios fora da raiz http://<SCCM DP>/SMS_DP_SMSPKG$/
está desabilitada, há uma segunda técnica para recuperar arquivos que pode ser usada executando a ferramenta com -use-signature-method
. Neste modo, a ferramenta faz o seguinte:
http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib
http://<SCCM DP>/SMS_DP_SMSSIG$/<filename>.tar
, onde <filename>
é o elemento final em qualquer href da página Datalib (ou seja, 12300005.1
)http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib/<filename>/<extracted filename>.INI
http://<SCCM DP>/SMS_DP_SMSPKG$/Filelib/<hash[0:4]>/<hash>
renomeando-o com 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 arquivos 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 essa sequência de bytes e extrai todos os nomes de arquivos dos arquivos de assinatura.