Disk Forensic #9 (Tommy는 프로그램을 작성했습니다.)

 

디스크 포렌식 9번 문제

 

문제 파일로 zip 압축 파일이 주어진다.

 

해당 파일의 압축을 풀기 위해, 리눅스 unzip 명령어로 풀거나 일반 압축 풀기를 통해 압축을 풀어준다.

 

[그림 1] 300 디렉토리 확인

 

압축을 풀면, 300이라는 디렉토리와 함께 안에 out.txt 파일과 parse라는 파일을 확인할 수 있다.

 

이번 문제 역시나 strings 명령으로 플래그 값을 구할 수 있다.

 

분석 결과, out.txt 파일에는 플래그 값이 없었지만 parse 파일에서 플래그를 확인할 수 있다.

 

[그림 2] 플래그 확인

 

이번 문제의 플래그 포맷은 h4ck1t라고 적혀 있다.

 

따라서 문자열 확인이 가능한 strings 명령과, 특정 문자열 검색 기능인 grep 명령을 함께 사용하여 parse 라는 파일에서 포맷에 맞는 플래그를 찾을 수 있다.

 

위 화면에서 보이는 문자열을 플래그로 입력하게 되면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #7 (윈도우 작업 관리자에서 우클릭...)

 

디스크 포렌식 7번 문제

 

주어진 파일을 다운로드 하면 xz라는 확장자로 된 파일을 확인할 수 있다.

 

파일 확장자에 대한 자세한 정보 확인을 위해 리눅스 file 명령어를 통해 확인하였다.

 

[그림 1] file 명령어 사용

 

file 명령어를 통해 확인 결과, 압축된 파일인 것을 확인할 수 있다.

 

압축을 풀어주면, DMP 파일이 생성된다.

 

또 다시 DMP 파일의 자세한 정보를 위해, DMP 파일을 file 명령어로 확인한다.

 

[그림 2] MDMP 파일 확인

 

file 명령어로 확인하게 되면, MDMP(미니 덤프)파일 형식이라는 것을 확인 가능하다.

 

혹시 플래그가 파일의 문자열에 있는 것이 아닌가? 하는 생각이 들어서 strings 검색을 통해 포맷에 맞춰 검색하였다.

 

[그림 3] 플래그 확인

 

grep 명령어를 통해 플래그 포맷대로 검색해보면, 플래그가 검색 형식에 맞게 결과가 나오게 된다.

 

화면에 보이는 것과 같이, 플래그로 입력해주면 문제를 쉽게 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #6 (A회사 보안팀은 내부직원...)

 

디스크 포렌식 6번 문제

 

배점은 100점짜리 문제지만, 매우 까다로운 문제다...

 

사용해야 하는 도구도 많고, 시간도 좀 걸리면서 개인적으로 좀 난이도 있는 문제였다.

 

문제에서 제공하는 파일인 evidence.001 파일이 주어진다.

 

해당 파일을 분석하기 위해 FTK Imager 도구를 통해 파일을 분석하였다.

 

FTK Imager 다운로드 : https://accessdata.com/product-download/ftk-imager-version-4-2-1

 

FTK Imager version 4.2.1

AccessData provides digital forensics software solutions for law enforcement and government agencies, including the Forensic Toolkit (FTK) Product.

accessdata.com

 

[그림 1] FTK Imager 파일 타입 선택

 

파일 타입은 Image File을 선택한다.

 

[그림 2] 10개 폴더 디렉토리 

 

NTFS 파일 시스템 하위 디렉토리로 10개나 되는 폴더 디렉토리 구조를 확인하였다.

 

[그림 3] 각 폴더 app 디렉토리 확인

 

위 화면과 같이 10개의 폴더 안에는 app의 어플리케이션 이름으로 된 폴더가 존재한다.

 

그 중에서 Dropbox.app 폴더가 이번 문제의 중요 폴더이다.

 

Dropbox 어플리케이션은 클라우드 프로그램으로 업로드에 사용할 수 있는 기능을 제공한다.

 

따라서 Dropbox.app 폴더의 상위 디렉토리를 분석하였다.

 

[그림 4] 의심스러운 png 파일 발견

해당 폴더를 분석하던 도중, Library/Caches/Snapshots/com.getdropbox.Dropbox 디렉토리에서 다음과 같은 png 파일을 발견하여 확인하였다.

 

자세히 확인해보면 해당 파일에는 업로드 된 것 같이 보이는 pdf 파일을 보여주는 캡처 파일로 확인된다.

 

업로드 되어 유출된 내부 문서로 보이는 S-Companysecurity.pdf 파일에 대해 더 알아보기 위해 다른 폴더들도 분석하였다.

 

[그림 5] cache.db 파일 발견

 

이번에는 Library/Caches 디렉토리에 cache.db 파일이 있다.

 

cache.db 파일은 어플리케이션에 대한 캐시 정보를 담고 있는 파일로, Dropbox.app이 실행되었을 때의 정보가 담겨져 있을 것이라 추측할 수 있다.

 

cache.db 파일을 클릭한 다음, 마우스 우클릭하여 Export Files 기능으로 파일 추출이 가능하다.

 

이제 해당 db 정보를 확인하기 위해 SQLite 데이터베이스 파일의 내용과 구조를 확인할 수 있는 DB Browser for SQLite 도구를 사용하여 분석한다.

 

DB Browser for SQLite 다운로드 : https://sqlitebrowser.org/dl/

 

Downloads - DB Browser for SQLite

Windows Our latest release (3.11.2) for Windows: Note - If for any reason the standard Windows release does not work (e.g. gives an error), try a nightly build (below). Nightly builds often fix bugs reported after the last release. 😄 macOS Our latest relea

sqlitebrowser.org

 

[그림 6] cache.db 파일 오픈

 

테이블 구조를 살펴보면 data_cache와 local_files_cache가 있다.

 

이 중에서 data_cache 테이블을 데이터 보기 기능을 통해 확인해보면 다음과 같다.

 

[그림 7] 데이터 보기 기능

 

총 5가지의 정보들 중에, 4번째인 tim_folder에 관한 plist 파일 내용을 확인할 수 있었다.

 

[그림 8] tim_folder 데이터

 

plist 파일은 OS, X, iOS 프로그래밍에 이용되는 객체 직렬화 파일이다.

 

사용자 설정이나 어플리케이션 정보 등이 저장되며, 위 데이터는 Base64로 인코딩 된 내용으로 확인된다.

 

위 Base64로 인코딩 된 plist 파일의 내용을 확인할 수 있는 기능을 제공하는 Plist Editor Pro를 이용하여 분석하였다.

 

Plist Editor Pro 다운로드 : https://softfamous.com/plist-editor-pro/

 

plist Editor Pro Free Download for Windows 10, 7, 8 (64 bit / 32 bit)

Three classes of operating system dominate the world of personal computing. The Windows OS dominates by over 90% share of the market, the Mac OS that takes about 7% of the remainder and the many others that strives to get

softfamous.com

 

[그림 9] Plist List View

 

Plist Editor를 실행 후에, List View로 들어가서 Root를 클릭하면 자세한 정보를 볼 수 있다.

 

[그림 10] 자세한 정보 확인

 

위와 같이 Base64 인코딩 데이터가 디코딩 되어 나온다.

 

문제를 해결하기 위해, 검색 기능(Ctrl + F)을 통해 S-Companysecurity.pdf를 검색한다.

 

[그림 11] 시간 확인

 

위 화면과 같이 S-Companysecurity.pdf 문자열 위로 두 개의 NS.time이라는 시간 정보로 보이는 항목이 확인된다.

 

두 개의 NS.time은 문제에서 제시한 업로드 시간과 수정 시간의 정보로 추측해볼 수 있다.

 

[그림 12] 파일 크기 확인

 

또한, 2.1MB 문자열을 통해 파일의 크기도 확인 가능하다.

 

이제 시간 정보에 대한 자세한 내용 확인을 위해 다시 FTK Imager에서 상위 폴더를 더 분석한다.

 

[그림 13] Dropbox.sqlite 파일 발견

 

위에서 분석했던 상위 폴더에서 Document 디렉토리 안에 Dropbox.sqlite라는 파일을 발견하였다.

 

확장자가 sqlite이므로 DB Browser for SQLite 도구를 통해 분석이 가능하다.

 

[그림 14] Dropbox.sqlite 파일 오픈

 

테이블을 확인해보면, ZCACHEDFILE / Z_METADATA / Z_PRIMARYKEY 이렇게 3가지의 테이블이 존재한다.

 

여기서 중요한 것은, ZCACHEDFILE 테이블의 여러 칼럼 내용을 확인하면 S-Companysecurity.pdf의 시간 정보 확인이 가능하다.

 

[그림 15] ZMODIFIEDDATE

 

위에서 확인하였던 378291354를 확인하였다.

 

그리고 ZPATH에서 S-Companysecurity.pdf 파일의 정보가 맞는 것은 확인하였다.

 

정리해보면, 수정 시간이 업로드 시간 이전일 수 밖에 없기 때문에 위에 보이는 378291354가 업로드 시간이며, 위에서 확인한 357554798이 수정 시간인 것으로 확인된다.

 

이제 위 숫자들을 문제에서 요구하는 UTC+09:00 시간으로 구해주면 플래그로 입력할 수 있다. (힘들다...)

 

위 숫자를 시간으로 변경하기 위해 Dcode 프로그램을 사용하였다.

 

Dcode 다운로드 : https://www.digital-detective.net/dcode/

 

DCode™ | Digital Detective

DCode™ is a simple utility for converting the hex and integer values found by investigators during a forensic investigation into readable timestamps.

www.digital-detective.net

 

[그림 16] 수정 시간 확인

 

Decode Format을 MAC Time으로 설정한 후에, value to Decode에 해당 숫자를 입력한 다음, Decode 버튼을 눌러주면 해당 년도, 날짜, 시간 등 확인이 가능하다.

 

[그림 17] 업로드 시간 확인

 

정리하자면, 수정 시간은 2012/05/01 17:46:38이고, 업로드 시간은 2012/12/27 17:55:54 그리고 파일은 S-Companysecurity.pdf 파일이며, 파일 크기는 2.1MB라는 것을 확인하였다.

 

위 내용을 플래그 포맷에 맞게 입력하시면 문제를 해결할 수 있다.

 

(100점 문제 치고는 좀 까다롭고, 시간 소비가 큰 문제였다...)


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #4, #5 (판교 테크노밸리 K기업에서 #1, #2)

 

디스크 포렌식 4번 문제

 

디스크 포렌식 5번 문제

 

이번 문제는 디스크 포렌식 4번, 5번이 이어져 있는 문제이다.

 

웹 브라우저의 History에는 접속한 URL, 접속 횟수, 마지막 접속 시간, 접속 페이지 등의 여러 정보가 있다.

 

Internet Explorer는 Index.dat 파일에 History가 저장되는데, Windows 운영체제 버전에 따라서 저장되는 디렉토리가 각각 다르다.

 

Windows 버전

History 디렉토리

2000 / XP

C:\Documents and Settings\<username>\Cookies\Index.dat

C:\Documents and Settings\<username>\Local Setting\History\History\History.IE6\Index.dat

 

C:\Documents and Settings\<username>\Local Settings\Temporary Internet Files\Content.IE6\Index.dat

Vista 7

C:\Users\<username>\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\Index.dat

C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Cookies\Index.dat

 

C:\Users\<username>\AppData\Local\Microsoft\History\History.IE5\Index.dat

IE v10 이상

C:\User\<username>\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat

 

C:\User\<username>\AppData\Local\Microsoft\Windows\WebCache\WebcacheV24.dat

위 표를 참고하여 운영체제 버전 별로 Index.dat 파일 디렉토리를 확인할 수 있다.

 

Internet Explorer 10 이상 버전부터는 WebcacheV01.dat와 같은 형식의 파일에 기록을 저장한다.

 

이제 경로를 확인하였으니, 본격적으로 문제 풀기에 들어간다.

 

먼저 주어진 2012_Secuwave F200.7z 파일의 압축을 풀게 되면 다음과 같은 폴더들이 존재한다.

 

[그림 1] 사용자 계정 7ester

 

확인 되는 사용자 계정은 7ester라는 폴더가 존재하며, 용의자의 계정으로 추측해볼 수 있다.

 

사용자 계정으로 들어가게 되면, 다음과 같은 여러 폴더들이 존재한다.

 

[그림 2] 7ester 하위 디렉토리

 

웹 브라우저의 공통 경로인 <username>\AppData\Local 디렉토리를 확인해보면 Internet Explorer외에 다른 웹 브라우저의 흔적을 찾을 수 없다.

 

따라서 Internet Explorer 아티팩트 분석을 통하여 문제를 해결해야 한다.

 

[그림 3] 용의자 사용 웹 브라우저 확인

 

Google Chrome은 <username>\AppData\Local\Google\Chrome 디렉토리로 사용 여부를 식별 가능,

Apple Safari는 <username>\AppData\Local\Apple Computer\Safari 디렉토리로 사용 여부를 식별 가능 

 

[그림 4] WebcacheV24.dat 파일 확인

 

위 표에서 정리해놓은 디렉토리를 바탕으로 분석해보면, C:\User\<username>\AppData\Local\Microsoft\Windows\WebCache 디렉토리에서 WebcacheV24.dat 파일을 찾을 수 있었으며, 용의자는 Internet Explorer 버전 10 이상을 사용했음을 확인할 수 있다.

 

Internet Explorer 10 버전 이상은 IE10Analyzer.exe 도구를 사용하여 웹 사용 기록을 분석할 수 있다.

 

 

IE10Analyzer.exe 다운로드 : http://moaistory.blogspot.com/2016/07/internet-explorer-10-microsoft-edge.html

 

Internet Explorer 10, 11, Microsoft Edge Forensic Tool

IE10Analyzer Download Link : Click this 1. Introduction  Since 1994, a database engine developed by Microsoft, called Extensible Stora...

moaistory.blogspot.com

[그림 5] IE10Analyzer 메인 화면

 

먼저 도구의 File 메뉴를 눌러 Open을 선택하여 분석할 Internet Explorer 아티팩트의 경로를 설정한다.

 

[그림 6] IE10Analyzer.exe 아티팩트 경로 설정

 

파일 경로는 2012_SecuwaveF200\Users\7ester\AppData\Local\Microsoft\Windows\WebCache\WebcacheV24.dat로 설정한다.

 

[그림 7] UTC+9 시간 설정

 

문제에서 UTC+9 시간대로 접근 시간을 요구하였으므로 도구의 분석 시간도 똑같이 설정한다.

 

[그림 8] 가장 많이 접근한 사이트의 URL, 마지막 접근 시간 확인

 

시간대를 설정한 다음, 왼쪽 Table 탭에서 History(M) 항목을 선택하면 접속했던 URL에 관한 접속 횟수와 마지막 접근 시간, URL, 웹 페이지 정보 등 다양한 정보 확인이 가능하다.

 

목록에서 AccessCount(접속 횟수)가 가장 높은 519에 해당하는 정보를 보면 문제에서 요구하는 가장 많이 접근 했던 사이트의 URL과 마지막 접근 시간 확인이 가능하다.

 

[그림 9] 가장 많이 접근한 사이트 URL 확인

 

[그림 10] 마지막 접근 시간 확인

 

위 화면과 같이 자세한 내용을 확인하여 문제에서 제시한 플래그 포맷대로 입력하게 되면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Disk Forensic #1, #2, #3 (이벤트 예약 웹사이트를 운영하고... #A, #B, #C)

 

디스크 포렌식 1번 문제

 

디스크 포렌식 2번 문제

 

디스크 포렌식 3번 문제

 

이번 문제는 1개의 파일로 디스크 포렌식 1번부터 3번까지 진행하는 문제이다.

 

1번 문제에서 주어진 파일을 열게 되면 디렉토리와 각 디렉토리에 해당하는 로그 파일들이 존재한다.

 

[그림 1] 디렉토리 및 로그 파일 내용

 

가장 먼저 accounts 디렉토리로 들어간다.

 

[그림 2] accounts 디렉토리 로그 파일

 

여기서 중요한 로그 파일은 바로 history 로그 파일이다.

 

history 로그 파일에서 사용자가 실행했던 명령어에 대한 기록을 확인할 수 있다.

 

Sublime Text3를 통해 history 파일을 열어 확인하였다.

 

[그림 3] history 로그 파일 확인

 

여기서 중요 내용은 해당 로그에서 /var/www/upload/editor/image라는 특정 디렉토리에 파일 접근 권한을 777로 하여 모든 접근 권한을 허용하도록 한 내용을 의심해볼 수 있다.

 

[그림 4] process 디렉토리 로그 파일

 

그래서 /var/www/upload/editor/image 디렉토리를 기반으로 분석한 결과, process 디렉토리의 ps_eaf 로그 파일을 분석하던 도중에 이상한 점을 발견하였다.

 

[그림 5] ps_eaf 로그 파일 확인

 

ps_eaf 로그 파일에서 reverse.php를 통한 리버스 쉘로 의심되는 프로세스를 확인할 수 있다.

 

해당 프로세스의 PID는 5245이다.

 

[그림 6] network 디렉토리 로그 파일

 

다음은 network 디렉토리의 lsof 로그 파일이다.

 

lsof 로그는 열려 있는 파일에 대한 프로세스 정보를 포함하고 있다.

 

[그림 7] lsof 로그 파일 확인

 

ps_eaf에서 찾은 PID 5245를 이용하여 분석한 결과, 해당 프로세스를 수행함으로써 특정 IP 144.206.162.21:www와 연결됨을 확인할 수 있다.

 

결론적으로 공격자가 /var/www/upload/editor/image/reverse.php를 사용하여 리버스 쉘을 동작시킨 것을 확인할 수 있다.

 

이제 공격자가 웹페이지 소스코드를 유출했다는 점에서 php, html, zip 등 관련된 파일 확장자를 업로드하거나 전송한 흔적을 확인하면 문제를 해결할 수 있을 것 같다.

 

[그림 8] weblog 디렉토리 로그 파일

 

마지막으로 weblog 디렉토리에 있는 access.log 텍스트 파일을 확인한다.

 

access.log 텍스트 파일 안에 공격자가 웹사이트에서 요청했던 기록이 있는지 분석하였다.

 

먼저 위에서 찾은 /upload/editor/image 디렉토리 키워드를 통해 분석한다.

 

[그림 9] access.log 파일 확인

 

분석 결과,  jpg와 같은 사진/그림 파일 확장자를 가진 파일을 확인할 수 있었으며,

 

[그림 10] 이상한 내용 확인 1

 

[그림 11] 이상한 내용 확인 2

 

[그림 12] 이상한 내용 확인 3

 

cmd.php라는 파일의 흔적도 확인할 수 있었다.

 

그리고 cmd.php 뒤로 위 이상한 내용에서 볼 수 있듯이 인코딩 된 데이터 값을 확인할 수 있다.

 

인코딩 된 데이터 값을 확인하기 위해, Base64로 디코딩하였다.

 

Base64 디코딩 사이트 : https://www.base64decode.org/

 

Base64 Decode and Encode - Online

Decode from Base64 or Encode to Base64 with advanced formatting options. Enter our site for an easy-to-use online tool.

www.base64decode.org

 

[그림 13] Base64 디코딩 진행

 

위 화면과 같은 형식으로 나머지 2개의 값도 진행해보면 다음과 같은 결과 값을 볼 수 있다.

 

[그림 14] Base64 디코딩 결과

 

디코딩 결과를 보면 공격자는 /var/www/upload/editor/image 디렉토리에 관련 자료를 확인한 후에, tar 명령어로 압축하였고, reverse.php를 실행 시켜 유출한 것을 추측할 수 있다.

 

결론적으로 reverse.php를 동작시킨 시간 25/Aug/2012:17:26:40+0900을 웹페이지 소스코드 유출 시간으로 볼 수 있다.

 

따라서 지문에서 제시한 웹페이지 소스코드 유출 시간(UTC+09:00), 리버스쉘 프로세스 ID(PID), 리버스쉘 공격자 주소(IP)를 모두 확인할 수 있으며, 각 문제에서 제시하는 플래그를 입력하게 되면 3문제 모두 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Memory Forensic #25 (GrrCON 2015 #25)

 

메모리 포렌식 25번 문제

 

악성코드가 처음에 설치되었다는 지문을 통하여 악성코드가 유입되는 것을 생각해보면 가장 일반적인 것을 예로 들면 인터넷에서의 다운로드다.

 

인터넷 사용 기록 확인을 위해 volatility를 실행하여 iehistory 플러그인을 사용하여 확인하였다.

 

[그림 1] iehistory 플러그인 사용

 

실행 결과를 확인해보면 C&C 서버로부터 어떤 파일을 다운로드하였는지 확인 가능하다.

 

그리고 iehistory 출력 내용에서 allsafe_update.exe라는 파일 이전에 악성코드와 관련 있는 파일이 존재하지 않기 때문에 해당 파일이 악성코드가 처음에 설치된 파일이라는 것을 확인할 수 있다.

 

따라서 해당 파일 이름을 플래그로 입력하게 되면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

+ Recent posts