사이버공격방어대회(CCE) 예선 문제 중 forensic 문제를 하나 풀어보았다.
<과정>
1. 문제 파일 다운로드 및 해석
- 문제 파일은 .evtx로 되어 있었다.
- linux에서 file 명령어를 활용하여 해석한 결과 MS Windows Vista Event Log 라는 것을 알았다.
2. 이벤트 로그 분석
- windows에서 해당 파일을 열어본 결과 cmd를 실행한 로그를 발견하였다.
- 난독화가 되어있으며 난독화 패턴이 주어졌다.
- python을 활용하여 난독화 패턴을 txt 파일로 받았을 때 해결하고자 하는 문자열 입력받고 치환하는 코드를 구성했다.
def create_dictionary_from_file(file_path):
pattern_dict = {}
with open(file_path, 'r') as file:
for line in file:
line = line.strip()
if '=' in line:
key, value = line.split('=', 1)
pattern_dict[key.strip()] = value.strip()
return pattern_dict
def replace_patterns(string, pattern_dict):
for key, value in pattern_dict.items():
string = string.replace(key, value)
return string
<후기>
사실 CTF를 예전에 한번 해보고 이후 안한 사람으로서 이번 문제는 좋은 스타트 문제라고 생각한다. 파이썬 코드만 잘 짜면 금방 해결할 수 있을 것으로 생각된다. 파이썬 공부도 다시 해야할 것 같다.
혹시라도 CTF 문제를 처음 접해보시거나 풀어보고 싶으신 분은 다음 링크에서 CCE 모의체험을 신청하여 풀어볼 수 있다(신청: 5.22~6.7, 체험기간: 6.1~6.8).
https://cce.cstec.kr/