CTF/포렌식

[2021 화이트햇 콘테스트] B-1 - 포렌식 / SSView

SecurityMan 2023. 7. 17. 11:00

 

2021 화이트햇 콘테스트 예선전에 나왔던 문제

 

시간이 꽤 지났지만 하나씩 문제풀이를 올려본다.

 

CTFD 플랫폼을 이용해 진행이 되었는데,

 

문제는 캡쳐를 못해서 써놨던 내용을 복기해서 작성하는 Write up이다.

 

반응형

 

 

거의 대부분의 문제는 S1_Docs_Malware.vmx 파일로 진행된다.

 

해당 파일은 침해사고가 발생한 Windows10 시스템을 이미징한 것이다.

 

B-1 문제는 이전 A-3에서 계속 이어지는 문제이다.

(https://hackingstudypad.tistory.com/567)

 

 

download.html 으로 접근하면

 

3분기-취약점-조치권고.hwp 파일이 자동으로 다운로드 되는것을 확인했었다.

 

 

이렇게 실제 파일이 떨어지게 된다.

 

이게 문제에서 의미하는 드랍퍼 인듯 하다.

 

B-1
드랍퍼에서 획득할 수 있는 악성코드를 분석하여 FLAG를 획득하여라

 

B-1 문제는

 

드랍퍼에서 획득할 수 있는 악성코드를 분석하여 

 

플래그를 찾는 것이다.

 

 

hwp 파일은 SSView 라는 도구로 분석했다.

 

원래 Hwpscan 이라는 아주 좋은 도구가 있었는데

 

이때부터 갑자기 유료로만 제공된다고 해서 급하게 대안을 찾았다.

 

조금 불편하지만 그래도 쓸만하다.

 

한글 악성코드를 분석할때는 

 

가장먼저 BinData 부분을 확인한다.

 

BinData 아래에는 저렇게 BIN0001.eps 파일이 있는데

 

상당수의 악성 한글문서는

 

이 eps 파일을 분석하면 뭔가 의미있는 데이터를 얻을 수 있다.

 

해당 파일을 우클릭해서 save stream 을 눌러 추출해준다.

 

import zlib
 
flist = ["BIN0001.eps.stream"]
 
for item in flist:
    with open(item, "rb") as f:
        buf = f.read()
        unzlibed = zlib.decompress(buf, -9)
        with open(item+".unzlib", "wb") as f:
            f.write(unzlibed)

 

추출된 BIN0001.eps.stream 파일은

 

zlib 로 압축된 형식인데,

 

위의 파이썬 코드로 간단하게 압축을 해제할 수 있다.

 

 

해제하면 이렇게 PostScript 를 확인할 수 있다.

 

중간에 적혀있는 내용을 보면

 

플래그는 AES128-CBC 알고리즘,

 

KEY 0123456789012345 를 이용해서 암호화 되어있다고 적혀있다.

 

암호화된 값은 아래 있는 값이다.

 

 

온라인에서 AES128 Decrypt 해주는 사이트로 가서

 

해당 값들을 이용해 암호를 풀어줬다.

 

위처럼 Base64 인코딩된 값이 나오는데

 

 

CyberChef(https://gchq.github.io/CyberChef/) 에서 Base64 값을 디코딩하면

 

플래그를 찾을 수 있다.

반응형