본문 바로가기

[+] Hacking/[-] Challenge Report

Codegate 2012 Network 100 풀이

처음에 흥미를 가진 문제였지만 "포렌식 문제를 보자" 해서 조금 뒤로 미뤄뒀던 문제였습니다.

포렌식 문제도 2문제 정도 풀었으니 "한번 풀어보자" 라는 생각이 들어 풀다보니 엉겁결에 풀린 것 같네요 ^^;

일단 문제는 아래와 같습니다.

Someone have leaked very important documents. We couldn't find any proof without one PCAP file. But this file was damaged. 

※ The password of disclosure document is very weakness and based on Time, can be found easily.
Cryptographic algorithm is below. 

Msg = "ThisIsNotARealEncryption!SeemToEncoding"
Key = 0x20120224 (if date format is 2012/02/24 00:01:01)
Cryto = C(M) = Msg * Key = 0xa92fd3a82cb4eb2ad323d795322c34f2d809f78

Answer: Decrypt(Msg) 


문제를 보니 문제로 주어지는 pcap 파일이 손상되었다는군요. 그 손상된 패킷 파일만이 어떠한 문서를 얻을 수 있도록 한답니다.

또 그 문서에는 비밀번호가 있다는 군요. 일단 대충 이런식으로 문제를 이해 합시다 :)

그럼 일단 pcap 파일을 복구해야 합니다. pcap 파일을 hex 에디터로 열어보니 global header가 누락되어 있었습니다.

처음에는 헤더를 복구하여 와이어샤크로 읽어 보았지만, 크기 어쩌고 하면서 정상적으로 읽어지지가 않더군요.

결국 pcap 파일에 들어있는 파일들을 어떻게 복구 할까 생각하다가, "포렌식적으로 접근해 보자" 라는 생각에 carving을 시도하게 됐습니다.

도구는 foremost로 하였고 pcap 파일안에 모든 시그니처를 검색하여 복구 하도록 하였습니다.

 [그림 1 - foremost 결과]

여러 종류의 파일들이 carving 되었는데 비밀번호가 걸릴만한 파일은 zip 파일이 있겠지요.

zip 파일은 2개가 carving 되었는데 이 두개 모두 손상되어 있습니다. zip 도구로 해당 zip 파일들을 복구 해 줍니다.

 [그림 2 - zip 파일들 복구]

복구를 하고 나면 00000384-f.zip 파일에는 아래처럼 두개의 파일이 존재합니다.

 

[그림 3 - 첫 번째 복구 zip 파일 목록]

두 번째로 복구한 zip 파일에는 하나의 파일만 들어있습니다.

 [그림 4 - 두 번째 복구 zip 파일 목록]

공통적으로 key 란 파일이 들어있고 용량 또한 같은걸로 보아서 동일한 내용으로 문제에 답이 들어있는 것으로 추측 됩니다.

하지만 이 두개의 zip 파일들은 암호가 걸려 있었습니다.

암호해제를 하기 위해서는 크랙 툴들을 돌려도 되지만 문제를 다시 한번 읽어보면 시간 값을 키 값으로 하고 있는 것을 볼 수 있습니다.

이런 추측을 통해 시간값을 입력 해 보았습니다.

시간 값은 pcap 파일이 정상적으로 열린다면 쉽게 구하겠지만 현재 상태는 pcap 파일을 정상적으로 복구하지 않은 상태이기 때문에 hex 에디터를 통해 스트링 검색을 시도해야만 합니다.

zip 파일을 정상적으로 다운로드 했기 때문에 http request code는 200일 것 입니다. 이 코드를 기준으로 검색하여 보면 쉽게 zip 파일 다운로드에 관련된 패킷을 볼 수 있습니다.

[그림 5 - pcap 파일 내용]

[그림 5]를 보면 zip 파일을 복구할 때 보았던 jpg 파일 이름을 볼 수 있습니다.

이것으로 이 패킷이 zip 파일과 연관이 있다는 것을 알 수 있고 http request 코드도 200으로 보아 정상적으로 무엇인가를 다운로드 했다고 볼 수 있습니다.

시간값을 보니 시간은 다르지만 날짜는 동일합니다.

문제에서도 날짜만을 언급하였기에 해당 패킷의 날짜는 문제에서 요구하는 형식으로 바꾸어 보면 "0x19841128" 가 되고 이 값을 zip 패스워드로 사용하여 보면 zip 파일안에 있는 파일들의 압축을 해제 할 수 있습니다.

[그림 6 - key 파일 압축 해제]

이제 문제에서 알려준 알고리즘을 역으로 이용하여 key 파일에 있는 문자열을 복호화 하면 될 것 같습니다.

암호화 알고리즘에서는 곱하였으니 복호화 할 때는 나누어 주면 됩니다.

[그림 7 - 복호화]

답은 "wo00osR0cKinG:)" 가 됩니다.

나중에 시간이 된다면 pcap 파일을 정상적으로 복구하여 다시 한번 문제 풀이에 도전해 봐야겠습니다.

아무래도 제가 푼 방식은 문제출제자가 의도한 방식이 아닌 것 같네요 

'[+] Hacking > [-] Challenge Report' 카테고리의 다른 글

Codegate 2012 Network 200 풀이  (2) 2012.02.28
Codegate 2012 Forensic 300 풀이  (0) 2012.02.27
Codegate 2012 Forensic 200 풀이  (0) 2012.02.27
Codegate 2012 Forensic 100 풀이  (4) 2012.02.27