티스토리 뷰

study/pentest

[pentest] IMAP/POP3

hoppi 2022. 3. 4. 11:38

80번째 글.

 

 

1. IMAP, POP3 란?

IMAP은 Internet Message Access Protocol의 약자로 이메일을 읽기 위해 쓰이는 프로토콜이다.

POP3는 Post Office Protocol로 IMAP과 궁극적인 목적은 같다.

IMAP의 경우는 143번 또는 993번(SSL사용 시) 포트 사용

POP3는 110번 995번(SSL사용시) 포트를 사용한다.

 

 

 

2. 차이점

IMAP의 경우 POP3와 달리 서버에서 직접 이메일을 온라인으로 관리할 수 있으며 폴더 구조를 지원한다.

클라이언트 서버 기반이며 로컬 이메일 클라이언트를 서버의 메일함과 동기화가 가능하며
이메일에 대한 일종의 네트워크 파일 시스템을 제공하여 여러 독립 클라이언트 간에 문제없는 동기화가 가능하다.

POP3는 IMAP과 동일한 기능을 가지고 있지 않고 이메일 서버의 기능으로 이메일 목록 작성, 검색, 삭제만 제공

 

 

 

3. IMAP의 단점

추가의 설정없이 IMAP은 암호화되지 않은 상태로 작동하며

명령, 이메일 또는 사용자 이름과 비밀번호를 평문으로 전송한다.

그렇기 때문에 많은 이메일 서버는 트래픽의 보안을 강화하고 메일박스에 대한 무단 접근을 방지하기 위해서 
암호화된 IMAP 세션을 설정해야한다. SSL/TLS가 이러한 목적으로 사용되며 이 경우 993번 포트를 사용한다.

 

 

 

4. 위험한 설정

부적절하게 구성된 설정은 서비스에서 실행된 명령을 디버깅하거나 FTP 서비스와 유사하게 익명 로그인이 가능하다. 

대부분의 회사들은 구글, MS와 같은 서드파티 이메일 제공자를 사용하지만 어떤 회사들은 여러 가지 이유로 인해서
본인들만의 메일 서버를 사용한다.

관리자에 의한 실수로 인해서 최악의 경우에는 기밀이나 민감한 정보가 포함되어있는 이메일을 읽을 수 있게 된다.

 

설정 설명
auth_debug 인증 디버그 로깅 허용
auth_debug_passwords 입력된 패스워드에 대해서 로그에 대한 verbosity를 조절함
(yes or plain)
auth_verbose 실패한 인증과 그 이유에 대해서 기록
auth_verbose_passwords 인증에 사용된 패스워드가 기록
auth_anonymous_username Anonymous SASL 매커니즘 사용시 사용할 username을 정의

 

 

 

5. Footprinting IMAP

openssl을 이용한 접속

openssl을 이용하여 암호화된 상태로 IMAP과 interaction 한다.

1 LOGIN USER PASSWORD

IMAP 명령어를 이용하여 문제에 제시된 credential로 로그인

 

1 LIST "" *

LIST 명령어를 이용하여 모든 디렉토리 출력

 

1 SESLECT <directory>

그리고 SELECT 명령어를 통해 디렉토리를 선택해준다. 기본 디렉토리인 INBOX에는 존재하는 메일이 없었지만

DEV.DEPARTMENT.INT에는 한 개의 이메일이 존재하였다.

 

1 FETCH <uid> ALL

메일박스에 있는 메일에 대한 정보를 얻기 위해서 FETCH 명령어를 이용해 ENVELOPE를 확인할 수 있다.

 

그리고 FETCH 옵션으로 메일의 내용을 확인할 수 있고 거기서 FLAG를 획득할 수 있었다.

 

 

 

Reference