Notice
Recent Posts
Recent Comments
«   2024/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

INSPECT

[13회 HDCON 해킹방어대회 문제풀이] 사고분석1-1 본문

Forensic

[13회 HDCON 해킹방어대회 문제풀이] 사고분석1-1

INSPECT 2016. 10. 17. 11:20

[13회 HDCON 해킹방어대회 문제풀이]

사고분석1-1


문제



recme.zip파일을 다운로드 받아 hxd로 열어보았다.



zip파일의 시그니처가 보이지 않는다.



zip파일의 구조는 위와 같다. recme.zip 파일은 현재 Local File Header와 파일명까지 보이지 않으므로 그 부분까지 복구하면 된다.

복구하기 위해 Central Directory 구조를 보고 Header부분에 알맞게 채워주면 된다.



먼저 마지막 부분 End Central Directory Record를 보면 Total entries(Central Directory에 있는 항목의 수)가 1이다. 



따라서 Central Directory 구조는 색칠된 부분이다. 이 부분을 보고 복구하면 된다.


맨 첫부분 시그니처부분은 504B 0304 는 Local File Header고유의 값이므로 쉽게 파악가능하다. 그 다음 Local File Header에 들어가야할 압축해제 시 필요한 버전은 0A00이라고 알려주고 있다.

그 다음 Bit Flag, 압축 방법, 최종 수정 시간, 날짜, CRC-32, 압축 크기, 파일이름 길이와 추가필드 길이까지 모두 동일하다. 



따라서 1C만큼의 길이는 그대로 복사해서 붙여넣으면 된다.

그 다음 헤더에는 파일명이 들어간다. 따라서 파일명 부분인 Begging.py를 복사해서 뒷부분에 넣는다.



헤더부분에 최종적으로 수정한 내용은 위와 같아진다.

이대로 re.zip이라고 저장한다.



정상적으로 압축파일이 열린다



zip안에 들어있던 Python코드는 위와 같았다.


http://implbits.com/products/hashtab/

필자는 파일의 해쉬값을 확인하기 위해 위 링크에서 HashTab을 다운받아 설치했다.




복구된 zip파일의 MD5해쉬값은 22CE8BDFD8F116F3BACB74573555CF31 이다.


Comments