이번부터 풀이할 문제는 2020년에 진행되었던 국정원 주최 사이버공격방어대회 본선 문제이다.
본선에서는 예선과 조금 다르게 침해사고 조사 위주로 문제가 나왔었다.
대회 당시에 캡쳐를 제대로 해놓지 않아서 기억에 의존해서 풀이를 작성하는거라
정확하지 않을 수 있다.
#1 문서형 악성코드를 분석하여 플래그를 찾아라
첫번째는 문서형 악성코드를 분석해 플래그를 찾는 것이다.
Amazing_information_about_a_infectious_diseases.eml 라는 제목의 eml 파일이 주어진다.
eml 파일은 마이크로소프트에서 개발한 이메일 포멧으로 OutLook 을 이용하면 바로 열어볼 수 있다.
eml 파일을 OutLook을 이용해 열어보면 이런 내용이 나온다.
대회당시 한창 코로나19 초기여서 민감한 상황이었다.
Regular_Briefing_of_Central_Disaster_and_Safety_Countermeasure_Headquarters_on_COVID-19.hwp
라는 제목의 한글파일을 첨부해 놓았고,
혹시나 못읽을까봐 친절하게 Viewer 링크까지 넣어서 보내줬다.
일단 이 수상한 한글파일을 다운받아 저장한다.
한글 악성코드를 분석할때 유용하게 사용할 수 있는 SSView 라는 도구가 있다.
여기에 hwp 파일을 넣어주면 그 구조를 살펴볼 수 있게 된다.
원래는 HwpScan 이라는 아주 좋은 도구가 있었는데 어느 순간부터 유료로만 제공되어서
대체제로 SSView 를 사용하게 되었다.
한글 악성코드를 분석할때 눈여겨 봐야하는건
표시되어있는 BinData 부분이다.
BinData 는 hwp 파일에서 그림같은 객체들이 위치하는 곳이다.
그런데 문제파일을 보면 jpg, png 사이에 pct 확장자를 가진 파일이 있는것을 확인할 수 있다.
이런게 있으면 일단 의심해야 한다.
우클릭 -> Save Stream 을 눌러 저장해준다.
저장하면 이렇게 BIN0002.pct.stream 이라는 파일이 생성된다.
이 상태 그대로는 사용하지 못한다.
한글파일에서 이 데이터를 zlib compress 해놨기 때문에,
다시 zlib decompress 해줘야 한다.
import zlib
f = open( 'BIN0002.pct.stream', 'rb' )
d = f.read()
f.close()
data = zlib.decompress( d, -9 )
print(data)
zilb decompress는 파이썬을 이용해 아주 쉽게 할 수 있다.
코드를 실행시키면 이렇게 decompress 된 데이터가 나오게 된다.
플래그 포맷이 cce2020{ 이니 해당 문자열을 찾아본다.
python3 <py파일> | grep cce2020 으로 명령어를 입력해주면
데이터 사이에 숨어있는 플래그를 찾을 수 있다.
이 유튜브 주소가 #1 문제의 플래그였다.
#2 문서형 악성코드를 분석하여 C2 서버의 주소를 찾아라
두번째 문제는 C2 서버의 주소를 찾는것이었다.
C2 서버는 C&C(Command and Control) 서버라고도 하며
해커가 공격을 위해 원격에서 명령을 내리거나 제어하는 서버를 말한다.
이건 #1 문제를 풀었으면 바로 풀 수 있었다.
아까 추출한 BIN0002.pct.stream 의 zlib decompress 데이터에서 살펴보면
backdoor.exe 파일을 다운로드 받는데, 그 주소가 바로 뒤에 써있는
08e63b2ed798cfbd.xyz 이다.
해당 주소가 #2 문제의 답이었다.
사실 위 두 문제는 HwpScan 을 쓰면 더 쉽게 풀 수 있었다.
HwpScan 은 바로 zlib decompress 까지 해주기 때문..
#3 악성코드를 분석하여 플래그를 찾아라
지금은 당연히 죽었겠지만 #2 에서 찾은 주소로 접속하면
진짜 backdoor.exe 파일을 다운로드 받을 수 있었다.
사실 #3 문제는 분석이라 할것도 딱히 없다.
backdoor.exe 파일을 IDA 를 이용해 열어보면
WinMain 함수에서 유튜브 주소가 포함된 플래그를 바로 찾을 수 있었기 때문이다.
해당 플래그가 #3 문제의 플래그였다.
'CTF > 포렌식' 카테고리의 다른 글
[2020CCE] Analysis of information leaked during teleconference - 포렌식 / Wireshark (44) | 2022.11.18 |
---|---|
[2020CCE] Email spear phishing analysis - 포렌식 / rtfobj / IDA (69) | 2022.11.16 |
[2020CCE] Webpacket - 포렌식 / Wireshark / XOR (62) | 2022.10.30 |
[2020CCE] Web Log - 포렌식 / Blind SQL Injection (54) | 2022.10.28 |
[2020CCE] Simple Packet - 포렌식 / Wireshark / XOR (76) | 2022.10.26 |