인프라 취약점 진단/전자금융기반시설 취약점 분석ㆍ평가

SMTP 서비스의 expn/vrfy 명령어 취약점 진단

컨설턴트X 2025. 2. 19. 13:31
728x90
반응형

SMTP EXPN & VRFY 명령어

SMTP에서 EXPN(Expand)VRFY(Verify) 명령어는 원래 이메일 주소 확인 및 확장을 위한 기능이지만, 보안상 취약점이 있어 현대 SMTP 서버에서는 비활성화하는 것이 일반적입니다.


1. EXPN (Expand)

메일링 리스트(Mailing List)와 같은 그룹 주소를 확장하여 포함된 개별 이메일 주소를 반환하는 명령어


메일 그룹(메일링 리스트)이 있을 때, EXPN (그룹 이름)을 입력하면 그 그룹에 속한 개별 사용자 이메일 주소가 모두 출력

 

(예제)

 
EXPN support@example.com
 

(서버 응답 예시)

250- johndoe@example.com
250- janedoe@example.com
250 user3@example.com

 

여기서 250 이란?

  • 250: 요청 성공 (Requested mail action okay, completed)
  • 250 응답 코드는 "요청이 성공적으로 처리됨"을 의미함.

보안 문제:

  • 공격자가 메일링 리스트에 속한 모든 이메일 주소를 수집할 수 있음.
  • 이를 통해 스팸 메일 또는 피싱 공격 대상을 식별할 수 있음.

2. VRFY (Verify)

특정 이메일 주소가 존재하는지 확인하는 명령어

 

VRFY (이메일 계정)을 입력하면 해당 이메일 계정이 존재하는지 여부를 확인할 수 있음

 

(예제)

VRFY admin@example.com

 

( 서버 응답 예시 )

250 admin@example.com

 VRFY에서 계정이 없을 때? (550 응답)

VRFY hacker@example.com

 

( 서버 응답 예시 )

550 5.1.1 User unknown

 

  • hacker@example.com 계정이 존재하지 않음.
  • 550 응답 코드는 서버가 해당 이메일을 찾을 수 없거나, 요청을 거부했음을 의미

보안 문제 : 

 

  • 실제 존재하는 계정을 식별할 수 있으므로 무차별 대입 공격(Brute Force Attack)의 대상이 될 수 있음.
  • 공격자는 VRFY 명령을 반복 실행하여 유효한 이메일 주소 목록을 수집할 수 있음.

무차별 대입 공격(Brute Force Attack)이란?

  • 가능한 문자 또는 숫자 조합을 체계적으로 시도하여 비밀번호 또는 사용자 이름을 추측하고 무단으로 계정에 액세스하는 공격

조치 방법

1. Sendmail

/etc/mail/sendmail.cf 파일을 수정하여 다음 설정을 추가:

 
O PrivacyOptions=noexpn,novrfy

 

설정 적용 후 Sendmail 재시작:

systemctl restart sendmail

 

이제 EXPN 및 VRFY 명령어가 비활성화되며, 공격자가 내부 이메일 계정을 수집할 수 없음


2. Postfix

/etc/postfix/main.cf 파일을 열고 다음 설정을 추가:

disable_vrfy_command = yes

 

설정 적용 후 Postfix 재시작:

systemctl restart postfix

 

이제 VRFY 명령을 실행해도 502 5.5.1 VRFY command disabled 오류가 발생하며 차단됨


결론

 

  • EXPN은 메일링 리스트를 개별 사용자로 확장하여 보여주는 기능 → 이메일 수집에 악용될 가능성 높음
  • VRFY는 특정 이메일 계정이 존재하는지 확인하는 기능 → 브루트포싱 공격으로 이메일 계정 정보를 수집하는 데 악용될 가능성 높음
  • 250 응답 코드는 "요청 성공"을 의미하며, 공격자가 정보를 얻었다는 뜻이 됨 → 보안상 매우 취약함!
  • 따라서 현대 SMTP 서버에서는 기본적으로 EXPN과 VRFY 기능을 비활성화하는 것이 보안 모범 사례! 

 

 

 

 

 

728x90
반응형