본문 바로가기
Security

Powershell - Exchange 메일 추척

by 올엠 2022. 4. 15.
반응형

익스체인지(Exchange) 서버에서는 관리 도구에서 사용자가 전송한 메일 추적이 가능하다. 메일 추적이 중요한 이유는 특정 사용자의 장애상황이거나, 특정 사용자가 어떤 메일을 전송하였는지 감사할 때 유용하다. 만약 보안 사고가 발생하였고, 특정 유저의 계정이 해킹되어 사용되었다면, 메일을 통해 외부로 전송한 정보들이 존재하지 않은지 확인할 필요가 있겠다. 익스체인지에서는 메일 추적을 위해 GUI 도구도 제공하지만 입력 부분이 많고, 익숙하지 않아 시간이 걸리므로, 가독성이 좋은 CLI 도구인 Powershell을 사용하여 파일로 저장시키는 방법이 유용하다.

 

다음 명령을 통해 SEND라는 이벤트에 대한 특정 날짜 범위의 값을 파일로 추출 할 수 있다.

get-messagetrackinglog -EventID “SEND” -Start “7/1/2008 12:00:00 AM” -End “7/31/2008 11:59:00 PM” -ResultSize Unlimited | export-csv c:\logs\<monthname>s.csv

위 명령을 실행하면 파일로 결과를 저장한다.

 

만약 현재 추적 기록된 모든 내용을 보고 싶다면, 아래와 같이 간단하게 지정할 수 있다.

get-messagetrackinglog | export-csv c:\logs\all.csv

위 명령을 실행하면, 현재까지 저장된 모든 추적 내용을 확인 할수 있다.

단 서버가 역활 별로 구분되어 있다면 해당 서버를 지정해주어야 한다.

Exchange에서 사용하는 모든 허브전송서버 및 사서함 서버에서 특정 사용자의 메세지를 추적할 때는 아래와 같이 명령을 생성할 수 있다.

Get-ExchangeServer | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId test@itka.kr | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Recipients | Sort-Object -Property Timestamp | export-cvs test0001.csv
반응형