Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
arcgis-web-shell — Сервис геообработки ArcGIS Enterprise, который публикует набор инструментов Python для выполнения команд. | Kitploit
Инструменты/GitHubGitHub/ryanpohlner/arcgis-web-shell
Повышение привилегийЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияТестирование на ПроникновениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubryanpohlner/arcgis-web-shell

arcgis-web-shell

Сервис геообработки ArcGIS Enterprise, который публикует набор инструментов Python для выполнения команд.

5104 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

ArcGIS Web Shell через сервис геообработки

Этот репозиторий содержит определение сервиса геообработки ArcGIS, которое публикует Python-инструментарий как задачу выполнения команд. Он предназначен для авторизованного тестирования безопасности.

Не публикуйте и не используйте этот сервис в системах, на которые у вас нет явного разрешения. Сервис геообработки выполняет серверный код от имени учётной записи службы ArcGIS Server, поэтому этот проект может создать интерфейс, подобный веб-шеллу, для доступа к хосту.

Что это такое

Основной артефакт — ArcGIS_Shell, задача Python-инструментария с одним входным параметром:

command

Когда задача выполняется, сервер исполняет эту команду через оболочку операционной системы и возвращает обычный вывод консоли через результат задачи ArcGIS.

Репозиторий включает два предварительно собранных файла определения сервиса ArcGIS:

ArcGIS_Shell_10.9.1_and_earlier.sd
ArcGIS_Shell_11_or_later.sd

Он также включает извлечённые папки с определениями сервисов:

ArcGIS_Shell_10.9.1_and_earlier/
ArcGIS_Shell_11_or_later/

Эти папки содержат файлы, которые ArcGIS упаковывает в архивы .sd, включая встроенные файлы ArcGIS_Shell.pyt. Редактируйте извлечённые папки при изменении определения сервиса, затем пересоберите файлы .sd с помощью package_sd.py.

Определения сервисов

Определение сервиса ArcGIS (.sd) — это упакованный артефакт развёртывания. Оно содержит метаданные сервиса, конфигурацию, ресурсы набора инструментов или карты, а также вспомогательные файлы, необходимые ArcGIS Server для публикации сервиса.

В этом репозитории каждый .sd представляет собой архив 7-Zip, использующий совместимые с ArcGIS настройки сжатия:

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

Две папки с определениями сервисов различаются в основном версией упаковки ArcGIS:

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

Встроенная логика набора инструментов Python в обоих случаях одинакова.

Сервисы геообработки

Сервисы геообработки ArcGIS обычно используются для предоставления рабочих процессов GIS-анализа по HTTP. Типичный рабочий процесс выглядит так:

  1. Создать набор инструментов Python, модель или инструмент-скрипт в ArcGIS Pro.
  2. Опубликовать его как сервис геообработки.
  3. Вызывать сервис из клиентов ArcGIS, веб-приложений или REST-клиентов.
  4. Позволить ArcGIS Server выполнить инструмент и вернуть результаты.

Легитимные примеры включают обрезку объектов, выполнение сетевого анализа, обработку растров, генерацию отчётов и выполнение пакетных GIS-преобразований.

Важное свойство безопасности заключается в том, что задачи геообработки выполняют Python на стороне сервера. Если опубликованная задача принимает контролируемый пользователем ввод и передаёт его в опасные примитивы, такие как subprocess.run(..., shell=True), задача геообработки становится интерфейсом выполнения команд. Именно это демонстрирует данный проект.

Почему это можно использовать во вред

Задача Shell принимает строковый параметр с именем command. Набор инструментов Python выполняет эту команду на хосте ArcGIS Server и возвращает stdout/stderr в результате задачи.

Это означает, что оператор, имеющий право публиковать сервисы геообработки ArcGIS или администрировать их, может создать сервис, подобный веб-шеллу, через штатную функциональность ArcGIS. Команда выполняется в контексте безопасности учётной записи процесса ArcGIS Server.

Сервис также включает возможность ArcGIS Uploads. Это открывает конечные точки загрузки сервиса:

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

Загрузки хранятся ArcGIS Server в системном каталоге сайта, обычно по пути, подобному:

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

Точный путь зависит от конфигурации каталога ArcGIS Server. Администраторы могут просматривать загруженные элементы через:

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

Не изменяйте и не удаляйте файлы в arcgissystem вручную. Удаляйте элементы загрузки через REST или Administrator Directory.

Публикация через ArcGIS Server Manager

Используйте файл .sd, соответствующий целевой версии ArcGIS:

ArcGIS_Shell_10.9.1_and_earlier.sd
ArcGIS_Shell_11_or_later.sd

Типичный сценарий работы в Server Manager:

  1. Откройте ArcGIS Server Manager:

    https://<server>/arcgis/manager
    
  2. Войдите с учётной записью, имеющей право публиковать сервисы. Обычно это включает portaladmin.

  3. Перейдите в раздел Services.

  4. Нажмите Publish Service.

  5. Загрузите соответствующий файл .sd для вашей версии ArcGIS. Нажмите Next.

  6. На странице "Specify properties for your new service" при необходимости измените имя сервиса. Нажмите Next.

  7. На странице "Share your services with" отмечать какие-либо флажки не требуется. Нажмите Publish.

  8. Сервис запустится автоматически. Нажмите на имя сервиса, затем Capabilities, затем REST URL.

Чтобы удалить сервис, нажмите "X" рядом с именем сервиса.

Готовые файлы .sd уже включают:

"capabilities": "Uploads"

Они также включают широкие настройки загрузки для тестирования:

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

maxUploadFileSize задаётся в МБ. Список расширений намеренно сделан широким для задач оценки, но он всё равно остаётся явным списком разрешённых расширений, а не настоящим подстановочным знаком «разрешить всё».

Использование REST Web GUI

После публикации откройте сервис в ArcGIS REST Services Directory:

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

Если сервис опубликован внутри папки, укажите имя папки:

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

Откройте задачу:

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

Нажмите Execute Task.

Задайте команду и отправьте форму. Результат задачи должен содержать вывод команды.

Вывод отформатирован в JSON, поэтому символы новой строки экранированы (\r\n). Вам потребуется постобработка многострочного вывода.

Поскольку задача использует системную оболочку операционной системы, встроенные команды оболочки работают:

dir
echo test
whoami /groups

В Linux-целях используйте команды Linux:

id
uname -a
pwd

Загрузка файлов

Откройте ресурс uploads:

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

Нажмите Upload Item или перейдите напрямую к:

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

REST веб-интерфейс должен показывать выбор файла, если загрузка включена.

Используйте форму, чтобы выбрать файл и отправить его на загрузку. Ответ содержит itemID.

Проверьте загруженный элемент с помощью:

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

Удалите загруженный элемент с помощью:

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

Используйте REST-веб-форму на этой странице, чтобы отправить операцию удаления.

Загруженные файлы также подчиняются политике очистки системного каталога ArcGIS Server. По умолчанию срок очистки системного каталога обычно составляет 24 часа, но администраторы могут его изменить.

Поиск загруженных файлов на диске

ArcGIS хранит загрузки сервисов в системном каталоге сайта ArcGIS Server, а не в папке сервиса и не внутри пакета .sd. Обычное расположение:

<server-directories-root>/arcgissystem/arcgisuploads/<itemID>/

Общая раскладка Windows:

C:\arcgisserver\directories\arcgissystem\arcgisuploads\<itemID>\

Типичная структура каталогов Linux:

/arcgis/server/usr/directories/arcgissystem/arcgisuploads/<itemID>/
Скачать инструмент