본문 바로가기

분류 전체보기

(28)
[Python] Timestamp Convert 시간 데이터는 디지털포렌식에서 중요한 정보로 활용됩니다. 이메일, 데이터베이스, 파일시스템 등에서 많은 시간 정보를 획득할 수 있으므로 사건의 사실 여부를 증명하는데 활용할 수 있기 때문입니다. 이렇게 특정한 시각을 나타내는 문자열을 바로 타임스탬프 (Timestamp)라고 합니다. 디지털포렌식에서 타임스탬프를 활용하여 분석을 수행할 경우 주의해야할 점이 있는데 운영체제 혹은 언어마다 타임스탬프의 기준시와 단위가 달라집니다. 아래는 RFC 822, ISO 8601, Unix/Epoch, FILETIME, Microsoft, Mac 타임스탬프 등 다양한 방식으로 표현된 시간 정보입니다. 다양한 방식으로 시간을 표현하지만 모두 같은 날짜 및 시간을 의미합니다. Tue, 07 Apr 2020 07:03:36 ..
Reversing.kr 10번 문제 (Twist1) Twist1 프로그램 디버깅 시작 부분은 아래 그림에서 볼 수 있듯이, OEP (Original Entry Point) 위치가 아니다. 그렇다면 프로그램이 패킹되어 있을 것으로 예상된다. 그러나, 다음 그림의 Detect It Easy을 통해 확인한 Twist1 프로그램에 패킹된 정보는 없다. 그렇다면, 커스텀으로 패킹된 것이 아닐까라는 생각이 든다. ANTI DEBUGGING 기법-1 (POP SS) 우선, [F9] 단축키를 통해 프로그램을 실행해보았다. 그러면 아래 그림 00402052 위치에서 프로그램이 멈추고 다음 그림과 같이 EXCEPTION_ACCESS_VIOLATION 예외가 발생한다. 계속 이렇게 동적 디버깅할 때만 예외가 발생해서, 'pop ss'에 대해 검색해보았다. 찾아보니 왠걸.. ..
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, 파일 열기..