본문 바로가기

보안/Kali

[metasploit] freeftpd_pass 취약점 분석

Metasploit freeftpd_pass 취약점 분석

https://security-child.tistory.com/30

 

[metasploit] freeftpd_pass 취약점 실습

metasploit freeftpd_pass 취약점 실습 칼리리눅스에서 메타스플로잇을 사용한 freeftpd 취약점 실습 입니다. https://www.exploit-db.com/exploits/28681 freeFTPd 1.0.10 - 'PASS' Remote Buffer Overflow (Meta..

security-child.tistory.com

freeftp_pass 실습 확인하시고 포스팅 봐주세요~

Freeftp의 분석을 하기 위해 XP에서 WireShark를 실행 후에 패킷을 분석할 겁니다.

분석하기 전에 분석 과정의 기본 이해를 말씀 드릴게요,

tcp 3way handshake

기본 적으로 현재 2개의 PC에서 tcp 3way handshke의 통신이 이루어 진다고 생각하시면 이해가 편합니다.

3 way handshack는 listen 서버(victim pc)가 접속을 기다리는 상태로 있다가 client(공격자) pc가 접속을 하는 방식으로 이루어져 있으며 이 과정에서 시퀀스를 사용하여 사용자와 연결지향적 통신을 하게 됩니다.

간단하게 이 과정이 이루어진다고 생각하시고 이제 분석 설명들어가겠습니다.

 WireShark

WIRESHARK

Kali에서 freeftpd_pass로 exploit을 실행하게 되면 windows에서 3개의 패킷이 확인할 수 있을 겁니다.

1. 공격자(192.168.219.104)가 ftp 서버(192.168.219.198)로 User anonymous의 계정을 요청합니다.  

2. ftp 서버는 password를 요청 하는데 어차피 anonymos 계정은 password가 없는 익명 사용자라 필요없습니다.

3. PASS 와 함꼐 shell code가 실행되면서 접속 완료된 것을 확인 할 수 있습니다.

??? => ㅇㅋ 이렇게 실행된 것이 알겠는데 어느 문제점으로 인한 쉘코드가 실행되었는가?

      'Targets'        =>
        [
          ['freeFTPd 1.0.10 and below on Windows Desktop Version',
            {
              'Ret'    => 0x004014bb, # pop edi # pop esi # ret 0x04 [FreeFTPDService.exe]
              'Offset' => 801,
            }
          ],
        ],

exploit-db에서 freeftpd_pass 코드 중 target을 확인해보니 ret => 0x004014bb 가 설정되어 있는데 이는 즉 0x004014bb 위치로 주소 값을 이동하러 라는 의미 입니다.

WireShark의 3번째 패킷에서 data부분의 맨 아래를 확인해보면  [bb 14 40 00]을 확인 하실 수 있으실 겁니다. 이를 리틀 에디안으로 변경하면 0.x004014bb가 되므로 exploit 코드의 RET부분과 일치하는 것을 확인하실수 있으습니다.

즉, freeftpd_pass는 0x004014bb주소의 기준으로부터 offset의 기준만큼 떨어진 위치(801)에서 위치에서 쉘코드를 삽입시켜 공격을 한 것을 알 수 있습니다.

bb 14 40 00