CVE-2025-55182 취약점 탐지 및 익스플로잇 도구
프로젝트 소개
이 도구는 Java Swing 기반으로 개발된 GUI 도구로, CVE-2025-55182 취약점을 탐지하고 익스플로잇하는 데 사용됩니다. 이 취약점은 Next.js 프레임워크의 보안 취약점으로, 공격자가 특정 요청을 구성하여 임의의 명령을 실행할 수 있습니다.
기능 특징
1. 취약점 탐지
- 여러 URL 스캔 지원
- 멀티스레드 동시 스캔을 통한 탐지 속도 향상
- 실시간 스캔 진행률 및 개수 표시 (예: 1/1000 (0%))
- 취약점이 존재하는 대상만 표시, 관련 없는 정보 필터링
- 파일 가져오기를 통한 대량 탐지 지원
- 스캔 중지 기능 제공
2. 명령어 실행
- Linux/Windows 명령어 실행 지원
- 대상 운영 체제 자동 또는 수동 선택
- 명령어 실행 결과 실시간 표시
3. 메모리 웹셸 주입
- 간단한 명령어 실행 메모리 웹셸 주입 지원
- Godzilla 메모리 웹셸 (RC4 암호화 포함) 주입 지원
- 연결 정보 및 사용 설명 자동 생성
4. 리버스 셸
- Linux/Windows 리버스 셸 지원
- 사용자 정의 리버스 명령 지원
- 다양한 리버스 방식 제공 (Linux named pipe, Windows PowerShell)
기술 아키텍처
- 개발 언어: Java
- GUI 프레임워크: Swing
- 네트워크 통신: HttpURLConnection
- 동시성 처리: ExecutorService 스레드 풀
- 프로젝트 관리: Maven
환경 요구 사항
컴파일 및 실행
1. 프로젝트 컴파일
# 프로젝트 디렉토리로 이동
cd CVE202555182GUI
# 컴파일 및 패키징
mvn clean package
2. 도구 실행
# 의존성을 포함한 실행 가능한 JAR 파일 실행
java -jar target/CVE202555182GUI-1.0-SNAPSHOT-jar-with-dependencies.jar
사용 방법
취약점 탐지
- "대상 URL" 텍스트 상자에 하나 이상의 대상 URL을 입력합니다 (한 줄에 하나씩).
- 또는 "파일 가져오기" 버튼을 클릭하여 URL 목록이 포함된 파일을 선택합니다.
- "스캔 시작" 버튼을 클릭하여 스캔을 시작합니다.
- 스캔 결과는 아래 "스캔 결과" 영역에 표시됩니다.
- "스캔 중지" 버튼을 클릭하여 스캔을 중단할 수 있습니다.
명령어 실행
- 대상 URL을 입력합니다.
- 실행할 명령어를 입력합니다.
- 대상 운영 체제를 선택합니다 (auto/linux/windows).
- "명령어 실행" 버튼을 클릭합니다.
- 명령어 실행 결과는 아래 "실행 결과" 영역에 표시됩니다.
메모리 웹셸 주입
- 대상 URL을 입력합니다.
- 메모리 웹셸 유형을 선택합니다 (간단한 명령어 실행/Godzilla 메모리 웹셸).
- 대상 운영 체제를 선택합니다 (auto/linux/windows).
- "메모리 웹셸 주입" 버튼을 클릭합니다.
- 주입 결과 및 연결 정보는 아래 "주입 결과" 영역에 표시됩니다.
리버스 셸
- 대상 URL을 입력합니다.
- 리버스 IP와 포트를 입력합니다.
- 대상 운영 체제를 선택합니다 (linux/windows).
- 선택 사항: 사용자 정의 리버스 명령을 입력합니다.
- "리버스 셸 주입" 버튼을 클릭합니다.
- 주입 결과는 아래 "주입 결과" 영역에 표시됩니다.
취약점 원리
CVE-2025-55182 취약점은 Next.js 프레임워크가 특정 요청을 처리할 때 발생하는 보안 결함으로 인해 발생합니다. 공격자는 악의적인 multipart/form-data 요청을 구성하여 서버 측에서 임의의 명령을 실행할 수 있습니다.
도구는 다음 단계로 취약점을 탐지합니다:
- 명령어 실행 페이로드가 포함된 요청을 구성합니다.
- 대상 서버의
/_next/data 경로로 전송합니다.
- 응답에 예상된 명령어 실행 결과가 포함되어 있는지 확인합니다.
- 결과에 따라 취약점 존재 여부를 판단합니다.
참고 프로젝트
본 프로젝트는 다음 오픈소스 프로젝트를 참고했습니다:
보안 주의사항
- 본 도구는 보안 테스트 및 승인된 침투 테스트에만 사용하십시오.
- 도구 사용 시 관련 법규를 준수하십시오.
- 승인되지 않은 대상에 도구를 사용하지 마십시오.
- 테스트 완료 후 주입된 메모리 웹셸을 즉시 정리하십시오.
주의 사항
- 스캔 속도: 기본적으로 10개 스레드를 사용하여 동시에 스캔하며, 네트워크 환경에 따라 조정할 수 있습니다.
- 타임아웃 설정: 기본 타임아웃은 10초이며, 네트워크 환경에 따라 조정할 수 있습니다.
- 메모리 웹셸 연결: Godzilla 메모리 웹셸 사용 시 별도의 Node.js 연결 플러그인이 필요합니다.
- 리버스 셸: 로컬에서 해당 수신 포트를 시작해야 합니다 (예:
nc -lvvp 4444).
문제 해결
일반적인 문제 및 해결 방법
-
스캔 진행률 표시줄이 움직이지 않음
- 대상 URL이 올바른지 확인하세요.
- 네트워크 연결이 정상인지 확인하세요.
- 동시 스레드 수를 줄여보세요.
-
명령어 실행 실패
- 대상에 취약점이 존재하는지 확인하세요.
- 운영 체제 선택이 올바른지 확인하세요.
- 명령어가 대상 시스템 구문에 맞는지 확인하세요.
-
메모리 웹셸 주입 실패
- 대상에 취약점이 존재하는지 확인하세요.
- 네트워크 연결이 안정적인지 확인하세요.
- 다른 유형의 메모리 웹셸을 시도해 보세요.
-
리버스 셸 연결 불가
- 로컬 수신 포트가 시작되었는지 확인하세요.
- 네트워크 방화벽 설정을 확인하세요.
- 리버스 IP와 포트 설정이 올바른지 확인하세요.
- 사용자 정의 리버스 명령을 시도해 보세요.
버전 이력
- v1.0.0: 초기 버전
- 기본 취약점 탐지 기능 구현
- 명령어 실행 기능 구현
- 메모리 웹셸 주입 기능 구현
- 리버스 셸 기능 구현
면책 조항
본 도구는 학습 및 승인된 보안 테스트 목적으로만 제공되며, 불법적인 용도로 사용하지 마십시오. 본 도구를 사용하여 발생하는 모든 결과는 사용자 본인이 책임집니다.
연락처
문의 사항이나 제안 사항이 있으시면 작성자에게 연락해 주십시오.