Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
arcgis-web-shell — Serviço de geoprocessamento do ArcGIS Enterprise que publica uma caixa de ferramentas Python para execução de comandos. | Kitploit
Ferramentas/GitHubGitHub/ryanpohlner/arcgis-web-shell
Escalada de PrivilégiosExploraçãoExploração de Aplicações WebPós-ExploraçãoTestes de PenetraçãoRed TeamingFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubryanpohlner/arcgis-web-shell

arcgis-web-shell

Serviço de geoprocessamento do ArcGIS Enterprise que publica uma caixa de ferramentas Python para execução de comandos.

528há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

ArcGIS Web Shell via Geoprocessing Service

Este repositório contém uma definição de serviço de geoprocessamento do ArcGIS que publica uma caixa de ferramentas Python como uma tarefa de execução de comandos. Destina-se a testes de segurança autorizados.

Não publique nem utilize este serviço em sistemas para os quais não possui autorização explícita. Um serviço de geoprocessamento executa código do lado do servidor com a conta de serviço do ArcGIS Server, pelo que este projeto pode criar uma interface semelhante a uma web shell para o host.

O Que É Isto

O artefacto principal é ArcGIS_Shell, uma tarefa de caixa de ferramentas Python com um parâmetro de entrada:

command

Quando a tarefa é executada, o servidor executa esse comando através do shell do sistema operacional e retorna a saída normal do console por meio do resultado da tarefa do ArcGIS.

O repositório inclui dois arquivos de definição de serviço do ArcGIS pré-construídos:

ArcGIS_Shell_10.9.1_and_earlier.sd
ArcGIS_Shell_11_or_later.sd

Também inclui pastas de definição de serviço extraídas:

ArcGIS_Shell_10.9.1_and_earlier/
ArcGIS_Shell_11_or_later/

Essas pastas contêm os arquivos que o ArcGIS empacota nos arquivos .sd, incluindo os arquivos ArcGIS_Shell.pyt incorporados. Edite as pastas extraídas ao alterar a definição de serviço e, em seguida, reconstrua os arquivos .sd com package_sd.py.

Definições de Serviço

Uma definição de serviço do ArcGIS (.sd) é um artefato de implantação empacotado. Ele contém metadados de serviço, configuração, recursos de toolbox ou mapa e arquivos de suporte necessários para que o ArcGIS Server publique um serviço.

Neste repositório, cada .sd é um arquivo 7-Zip que usa configurações de compressão compatíveis com o ArcGIS:

-ms=off
-m0=LZMA:d=14

As duas pastas de definição de serviço diferem principalmente pela versão de empacotamento do ArcGIS:

10.9.1 and earlier: p20 paths, offlineSDVersion10x, ArcGIS 2.9 schema
11 or later:        p30 paths, offlineSDVersion11,  ArcGIS 3.1 schema

A lógica da caixa de ferramentas Python incorporada é a mesma em ambos.

Serviços de Geoprocessamento

Os serviços de geoprocessamento do ArcGIS são normalmente utilizados para expor fluxos de trabalho de análise GIS através de HTTP. Um fluxo de trabalho comum é:

  1. Criar uma caixa de ferramentas Python, modelo ou ferramenta de script no ArcGIS Pro.
  2. Publicá-la como um serviço de geoprocessamento.
  3. Chamar o serviço a partir de clientes ArcGIS, aplicações web ou clientes REST.
  4. Deixar o ArcGIS Server executar a ferramenta e devolver os resultados.

Exemplos legítimos incluem recortar elementos, executar análise de rede, processar rasters, gerar relatórios e realizar transformações GIS em lote.

A propriedade de segurança importante é que as tarefas de geoprocessamento executam Python do lado do servidor. Se uma tarefa publicada aceitar entrada controlada pelo utilizador e a passar para primitivas perigosas como subprocess.run(..., shell=True), a tarefa de geoprocessamento torna-se uma interface de execução de comandos. É isso que este projeto demonstra.

Porque Isto Pode Ser Abusado

A tarefa Shell aceita um parâmetro de string chamado command. A caixa de ferramentas Python executa esse comando no host do ArcGIS Server e devolve stdout/stderr no resultado da tarefa.

Isto significa que um operador com permissão para publicar ou administrar serviços de geoprocessamento do ArcGIS pode criar um serviço semelhante a uma web-shell através da funcionalidade normal do ArcGIS. O comando é executado no contexto de segurança da conta de processo do ArcGIS Server.

O serviço também ativa a capacidade Uploads do ArcGIS. Isto expõe os endpoints de upload do serviço:

/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads
/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/upload

Os uploads são armazenados pelo ArcGIS Server no diretório de sistema do site, normalmente sob um caminho como:

<arcgisserver>/directories/arcgissystem/arcgisuploads/<itemID>

O caminho exato depende da configuração do diretório do ArcGIS Server. Os administradores podem visualizar os itens enviados por meio de:

https://<server>/arcgis/admin/uploads?f=pjson

Não modifique nem elimine manualmente ficheiros em arcgissystem. Elimine os itens carregados através de REST ou do Administrator Directory.

Publicação através do ArcGIS Server Manager

Utilize o ficheiro .sd que corresponde à versão de destino do ArcGIS:

ArcGIS_Shell_10.9.1_and_earlier.sd
ArcGIS_Shell_11_or_later.sd

Fluxo típico do Server Manager:

  1. Abra o ArcGIS Server Manager:

    https://<server>/arcgis/manager
    
  2. Faça login com uma conta autorizada a publicar serviços. Isso normalmente inclui portaladmin.

  3. Acesse Services.

  4. Clique em Publish Service.

  5. Faça upload do arquivo .sd apropriado para a versão do ArcGIS. Clique em Next.

  6. Na página "Specify properties for your new service", modifique o nome do serviço, se desejar. Clique em Next.

  7. Na página "Share your services with", você não precisa marcar nenhuma caixa. Clique em Publish.

  8. O serviço inicia automaticamente. Clique no nome do serviço, depois em Capabilities e, em seguida, na REST URL.

Para excluir o serviço, clique no "X" ao lado do nome do serviço.

Os arquivos .sd pré-compilados já incluem:

"capabilities": "Uploads"

Eles também incluem configurações amplas de upload para testes:

"maxUploadFileSize": "2048",
"allowedUploadFileTypes": "<broad explicit extension list>"

maxUploadFileSize está em MB. A lista de extensões é intencionalmente ampla para trabalhos de avaliação, mas ainda é uma lista de permissões explícita, não um curinga verdadeiro de "permitir tudo".

Usando a Interface Web REST

Após a publicação, abra o serviço no ArcGIS REST Services Directory:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer

Se o serviço for publicado dentro de uma pasta, inclua o nome da pasta:

https://<server>/arcgis/rest/services/<folder>/ArcGIS_Shell/GPServer

Abrir a tarefa:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/Shell

Clique em Execute Task.

Defina seu comando e envie o formulário. O resultado da tarefa deve conter a saída do comando.

A saída está formatada em JSON, portanto as quebras de linha são escapadas (\r\n). Será necessário pós-processar a saída de múltiplas linhas.

Como a tarefa utiliza o shell do sistema operacional, os comandos internos do shell funcionam:

dir
echo test
whoami /groups

Em alvos Linux, use comandos Linux:

id
uname -a
pwd

Enviando Arquivos

Abra o recurso de uploads:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads

Clique em Upload Item, ou vá diretamente para:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/upload

A GUI web REST deve mostrar um seletor de arquivos se os uploads estiverem habilitados.

Use o formulário para escolher um arquivo e enviar o upload. A resposta inclui um itemID.

Inspecione o item enviado com:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/<itemID>

Exclua o item enviado com:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/<itemID>/delete

Use o formulário web REST nessa página para submeter a operação de exclusão.

Os ficheiros carregados também estão sujeitos à política de limpeza do diretório de sistema do ArcGIS Server. A idade predefinida de limpeza do diretório de sistema é habitualmente 24 horas, mas os administradores podem alterá-la.

Localizar Ficheiros Carregados no Disco

Baixar ferramenta