목록CTFs/2016 (3)
Hack4S3cur1ty
문제 풀이 먼저 주어진 파일을 FTK Tool로 열어보면 Mac OS 시스템인것을 확인할 수 있다. Mac OS 포렌식은 처음이라 구글링을 통해 정보를 수집했고, http://sysforensics.org/2016/09/mac-dfir-hfs-filesystem-volume-header/ 다음과 같은 블로그를 찾을 수 있었다. 000000410 Offset의 D3 B9 00 BF 부분이 생성된 날짜에 해당하는 곳임을 알게되었고, FTK Tool로 해당 Offset으로 이동해 D4 7B 24 F5가 생성된 시간임을 알았다. D4 7B 24 F5 값을 시간으로 변환해야 하는데 위에서 발견한 블로그에서 The Sleuth Kit 이라는 툴을 발견했다. http://www.sleuthkit.org/sleuthk..
문제 풀이 먼저 파일을 다운받아보면 다음과 같은 코드를 볼 수 있다. GeneratePrime함수를 통해 p값과 q값을 생성하고, GenerateKeys함수를 통해 e, d, n 값을 생성한다. 그 후 MakeRandomString함수를 통해 랜덤값의 문자열을 헥스화 시킨 후 powmod를 통해 RSA암호화 시킨다. 시간제한은 1초로 설정되어 있고, 초과시에는 Time Out을 출력, 시간내에 Data값과 Answer값이 일치하면 FLAG가 출력된다. 우선 전체적인 로직을 파악하기 위해 코드를 정리했다. 통신관련 함수를 때내고 p, q, n, d, plain text값을 출력하도록 하고 실행시켜본 결과 p, q, n, d 값이 일정하다는 것을 알 수 있었다. p, q, n, d에 관한 함수들을 그대로 욺..
문제 풀이 먼저 문제를 보니 어플리케이션의 구조를 가진것으로 예상할 수 있다. classes.dex를 분석하기보다는 assets 폴더에 들어가서 데이터를 확인해보았다. assets/x-game 에 들어가면 x-script.rpyc 라는 파일이 보이는데, 이 어플레이션의 전체적인 작동 스크립트라고 생각하고 rpyc파일을 디컴파일했다. unrpyc툴을 이용해 디컴파일하면 다음과 같이 x-script.rpy 파일이 나오고 스크립트 내용을 볼 수 있게 됬다. 해당 스크립트 마지막 부분에 가면 key를 출력하는 부분이 보이고, 이런식으로 로직을 따라다니면서 키값을 하나씩 적었다. 하지만 중간에 이런식으로 로직이 두 부분으로 나뉘어 키값이 두가지로 나뉘게 되는데, 모든 경우의 수를 따져서 게싱으로 풀었다.. HS{..