본문 바로가기
네트워크/malware-traffic-analysis

네트워크 패킷 분석 - WokeMountain

by laoching 2021. 6. 27.
728x90
반응형

시나리오, IDS Alert 기반으로 pcap 분석 진행

시나리오

TASK
- when, who, what의 내용이 포함된 보고서 작성
- IOC(침해 지표)작성 : 의심 가는 IP들, 그들의 활동 내용
- 피해자에 대한 정보 작성

IDS Alert

ids alert

우선 IDS Alert 분석을 진행하였는데, 하나하나 자세한 해석은 하지 못했다.
하지만 여기서 얻어낸 것은 조사해야 할 ip들, 대충 어떤 malware를 탐지했는지에 대한 내용들이었다.

10.1.21.101이 시나리오 상의 ip범위에 속하기 때문에 피해자 ip라고 생각할 수 있었음


패킷 분석

사용자 정보 수집 (10.1.21.101)

Kerberos traffic을 분석하면 쉽게 정보 수집이 가능하다.
wireshark에 있는 display filter 사용은 필수다.
wireshark display filter cheat sheet 무조건 참고해야 됨

pc의 hostname과 windows user account name확인


MAC Address 출력
패킷 데이터 영역에서 datalink layer에서 확인 가능함
dst는 도착지, src는 출발지를 의미

mac주소는 48bit고 6개의 옥텟으로 나뉜다. 처음 3개의 옥텟은 벤더사, 나머지 3개는 고유 번호임


209.141.51.196

피해자와 조사하고자 하는 ip 간의 패킷만 보기 위한 필터 적용

display filter : ip.addr == 10.1.21.101 && ip.addr == 209.141.51.196

수상한 2개의 경로를 GET 메서드로 받아오는 것을 볼 수 있음
domain name은 internet protocol layer에서 확인 가능

또 ids alert를 보면 각종 malware의 종류가 나오는데 간단하게 검색한 내용도 적어보았다.
맞는지는 잘 모르겠음..

Zeus : windows에서 실행되는 trojan으로 뱅킹 정보를 훔친다.
Perkesh : windows에서 실행되는 trojan이다.
Zbot : 시스템 및 사용자 계정 정보를 유출하는 악성코드이다.
Evil.EXE : 대량 메일 웜으로 감염되면 원격 명령이 실행될 위험이 있다.

72.21.81.200
연관된 패킷만 보기 위한 필터 적용

display filter : ip.addr == 10.1.21.101 && ip.addr == 72.21.81.200

마찬가지로 internet protocol layer에서 domain name 확인

SSL을 이용한다는 것을 알 수 있는데, TLS 하위 항목 중 Server Name Indication Extension 항목에서
Server name을 확인할 수 있었음

server name indication은 클라이언트가 어느 호스트로 접속하려는지 서버에 알려주는 역할을 한다고 하는데, 자세하게는..

server name = iecvlist.microsoft.com 해당 도메인 서버에 72.21.81.200이라는 호스트가 있다고 추측하고,
72.21.81.200은 악성이 아니라고 판단했음

ids alert를 보면 72.21.81.200에서 Gozi로 탐지를 하는데 위의 조사 결과에 따르면 오탐이라는 결론을 내릴 수 있음


208.67.222.222
domain name에 resolver가 있어서 DNS Resolver라고 생각했음. 그리고 이건 악의적인 행동이 아니라고 판단함

display filter : ip.addr == 10.1.21.101 && ip.addr == 208.67.222.222
DNS Resolver : domain name을 IP address로 변환하는 server이다.  

162.0.224.165
똑같이 display filter 적용해주고 domain name 땄음
다른 ip들과는 다르게 악성 유무를 판단할 것들을 못 찾음

display filter : ip.addr == 10.1.21.101 && ip.addr == 162.0.224.165

display filter : ip.addr == 10.1.21.101 && ip.addr == 162.0.224.165

193.239.84.250, 84.252.95.105
두 ip도 동일하게 연관된 패킷만 보기 위한 filter를 걸어주고 domain name을 땄고, 악성 여부 판단은 하지 못함


HTTP Request
wireshark에는 통계 기능이 있는데 매우 유용하다.
그중 http request 기능을 이용해 어떤 요청을 받는지 살펴봤음

그냥 pcap파일에서 모든 http request 보려고 filter 조건은 지정 안 했음

그 결과로 의심스러운 경로 추출할 수 있었다.
얘네들은 이름도 이상하고 받아오는 경로도 너무 길었다.


greatewallfirewall.xyz
http 패킷 중 해당 도메인 포함하는 패킷만 보기 위한 filter 적용함
도메인에 해당하는 ip 추출할 수 있었음

display filter : http contains greatewallfirewall.xyz

또 follow stream기능으로 한눈에 패킷 흐름을 살펴보았는데 여기서 ursnif malware와 관련된 증거 포착했음
ursnif에서는 GET 메서드를 이용하고 백 슬래시나 언더 바가 있는 긴 문자열을 받아온다고 한다.


또 다른 Ursnif 판단법
ursnif는 암호화 통신 시 사용되는 인증서에서 식별이 가능함
그 인증서 내용을 보기 위해 ssl handshake 과정 중 인증서 전달을 뜻하는 certificate만 보기 위한 filter를 걸어줌

display filter : ssl.handshake.type eq 11

rdnSequence란 항목을 보면 그냥 아무 문자열이나 채워놓은 것을 볼 수 있는데 ursnif의 증거임

아래는 정상적인 패킷인데 의미 있는 문자열이 있는 것을 볼 수 있음


파일 추출
wireshark에는 export objects기능으로 파일 추출이 가능함
http에서 추출하려고 http 선택함

Export Object Options
DICOM 104/TCP를 이용하며 의료용 디지털 영상 및 통신 표준이다.
IMF SMTP를 사용하며 인터넷을 통해 문자 메시지를 전송하는 형식이다.
SMB CIFS라고도 불리며 원격 파일 액세스 프로토콜이다.
TFTP FTP에 비해 간단하고 코드 크기가 작은 파일 전송 프로토콜이다.
HTTP HTTP 페이지에서의 스크립트 형태의 악성코드 소스 확인이 가능하다.

추출 가능한 파일 목록이 나옴,
save as를 눌러서 다 뽑고 virus total에 검사 돌려봤음


malware binary와 sha256 hash
문제에서 malware binary 추출이 가능하면 sha256으로 hash를 추출하라고 했다.
그리고 아까 파일 추출에서 209.141.51.196에서 GET으로 받아오는 두 요청은 추출이 불가능했다.
그래서 hash를 추출해보고자 한다.

우선 follow stream으로 살펴봄
GET /files/1.binHTTP Status Code200인 것을 보아 1.bin이라는 파일이 전송되었음을 알 수 있다.

HTTP status code
200 요청이 성공했음을 나타낸다. GET 방식을 사용했을 경우에는 리소스를 가져오고 메시지 본문에 전송된다는 것을 의미한다.
302 클라이언트가 요청한 리소스가 헤더에 주어진 URL에 일시적으로 이동되었음을 가리킨다. 브라우저는 사용자를 URL의 페이지로 redirect 시키지만 검색 엔진은 일시적으로 이동되었기 때문에 링크를 갱신하지 않는다.

그리고 밑으로 좀 더 내려보면 MZ를 볼 수 있는데 이건 PE포맷을 의미한다.

이걸 type = raw로 선택하고 save as를 눌러서 저장함


분석을 security onion이라는 OS에서 진행하였고, 이건 ubuntu이기 때문에 binary 파일을 열기 위해
bless hex editor를 설치했음

열어보니까 MZ앞에 뭐가 많아서 다 지우고 다시 저장했음

그리고 sh256sum 명령어로 hash 뽑음
hash: 236491cfe870f6b374d80e427ef8f8bfbf24f50d4029128b001d95c8c90845cb

virus total에 검사해봄


분석 결과

Executive Summary
when 2021-01-20, 23:41
who windows hostname : DESKTOP-NB72TZA
user account name : Orlando.maccoy
what Ursnif malware에 감염
피해자 정보
hostname DESKTOP-NB72TZA
IP address 10.1.21.101
MAC address AcerLan_d3:47:8b (00:60:67:d3:47:8b)
user account name Orlando.maccoy
Indicator of Compromise (IOCs)
209.141.51.196 port 80 GET /Lk9tdZ, GET /files/1.bin
185.186.244.130 port 80 greatewallfirewall.xyz
162.0.224.165 port 80 GET /grab32.rar
193.239.84.250 port 443 booloolo3.com
84.252.95.102 port 443 booloolo4.com
SHA256 hash
236491cfe870f6b374d80e427ef8f8bfbf24f50d4029128b001d95c8 c90845cb


혹여나 이 글을 보시는 분들이 계시다면, 댓글로 피드백 부탁드립니다. ㅠㅠ

뭐가 틀리고 뭐가 맞았는지 모르겠습니다..

728x90
반응형

댓글