일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- writeup
- 써니나타스
- 구현
- SuNiNaTas
- HackCTF
- Web
- CTF
- misc
- Digital Forensics
- 인코그니토
- cryptography
- 정렬
- xcz.kr
- N0Named
- 사칙연산
- 문자열
- 수학
- Python
- Text
- Database
- MySQL
- php
- wargame
- 그리디 알고리즘
- C
- Forensics
- 백준
- Incognito
- Network
- Web Hacking
- Today
- Total
보안을 그리다, 훈이
[제3회 2021 전국 고등학생 사이버 보안 경진대회] Network - I·MAIL·U Write Up 본문
[제3회 2021 전국 고등학생 사이버 보안 경진대회] Network - I·MAIL·U Write Up
HooNeee 2021. 9. 14. 17:36본 게시글은 필자가 운영 및 출제위원으로 활동한 [제3회 2021 전국 고등학생 사이버 보안 경진대회]에 출제한 문제의 풀이 방법을 기술한 문서입니다.
[Network] - I·MAIL·U
We caught a suspected malicious hacker and recovered a packet containing his activity records.It seems to have sent a message to a fellow hacker that is believed to be a command, but it is only an assumption and no evidence has been obtained yet.
I don't know yet whether it's a command or a normal conversation, but I want you to find it.
If you succeed, I'll give you a promotion as a reward.
(티스토리 정책상, 20MB가 초과하는 첨부파일은 업로드가 불가합니다.)
문제 이름
I·MAIL·U
문제 기술
We caught a suspected malicious hacker and recovered a packet containing his activity records.
It seems to have sent a message to a fellow hacker that is believed to be a command, but it is only an assumption and no evidence has been obtained yet.
I don't know yet whether it's a command or a normal conversation, but I want you to find it.
If you succeed, I'll give you a promotion as a reward.
문제 분야
Network
필요 기술
패킷 분석 도구를 활용한 패킷 필터링 및 추출, 프로토콜 파악, 암호화 기법 파악, 파일 구조 파악 및 복구 등 기타 포렌식 기술
상세 풀이
먼저, 문제 이름 ‘I·MAIL·U’에서 메일과 관련된 패킷을 필터링하여야 플래그를 찾을 수 있다는 것을 유추할 수 있다.
문제에 기술된 ‘It seems to have sent a message to a fellow hacker that is believed to be a command, but it is only an assumption and no evidence has been obtained yet.’ 문장에 따라 용의자로 추정되는 악성 해커가 동료 해커에게 메시지를 보냈다는 것을 알 수 있다.
첨부파일로 제공된 ‘I·MAIL·U.pcapng.bz2’를 다운로드하고 압축 해제하면 나타나는 패킷 파일인‘I·MAIL·U.pcapng’를 열어본다.
[그림 1]과 같이 방대한 패킷이 출력되는데, 메일을 활용한 패킷을 필터링하기 위해 ‘smtp’로 필터를 적용한다.
[그림 2]와 같이 메일이 송수신될 때 사용하는 프로토콜인 SMTP를 활용한 패킷들이 나열되며, ‘gimdonghun@mail.ctf.vm’에서 각각 두 개의 메일 계정에 각각 메일을 송신한 것을 확인할 수 있다.
‘SECTRET FILE 4 YOU’라는 제목의 메일이 송신된 것을 확인하고 중요한 정보가 포함되어 있음을 알 수 있다. 상세한 내용을 확인하기 위해 관련 패킷에서 [Follow] - [TCP Stream] 기능을 활용한다.
본 메일의 본문은 ‘This is secret file.’이라고 한다. 그리고 ‘SHHHHHHH.png’ 파일이 첨부되어 전송된 기록을 확인할 수 있다.
일반적으로 SMTP를 이용하여 파일을 전송하게 되면 BASE64 Encoding되어 처리된다.
따라서, BASE64로 Encoding된 파일의 hex 값을 따로 저장하여 온라인 Decoder 등을 사용하여 Decoding한 후 파일을 저장한다.
Decode한 파일의 hex 값을 보면 [그림 4]와 같이 ‘FF534343FF4D4150’로 시작하는 것을 알 수 있는데, 이는 Binary File 즉, bin 파일의 헤더 시그니처이다.
png 확장자로 변환하기 위해 ‘FF 53 43 43 FF 4D 41 50’를 png의 헤더 시그니처인 ‘89 50 4E 47 0D 0A 1A 0A’로 변경한 후 저장하면 올바른 이미지를 확인할 수 있다.
png 파일의 푸터 시그니처 또한 존재하는데 이는 ‘49 45 4E 44 AE 42 60 82’이며 헤더 시그니처와 푸터 시그니처 두 부분이 존재하여야만 png 파일이 성립된다.
본 파일의 푸터 시그니처를 찾아보면 뒷 부분에 ‘PK’ 즉, ’50 4B 03 04’로 시작하는 값이 존재하는데 푸터 시그니처 이후의 값들은 무시되기 때문에‘SHHHHHHH.png’ 이미지 파일이 정상적으로 출력되는 것이다.
’50 4B 03 04’를 헤더 시그니처로 갖는 파일 타입은 zip 파일이며, ‘50 4B 05 06’를 푸터 시그니처로 가진다.
본 값들을 추출하여 .zip 확장자로 저장하고 압축을 해제하면 문제 해결에 중요한 역할을 할 것으로 보이는 ‘Secret_Array’ 폴더가 추출된다.
[그림 5]와 같이 ‘Secret_Array’ 폴더 내에 나열된 19개의 pdf 파일을 볼 수 있다.
각 파일의 이름은 중국어 숫자의 발음 표기법을 기반으로 지정된 것이며, 0번째 배열 값을 의미하는 ‘Líng’ 파일부터 마지막인 18번째 배열 값을 의미하는 ‘Shí Bā’까지의 파일 내용을 이어붙이면 플래그가 완성된다.
flag : ADCTF{w31c0m3_70_p@_@ck37_WoR1d}
[연관 게시글] 전국 고등학생 사이버 보안 경진대회 | 운영 및 출제위원 수행 후기