25 - SMTP

SMTP는 Simple Mail Transper Protocol로 간단하게 메일을 전송할 수 있는 프로토콜로 이메일 클라이언트 <-> 이메일 서버 간의 통신도 가능하지만, 서버 간의 통신도 가능합니다. SMTP는 종종 이메일을 가져오고 전송할 수 있는 IMAP / POP3 프로토콜과 함께 사용됩니다. 본 페이지에서 SMTP에 대해서 설명할 때 25번 포트를 사용한다고 설명했지만, 언제나 그렇듯 모든 프로토콜이 실제 환경에서 고정적으로 사용되지는 않으며 최신 버전은 587 포트를 사용하기도 합니다.

내부망 진입 후 계정 정보가 없는 상태에서 SMTP 프로토콜이 활성화된 호스트를 발견 시 SMTP에서 제공하는 기능을 이용하여 유저 정보 열거 공격이 가능합니다. 하지만 실제 존재하는 유저 목록에 대해서 덤핑하는 것이 아닌, 유저 목록을 대입하여서버의 응답을 통해 열거하는 공격이기 때문에, 기본적으로 유저 목록에 존재하지 않는 계정 이름이라면 공격의 성공률이 낮습니다.

# msfconsole 실행
msfconsole
use auxiliary/scanner/smtp/smtp_enum
...
run

msf를 통해서 진행하는 방식은 자동화를 이용해 편리하지만 시간이 오래 걸린다는 단점이 있습니다. 유저 리스트가 많지 않은 상태에서 간단하게 테스트를 하기 위해서 Telnet 프로토콜을 이용할 수 있습니다.

# Telnet을 통한 SMTP 연결
telnet 10.0.2.10 25
VRFY root
Result > 존재하는 유저라면 252 반환
Result > 존재하지 않는 유저라면 550 반환

Last updated

Was this helpful?