본문 바로가기

전체 글

(18)
Reversing.kr 13번 문제 (AutoHotkey1) AutoHotkey1 문제는 (그림 1)처럼 두 개의 파일이 존재한다. 항상 그렇듯이 readme.txt 먼저 살펴보자. (그림 2)는 readme.txt 파일 내용이다. Decrypt와 EXE 키는 md5 값이며, 해당 md5을 복호화하면 인증키를 획득할 수 있다는 내용이다. 우선, 이 문제를 풀면서 AutoHotKey라는 프로그램을 처음 알게 되었다. 따라서 AutoHotKey이 어떤 프로그램인지를 알아보았다. AutoHotKey는 윈도우 응용 프로그램이나 매크로를 만들 수 있는 오픈 소스 소프트웨어이다. 보통, 반복적인 작업을 자동으로 수행하도록하거나 단축키를 설정하기 위하여 사용된다. AutoHotKey를 설치한 후에 사용자가 원하는 대로 스크립트 코드를 작성할 수 있다. 스크립트 파일은 ahk ..
Reversing.kr 11번 문제(Easy ELF) Easy_ELF 파일은 리눅스 실행 파일인 elf 파일이다. 윈도우의 PE 파일과 같은 존재이다. IDA는 ELF 파일 분석을 제공한다. 따라서, IDA를 통해 Easy_ELF 파일 분석을 수행해보았다. 파일을 IDA로 열어보면 시작 부분이 (그림 1)과 같다. main으로 가기 위해서 .text:08048397의 offset main을 클릭해보자. (그림 2)는 main 함수 내부의 코드이다. 08048253B에서 "Reversing.Kr Easy ELF\n\n" 문자를 write 함수를 통해 쓴 후에, 바로 아래에서 sub_8048434와 sub_8048451 함수를 호출한다. 그리고, sub_8048451 리턴 값이 eax에 저장되고, 0804854A에서 eax와 1을 비교한 후에 같지 않으면, l..
Reversing.kr 7번 문제 (Position) Ready Revsersing.kr 7번 Position 문제에는 (그림 1)과 같이 하나의 실행파일과 하나의 텍스트 파일이 존재한다. 먼저 ReadMe.txt 파일을 읽어보자. (그림 2)의 ReadMe.txt 파일의 내용이다. Serial이 76876-77776 일 때의 Name을 찾고, 문제에는 여러 개의 답이 존재하며, 패스워드는 p로 끝난다는 글이 적혀있다. Position.exe 파일을 실행해보자. Position.exe는 (그림 3)과 같이 Name과 Serial을 입력 받고, 입력한 문자가 옳지 않은 경우 'Wrong' 문자를 보여준다. 우리는 Serial이 76876-77776 일 때의 Name을 구해야한다. 이를 통해, Name과 Serial 간에 특정 알고리즘을 통해 문자를 생성한다는..
Reversing.kr 9번 문제(Ransomware) 문제 분석 Reversing.kr 9번 문제는 (그림 1)과 같이 세 개의 파일이 제공된다. 먼저, readme.txt 파일을 살펴보자. (그림 2)의 readme.txt 파일을 통해 파일을 복호화하라는 내용을 확인할 수 있다. 아직, readme.txt 파일만으로는 감이 오지 않는다. 실행파일 run.exe 파일을 실행해보자. run.exe 파일을 실행하면 (그림 3)과 같이 Key 값을 입력받은 후, Key를 통해 파일을 복구했다고 한다. 즉, 이 프로그램은 위 (그림 1)에서 'file'이라는 이름을 가진 파일을 run.exe 프로그램 알고리즘을 통해 복호화할 수 있다. 이 때, 옳은 Key 값이 아닌 경우 파일이 정상적으로 복호화되지 않는다. 우리가 해결해야하는 문제는 다음과 같다. 1. run...
UPX Manual Unpacking 프로그램 개발자는 프로그램의 크기를 줄이거나 혹은 데이터를 보호하기 위하여 프로그램을 실행 압축하는데 이를 패킹 (Packing)한다고 한다. 악성코드에서는 분석이 불가능하게 하기 위한 목적으로 패킹을 수행한다. 그리고 분석가들은 주로 이렇게 패킹된 프로그램을 분석하기 위하여 언패킹(UnPacking)을 수행하여야 한다. 패킹하는 방식은 여러 가지가 존재하며 대표적으로 UPX 방식의 패킹이 있다. UPX 방식으로 패킹된 프로그램을 언패킹 (Unpacking)할 수 있는 도구는 많이 공개되어 있다. 그러나, 이 글에서는 언패킹 프로그램이 사용하는 것이 아닌 디버거를 통해 손수 언패킹하는 과정을 기술할 것이다. 그 전에 OEP(Original Entry Point)에 대해서 알 필요가 있다. OEP는 프로그..
Windows 10 Timeline Forensics Windows 10 Timeline 소개 Windows 10 Timeline은 Windows 10 Redstone 4 (1803)에서 생겨난 새로운 기능으로 실행 중인 현재 응용 프로그램과 과거의 활동을 보여주기 위한 Task View를 향상시켜준다. (그림 1)에서처럼 최대 30일 동안의 사용자 활동에 관한 스냅샷을 보여주며 각각의 스냅샷을 타일 (Tiles)이라고 칭한다. 이와 같은 사용자 활동에 대한 정보는 해당 PC 내 데이터베이스 파일로 저장되기 때문에 디지털 포렌식 관점에 있어 의심스러운 PC 사용자의 행동을 보다 명확히 식별할 수 있어 유용하다. 구체적으로는 Edge 브라우저, Photo, News, Sports, Weather, Maps, Xbox, 기본 Office sutie, 파일 열기..
Reversing.kr 2번 문제(Easy Keygen) Easy Keygen 문제는 아래 그림과 같이 하나의 실행 파일(Easy Keygen.exe)와 텍스트 파일(ReadMe.txt) 파일이 존재한다. 언제나 처럼 ReadME.txt 파일을 살펴보자. 아래 그림의 ReadME.txt 파일의 내용은 다음과 같다. Serial이 5B134977135E7D13S 일 때, Name이 무엇인지를 찾으라는 것이다. 그렇다면 프로그램을 실행시켜 해당 문제를 이해해보자. Easy Keygen.exe 파일을 실행해보면 command 창이 실행된다. 그리고 Input Name과 Input Serial을 입력하여야 한다. 그러나, 각각 입력을 완료한 후 엔터를 수행하게 되면 Wrong 이라는 단어가 뜬다. 그럼 대충 알겠다.. Input Name에는 Input Serial 키..
Cuckoo Sandbox 구축 3년 전 쯤에 악성코드 분석을 위해서 Cuckoo Sandbox를 구축했던 기억이 있다.. 꽤나 애 먹었던 것으로 기억되는데, 그래서인지 당시에 구축과정을 써놓은 글이 있어서 이렇게 블로그에 남겨본다. 버전이 꽤나 업그레이드 되었을텐지만.. 다음번에 다시 구축할 일이 생기면 참조해서 볼겸ㅋ Cuckoo Sandbox PC 구성 호스트 스펙 운영체제: 윈도우 10 Pro 64비트 가상머신: Oracle VM VirtualBox 5.2.0 r118431 CPU: i7-4770TM 메모리: 32.0GB 가상 아이피: 192.168.1.0/24 게스트 스펙 - Cuckoo-Server 운영체제: 우분투 16.04.3 데스크톱 64비트 CPU: 가상 CPU 8코어 메모리: 4GB 아이피: 192.168.1.192..