감자 텃밭

[모의 해킹] - Metasploitable2 - FTP 취약점 (CVE-2011-2523) 본문

Pentest/Pentest

[모의 해킹] - Metasploitable2 - FTP 취약점 (CVE-2011-2523)

g2h 2023. 10. 31. 16:00

Metasploitable2를 대상으로 모의해킹(침투테스트)을 진행하였으며, 포트스캔과정은 생략하고, 

21번 포트를 대상으로 침투테스트 과정에 대해서만 작성했습니다.


─$ sudo nmap -sV -sC 192.168.146.134 -p21
Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-29 01:53 EDT
Nmap scan report for 192.168.146.134
Host is up (0.0014s latency).

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to 192.168.146.132
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      vsFTPd 2.3.4 - secure, fast, stable
|_End of status
MAC Address: 00:0C:29:A3:BB:B4 (VMware)
Service Info: OS: Unix

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.31 seconds

위 결과는 Nmap 을 통해 21번 포트에 대해 스캔 결과이다. (Nmap -sV -sC -p21) 옵션을 사용했으며, -sC 옵션을 통해

기본적은 스크립트를 돌려 21번 포트에 대해 알려진 취약점 또한 함께 스캔되었다.

 

해당 결과에서 얻은 유용한 정보로는, Anonymous(익명) 계정으로의 접근이 가능하며, vsftpd 2.3.4 버전을 사용 중이라는 것이다. 이때 vsftpd 2.3.4 버전에는 backdoor 취약점 (cve-2011-2523)이 존재한다.


CVE-2011-2523 취약점은 임의의 공격자가 vsftpd다운로드 아카이브에 악성 백도어를 추가시켜, 업로드되었다. 이는 2011년 6월 30일부터 2011년 7월 1일 동안 업로드 되어 있었으며, 해당

버전을 다운받아 사용한 사용자들은 모두 해당 취약점에 노출되었다.

 

해당 소스코드에는 원인 불명의 백도어가 username 부분에 :) 문자를 포함시키고 6200번 포트에서 listening shell을 열고, 이를 통해 RCE이 가능하다.

그림 1-1 Searchsploit 검색 결과

Searchsploit에서도 해당 취약점을 이용한 공격 모듈이 존재하였으며, Metasploit에서도 동일한 공격 모듈이 존재한다.

해당 공격에서는 Metasploit을 사용하여 공격을 진행했다.

 

그림 1-2 Metasploit 공격 모듈

그림 2-2 와 같이 options을 통해 필요한 설정값들이 존재한다. 

해당 모듈은 필수적인 값 2개 RHOSTS 와 RPORT 두 개가 존재하며, 이중 RPORT는 FTP가 동작중인 포트 번호이며, 21 포트로 설정되어 있다. RHOSTS 만 설정해 주면 된다. 공격 대상의 IP 주소를 설정해 주면 된다.

 

그림 1-3 Metasploit 에서의 exploit 모듈을 실행한 모습

설정을 끝마친 후 exploit 을 통해 모듈을 실행시키면 성공적으로, 공격에 성공하여 root 권한을 획득한 채 타깃 시스템에 침투된 것을 확인할 수 있다.

 

해당 과정을 Wireshakr를 사용하여, 공격과정에서의 패킷을 분석 해보았다.

 

그림 1-4 Wireshark를 통한 패킷분

해당 패킷을 살펴보면, vsftpd 2.3.4로 접속을 시도하고 있으며, user값과 pass값을 제출하는 것을 확인할 수 있으며, User 값에 역시 :) 문자를 삽입한 걸 확인할 수 있다.

 

그림 1-5 Wireshark  의 Flow Graph 기능

Flow Graph를를 통해 좀 더 자세하고 편리하게 살펴보자.

초반 부분 6200 포트로의 접근을 시도하지만 응답 패킷이 RST+ACK로 거부당한 걸 확인할 수 있다. 그 후 21번 포트로의 SYS+ACK 패킷을 수신받고 ACK로 연결하는 정상적인

3-Handshake 과정을 수행한 것을 알 수 있다.

그 후 USER 값에 임의의 문자열과 :) 문자를 포함하여 보낸 후 PASS 값또한 보낸 걸 확인했다.

그 후 다시 6200 포트에 SYN 패킷을 보내 연결을 요청하고 그 후 정상적인

SYN+ACK 패킷을 수신받아  ACK 패킷을 보내고

3-Handshake 과정을 거쳐 해당 포트와 연결된 걸 알 수 있다.

 

그 아래에 PSH, ACK 패킷을 보아 특정 값을 서버에 보낸 걸 알 수 있으며 해당 값을 확인해 보았다.

그림 1-6 PSH, ACK 패킷

그림 1-6에서  id 라는 인자값을 보낸 것으로 확인된다.

해당 PSH 플래그 이후 응답값을 확인해 보았다.

 

그림 1-7  PSH,ACK 패킷2

Id 명령어에 대한 응답값이 Response 값으로 오고 있다.

이후에도 여러 값들이 오고 가는 게 목격되어 TCP Stream 기능을 통해 어떠한 값들이 오고 갔는지에 대해 확인해 보았다.

그림 1-8

그림 1-8의 id, nphub, echo 등은 공격모듈에서 정상적으로 서버와 연결되었는지 확인하는 과정인 거 같다.

그 아래에 존재하는 id 명령어가 실습 과정에서 입력한 명령어이다

 

이렇게 vsftpd 2.3.4 취약점에 대해 관련 cve 취약점을 이용하여 침투테스트 및 해당 공격 패킷을 분석해 보았다.

ftp는 인터넷을 통해 파일을 송수신할 때 사용하는 편리한 프로토콜이지만, 이는 다양한 위험이 존재하는 취약한 프로토콜이다. 불필요한 경우 비활성화 및 SSH, SFTP 사용을 지향하고  사용할 경우에는 허용되는 계정에 대해서만 강력한 접근제어를 해야 한다, 또한 Anonymous 계정에 대해 접근설정을 비활성화하는 것이 올바른 대응방안이 될 수 있다.

 

※ 내용이 이상하거나 문제가 있을 경우, 또는 설명에 부족한 내용이 있으시면 알려 주시면 감사합니다.