Aero CTF 2020 Write Up

CTF 중점 스터디

2020. 3. 1. 19:01

이번대회는 많이 어려워서 웜업 한문제밖에 못풀었네요 ㅠㅠ

 

Elderly File - 100pt

우선 문제내용은 대충 오래된 암호화시키는 뭔가를 발견했다. 이 프로그램을 해석하면 플래그 구할 수 있다.

같은 내용이였던걸로 기억한다. 우선 문제를 다운받으면 2개의 파일을 주게된다.

encoder를 리눅스에서 실행해보면 알겠지만 저 encoder는 어떤 파일이나 프로그램을 암호화 시켜주는 역할을 한다.

저기에 있는 file.enc파일이 바로 encoder에 의해 암호화된 파일이다.

그래서 이 문제는 encoder가 어떤방식으로 프로그램이나 파일을 암호화시키는지 파악하고

그걸 복호화해주면 되는 간단한 문제이다.

 

encoder파일을 바로 IDA로 뜯어서 분석해봐도 되겠지만,

IDA로 뜯어보니 너무 복잡하고 함수도 많아서

이 방법은 절대 아니라는 느낌이 들었습니다.

100점짜리가 이렇게 복잡할리가 없거든요.

 

그래서 해당 파일이 Python으로 만들어진 파일이지 않을까 하는 생각이 들어서

pyc를 추출해보려 시도했습니다.

역시 python으로 짜여진 프로그램이였습니다.

encoder를 pyc로 추출해주고

혹시나 프로그램에 손상이 있는지 HxD로 확인해주었습니다.

역시 헤더부분이 손상되어있었습니다.

직접 추가해서 저장하겠습니다.

encoder의 파이썬 코드를 확인할 수 있습니다.

주어진 문제 파일 중에 있던 file.enc가 저 파이썬 코드를 거쳐간걸 알 수 있습니다.

복호화 코드를 짜보겠습니다.

복호화 코드에서 조금 해맸는데 생각보다 간단하게 구현되었습니다.

이제 해당 코드를 file.enc가 있는 경로에서 실행해주면

이런식으로 file_out.enc 파일이 새로 생깁니다.

이제 이걸 HxD에서 까보면

이런식으로 0과 1이 엄청나게 보입니다.

이게 인텔 헥스 파일이여서 그런건데 이런 파일은 010에디터로 까주면 됩니다.

010에디터에서 쭉 내리면 이런식으로 플래그가 보입니다.

'CTF 중점 스터디' 카테고리의 다른 글

Suninatas 19 Write-up  (0) 2020.03.08
Suninatas 18 Write-up  (0) 2020.03.01
Suninatas 13 Write-up  (0) 2020.02.23
Wargame.kr_Easy CrackMe_Write up  (0) 2020.02.17
N00bCTF The Middle Age Crypto Write-up  (0) 2020.02.16