본문 바로가기
네트워크(Network)/WireShark(와이어샤크)

4. WireShark Tutorial - FTP, SMTP 필터링

by kkmin93 2024. 3. 18.
반응형

이전 Wireshark Tutorial에서 배운 개념과 필터링을 바탕으로 여러 IP 패킷과 관련 TCP 프레임의 데이터를 결합하여 암호화되지 않은 네트워크 트래픽을 통해 전송된 개체를 확인할 수 있습니다. 또한 Wireshark를 사용하여 pcap에서 이러한 개체를 추출할 수도 있으며 의심스러운 활동을 조사하는 동안 항목을 조사해야 하는 경우 매우 유용할 수 있습니다.

 

목차
FTP 트래픽 필터링
FTP 트래픽에서 파일 내보내기
SMTP 트래픽 필터링
SMTP 트래픽에서 이메일 내보내기

 

 

FTP 트래픽 필터링

미리 준비한 PCAP에는 FTP 트래픽을 생성하는 악성 코드 실행 파일로 인한 감염 후 활동이 포함되어 있습니다. 이전 블로그에 포스팅한 내용처럼 필터 버튼을 생성하여 아래 그림 1과 같이 valvulasthermovalve[.]cl 에 대한 DNS 쿼리 이후 TCP 포트 21과 다른 TCP 포트를 통한 트래픽을 확인할 수 있습니다.

그림 1. PCAP에서 FTP 관련 트래픽 확인.

 

그림 1에서 사용한 표현식은 FTP 트래픽을 찾는데 도움이 되지만 FTP 관련 검색에는 다른 표현식이 더 적합합니다. 암호화되지 않은 FTP 트래픽을 위한 두 가지 기본 Wireshark 필터는 아래 그림 2와 같이 나와 있습니다.

그림 2. Wireshark에 대한 기본 FTP 검색.

 

암호화되지 않은 FTP 트래픽을 분석하는 필터 표현식은 다음과 같습니다.

  • ftp.request.command or (ftp-data and tcp.seq eq 1)

Wireshark의 디스플레이 필터 표시줄에 위 표현식을 입력하게 되면 아래 그림 3과 같이 검색이 됩니다.

그림 3. Wireshark에서 FTP 트래픽을 보기 위한 표현식.

 

그림 3은 FTP 사이트의 사용자 이름과 비밀번호, HTML 파일을 FTP 서버로 보내는 STOR 명령을 확인할 수 있습니다. 이는 감염된 Windows 호스트에서 도난당한 데이터가 유출되고 있음을 나타냅니다. TCP 스트림을 따라 FTP 명령을 검토하고 도난당한 데이터를 검사할 수 있습니다.

 

 

FTP 트래픽에서 파일 내보내기

이러한 표현식을 사용하게되면 FTP 서버에서 검색된 악성코드 실행 파일 또는 탈취한 파일 정보 또한 확인할 수 있습니다.

  • ftp.request.command or (ftp-data and tcp.seq eq 1)

아래 그림 4와 같이 FTP 트래픽에서 사용자 이름은 USER, 비밀번호는 PASS로 표시가 되고 있는 것을 확인할 수 있으며, 파일 수신 요청인 RETR을 확인할 수 있습니다.

그림 4. FTP 활동 필터링.

 

그림 4에서 FTP 데이터 채널을 통해 전송된 파일의 모습을 확인할 수 있으며, exe 파일에 대한 RETR 문 다음에 열 표시에는 HTML 기반 로그 파일을 동일한 FTP 서버로 다시 보내는 STOR 문을 확인할 수 있습니다.

 

파일 수신(RETR)

  • 사용형식 : RETR <SP> <pathname> <CRLF>
  • 서버에 위치한 파일에 대해 클라이언트로 보내줄 것을 요청. 즉, 파일을 다운로드 하기 위한 명령어입니다.

파일 송신(STOR)

  • 사용형식 : STOR <SP> <pathname> <CRLF>
  • 클라이언트에 위치한 파일을 서버에 보낼 것임을 알림. 즉, 파일을 업로드하기 위한 명령어입니다.

Wireshark에서는 아래 그림 5와 같이 메뉴 경로를 사용하여 FTP 데이터 채널에서 파일을 내보낼 수 있습니다.

  • File → Export Objects → FTP-DATA
그림 5. Wireshark에서 FTP 개체를 내보내는 메뉴 경로.

 

그러면 아래 그림 6과 같이 내보낼 수 있는 FTP 데이터 개체가 나열된 창이 나타납니다. 여기에는 감염된 호스트에서 훔친 정보가 포함되어 FTP 서버로 전송된 모든 HTML 파일이 나열되며 저장 후 텍스트 편집기나 브라우저에서 내보낸 파일을 볼 수 있습니다. 해당 파일에는 호스트의 이메일 클라이언트 및 웹 브라우저의 로그인 자격 증명이 포함되어 있습니다.

 

그림 6. FTP-DATA 개체 목록 및 html 파일 내용.

 

위에서 실습한 FTP-DATA 내보내기 기능은 .html 파일에 대해서만 가능하며 .exe 파일은 다른 방법으로 내보내야 합니다.

그러기 위해서는 FTP서버에서 반환된 각 .exe 파일에 대한 FTP 데이터 스트림의 시작을 찾는 작업이 포함되어야 합니다.

  • ftp-data.command contains ".exe" and tcp.seq eq 1

결과는 아래 그림 7과 같이 나오며, .exe 파일에 대한 FTP 데이터 스트림을 확인할 수 있습니다.

그림 7. FTP 서버에서 반환된 .exe 파일에 대한 FTP 시작 데이터스트림.

 

검색된 Wireshark 열 표시에 표시된 각 프레임에 대해 TCP 스트림을 확인할 수 있으며, TCP 스트림 창에서 이러한 파일을 내보낼 수 있습니다. 

그림 8. 첫 번째 FTP 데이터 결과에 대한 TCP 스트림.

 

TCP 스트림 창에는 이 파일이 Windows 실행 파일 또는 DLL 파일이라는 힌트가 표시됩니다. 처음 2바이트는 ASCII 문자 MZ와 This program can be run in DOS mode라는 문자열을 확인할 수 있습니다.

그러나 이것이 Windows 실행 파일 또는 DLL 파일인지 정확하게 확인하려면 TCP 스트림에서 내보내야 합니다. "Show data as" 메뉴에서 "Raw"를 선택한 후 그림 9와 같이 실행파일을 내보낼 수 있습니다.

그림 9. Wireshark의 TCP 스트림 창에 정보를 원시 데이터로 표시.

 

그다음 "다른 이름으로 저장"하여 이 원시 데이터를 파일로 내보낼 수 있습니다. mal.exe라는 파일로 저장 후 Virustotal에 검색해 보면 아래와 같은 정보를 확인할 수 있습니다.

그림 10. Virustotal 검색한 결과.

 

따라서 위 파일은 Windows 실행 파일이며 Virustotal에서는 모두 악성 코드로 탐지율이 높다는 것을 확인할 수 있습니다.

 

SMTP 트래픽 필터링

스팸봇 멀웨어는 감염된 호스트를 지속적으로 이메일을 보내도록 설계된 스팸봇으로 전환할 수 있습니다. 이는 다양한 메일서버에 대한 다량의 DNS 요청과 TCP 포트 25, 465, 587 및 SMTP 트래픽과 비교적 덜 연관된 기타 포트의 SMTP 트래픽이 특징입니다.

  • smtp or dns

결과는 아래 그림 11같이 검색이 됩니다.

그림 11. SMTP, DNS 검색.

 

검색된 화면을 보면 Info 컬럼에 다양한 메일 서버 도메인과 다양한 SMTP문에 대한 여러 DNS 쿼리를 확인할 수 있습니다.

  • smtp.req.command

아래 그림 12에 표시된 결과는 감염된 호스트가 비교적 짧은 시간 내에 메일 서버의 여러 다른 IP 주소에 접속했음을 확인할 수 있습니다. 대부분의 SMTP 요청 상태는 초기 SMTP 연결 후 암호화된 터널을 설정하는 STARTTLS 상태입니다. 그렇기에 대부분의 이메일 트래픽은 암호화됩니다. 

그림 12. smtp.req.command 필터링.

 

그러나 암호화되지 않은 이메일이 있을 수 있기 때문에 이러한 이메일은 아래와 같은 표현식으로 찾을 수 있습니다.

  • smtp.data.fragment
그림 13. 암호화되지 않은 이메일 필터링.

 


SMTP 트래픽에서 이메일 내보내기

FTP와 마찬가지로 그림13과 같이 smtp.data.fragment를 필터링한 후 객체 내보내기를 할 수 있습니다.

  • File → Export Objects → IMF

IMF는 Internet Message Format의 약자로 .eml 파일 확장자를 가진 이름으로 저장됩니다.

이렇게 하면 그림 14와 같이 IMF 개체 목록이 .eml 파일 확장자로 나열이 되며 텍스트 편집기나 Thunderbird와 같은 이메일 클라이언트를 사용하여 검토할 수 있습니다.

 

반응형