
Лаборатория и PoC
Судя по всему, этот репозиторий — исследовательский проект proof-of-concept для проверки проблемы десериализации и обработки панели инструментов (ToolPane) в стиле SharePoint в контролируемой лабораторной среде. Он включает драйвер Python, имитацию уязвимого приложения и контейнерные ресурсы для изолированного тестирования.
[!WARNING] Этот проект должен использоваться только в системах, контейнерах или сетях, которыми вы владеете или на тестирование которых получили явное разрешение. Не запускайте этот код против публичной инфраструктуры, сторонних сервисов, производственных сред или любых других целей без письменного разрешения. Несанкционированное тестирование безопасности может нарушать закон, договор, политику или условия допустимого использования.
Содержимое этого репозитория следует рассматривать как конфиденциальные исследовательские материалы по безопасности. Если вы используете этот проект для оценочной работы, выполняйте запуск изолированно, регистрируйте все действия и согласуйте тестирование с владельцем системы.
В настоящее время репозиторий содержит:
sploit.py: асинхронный драйвер Python, который отправляет специально сформированные запросы к конечной точке ToolPane.lab/mock_vulnerable_app.cs: имитация уязвимого приложения ASP.NET, которая возвращает маркер проверки и в текущем виде может выполнять переданную команду внутри лабораторного контейнера.lab/docker-compose.yml: локальная лаборатория из двух контейнеров, которая разделяет имитацию цели и терминал атакующего.lab/Dockerfile: многоэтапная сборка .NET, которая публикует имитацию уязвимого приложения в меньший образ среды выполнения ASP.NET и запускает его от имени непривилегированного пользователя (не root).lab/attacker.Dockerfile: определение контейнера атакующего на Python, которое предустанавливает набор зависимостей скрипта, необходимый для терминала лаборатории.lab/vulnerable.csproj: файл веб-проекта .NET 6 для имитации уязвимого приложения.lab/genGadget.py: вспомогательный скрипт для генерации сжатой полезной нагрузки Base64 для тестирования десериализации только в лабораторных условиях.Эта процедура предназначена только для локальной лаборатории.
Предварительные требования:
Запустите лабораторию из каталога lab/:
cd lab
docker-compose up --build -d
Если ваша среда Docker требует повышенных привилегий, выполните те же команды с sudo.
Убедитесь, что оба контейнера запущены:
docker-compose ps
Просмотр журналов при возникновении проблем или для проверки эксплуатации:
docker logs sp_attacker
docker logs sp_vulnerable_lab
Лаборатория намеренно изолирована:
lab_net;Откройте оболочку в контейнере атакующего:
docker exec -it sp_attacker bash
Из контейнера атакующего можно выполнять безопасные для лаборатории проверки, например подтверждать доступность цели и тестировать скрипт в режиме проверки против имитации цели:
python3 sploit.py http://sp_vulnerable_lab/
# If service-name DNS resolution fails in your environment, use the lab IP:
# python3 sploit.py http://10.10.10.5
# If you wish to go past base validation you can include wanted commands.
python3 sploit.py http://sp_vulnerable_lab whoami
Ожидаемое поведение в локальной среде имитации:
http://sharepoint-target из контейнера атакующего;Эксплуатационные примечания:
Остановите и удалите контейнеры лаборатории и сеть:
cd lab
docker-compose down
Если вы также хотите удалить созданные образы:
docker-compose down --rmi local
Если вы хотите полностью сбросить артефакты рабочего пространства лаборатории, после завершения работы удалите все созданные файлы результатов:
rm -f vuln.lst
Рекомендуемая практика очистки после каждого упражнения:
docker-compose down;Проект структурно состоятелен как локальная исследовательская лаборатория, но в текущем виде его не следует рассматривать как безопасный для производства валидатор.
Что работает:
Что требует осторожности:
vuln.lst, что может создавать ненужные остаточные конфиденциальные данные.Используйте этот проект только для контролируемой проверки обнаружения и подверженности, а не для операционной эксплуатации.
Рекомендуемая методология:
Для реальной оценочной работы более безопасным стандартом является замена проверки в стиле эксплуатации одним или несколькими из следующих подходов:
Если цель действительно уязвима к ошибке десериализации в привилегированном компоненте приложения, потенциальное воздействие может быть серьёзным:
Даже в лаборатории семантика выполнения команд значительно повышает риск, поскольку она нормализует рабочие процессы, которые должны быть зарезервированы для строго контролируемого и авторизованного исследования.
Правильный путь снижения риска — оборонительный и многоуровневый.
Немедленные действия:
Действия по усилению защиты:
/_layouts/15/ToolPane.aspx и смежным административным путям.Специфические меры для исследовательской лаборатории:
Этот README не содержит инструкций по эксплуатации реальных систем. Он описывает репозиторий как контролируемый исследовательский артефакт и излагает более безопасные методы проверки и снижения риска.