ProFTPD의 mod_copy모듈 취약점을 이용해 특정조건에서 임의 파일을 복사할 수 있다고 알려졌다. 또한, 이를 악용해 원격 코드 실행 및 정보 유출 공격이 가능하다.
Proftpd는 대부분의 UNIX 계열 시스템과 Windows를 지원하는 오픈소스 FTP이며 Pure-ftpd, vsftpd등 UNIX 기반 플랫폼에서 가장 보편적인 플랫폼 중에 하나이다. 이러한 ProFTPD에서 쓰기권한 없이도 파일을 복사할 수 있는 취약점이 발견되었다. 영향을 받는 버전은 2019.07.17 이전에 컴파일 되거나 바이너리로 설치된 ProFTPD인 경우, 모든 버전에서 mod_copy모듈 취약점의 영향을 받으며 익명 사용자가 접근 가능한 서버의 경우 익명의 사용자가 쓰기 권한이 없어도 파일을 새이름으로 복사할 수 있다. 이는 SITE CPFR, SITE CPTO 명령의 버그로 쓰기제한인 Denyall 지시문을 무시하고 파일을 현재 폴더로 복사 할 수 있게 된다.
취약점 보고에 따르면 악용할 수 있는 공격 중 하나의 시나리오를 공개하였다. 시나리오는 익명의 사용자가 welcome.msg의 내용을 malicious.php로 복사하는 방법이며, PHP코드를 실행하는 웹서버를 통해 PHP가 접근 가능한 경우 파일의 내용이 실행된다. 이와 같은 시나리오는 특정 조건이 필요하며 특정 조건은 아래와 같다.
- 공격자가 사용자 계정, 익명 계정등 ProFTPD 서버에 접근 할 수 있어야 한다.
- Mod_copy모듈이 사용가능한 상태.
- FTP 접근 폴더가 웹을 통해 접근가능해야 한다.
- PHP 코드가 있지만 현재 PHP 확장을 사용하지 않는 파일이 존재.
- 공격자는 “site cpfr” 및 “site cpto”명령을 통해 PHP가 포함된 파일을 PHP 확장자가 있는 파일로 복사.
- 공격자는 웹서버를 통해 PHP파일에 접근하여 코드를 실행할 수 있다.
이와 같은 특정 조건이 필요하다고 해서 취약점을 이용한 공격이 쉽게 성공하지 못한다는 것은 아니다. 다른 예로 공격자는 이 취약점을 이용해 파일을 반복적으로 복사해 접근 가능한 ProFTPD 서버의 저장공간을 빠르게 채울 수도 있다.
다음은 국내에서 사용되는 Proftpd를 Shodan에서 검색한 결과이다.
현재 CVE-2019-12815로 알려진 해당 취약점에 대한 정식 패치 버전은 배포되지 않았지만, 최신 버전인 1.3.6에 백포트되어 포함되어졌다. 따라서 2019.07.17이전에 컴파일된 패키지를 소스에서 설치한 경우 이 취약점의 영향을 받으므로 최신 코드를 다운로드하여 다시 컴파일 하여야한다. 또한, 잠재적인 위협을 차단하기 위해 mod_copy 모듈을 사용하지 않도록 조치 할 수도 있다.
보안관제센터 MIR Team