no image
Real Digital Forensic Level 1
문제 확인이번 문제도 이전과 비슷하게 디스크 파일을 주는 것 같다. 우선 다운을 받으면 13~~로 시작하는 파일을 다운 받을 수가 있다. 바로 이어서 분석을 시작하보자. 분석HxD로 열어서 확인을 해보면 PK 로 시작하는 것을 확인할 수가 있다. 맨앞의 시그니처가 50 4B 03 04 로 시작하는 것을 확인할 수가 있으며 이에 해당 하는 시그니처를 찾아보니 ZIP, DOCX, PPTX, JAR 등 다양하다. 하지만 문제에서 Disk라고 했으므로 우리는 Zip이라 생각하고 진행을 해보자. 압축을 해제하면 sdc.dd 라는 파일이 하나 발견된다. 이 파일에서 우리는 단서를 찾아내어야 한다. 단서를 찾는 방법은 파일 카빙의 기법과 동일하게 시그니처를 찾는 방법을 사용했다. HxD로 연다음에 각 파일의 시그니처..
2015.09.18
no image
Real Digital Forensic Level 0
문제 확인http://real-forensic.com/ 에 접속을 하여 Registration을 클릭하고 닉네임과 이메일을 입력하면 해당 이메일로 아래의 메일이 도착하는 것을 확인할 수가 있다. 그리고 해당 플래그를 입력하면 Level 0 의 문제를 받을 수가 있다.플래그를 입력하고 문제를 다운 받는다. 파일의 이름은 6186ae520a5316d4c57a630b3364f170 이다. 이제 어떻게 해야할지 아무런 말이 없으니 분석을 시작해보자. 분석HxD로 파일을 열어서 확인해보면 아래와 같은 바이너리를 확인할 수 있다. 대부분의 파일을 시그니처를 갖고 맨 앞에 갖고 있으므로 이 파일에 대한 시그니처를 확인해본 결과 이는 .gz 인것을 확인할 수가 있다. 즉 압축파일이다. 따라서 우리는 이를 압축해제 해야..
2015.09.18
no image
File Recovery
파일의 삭제컴퓨터를 사용하다가 파일을 복구하고자 할 때가 존재한다. 본인도 그러한 경험으로 인해 컴맹일때에도 파일을 복구시켜주는 프로그램을 찾아보곤 했었다. 보통 파일을 복구하는 원리에 대해서는 관심이 없고 단지 복구가 되냐 안되느냐에만 관심이 있었지만 현재에는 어떻게 진행이 되는 것인지 궁금하므로 공부해보았다. 이제 이에 대하여 알아보자.아래의 그림은 파일 시스템의 추상적인 구조를 나타낸다. 여기서 크게 메타영역과 데이터 영역이 존재하는데, 어떠한 파일이 하나 존재할 경우 두 영역에 모두 존재하게 된다. 프로그램을 실행시킬 경우 PC에선 메타영역에서 해당하는 파일에 대한 정보를 참고한 후 가리키는 데이터 영역으로 가서 프로그램을 실행하게 한다.아래와 같이 두개의 파일이 데이터 영역과 메타영역에 존재하는..
2015.09.12

문제 확인


이번 문제도 이전과 비슷하게 디스크 파일을 주는 것 같다. 우선 다운을 받으면 13~~로 시작하는 파일을 다운 받을 수가 있다. 바로 이어서 분석을 시작하보자.


분석


HxD로 열어서 확인을 해보면 PK 로 시작하는 것을 확인할 수가 있다. 맨앞의 시그니처가 50 4B 03 04 로 시작하는 것을 확인할 수가 있으며 이에 해당 하는 시그니처를 찾아보니 ZIP, DOCX, PPTX, JAR 등 다양하다. 하지만 문제에서 Disk라고 했으므로 우리는 Zip이라 생각하고 진행을 해보자.

압축을 해제하면 sdc.dd 라는 파일이 하나 발견된다. 이 파일에서 우리는 단서를 찾아내어야 한다. 단서를 찾는 방법은 파일 카빙의 기법과 동일하게 시그니처를 찾는 방법을 사용했다. HxD로 연다음에 각 파일의 시그니처를 찾았다.

MZ, PK, PNG 등을 찾아보았을때 유일하게 PNG 시그니처를 하나 찾을 수가 있었다. 따라서 이 .dd 파일에는 .png 파일이 있다는 것을 확인할 수가 있었다.



복구


파일의 복구 과정은 Level 0 과 같기에 생략하고 역시 칼리리눅스에 있는 Foremost를 이용해서 복구를 하였다. 복구를 하면 아래와 같은 .png 파일을 하나 추출된 것을 확인할 수가 있다. 아래와 같이 플래그가 바로 나타나기에 바로 입력해주면 레벨 2로 진행할 수가 있다.



'Forensic > WarGame' 카테고리의 다른 글

Real Digital Forensic Level 0  (0) 2015.09.18

문제 확인


http://real-forensic.com/ 에 접속을 하여 Registration을 클릭하고 닉네임과 이메일을 입력하면 해당 이메일로 아래의 메일이 도착하는 것을 확인할 수가 있다. 그리고 해당 플래그를 입력하면 Level 0 의 문제를 받을 수가 있다.

플래그를 입력하고 문제를 다운 받는다. 파일의 이름은 6186ae520a5316d4c57a630b3364f170 이다. 이제 어떻게 해야할지 아무런 말이 없으니 분석을 시작해보자.



분석


HxD로 파일을 열어서 확인해보면 아래와 같은 바이너리를 확인할 수 있다. 대부분의 파일을 시그니처를 갖고 맨 앞에 갖고 있으므로 이 파일에 대한 시그니처를 확인해본 결과 이는 .gz 인것을 확인할 수가 있다. 즉 압축파일이다. 따라서 우리는 이를 압축해제 해야한다는 것을 알 수가 있다. 

* 파일의 시그니처 확인은 http://kali-km.tistory.com/entry/File-Signature 에 포스팅 했으므로 해당 시그니처를 찾아보면 된다.


압축을 해제한 결과 해당 파일을 다시 HxD로 열어서 확인을 해보면 img0.dd 라고 써있다. 처음에는 이것도 어떤 파일의 시그니처인가 확인을 위해 검색을 했지만 나오지가 않았으며 img라는 단어를 계속 검색해보니 해당 파일에 img0, img1, img2가 존재하는 것을 확인할 수가 있었다. 따라서 이 또한 압축파일의 가능성이 존재하다 생각할 수 있으며 다시 한번 압축해제를 진행한다.


압축을 해제한 결과 아래와 같이 3개의 .dd 파일이 생성되는 것을 볼 수가 있다. .dd는 이미징된 파일 시스템이라는 것을 알게되었다. 따라서 이 3개의 .dd에서 어떠한 단서를 찾아야한다.


해당 바이너리를 확인해보면 아래와 같다. 이제 특정한 문자열이나 데이터를 찾기위해 binText를 통해 확인해보았지만 아무런 단서를 찾지 못했고 오히려 파일들의 시그니처를 검색해보았다. PE, gz 등등 찾아보다가 찾은 것이 바로 %PNG였다. 바로 이미지 파일이 존재하는 것을 확인할 수가 있었고, 3개의 .dd 파일에서 모두 png 파일의 존재 여부를 확인할 수가 있었다.


복구


png 파일이 존재하는 것을 확인했으니 해당 파일을 복구해보자. 여기선 카빙을 사용할 것이며 이에 대한 내용은 http://kali-km.tistory.com/entry/filerecovery 을 참고하면 될  것 같다. foremost를 통해 해당 이미지들에 있는 png를 복구해보자.

3개의 이미지들을 모두 각각의 폴더에 복구시켰다. 해당 폴더들을 확인해보면 0185.png와 0265.png 파일이 존재하는데 각 이미지 모두 같은 그림이 존재하는 것을 확인할 수가 있다.


결과


각 3개의 폴더에는 총 2장의 사진이 있으며 결국 총 6개의 사진은 모두 같은 이미지를 나타내는 것을 확인할 수가 있다. 해당 파일에는 텍스트를 캡처한 사진이 있으며 결국 이 텍스트의 내용이 바로 Flag 인 것이다.



I_was_N3ver_less_Alone_tHan_when_by_mYselF

'Forensic > WarGame' 카테고리의 다른 글

Real Digital Forensic Level 1  (0) 2015.09.18

File Recovery

Kail-KM
|2015. 9. 12. 20:04

파일의 삭제


컴퓨터를 사용하다가 파일을 복구하고자 할 때가 존재한다. 본인도 그러한 경험으로 인해 컴맹일때에도 파일을 복구시켜주는 프로그램을 찾아보곤 했었다. 보통 파일을 복구하는 원리에 대해서는 관심이 없고 단지 복구가 되냐 안되느냐에만 관심이 있었지만 현재에는 어떻게 진행이 되는 것인지 궁금하므로 공부해보았다. 이제 이에 대하여 알아보자.

아래의 그림은 파일 시스템의 추상적인 구조를 나타낸다. 여기서 크게 메타영역과 데이터 영역이 존재하는데, 어떠한 파일이 하나 존재할 경우 두 영역에 모두 존재하게 된다. 프로그램을 실행시킬 경우 PC에선 메타영역에서 해당하는 파일에 대한 정보를 참고한 후 가리키는 데이터 영역으로 가서 프로그램을 실행하게 한다.

아래와 같이 두개의 파일이 데이터 영역과 메타영역에 존재하는 것을 확인할 수가 있다. 이러한 상태에서 b.txt라는 파일을 삭제한다면 b.txt의 데이터영역과 메타영역은 비할당 영역을 표시가 된다. 하지만 데이터가 삭제되는 것은 아니다. 단지 나타나있지 않아 우리가 사용을 할 수 없을 뿐이다.

이러한 상태에서 파일을 복구하는 방법으로는 크게 2가지로 나눌 수가 있다. 하나는 메타 데이터를 이용하여 파일을 복구하는 방법(데이터 복구)이고, 다른 하나는 파일 카빙을 통하여 복구를 하는 것이다. 이에 대하여 알아보자.



데이터 복구


데이터 복구란 메타 데이터를 이용하여 파일을 복구하는 것으로 메타데이터에 대해 알아보자면,속성정보라고도 하며 대량의 정보 가운데서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대하여 부여되는 데이터이다. 여기에는 콘텐츠의 위치와 내용, 작성자에 관한 정보, 권리조건, 이용조건, 이용내력등이 기록되어 있다.

아래의 그림과 같이 파일을 삭제 되었지만 메타 영역과 데이터 영역에 있는 데이터가 덮어씌워지거나 변질되지 않는한 메타영역은 올바른 데이터 영역을 가리키고 있다. 따라서 이러한 메타 영역의 데이터가 잘 보존되어있다면 파일의 복구는 별도의 전문지식이 필요없이 메타데이터가 가리키는 곳을 따라가 데이터를 복구하면 되기에 비교적 비전문적이라 할 수 있다.

하지만 만약 메타 영역의 데이터가 변질되거나 삭제되었을 경우 이러한 방법은 사용을 할 수가 없게 된다. 그러므로 파일을 올바르게 복구하기 위해서는 두 영역에 있는 데이터들 모두에게 손실이 없어야 한다.



파일 카빙


메타영역에 있는 데이터가 손실되었을때 우리는 위의 방법을 통해서는 복구를 할 수가 없다. 더이상 메타영역이 올바른 데이터 영역을 가리키고 있지 않기 때문이다. 이럴때 사용하는 방법이 바로 카빙이다. 카빙은 하나의 시그니처나 문자열 등 파일의 내부 구조를 통하여 파일을 복구하는 방법이다.

카빙을 통하여 데이터를 복구하려면 파일의 구조에 대해 알아야 한다. 하지만 각 파일마다 구조가 상이하며 그 종류 또한 매우 다양하게 존재한다. 파일의 각 시그니처에 대해서는 여기를 참고하자. http://kali-km.tistory.com/entry/File-Signature 

파일 카빙에는 연속적으로 데이터가 저장된 형태와 비연속적인 형태가 있는데 비연속적인 형태의 경우 더 많은 지식을 필요로 하기에 다루지 않을 것이며 연속적으로 저장된 파일의 카빙에 있어서도 4가지 방법 중 2가지 방법에 대하여 알아볼 것이다.


헤더/푸터 카빙

헤더와 푸터를 통한 카빙의 경우 데이터가 연속적으로 저장되어있을 경우 손쉽게 찾아 복구가 가능하다. 여기서 헤더란 파일의 시작점을 알리는 값이며 푸터란 파일의 종료지점을 가리키는 값이다. 아래의 그림을 보면 연속적으로 저장되어 있는 두개의 헤더들과 푸터들을 볼 수가 있다.

이 방식을 사용할 수 있는 대표적인 구조에는 JPEG가 있다. JPEG의 경우 FFD8로 시작하여 FFD9로 끝나는 값을 가지고 있기에 카빙 툴을 직접 만들려고 한다면 이에 해당하는 값에서 데이터를 복구하도록 하면 된다.


파일 크기 카빙 방식

데이터에 헤더는 존재하지만 푸터가 존재하지 않을 경우, 위의 방식을 통하여 사용할 수가 없다. 하지만 헤더에 파일의 크기를 나타내어 준다면 우리는 어디까지가 이 프로그램에 해당하는지를 확인할 수가 있다. 이러한 방법을 통하여 복구하는 것이 파일 크기를 이용하는 방식이다.

PE 구조의 경우 MZ를 통하여 파일의 시작점을 확인할 수가 있으며, 0x38에 존재하는 값을 통하여 PE 시그니처를 확인한 후 헤더의 크기와 섹션헤더들을 참고하여 전체적인 파일의 크기를 구할 수가 있다.


카빙의 제한

이러한 카빙 또한 제한이 되는 경우가 존재하는데 바로 데이터 영역이 손실되었을 경우이다. 이러한 경우에는 이미 기존의 데이터가 사라지거나 손실되었기에 당연히 복구가 불가능하다.

또 다른 경우는 바로 분할되어 있는 경우이다. 분할 저장되어있는 경우에는 포렌식에 입문 한지 얼마 안된 나에게는 복구가 불가능하다는 문서가 많이 보이긴 하지만 딱 하나의 문서에서는 복잡하게나마 복구를 할 수 있다고 나와 있다. 이는 초보 확실히 초보자의 영역이 아니기에 제한적이라고 표시하였다.


Foremost


카빙을 실습해보기 위하여 선택한 툴로는 foremost이다. 직접 카빙툴을 만들어보는 것도 매우 좋지만, 해당 파일의 구조에 따라 다른 방법을 사용하여야 하기에 모든 것을 구현하기는 번거로울 것같다. 실습을 위해서 자주 사용하는 USB를 FTK Imager를 통하여 이미징을 하였고 분할된 파일 중에서 하나를 Test_data.005라 명명하였다. 이제 이 파일과 foremost를 가지고 실습을 진행해보자.

jpg 

gif 

png 

bmp 

avi 

exe 

mpg 

wav 

riff 

all

wmv

pdf 

ole 

doc 

zip 

rar 

htm 

cpp 

mov 

 

Foremost는 아래의 사진에서 왼쪽의 콘솔창과 같은 파일 구조의 복구를 지원하며 이 툴은 http://foremost.sourceforge.net/ 에서 다운로드 하거나 Kali Linux의 경우에는 기본적으로 내장되어 있으니 활용하면 된다.복구할 파일의 타입을 이 중에서 선택하면 된다.



사용 방법은 비교적 간단하다. foremost 와 함께 인자로 복구할 타입을 설정해주며 input 파일과 output 경로를 설정해주면 된다. 해당 과정을 보고 싶다면 -v를 추가로 인자로 넘겨주면 진행과정을 아래와 같이 지켜볼 수가 있다. 오른쪽의 2장의 사진은 복구를 한 결과이다. 



결론


이러한 데이터 복구는 일반 사용자들에게도 좋은 기능을 하지만, 포렌식적 관점에서 또한 중요하다고 생각한다. 어떠한 대상자의 디스크를 이미징하여 조사를 할때 삭제된 파일 중에서 범법행위를 증명할 만한 자료들이 충분히 발견될 수 있기 때문이다. 하나의 파일이 전체적인 분석의 실마리를 제공하기도 하는 만큼 카빙을 통해 파일을 복구하고 분석하는 것은 포렌식에 있어 매우 중요하다. 특히 최근 자주 등장하는 공격이후 자기 자신을 삭제하는 악성코드를 카빙을 이용해 복구할 수도 있으므로 카빙을 이용해 분석하는 것을 강력히 추천한다.

위와 같은 방법들을 통해 파일 시스템에서 이미지 파일을 카빙한다면 삭제되거나 현재 존재하는 이미지 파일을 복구할 수 있다. 이때 복구된 파일이 사진이라면 사진이 찍힌 위치나 시간, 카메라 기종에 대한 정보를 확인해 사건을 검증하는 자료로 활용할 수도 있다. 데이터 유출 사고라면 스테가노그라피 기법을 이용해 데이터를 점검할 수 있다.

특히 카빙을 수행하면 더미 파일에서 패턴에 맞는 내용을 무작위로 추출하게 되는데 이때 '내보내기'된 파일의 내용도 확인할 수 있어 보유하고 있던 불법적인 데이터의 수를 파악할 수 있다. 또한 아이콘이나 기타 이미지로 설치된 어플리케이션이나 장치 사용자의 프로필 정보 등의 로그도 확인할 수가 있다. 이외에도 이미지 파일은 대표적인 악성코드 유포의 수단이자 악의적인 데이터 유출의 수단으로 이용될 수 있다는 점에서 카빙은 포렌식에 있어 상당히 중요한 가치를 가진다.



문제 풀어보기


실습#1

1.시스템드라이브에서상주(Resident) 파일하나삭제후복구

2.시스템드라이브에서비상주(Non-Resident) 파일하나삭제후복구

3.시스템드라이브에서비상주(Non-Resident) 파일여러개삭제후복구

4.데이터드라이브에서비상주(Non-Resident) 파일하나삭제후복구

5.외부저장장치에서비상주(Non-Resident) 파일하나삭제후복구


실습#2

1.코드게이트2010 예선–#1, #4(http://forensic-proof.com/archives/418)

•#1–MCDF 파일에서카빙(헤더/푸터를이용한시그니처카빙)

•#2–비할당영역에서카빙(헤더/푸터를이용한시그니처카빙)

2.코드게이트2011 YUT Quals–Forensics 200 (http://forensic-proof.com/archives/1597)

•F200–비할당영역에서비연속적인JPEG 카빙(연속된데이터, 엔트로피, 시그니처기법)

3.코드게이트2011 YUT Challenge –500

•Y500 –조각난압축파일카빙(엔트로피, 압축블록검증)



참고


http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?menu_dist=2&seq=21213

http://g0n4k00.tistory.com/entry/PE%EC%9D%98-%EC%A4%91%EC%9A%94%ED%95%9C-%EC%A0%95%EB%B3%B4

http://blog.naver.com/happymaru11/220332240719

http://forensic-proof.com/wp-content/uploads/2013/07/FP-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%B5%EA%B5%AC%EC%9D%98-%EA%B1%B0%EC%9D%98-%EB%AA%A8%EB%93%A0-%EA%B2%83.pdf


'Forensic > Theory' 카테고리의 다른 글

Icon Forensic ( ICON 분석)  (2) 2015.09.13
Thumbnail Forensics (썸네일 분석)  (0) 2015.09.13
File Signature  (0) 2015.09.12
Live Forensic 점검 항목  (0) 2015.09.11
Prefetch Format  (0) 2015.09.11