시나리오, IDS Alert 기반으로 pcap 분석 진행
TASK
- when, who, what의 내용이 포함된 보고서 작성
- IOC(침해 지표)작성 : 의심 가는 IP들, 그들의 활동 내용
- 피해자에 대한 정보 작성
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.bin의 HTTP Status Code가 200인 것을 보아 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 |
혹여나 이 글을 보시는 분들이 계시다면, 댓글로 피드백 부탁드립니다. ㅠㅠ
뭐가 틀리고 뭐가 맞았는지 모르겠습니다..
댓글