Metasploitable2 - FTP 취약점 공격 (vsftpd 2.3.4, CVE-2011-2523)
1. Metasploitable 서버 포트 스캔 및 vsftp 버전 정보 확인
Nmap을 이용해 Metasploitable 서버(192.168.183.128)에 열린 포트를 확인했다. 그중 ftp 포트가 오픈되어 있고, vsftpd 2.3.4 버전을 사용 중인 것을 확인했다.
2. Exploit-DB를 활용하여 해당 버전 취약점 검색
Exploit-DB에서 해당 버전의 취약점을 검색한 결과, vsftpd 2.3.4 취약점 관련 두 개의 익스플로잇 코드가 검색됐다.
3. Metasploit을 이용한 공격 수행
먼저, Metasploit 실행한다.
실행 후, vsftpd 취약점 모듈을 검색하고 공격 모듈을 선택한다.
show options 명령어를 입력하여 현재 설정된 옵션을 확인한다. 현재 공격 대상(타겟=Metasploitable)의 주소 RHOSTS가 설정되어 있지 않다.
타겟의 호스트 주소(192.168.183.128)를 설정하고, 다시 설정된 옵션을 확인한 결과 타겟의 주소가 설정된 것을 확인했다.
exploit 명령어로 공격을 실행했다. 실행 결과 공격이 성공했고 셸에 접속이 됐다. 현재 셸의 권한을 확인하기 위해 whoami 명령어를 실행했고, root 권한인 것을 확인했다.
추가로 ifconfig 명령어로 현재 네트워크를 확인한 결과 IP 주소가 192.168.183.128로 Metasploitable인 것을 확인했다.
4. 취약점 분석 및 대응방안
현재 vsftpd 2.3.4 버전에는 백도어 계정이 존재하는 심각한 취약점이 있다. 해당 취약점은 공격자가 FTP 서비스의 익명 로그인 또는 특정 입력을 이용해 루트 권한의 셸을 획득할 수 있다.
대응 방안으로 첫 번째는 보안 패치 및 버전 업그레이드가 있다. vsftpd 2.3.4는 더 이상 유지보수되지 않으므로, 최신 보안 패치가 적용된 버전으로 업그레이드가 필요하다.
명령어는 아래와 같다.
$ sudo apt update
$ sudo apt upgrade vsftpd
두 번째는 불필요한 서비스 및 포트를 차단한다. FTP 서비스가 필요하지 않다면 비활성화하거나 방화벽에서 FTP 포트를 차단한다. 세 번째는 인증 강화 및 접근을 통제한다. 익명 로그인을 비활성화하거나 특정 IP만 접근이 가능하게 설정한다. 마지막으로 침해 여부를 점검하거나 로그 분석을 통해 모니터링한다.