Digital Forensics/Windows2019. 10. 7. 22:05
반응형

참고: μTorrent P2P 클라이언트 포렌식

https://articles.forensicfocus.com/2018/11/02/forensic-analysis-of-the-%CE%BCtorrent-peer-to-peer-client-in-windows/

 

Forensic Analysis Of The μTorrent Peer-to-Peer Client In Windows

by Michael R. Godfrey The μTorrent software client is the most popular BitTorrent peer-to-peer software application worldwide [1]. Contraband files such as copyrighted movies and music, child porno…

articles.forensicfocus.com

 

 

μTorrent Web 포렌식

 

μTorrent는 BitTorrent P2P 프로그램 중 가장 유명한 토렌트 클라이언트다.

μTorrent는 윈도우, 맥, 리눅스, 안드로이드 및 탈옥된 iOS에서 사용 가능하다.

μTorrent를 실행하는 컴퓨터는 외부장치(iOS, Android, USB 메모리 등)와 페어링하여 사용 가능하다.

 

BitTorrent는 트래커를 사용하여 클라이언트가 'seed'라는 피어를 찾을 수 있도록 한다.

BitTorrent 프로토콜을 사용하면, 하나의 노드에서 파일을 다운로드하는 대신 

호스트 풀(swarm)에 참여하여 서로 컨텐츠를 업로드하고 다운로드 할 수 있다.

 

seed는 배포되고 있는 전체 파일을 가진 노드이다.

파일을 배포하려는 사용자는 먼저 작은

토렌트 디스크립터 파일(.torrent 파일: 오직 메타데이터만 포함됨)을 만들어야 한다.

.torrent 파일에는 특정 트래커(tracker) 정보가 포함되는데,

이 트래커는 일종의 서버로, 어떤 피어와 'seed'가 배포되고 있는 전체 파일을 가지고 있는지 추적하는 기능을 한다.

 

.torrent 파일을 BitTorrent 클라이언트에서 불러오면, DHT(Distributed Hash Table) 통신기능을 통해 

다른 BitTorrent 노드(피어 또는 seed)들과 연결할 수 있다.

배포되는 파일은 여러 조각들로 나뉘는데, 각 조각을 받은 피어들은 다시 해당 조각의 새로운 배포자가 된다.

각 조각들은 SHA-1 암호화 해시로 보호된다.

BitTorrent 클라이언트는 완전한 파일을 얻기 위해 어떤 조각들이 필요한지 식별한다.

피어가 완전한 파일을 다운로드 하면, 이제 배포 seed가 된다.

 

BitTorrent는 참가자의 익명성을 보장하지 않는다.

연결된 피어들의 IP주소는 클라이언트 유저인터페이스 또는 Windows의 netstat 명령어만으로도 쉽게 알 수 있다.

μTorrent 클라이언트를 포함한 BitTorrent의 표준 포트는 TCP/UDP 6881-6889  포트이다(6969는 트래커 포트).

 

 

μTorrent Web 클라이언트

μTorrent Web 클라이언트의 기본설치 주소 -> C:\Users\<User_Name>\AppData\Roaming\uTorrent Web\

다음 구성파일들(resume.dat, store.dat)은 설정정보가 저장된다.

settings.dat 파일은 토렌트를 1회 다운로드 받고 나면 생성된다.

utweb.log에는 에러로그 등이 저장된다.

μTorrent 클라이언트가 종료되면,

settings.dat 파일의 경우 dat 파일들은 백업되고, .bak가 새로운 파일 확장자로 붙는다.

store.dat 파일의 경우 dat-journal 파일이 생성된다.

resume.dat는 클라이언트가 종료될 때 상태 정보를 저장한다.

 

<Windows 10에 μTorrent Web 설치, 1회 실행 후 생성된 settings.dat>

// autostart = 0이면 자동실행 off, 1이면 자동실행 on

save_path = 새로운 다운로드시 파일을 저장하기 위해 사용자가 설정 한 위치

 

 

<Windows 10에 μTorrent Web 설치, 1회 실행 후 생성된 로그파일 utweb.log>

 

<Windows 10에 μTorrent Web 설치 후 프로그램 종료 전>

 

<Windows 10에 μTorrent Web 설치 후 프로그램 종료 후

: store.dat 크기 및 수정시각 변경됨, settings.dat 생성됨, .ses_state 생성됨>

 μTorrent Web과 달리,

μTorrent Classic 클라이언트에는 dat 파일(resume.dat, settings.dat, dht.dat, rss.dat)에 설정 및 로그 정보가 저장된다.

μTorrent Classic 클라이언트가 종료되면, dat 파일들은 백업되고, .old가 새 파일 확장자로 붙는다.

 

 

BEncode 에디터

.torrent 파일은 BEncode로 작성된다.

그 내용을 보려면, BEncode Editor와 같은 BEncode 디코딩 도구를 이용해야 한다.

※ μTorrent Classic 클라이언트는 구성파일(.dat)들도 BEncode로 작성되어 BEncode Editor로 볼 수 있었으나,

 μTorrent Web은 settings.dat, .ses_state 외 구성파일(resume.dat, store.dat)는 sqlite로 작성되어 있어

DB Browser for SQLite 등으로 확인 가능하다.

 

<BEncode Editor로 본 test.torrent 파일의 내용>

// announce = 트래커 사이트의 url

info = .torrent 파일에 포함된 각 파일의 정보

-> length = 파일크기(바이트 수),

path = 파일이름,

name = 토렌트 이름(.torrent 파일 자체의 이름과 구분)

 

// announce-list = 해당 .torrent 파일에 대한 모든 트래커 url 목록

 

<BEncode Editor로 본 .ses_state 파일의 내용>

// μTorrent Classic 클라이언트의 dht.dat(Distributed Hash Table 네트워크에 연결시 필요한 정보가 저장됨)

와 유사한 값을 저장하는 것으로 아래와 같이 추정되나, 구글링으로 관련 문서 확인이 불가하였음

(- .ses_state 파일에서 값들이 정확히 의미하는 바를 아시는 분은 댓글로 알려주시면 정말 감사하겠습니다.)

 

// μTorrent Web 클라이언트 노드의 유니크한 ID

node-id = 0x796AFC5895B7545696E8D51A8D6A0A0C614197F400000000

 

// 클라이언트와 통신하고 있는 피어들의 총합은 561개

0x2EB66DBE9609 --(해석)--> 46.182.109.190:38409

 

위와 같은 해석이 맞는지 포트스캔으로 검증

 

 

<μTorrent Web의 'resume.dat' 파일 메모장으로 열기>

 

<μTorrent Web의 'resume.dat' 파일, DB Browser for SQLite로 열기>

 

<μTorrent Web의 'store.dat' 파일 메모장으로 열기>

 

<μTorrent Web의 'store.dat' 파일, DB Browser for SQLite로 열기

: μTorrent Web 설치시각, 마지막 실행시각 등 확인 가능>

// store.dat 파일의 store 테이블에서 source_ip 확인 가능

 

 

μTorrent Web을 통한 파일 다운로드

test.torrent 실행시 'μTorrent Web'을 통해 파일 전체가 다운로드 된다.

 

<μTorrent Web 설정화면>

 

 

μTorrent Web 관련 윈도우 레지스트리 아티팩트

μTorrent Classic 클라이언트μTorrent의 설치와 사용과 관련된 다음과 같은 레지스트리를 찾을 수 있다.

1. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Uninstall\uTorrent

-> uTorrent 버전 및 설치장소, 레지스트리 키 마지막수정시각 확인 가능함 (= uTorrent 설치시각)

 

2. ntuser.dat\Software\BitTorrent\uTorrent

-> 레지스트리 키 마지막수정시각 확인 가능함 (= uTorrent 설치시각)

 

3. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ FileExts\.torrent\OpenWithList

-> BitTorrent 멀티플 클라이언트가 설치된 경우, 아티팩트 확인됨. 지정된 프로그램 순서가 그 값(value)으로 보여짐

 

4. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ RecentDocs\.torrent

-> 최근 토렌트 파일이 접근된 경우, 아티팩트 확인됨

 

5. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\ OpenSavePidlMRU\torrent

-> 토렌트 파일이 열렸거나 윈도우 대화창을 통해 저장된 경우, 아티팩트 확인됨

 

6. usrclass.dat\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

-> 프로그램 실행시 윈도우에서 프로그램 이름 등 저장됨. 토렌트 실행된 경우 아티팩트 확인됨

 

 

μTorrent Web은 기존 μTorrent Classic 클라이언트와는 달리 아래와 같은 레지스트리키만 확인된다.

1. IE8부터 쿠키(cookie, 최대 4KB 데이터 저장 가능)의 추가된 기능인 Domstorage(최대 10MB 저장 가능)

 

2. usrclass.dat\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

-> 프로그램 실행시 윈도우에서 프로그램 이름 등 저장됨. 토렌트 실행된 경우 아티팩트 확인됨

아래와 같이 프로그램 이름 및 설치주소 외 시간정보 등 확인 불가함

 

3. 컴퓨터\HKEY_CLASSES_ROOT\Magnet\DefaultIcon

-> 토렌트 배포수단에는 위에서 기술한 seed 파일을 이용한 방법과 마그넷(magnet) 주소를 이용한 방법이 있음

이러한 마그넷 주소를 이용한 경우 기본 실행프로그램 설정 아이콘이 저장됨

(참고: 마그넷 주소를 이용한 경우 seed 파일과는 달리

1) 통상 트래커 정보가 없어 다운로드의 시작이 느리고(트래커 주소 추가기능도 존재하므로 이런 경우 차이 없음),

2) 다운로드 시작 전에는 파일정보를 알 수 없으며,

3) 비공개 토렌트의 경우 트래커 정보가 없어 마그넷 주소로는 다운로드 불가함)

 

4. 컴퓨터\HKEY_CLASSES_ROOT\Magnet\shell\open\command

-> 마그넷 주소를 이용한 경우 기본 실행프로그램 커맨드가 저장됨

 

 

 

μTorrent Web이 나온지 얼마 되지 않아, 구글링해봐도 정리된 게 없네요.. 

블로그에 기재한 내용 중 틀린 점들 알려주시면, 감사하겠습니다.

수정하도록 하겠습니다.

(첩보) &mu;Torrent Web 분석_기술문서.pdf
0.63MB

μTorrent Web 분석 관련 좋은 문서나 블로그 등 공유해주시면 감사하겠습니다.

반응형
Posted by CCIBOMB
Digital Forensics/Mobile2019. 4. 16. 18:07
반응형

(첩보) 모바일 팀뷰어 로그분석_기술문서.pdf
0.80MB

[Teamviewer Quicksupport Log Analysis] 팀뷰어 퀵서포트 로그 TVlog.html 분석

<테스트 환경: PC -> 스마트폰 접속>

 

PC에서 스마트폰으로 Teanviewer를 이용해 원격접속을 시도한 경우,

PC와 스마트폰에 남는 로그의 의미에 대해서 고민해보자.

Teamviewer 개발사에서는 해당 로그파일을 자기들에게 보내주면 분석해줄 뿐, 

정확히 문서화한 정보가 없으므로, 테스트결과를 토대로 추측할 수 있을 뿐이다.

(블로그상 잘못 표현된 부분들을 확인하시는 경우,

댓글 등을 통해서 알려주시면 정말 감사하겠습니다.)

 

<스마트폰 로그 분석(Teamviewer Quicksupport 설치)>

1. 스마트폰에서 로그파일 확인

 - "팀뷰어 - 우측상단(... 더보기 버튼) - 고급 - 로그파일"에서 확인 가능하다.

 

2. 스마트폰에 저장된 이벤트 로그(TVLog.html)

 - 앱에서 직접 이벤트 로그 확인이 가능하다.

 - Teamviewer Quicksupport는 PC버전의 Teamviewer와 달리 모든 이벤트 로그를 하나의 TVlog.html에 저장한다.

 - 이벤트 로그를 보면, 설치시점부터 외부 접속IP주소, 팀뷰어 서버와의 통신내역 등 확인이 가능하다.

 

3. Teamviewer Quicksupport 앱에서 이벤트 로그 파일 전송하기

 - 우측 하단의 종이비행기 버튼을 눌러,

스마트폰에 저장된 이벤트 로그를 이메일, 구글 드라이브 등을 통해 공유 가능하다.

 

4. Teamviewer Quicksupport 이벤트 로그(TVLog.html) 저장 위치

- 스마트폰에서 Teamviewer Quicksupport 앱을 실행하여 이벤트 로그파일을 전송할 여건이 안되는 경우,

(앱 실행 불가, 액정 고장, 백업파일만 존재 등)

/media/0/Android/data/com.teamviewer.quicksupport.market/files/TVLog.html에서 이벤트 로그 파일 확인 가능하다.

 

5. Teamviewer Quicksupport 이벤트 로그(TVLog.html) 분석

Teamviewer Quicksupport 로그(/media/0/Android/data/com.teamviewer.quicksupport.market/files/TVLog.html)

팀뷰어 플러그인 같은 addon(Samsung, LG 등 제조사별로 앱스토어에서 제공) 로그

(/media/0/Android/data/com.teamviewer.quicksupport.addon.lg/files/TVLog.html)

이름이 동일하게 TVLog.html이다.

 

addon 로그에서는 포렌식 관점에서 필요한 정보는 거의 없다.

addon helper의 시작시점과 버전정보 정도만 확인 가능하다.

 

반면, Teamviewer Quicksupport 이벤트 로그에서는 원격 접속한 IP주소 등을 확인할 수 있다.

 

Teamviewer Quicksupport 설치 및 시작 시점 확인이 가능하다.

 

Teamviewr Quicksupport가 설치된 스마트폰의 기기 정보 등 확인이 가능하다.

 

스마트폰의 메모리상태 및 네트워크 정보(무선 인터넷 연결여부 등) 확인이 가능하다.

 

(IP: 169.56.125.232)와 같은 형식으로 이벤트 로그 내 다수의 IP주소가 확인이 되는데,

이는 원격접속한 IP주소가 아닌 팀뷰어 서버 IP주소일 뿐이다.

 

스마트폰에 원격접속한 IP주소를 확인하기 위해서는

"a=xxx.xxx.xxx.xxx:50118: (*)"과 같은 형식으로 저장된 부분을 찾으면 된다.

 

스마트폰 및 원격접속한 컴퓨터의 이름도 확인이 가능하다.

"AddParticipant:"과 같은 형식으로 저장된 부분을 찾으면 된다.

아래 로그의 경우 "FORENSIC-03"이 스마트폰에 원격접속을 한 컴퓨터의 이름이다.

 

*원격접속한 PC의 컴퓨터 이름 'Forensic-03'

 

*원격접속한 PC의 팀뷰어 ID '1246059329'

 

*스마트폰의 팀뷰어 ID '1245819360'

 

 

앱의 설치 및 제거 관련 로그도 확인이 가능하다.

 

또한 PC에 화면 정보를 전송한 내역도 확인이 가능하다.

 

접속종료 정보는 명확하지 않은 경우들이 있다. 접속에러가 빈번하게 발생하기 때문이다.

사용자가 정상적으로 종료시에는 아래와 같이 "CmdEndSession():" 관련 로그가 확인된다.

 

그러나 정상적으로 종료하지 않은 경우에도 다수 접속에러가 발생하는데,

이 경우 아래와 같이 "create udp connection was not successful:"과 같은 형태의 로그가 기록된다.

 

※ 기타 환경설정 파일

0) TVLog.html에서 Teamviewer Quicksupport 실행초반에 환경설정파일을 가장 먼저 읽는다.

 

1) Client, Global 환경설정(client.conf, global.conf) 파일 위치: 

/userdata/data/com.teamviewer.quicksupport.market/files/

 

2) Client, Global 환경설정 파일명 및 내용

- client.conf : SUID 저장됨

 

- global.conf : Teamviewer Quicksupport 버전 및 인증서정보 등 저장됨

 

 

<PC 로그 분석>

스마트폰에 원격접속을 시도한 PC에서도 위 스마트폰 로그(TVLog.html)에 상응하는 로그가 저장된다.

그 위치는 "C:\Program Files (x86)\TeamViewer"이며,

로그파일의 이름은 "TeamViewer14_Logfile.log"이다.

(PC에 설치한 Teamviewer의 버전에 따라 숫자는 달라지는 것으로 보인다.)

 

로그파일에서는 인터넷 연결정보(IP주소) 및 팀뷰어 버전정보 등 확인이 가능하다.

 

스마트폰의 Teamviewer Quicksupport 로그(TVLog.html)와 동일하게

"AddParticipant:"를 검색하여 상호 연결된 Device 이름 및 팀뷰어 ID 확인이 가능하다.

(1246059329는 PC의 팀뷰어 ID, 1245819360은 스마트폰의 팀뷰어 ID이다.)

 

또한, 스마트폰의 Teamviewer Quicksupport 로그(TVLog.html)와 동일하게

"a=xxxxxx.xxx.xxx:50453:"를 검색하여 접속한 스마트폰의 IP주소를 확인 가능하다.

 

반응형
Posted by CCIBOMB
Digital Forensics/Mobile2019. 4. 13. 15:21
반응형

최근 보이스피싱 범죄에 강제발신변작 기능이 있는 악성 앱 외에도

스마트폰용 원격제어 프로그램인 Teamviewer Quicksupport가 이용되고 있다.

 

'금융감독원' 또는 '검찰청'이라고 사칭하며 전화하여,

구글 플레이스토어 등 정식 앱스토어에서 'Teamviewer Quicksupport'를 설치하게끔 유도한다.

그 이후 백신 프로그램(예: 경찰청 제작 폴-안티스파이 2.1)을 사칭한 악성 앱을 인터넷에서 다운로드 받아 설치하여,

전화번호와 문자메시지, 통화기록, 앱 설치 등 모든 권한을 가지고

피해자들을 농락하는 것이다.

 

(최근 보이스피싱 범죄에 많이 이용되고 있는 악성 앱들은 강제발신변작 기능이 포함되어 있다.

이러한 악성 앱이 설치되는 경우 감염된 스마트폰을 이용하여

특정 전화번호(예: 금융감독원 1332, 경찰청 112, 국민은행 1599-9999 등)로 확인전화를 하더라도

악성 앱 제작·유포자가 원하는 다른 전화번호(예: 보이스피싱 범죄조직의 일명 콜센터 070-xxxx-xxxx)로

발신이 전환된다.

 

즉.. 그 스마트폰으로는 경찰, 은행, 검찰, 금융감독원 어디에 전화를 하더라도,

보이스피싱 조직 콜센터에서 응대를 하게 되는 것이다.)

 

우선, Teamviewr Quicksupport를 사용해보아야 로그를 이해하기 수월하므로 테스트를 해보았다.

 

<Teamviewr 프로그램 설치 - PC>

팀뷰어 사이트(https://www.teamviewer.com/ko/)에 접속해서 팀뷰어 최신버전 다운로드받아 설치하면 된다.

설치하면, 다음과 같은 화면이 뜬다.

 

개인정보를 기재하는 회원가입 없이도 부여된 ID로 이용할 수 있다.

아래 테스트환경에서 Teamviwer PC버전의 ID는 좌측 화면에서 확인 가능한 '1 246 059 329'이다.

우측의 Partner ID에 스마트폰에 설치한 Teamviewer Quicksupport의 ID만 넣어주면 원격접속 끝이다.

매우 간단하다. 그래서 범죄에도 이용이 많이 되고 있다고 생각된다..

 

※ 참고: PC버전에 설치한 Teamviewer는 로그상 Server라고 하고,

접속대상인 스마트폰은 Client라고 한다. 

 

 

<Teamviewr Quicksupport 설치 - 스마트폰>

구글 플레이스토어나 통신사별 앱 스토어에서 'Teamviewr Quicksupport'를 다운로드 받아 설치하면 된다.

원격제어를 위해 애드온을 설치해주어야 한다.

 

그러면 원격제어 프로그램 Teamviewre Quicksupport를 이용할 준비가 끝났다.

PC의 'Partner ID' 입력창에 스마트폰에서 확인된 ID '1245 819 360'을 입력해주기면 하면 된다.

 

그러면, 이제 컴퓨터에서 스마트폰을 원격제어하거나,

다른 모바일 기기에서 스마트폰을 원격제어할 수도 있고,

양방향간 파일 전송도 가능하다.

 

 

<PC에서 스마트폰에 원격제어 요청>

컴퓨터에서 스마트폰에 원격접속을 요청하면,

스마트폰에서 이를 허용해주어야 한다. 

사용자 모르게 이 권한을 획득할 수는 없기 때문에 보이스피싱 범죄에서 전화로 피해자를 속이는 것이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<PC에서 스마트폰 원격제어 성공>

PC에서 스마트폰 원격제어 성공시,

다음과 같이 연결에 성공하였다는 메시지가 현출되고,

PC와 스마트폰 간에 채팅방으로 대화가 가능하다.

이 때, 현출되는 메시지인 '화면 공유 작동 중'을 기억해둘 필요가 있다.

Teamviewer Quicksupport 로그에도 해당 문구가 남기 때문이다.

 

 

PC버전에서 스마트폰의 화면을 공유받아서 확인이 가능하고, 모든 제어가 가능하다.

 

 

Dashboard 메뉴에서는 스마트폰의 모든 기기정보(네트워크 정보 포함) 확인이 가능하다.

 

 

스마트폰과 PC간 채팅을 시도해 보았다.

  

 

PC와 스마트폰간 파일 전송을 위해서는 한번 더 권한 허용을 해주어야 한다.

    

 

Apps 메뉴에서는 설치된 앱 확인 및 삭제까지 가능하다.

 

 

Settings 메뉴에서는 네트워크 설정확인이 가능하였다.

 

 

원격으로 카메라 제어도 가능하다.

 

 

파일관리자에서 모든 파일에 대한 접근도 가능하고,

특히 다운로드 받은 apk 파일을 설치할 수도 있다.

 

아래는 '경찰청 폴-안티스파이 2.1 사칭' 악성 앱(cyber.apk)을 설치하는 화면이다.

 

 

 

※ 참고로 위 악성 앱은 2019. 3. 14.자로 업데이트 된 '경찰청 폴-안티스파이 3.0'에서 탐지된다.

 

 

 

 

다음 포스팅에서 Teamviewer Quicksupport 로그분석을 함께 고민해보자.

반응형
Posted by CCIBOMB
Digital Forensics/Windows2019. 3. 12. 19:00
반응형

<Web Browser Forensics - IE10 Forensics>


* WebCacheV01.dat 저장위치

 - %UserProfile%\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat 


* Cookie expire time의 기본설정은 20일


- 이는 실제 날짜 기준이 아니라, 인터넷 접속이 이루어진 일수 기준임


 - 예를 들어, 3월 24일 WebCache를 분석하는 경우에도 3월 1일까지의 쿠키가 확인될 수 있음 (3월 1일부터 3월 24일까지 기간 중 4일(ex. 3월 3일, 3월 5일, 3월 7일, 3월 9일) 동안에는 인터넷 접속을 하지않은 경우)


 - 실제 분석 예) 2019. 3. 2. 획득한 WebCache 파일 내에서 2019. 2. 7.경의 정보까지 확인됨. 20일을 초과하여 저장된 이유를 확인한 바, 총 4일(2019. 2. 10., 2. 17., 2. 23., 2. 24.) 동안 PC가 켜지지 않았음. 아래는 PC의 On, Off 기록


1 2019-02-07 08:52:09 On
2019-02-07 16:20:42 Off
2 2019-02-08 09:12:50 On
2019-02-08 16:48:35 Off
3 2019-02-09 09:08:53 On
2019-02-09 16:53:03 Off
4 2019-02-11 09:12:34 On 10
2019-02-11 17:00:27 Off
5 2019-02-12 09:17:28 On
2019-02-12 16:45:47 Off
6 2019-02-13 12:29:05 On
2019-02-13 16:46:11 Off
7 2019-02-14 09:08:28 On
2019-02-14 10:18:10 Off
8 2019-02-15 09:08:39 On
2019-02-15 16:59:19 Off
9 2019-02-16 09:06:41 On
2019-02-16 16:42:06 Off
10 2019-02-18 09:10:42 On 17
2019-02-18 16:41:31 Off
11 2019-02-19 09:07:33 On
2019-02-19 15:43:10 Off
12 2019-02-20 09:11:06 On
2019-02-20 16:52:36 Off
13 2019-02-21 09:19:46 On
2019-02-21 16:39:30 Off
14 2019-02-22 09:12:21 On
2019-02-22 09:51:24 Off 23
15 2019-02-25 08:57:37 On 24
2019-02-25 16:34:36 Off
16 2019-02-26 08:41:27 On
2019-02-26 15:30:22 On
2019-02-26 16:37:32 Off
17 2019-02-27 08:50:59 On
2019-02-27 16:36:49 Off
18 2019-02-28 09:49:14 On
2019-02-28 16:53:29 Off
19 2019-03-01 08:39:02 On
2019-03-01 16:17:47 Off
20 2019-03-02 08:44:17 On



WebCache01.dat 파일 생성시각


 - Windows OS 부팅/로그인시 생성되는 것으로 보임


 - 부팅 후 브라우저에서 작업중인 내용은 WebCache01.dat 파일이 저장되는 같은 폴더(%UserProfile%\AppData\Local\Microsoft\Windows\WebCache\) 내에 V01002E0.log 등과 같은 형태로 저장됨(이 또한 실시간 저장되는 것은 아닌 것으로 보임)


 - 따라서 WebCache01.dat 파일 획득을 위해서는 “Clean Shutdown(Windows OS 정상종료)” 상태로 수집되어야 함 (Live 상태로 WebCache01.dat 수집하는 경우, 당해 부팅 이전 시점까지의 Cache, History, Cookie, Download List 등만 확인 가능함)



* History 中 실제 해당 페이지 방문시각 정보는 'modified time'에 기록됨


 - 같은 IE10 브라우저 내의 서로 다른 탭에서 검색을 한 뒤 해당 브라우저 종료시 ‘Modified Time’은 정상적으로 저장되나, ‘Accessed Time’은 여러 탭 중 하나라도 마지막으로 검색을 한 시점으로 일괄 저장됨


 -> WEFA(by 4n6tech.com)에서는 방문시각을 ‘Accessed Time’ 정보를 보여주기 때문에 서로 다른 시각에 검색을 하였음에도 같은 시간정보를 보여줌(WEFA 사용하여 분석시 주의 필요!)


 -> IE10Analyzer(by 김정현)에서는 모든 시간정보(Modified Time, Accessed Time, Expiry Time)를 표시해줌. 그중에서 ‘Modified Time’ 정보가 실제 방문시각임


 -> BrowsingHistoryview(By Nirsoft)에서는 ‘Modified Time’ 정보를 방문시각으로 표시하고 있음



* Test 기록 (환경: IE11, Win7)


 - 09:24 IE10 브라우저 시작

 - 09:24 ~ 09:25 1~3번탭 네이버검색

 - 09:25 IE10 브라우저 종료

 - 09:29 IE10 브라우저 재시작

 - 09:30 1~3번탭 네이버검색

 - 09:31 IE10 브라우저 종료

 - 09:34 IE10 브라우저 재시작

 - 09:34 1~3번탭 네이버검색

 - 09:35 1~3번탭 네이버검색

 - 09:36 IE10 브라우저 종료, 시스템 종료


 -> WEFA


 -> IE10Analyzer


 -> BrowsingHistoryView



* WebCache 분석 中 추가 확인이 필요한 사항 (아시는 분은 댓글로 알려주시면 정말 감사하겠습니다.)


 - access time이 modified time과 차이가 발생하는 이유 (PC는 매일 On/Off되었음에도 불구하고 길게는 10여일 이상 차이가 발생하기도 함)
 - sync time의 의미 (무조건 access time과 동일한 것인지)



반응형
Posted by CCIBOMB
Digital Forensics/Linux2016. 6. 23. 10:46
반응형

Unix/Linux 포렌식에서 조사관은 로그 분석을 통해 침입자의 다양한 침입 흔적을 알 수 있다. 시스템에 대한 스캔 행위, exploit 을 통한 공격, 특정 사용자 계정으로의 접속, root 권한 획득, 트로이 목마 설치, 자료 유출 및 삭제 등 공격자의 행위 하나하나가 모두 시스템에 의해 감시 되고 로그로 남기 때문이다.
 그럼 먼저 일반적인 Unix/Linux의 로그 저장 경로를 알아보자.
 
/usr/admin : 초기 유닉스, BSD 계열(HP-UX 9.X , SunOS 4.X)
/var/admin : 최근 유닉스, BSD 계열(SUN Solaris , HP-UX 20.X 이후, IBM AIX)
/var/log : 일부 BSD 계열(BSD, FreeBSD, Sun Solarix, Linux)

/var/run : 일부 Linux 계열

 각 로그 별 저장 데이터는 다음 표와 같다. 각 로그에 대한 자세한 설명은 뒷 부분에서 다룬다.
 로그 저장 데이터
 utmp, utmpx 현재 로그인한 사용자들에 대한 상태 정보
 wtmp, wtmpx 사용자들의 로그인-아웃 정보
 sulog, authlog su(switch user) 명령어 사용 정보
 syslog, secure 사용자 인증에 관련된 정보
 loginlog, failedlogin, btmp 실패한 로그인 정보
 shutdownlog 셧다운, 리부팅, 홀트 정보
 access_log, error_log 웹 서버 접속 정보, 에러 정보
 lastlog 각 사용자의 최근 로그인 정보
 messages 콘솔 상의 화면에 출력되는 메세지 정보
 xferlog FTP 데몬을 통해 송수신 되는 데이터 정보
 acct, pacct 각 사용자별 실행한 명령어 정보
 history 각 사용자별 실행한 명령어, 인자 정보
 sialog Compaq Tru64 OS의 su 명령어 사용 정보



 위에서 대략적으로 설명한 로그들은 시스템 별로 각각 저장 여부가 다르다. 실제 시스템별 저장되는 로그는 다음 표와 같다.
 
로그Solaris 2.X HP-UX 9.X IBM AIX Linux Compaq Tru64 
 utpmx,  
 wtmpx
 /var/adm(/etc) 해당 없음 해당 없음 해당 없음 해당 없음
 utmp, wtmp /var/adm(/etc) /usr/adm /var/adm /var/log(wtmp)
 /var/run(utmp)
 /var/adm
 btmp 해당 없음 /usr/adm 해당 없음 /var/log 해당 없음
 syslog /var/log /usr/adm/sys
log/syslog.log
 /var/adm 해당 없음 /var/log
 secure 해당 없음 해당 없음 해당 없음 /var/log 해당 없음
 sulog /var/adm /usr/adm /var/adm 해당 없음 해당 없음
 pacct /var/adm /var/adm /var/adm /var/log /var/log
 authlog /var/log 해당 없음 해당 없음 해당 없음 해당 없음
 messages /var/adm /var/adm /var/adm /var/log /var/adm
 loginlog /var/adm 해당 없음 해당 없음 해당 없음 /var/adm
 failedlogin 해당 없음 해당 없음 /etc/security 해당 없음 해당 없음
 sialog 해당 없음 해당 없음 해당 없음 해당 없음  /var/adm



다음은 각 로그 파일에 대한 상세 설명이다.
(그림 출처 : "UNIX 로그분석을 통한 침입자 추적 및 로그관리 : Part 1" by 정현철)



1. utmp, utmpx
  - 시스템에 현재 로그인한 사용자들에 대한 상태를 기록(바이너리 형식)
  - /var/run (Linux) 혹은 /var/adm, /etc/ (Solaris) 등에 위치함
  - 사용자 이름, 터미널 장치 이름, 원격 로그인 시 원격 호스트 이름, 사용자 로그인한
    시간 등을 기록
  - who, w, whodo, users, finger 등의 명령어를 통해 내용 확인 가능
  - 'w'는 utmp(x)를 참조하여 현재 시스템에 성공적으로 로그인한 사용자에 대한 snapshot
    을 제공해 주는 명령으로  해킹 피해 시스템 분석 시에 반드시 실행해 보아야 함
   
    ※ 분석 포인트!!!
    1) 접속한 계정이 모든 정상적인 계정인가?
    2) 접속 IP가 내부 IP 이외 이거나 국외 IP인가?
    3) 사용자 행위가 정상적인가? 스캔툴이나 DOS 공격을 수행하는지 확인한다.

 

그림1. 'w' 명령을 통한 현재 로그인 사용자의 snapshot 확인 





2. wtmp, wtmpx
  - 현재까지의 각 사용자 별 로그인/아웃 누적 정보(바이너리 형식 : utmp strcture 사용)
  - 시스템 셧다운, 부팅 히스토리까지 포함
  - 'last' 명령을 통해 내용 확인 가능
  - 로그 파일 rotate 시, 이전 wtmp 데이터는 'wtmp.1' 형태로 저장됨
    'last -f ./wtmp.1" 형식으로 내용 확인 가능 

    ※ 분석 포인트!!!
    1) 접속 시간이 정상적인가? 보통 공격은 새벽 시간대에 이루어짐
    2) 접속 IP가 내부 IP 이외 이거나 국외 IP인가?

그림 2. 'last' 명령을 통한 wtmp 내용 확인





3. sulog, authlog
  - su(switch user) 명령어 사용 기록(텍스트 형식)
  - 날짜 및 시간, 성공(+)/실패(-), 사용한 터미널 이름, from 사용자, to 사용자 등의 정보가
    포함

   ※ 분석 포인트!!!
    'su' 명령은 다른 사용자의 ID로 로그인하는 것과 동일한 효과를 가지므로 로그인 정보
    를 기록하는 utmp/wtmp 파일과 연동하여 분석할 필요가 있음
    => su 명령을 통해 관리자 권한을 얻더라도 utmp와 wtmp에 기록이 남지 않음 
    => 일반 사용자로 로그인한 후, 'su' 명령을 통한 권한 상승은 불법적인 접근으로 의심해
        볼 수 있음

그림 3. 'sulog' 파일 내용 확인





4. syslog, secure
  - 사용자 인증과 관련된 로그 및 커널, 데몬들에서 생성된 모든 로그를 기록(텍스트 형식)
  - rsh, rlogin, ftp, finger, telnet, pop3 등에 대한 접속 기록 및 접속 실패 기록 등 시스템의
    보안과 밀접한 관계에 있는 로그
  - 보안사고가 발생할 경우 가장 먼저 백업하여야 하며 가장 먼저 분석을 시도하여 하는
    로그 파일
  - Linux 계열에서는 secure 로그로 남음

   ※ 분석 포인트!!!
    1) 아래 그림과 같이 짧은 시간 안에 여러 서비스에 대한 접속 시도는 multiple 스캔 공격
        으로 판단 가능
    2) 버퍼오버플로우 흔적을 찾을 수 있음

그림 4. 'secure' 로그 파일 안에서의 Multiple 스캔 공격 흔적




 
5. loginlog, failedlogin, btmp
  - 실패한 로그인 시도를 기록(텍스트 형식)
  - 기본적으로 생성되지 않고 수동으로 생성해 주어야 함
  - 사용자ID, 터미널명, 날짜 및 시간
  - Solaris를 포함한 시스템 V 계열의 유닉스에서는 loginlog파일이 사용됨(Text 형식)
  - Linux와 HP-UX에서는 btmp 파일을, AIX에서는 failedlogin 파일을 사용(바이너리 형식)
  - Linux의 경우, 'lastb' 명령을 사용하여 btmp 파일의 내용을 확인 가능

   ※ 분석 포인트!!!
    -
특정 IP로 부터의 다수의 접속 실패는 Brute-Force 공격으로 의심할 수 있음
        =>해당 Brute-Force 공격의 성공 여부는 syslog, messages 파일과의 병행 분석을 통
           해 확인

그림 5. 'loginlog' 파일의 내용 확인




 

6. shutdownlog
  - HP-UX 에만 있는 로그, 시스템의 shutdown, reboting, halt 내역 기록(텍스트 형식)
  
   ※ 분석 포인트!!!
    - 일반 사용자가 'su'로 권한 상승 후, 'shutdown' 명령 실행시 로그 파일에 일반 사용자 
      ID로 기록이 남음 => 시스템이 해커에 의해 리부팅 혹은 셧다운 되었는지 확인 가능
    - 'reboot after panic'이란 flag로 기록이 남으면 커널 패닉으로 판단, 시스템 장애추적에 
      활용될 수 있음





7. access_log, error_log
  - access_log : 웹 페이지 접속 및 파일 다운로드 기록(텍스트 형식)
  - error_log : 존재하지 않는 파일에 대한 접근 등의 에러 기록(텍스트 형식)
  
   ※ 분석 포인트!!!
    1) 웹 서버에 대한 공격은 주로 CGI 프로그램에 집중, 취약한 CGI 프로그램에 대한 공격
       로그를 검사
    2) 웹 서버마다 로그 포멧이 모두 조금씩 다름. 각각의 포멧을 익혀두는 것이 필요.

그림 6. 'access_log' 에 기록된 취약한 CGI 프로그램에 대한 스캔 공격 흔적





8. lastlog
  - 각 사용자가 가장 최근에 로그인한 시간과 접속장소가 기록(바이너리 형식)
  - 동일한 사용자에 대해서는 이전 내용을 overwrite 함
  - wtmp(x), utmp(x) 등 사용자와 관련된 로그와 병행하여 함께 분석하여야 하는 파일
  - IBM AIX의 lastlog의 경우, 텍스트 형식으로 저장됨
  - 'lastlog' 명령을 통해 내용 확인 가능

그림 7. 'lastlog' 명령 출력 결과





9. messages
  - 콘솔 상의 화면에 출력되는 메세지들을 기록(텍스트 형식)
  - timestamp, 호스트명, 프로그램명, 메시지 내용
  - 메세지 내용에는 su 실패에 대한 로그, 특정 데몬이 비활성화된 로그, 부팅시에 발생된
    에러 등 다양한 로그들을 포함
  - syslog와 마찬가지로 보안사고가 발생시에 가장 먼저 분석을 하여야 하는 파일

   ※ 분석 포인트!!!
    1) 취약점을 가진 다양한 서비스들을 미리 파악하여 분석 수행
    2) 로그만을 통해 취약점에 대한 공격의 성공/실패 여부는 알 수 없기 때문에 해당 취약점
       의 특성을 파악하여 직접 확인할 필요가 있음 
    3) 대부분의 버퍼오버플로우 공격의 경우, 아래 그림과 같이 비정상적인 로그가 기록됨  

그림 8. 버퍼오버플로우 공격으로 인한 비정상적인 로그 기록

    4) 스니핑 툴이 설치하여 모니터링을 수행할 경우, 네트워크 카드는 Promiscuous 모드로
      설정되어 있어야 함. 따라서 아래 그림과 같이 'messages' 로그에서 네트워크 카드의 
      Promiscouos 모드 On/Off 시간을 알 수 있음.

그림 9. 'messages' 로그에 기록된 네트워크 카드 Promiscuous 모드 On/Off 시간





10. xferlog
  - ftp 데몬을 통하여 송수신되는 모든 파일에 대한 기록(텍스트 형식)
  - 송수신 자료와 시간, 송수신을 수행한 원격 호스트, 송수신된 파일의 크기, 송수신된 파
    일의 이름, 파일의 송수신 모드, 특수 행위 플래그, 전송 방향, 로그인한 사용자의 종류
  - 디폴트로는 로그가 남지 않으며 '/etc/inetd.conf' 에서 'ftp stream tcp nowait
     root /usr/sbin/tcpdin.ftpd -l -a'와 같이 '-l' 옵션을 주었을 때만 로그 생성
  
   ※ 분석 포인트!!!
   
1) 접속 시간이 정상적인가? 
    2) 접속 IP가 내부 IP 이외 이거나 국외 IP인가?
    3) 송수신한 파일이 해킹툴이나 주요 자료인지 확인
    4) wtmp와 utmp와 병행 분석
        => wtmp에는 ftp 접속 흔적이 남아 있지 않은데 xferlog에는 기록이 남아 있을 때 침입
           을 의심할 수 있음

그림 10. 'xferlog'에 기록된 의심 해킹툴 다운로드 흔적





11. acct, pacct
  - 각 사용자의 수행한 단일 명령어의 모든 정보를 기록(바이너리 형식)
  - 명령어의 아규먼트는 기록되지 않음
  - 'lastcomm'이나 'acctcom' 명령어을 통해 내용 확인 가능 
  - 기본적으로 실행되지 않으면 'startup' 이나 'accton' 명령어로 설정

   ※ 분석 포인트!!!
    1) acct, pacct 로그에는 사용한 명령어만 남으므로 history 로그를 통해 보완한다.
   

그림 11. 'lastcomm' 명령어를 통한 사용 명령어 기록 확인





12. history
  - 각 사용자별로 수행한 명령을 기록(텍스트 형식) 
  - 명령어의 아규먼트를 모두 기록
  - 쉘에 따라 .sh_history, .history, .bash_history 등의 파일로 기록

   ※ 분석 포인트!!!
    1) 로그 파일은 각 사용자의 홈 디렉토리에 숨긴 파일 형태로 저장됨
    2) 백도어와 같이 비정상적으로 루트 쉘을 획득할 경우, 루트의 홈 디렉토리(/root/)가
        아닌 최상위 디렉토리에 로그 파일이 생성됨

그림 12. 'history' 로그에 기록된 lrk4(루트킷) 다운로드 및 설치 흔적





13. sialog
  - Compaq Tru64에 sulog와 authlog 대신 저장되는 로그

※ Compaq Tru64 로그 체계
  1) SIA(Security Integration Architecture)라는 독특한 보안체계가 있기 때문에 일반적인
      System V 계열과는 차이가 있음
  2) 같은 파일명을 사용하더라도 타 UNIX 계열과 로그 포멧이 대부분 다름
     - wtmpx : '/var/adm'에 저장(다른 포멧)
     - pacct : '/var/adm'에 저장(다른 포멧)
     - messages : '/var/adm'에 저장(같은 포멧)
     - loginlog : '/var/adm'에 저장(같은 포멧)
     - lastlog : '/var/adm'에 저장(다른 포멧)
     - sulog와 authlog가 없는 대신 /var/adm 에 sialog 저장



* 출처 : http://blueangel-forensic-note.tistory.com/entry/UnixLinux-%EB%A1%9C%EA%B7%B8

반응형
Posted by CCIBOMB
Digital Forensics/EnCase2010. 11. 29. 01:57
반응형

 

10.    Shortcut Analysis

 

10-1.    Link Files 분석 개요

-      바탕화면, 최근문서, 시작메뉴, Send to 폴더 등에는 shortcut 형태의 증거들이 있다. Shortcut 파일들은 타겟 파일(어플리케이션, 디렉토리, 데이터 파일, 프린터 등)에 대한 정보를 가지고 있다. 이를 분석하여 필요한 정보를 추출해낼 수 있다.

 

10-2.    Link File 생성 시기

-      사용자가 의도적으로 생성시

-      프로그램 설치시

-      (explorer)이나 OS가 파일 실행시

 

10-3.    Link File 골라내기 (Condition 기능 이용)

Conditions - Extention - Match – lnk

Conditions - FileType - equal to - LINK 로 등록하여 확인

 

 

 

 

10-4.    Link File 활용 (Link File MAC Time 정보)

Link파일 안에는 Link file 생성 당시의 타겟 파일의 MAC Time 정보(CAM 정보)가 기록되어 있다.

a.     Windows : Created, accessed, modify

b.    Linux : Modify, accessed, changed

 

 

 

Windows에서 개개의 날짜/시간 정보는 8bytes, Link File에서 MAC Time 정보는 Offset 28번에서부터 24bytes에 표현된다.

File Created Time (타겟 파일 생성 시각)Last Written (마지막 수정 시각)이 몇 초 차이나는 경우에는 해당 파일의 '다운로드' 가능성을 의심해볼 수 있으며, 이 두 시각이 동일할 경우 '복사' 가능성이 있다.

 

  

 

USB PC에 꽂아 어떤 파일을 설치 또는 사용하였는지 여부를 확인하여 인지사실에 대한 증거로 사용하려는 경우, Link File의 시간정보를 가지는 Volume Serial Number (타겟 파일의 위치를 나타내는 값 앞 10을 찾고 그 전 4바이트) USB 파일시스템 내부의 Volume Serial Number를 비교하여 찾을 수 있다. 해당 Target 파일이 들어있는 파일시스템의 Volume Serial NumberLink File에 부여되기 때문이다.

 

                        // Hex ‘10’을 찾은 후, 그 앞 4 bytesVolume Serial Number (Unicode)

 

 

// Encase Report 탭으로 확인한 Link File Volume Serial Number

 

이를 USB 파일시스템 내부의 Volume Serial Number와 동일한지 비교하여 추출한다.

 

 

 

 

 

11.    참고문헌

-      File System Forensic Analysis, Carrier  ,|Addison-Wesley, 2005.01.01

-      Encase Computer Forensics--the Official Ence (Paperback / 2nd Ed.)   (Encase Certified Examiner Study Guide), BuntingSteve  John Wiley & Sons Inc, 2007.09.12

-      Encase Forensic Academic Program Students Guide, Guidance

 

 

 

12.    도움주신 분들

-      이지스원 시큐리티 보안팀장 김 태 일

-      이지스원 시큐리티 연구원   이명수, 주한익

-      경찰수사연수원 사이버 교수 유   

-      국립 경찰 대학 사이버 교수 장 윤 식

-      육군 사관 학교 사이버 교관 유 정 호

 

 

 

반응형
Posted by CCIBOMB
Digital Forensics/EnCase2010. 11. 29. 00:25
반응형

 

9.   Hash Analysis

 

9-1.       Hash 함수

-      임의의 메시지를 입력 받아 고정된 사이즈의 결과값을 출력한다. 고정된 사이즈는 어떤 알고리즘을 사용하느냐에 따라 달라짐 MD5 128비트이다.

-      h=H(M)    :   Hash value 또는 Message Digest(메시지 요약)를 사용하는

이유는 대체로 메시지 사이즈보다 Hash 사이즈가 작고, 동일한 메시지에 대해 항상 같은 결과가 나오기 때문이다.

-      h가 주어졌을 때 메시지 M의 내용이나 M과 관련된 어떠한 정보도 계산해 내거나 추출할 수 없는 단방향성을 지니고 있다. , 역함수가 없다.

-      Collision-resistance(메시지는 다른데 결과값이 같은 경우)는 거의 없다.

eg.  MD5) 1 / 340,282,366,920,938,463,463,374,607,431,768,211,456

 

 

9-2.       Digital Forensic 에서 Hash 함수의 용도

-      증거의 무결성을 검증하기 위해 사용한다.

디지털 증거는 조금이라도 조작되었을 경우 크게 다른 결과를 가져올 수 있으므로 무결성을 검증하는 것이 매우 중요하다.

 

 

9-3.       Hash 분석의 방식

  Negative Hash analysis

      1. 의의
        • Known-good hash set을 이용하는 hash 분석 방법
      1. 조사방법
        • 증거이미지에 포함된 파일의 hash값을 모두 발생
        • Known-good hash set과 비교하여 매칭되는 파일을 조사 목록에서 제거

 

  Positive Hash analysis

      1. 의의
        • Known-bad hash set을 이용하는 hash 분석 방법
      1. 조사방법
        • 증거이미지에 포함된 파일의 hash값을 모두 발생
        • Known-bad hash set과 비교하여 매칭되는 파일을 모두 조사

 

9-4.       Hash set

의의  : 선택한 파일의 해쉬값을 모아놓은 DB

종류

      1. Known-good Hash set

·         정상적인 파일의 hash 값 집합

·         조사할 필요가 없는 파일의 hash값의 Data Base

·         OS의 버전이 다양하기 때문에 만들기 힘들다.

·         c.f) NSRL(National Software Reference Library) : 미국의 NIST 산하에서 프로젝트로 만든 known-good hash set으로서, 우리나라 환경에는 잘 맞지 않지만 매우 유용하게 사용될 수 있다. 우리나라도 환경에 맞는 known-good hash set이 필요하다. (참조 : http://www.nsrl.nist.gov/)

                                     ii.        Known-bad Hash set

·         해킹에 사용된 툴, 악성코드 등 조사할 필요가 있는 파일의 hash값의 Data Base

 

9-5.       Empty파일(size 0인 파일) 제거

-      컴퓨터 상에는 size 0인 파일이 많은데, 이는 특정 파일이 특정 프로그램의 존재여부와 관련된 경우와 같이 조사가 필요한 특별한 경우가 아니면 조사할 필요가 없다.

-      Encase는 기본적으로 비어있는 파일에 대한 Hash값을 가지고 있다.

-      Hash 분석을 하면 기본적으로 Hash set에서 Empty file으로 분류한다. Category known으로 분류되어 있다.

-      c.f) Size 0인 파일 만들기 : (Windows) Fsutil file createnew [파일명] [size]

(Linux) touch [파일명]

 

 9-6.       Hash set 생성 실습 (Hash set은 생성 후 Rebuild 필요)

① View - hash set 에서 hash sets 탭을 만든다.

 

 

② Cases entry에서 해시 값 만들 파일들을 선택한 후 Search 기능 이용하여 hash값 만들어낸다.

// Selected items only  : 선택된 파일만

Compute hash value  : hash값 생성

 

// 다음과 같이 선택된 파일에 한해서 Hash Value가 도출된 것을 볼 수 있다.

 

 

③ Hash set 탭에서 New 기능을 통해 Hash set 추가

   (도출된 Hash값을 Known으로 등록)

      1. New hash set에서 Category Notable, Known 두 가지만 사용하는 것이 좋다. 이는 Guidance 권고사항으로, Enscript가 이 두 가지 Hash set을 가정하고 작성된 것이 많기 때문에 이를 활용하기 위함이다.

                                     ii.        Known  : Known-good Hash set

Notable : Known-bad Hash set

 

 

             // Hash Set이 만들어졌다.

Encase가 설치된 폴더의 Hash Sets 폴더에 저장되며, 복사 가능하다.

 

 ④ Rebuild 필요

Hash set 생성 후 당장은 사용이 안 된다. 해당 Hash set을 체크한 후 Rebuild 하거나(우클릭- Rebuild Library) 다시 껐다 켜야 한다.

 

 

9-7.       Hash set을 이용한 조사 실습 (Conditions 활용)

필요한 Hash set 선택 후, Search- Compute hash value 체크 -> Search!

 

우측 하단의 필터 pane을 이용하여 조사 파일의 양을 줄일 수 있다.

예를 들어, Hash category known인 것은 제거할 수 있다.

 

Condition : 해당 조건에 맞는 데이터만 보는 것이 가능하다.

(Enscript로 이루어짐. C++ 문법과 유사함)

 

 ③ Known Files 는 제외하고 필터링한 결과

 

 

④ Query 버튼을 누르면 조건이 적용된다.

 

선택적 적용은 Display 탭에서 체크한다.

 

  

 

참고 : Hash 카테고리 Known 인 파일을 제외시키는 Condition 만들기

                                      i.        New Condition (Name : Remove Known Files)

 

                                     ii.        함수 추가 New

(Properties : Hash Category, Operator : equal to, Value : Known)

 

 

                                   iii.        Not 적용

 

                                    iv.        직접 입력하여 생성된 Condition

 

                                     v.        이를 Run 해보면, Known Files는 제외되는 것을 볼 수 있다.

 

           // 적용 전

 

                     // 적용 후  : Known Files 가 보이지 않음

 

 

반응형
Posted by CCIBOMB
Digital Forensics/EnCase2010. 11. 25. 11:53
반응형

 

8.   Signature Analysis

 

8-1.       개요

Signature Analysis는 확장자가 변경된 파일 식별이 주 목적이다.

대부분의 프로그램에서 확장자를 보고 파일 타입을 결정하는 것이 문제의 소지가 될 수 있으므로, 기록된 확장자와 파일의 실제 Signature 를 분석하여 일치하는 지를 확인하는 작업이다.

 

8-2.       Signature

어떠한 파일타입인지를 나타내는 코드

보통 파일의 앞 부분

JPG 의 경우 FF D8 , MP3 의경우 ID 3 로 시작함.

 

Encase View 메뉴에 가면 File Signatures 메뉴가 있다.

 

 

8-3.       Encase에서 Search (Verify file signatures 체크) 후 결과 표시

!Bad Signature

Signiature 손상

확장자 등록, Signatre 등록 X

Match

정상적인 파일

Signature와 확장자 일치

* [Alias]

확장자 변경

등록된 확장자, Signature 불일치 (명확한 조작)

Unknown

등록 X 파일

확장자, Signature 둘다 등록 X

 

 

8-4.       Signature Search 시 필터링

Signature contains [*]    :  *포함한 것

or Signature contains [!]  : 복합조건 (조건을 더 만든다.)

 

c.f) 복합조건 생성시 논리연산자가 자동으로 or 로 됨.

and 로 바꾸려면 ‘change logic’을 하면 된다. (우클릭 – logic)

 

 

8-5.       새로운 File Signature 등록 (Multimedia - new) : Rebuild 불필요함

 

 

                      예시 : Mp3 파일 등록

         // Option

Search expression - '\x49\x44\x33'

GREP - 16진수, 정규식 사용시

Case Sensitive - 대소문자 구별, Signature : ID3

 Extentions : mp3

 Name : mp3 Audio file

 

 

c.f) File Type DB가 별도로 있어 별도 등록 필요함. Viewer는 개별설정 가능함

 

 

 8-6.       File Signature 분석하는 방법

파일 표준이 있을 경우 분석자료를 참고한다.

파일 샘플을 여러 개 가져다 놓고 비교 분석한다.

파일 signature를 분석해놓은 사이트를 참조한다.

(eg. http://www.garykessler.net/library/file_sigs.html/)

 

 

8-7.       File Signature 확인 실습

 

Search Verify file signatures

 

② Searching



 

Finish

 

④ Result

 

 

 

8-8.       Signature 위치에 따른 파일 인식 여부

① Signature File의 시작이 아닌 중간에 위치한 경우 인식 여부 확인

  정상적인 JPG 파일 (VMware.jpg)

 

Signature를 중간으로 옮긴 경우 (VMware2.jpg)

 



 

File 내 여러 개의 Signature가 있는 경우 인식 여부 확인

정상적인 JPG 파일의 중간에 png 파일의 Signature 삽입 (VMware3.jpg)



 

Encase에서 인식 결과



-      Signature 를 중간으로 옮긴 (VMware2.jpg)의 경우 “! Bad signature

, Signature는 각 파일의 맨 앞에 위치하여야 함

-      Signature 가 중복된 (VMware3.jpg)의 경우 정상적인 JPG 파일로 인식함

, Signature는 각 파일의 맨 앞에 위치한 하나만 인식함

 

 

8-9.       MS Office File Signature

① 2003 ver. 이하 문서 (xls, doc, ppt)

-      Password 유무 상관 없이 동일한 Signature 지님 : 구분 불가능!

Signature : D0 CF 11 E0 A1 B1 1A E1

 

 



-      Encase에서는 세 개 파일 모두 동일한 File Signature에 등록되어 있음

Encase 에서는 xls, doc, ppt 모두 Compound Document File에 등록됨

따라서 이 세 개의 확장자 중에서 서로 바꾸는 경우에도 Match 로 인식됨

 



 

2007 ver. 문서 (xlsx, docx, pptx)

-      암호 유무에 따라 서로 다른 Signature 지님

암호가 없는 경우 공통 Signature : 50 4B 03 04

암호가 걸린 경우 공통 Signature : D0 CF 11 E0 A1 B1 1A E1 (2003과 동일)

 


-      Encase File Signature Table 에서 확인

암호가 없는 경우 공통 Signature : 50 4B 03 04 ZIP Compressed에 ‘zip, docx, pptx, xlsx’ 확장자와 함께 등록되어 있음. 따라서 상호간 확장자를 바꾸어도 Encase Match로 인식함

 



암호가 걸린 경우 D0 CF 11 E0 A1 B1 1A E1 2003의 경우와 동일하게 Compound Document File File Signature로는 등록되어 있으나, 확장자(xlsx, docx, pptx)는 등록되어 있지 않으므로 Encase * (Alias) 로 인식함

 



 

결론

Office 2003 문서(암호 유무 상관 X) Signature

= Office 2007 문서(암호 O) Signature

= ZIP 파일(암호 유무 상관 X) Signature

 

 

반응형
Posted by CCIBOMB
Digital Forensics/EnCase2010. 11. 25. 11:37
반응형

 

7.   Web History Analysis

 


Web History 라는 것은 피의자가 어떤 웹사이트에 언제 접속했는가를 찾기 위한 중요한 단서가 된다. (웹히스토리는 사용자가 브라우저를 통해 웹을 방문할 때, 그 방문 접속 기록을 가지고 있는 파일들이다.) 그리고 실제 수사에서도 가장 많이 사용되는 기록 중에 하나이다.

 

 

예를 들어 특정 사용자의 웹 히스토리 중 위와 같은 폴더를 확인했을 때, 이 데이터로부터 조사관은 사용자가 gmail hotmail 이메일 주소를 가지고 있고, tdbanknorth라는 온라인 뱅킹을 이용하며, 디지털 포렌식 웹사이트에 관심이 있고, 아마도 Champlain에 있는 대학을 다니고, 그 지역 아파트에 대해 알아보고 있다는 추측이 가능하다.[i]

또한 다운로드 받은 파일을 마지막으로 저장한 폴더를 보여주는 경우, 조사관은 사용자가 파일들을 어디에 저장하는지 알 수 있으며, 이 밖에도 로그로 활용하기 위한 정보가 담겨있기도 하며, 이에는 웹 브라우져의 자동 로그온 아이디와 비밀번호, 검색어 등이 날짜, 시각 정보와 함께 저장되어 있다. 자동 완성 비밀번호 웹 페이지가 인코딩되어 저장되기도 한다.

 

Encase 에서 웹 히스토리를 분석하는 것은 간단하다.

   툴바의 Search 를 선택한다.

 

 

이 때 오른쪽 아래에 Search for internet history 를 체크해주면, 현재 추가된 증거들에서 자동으로 웹 히스토리 파일들을 찾아서 분류해준다.

 

 

결과는 Entries 탭이 아닌 Record (View->Cases->Records)에서 볼 수 있다.

 

 

Encase에서는 다음과 같은 웹히스토리 파일이 분석 가능하다.

-       Internet Explorer - Windows, Mac

-      Mozilla( Netscape, Firefox ) - Windows, Mac

-       Opera - Windows, Mac and Linux

-       Safari - Mac

 

 

 

  참고사항 : Index.dat

 Internet Explorer의 경우 Index.dat 파일을 이용하여 브라우져의 사용에 관한 정보를 유지하는데, Index.dat 파일은 Cookies, History, Temporary Internet Files 폴더 등의 정보가 위치한다. 다양한 Index.dat 파일은 그 구조는 유사하지만, 서로 다른 타입의 데이터를 저장한다.

   Cookies – 웹사이트에 의해 컴퓨터 시스템에 저장된 데이터.

.TXT 파일들이 실제 쿠키들을 나타내며,

Index.dat 파일은 각 쿠키 기록을 따른다.

Temporary Internet Files Index.dat – Internet Explorer를 통해 접근한 웹페이지에

나타난 파일들을 포함한다. 캐쉬 파일들은 컴퓨터에 저장될 때, 이름이 변경되는데 Index.dat는 이러한 변경 정보를 기록한다.

  Main History Index.dat – 전반적인 현재 히스토리

  Daily History Index.dat – 날짜 범위를 포함하는 폴더 저장.

예를 들어, ‘MSHist012010050420100505’ 2010 5 4일 하루의 히스토리를 의미한다.

   Weekly History Index.dat – 날짜 범위를 포함하는 폴더 저장.

예를 들어, ‘MSHist012010050220100508’의 경우 2010 5 2~8일 주를 의미한다.

   위의 Main, Weekly, Daily History Index.dat Internet Explorer 외에도 Windows Explorer를 통해 접근한 Local 파일에 대한 히스토리도 기록한다.



[i] Derrick J. Farmer. “A FORENSIC ANALYSIS OF THE WINDOWS REGISTRY”, 2008

: http://www.eptuners.com/forensics/Index.htm

반응형
Posted by CCIBOMB
Digital Forensics/EnCase2010. 11. 25. 01:26
반응형

 

Case  각각의 Partition VBR이 모두 손상된 경우

 

-      복원 전 MBR : Partition Table Layout

Bootable Flag

Starting CHS

Partition Type

Ending CHS

Starting LBA

Size in sector

00

01 01 00

07

FE 3F 07

3F 00 00 00

C9 F5 01 00

00

00 01 08

05

FE 3F 0D

08 F6 01 00

86 78 01 00

 

-      하드 전체 Layout

MBR

Primary 1

Primary 2

 

-      하드디스크 정보 (229,824 Sectors, 112.2MB)

Type

Name

Status

Start

Stop

Relative

size

07

NTFS

00

000101

073FFE

63

128457

05

FAT32

00

080100

0D3FFE

128520

96390

 

-      인식 오류 발생 원인

Encase로 불러왔을 때, 아무런 파티션도 인식하지 못한 상태이다.

해당 디스크의 MBR을 확인해 보았다. MBR에는 2개의 파티션 정보가 나타나 있다. 해당 정보에 따르면, 첫 번째 파티션 시작 위치는 63섹터, 두 번째 파티션 시작 위치는 128520 섹터이다. 그러나 해당 섹터(VBR)는 모두 손상되었다.

, MBR은 손상되지 않았지만, 각각 파티션들의 VBR이 손상되었다.

a.       MBR Partition table을 보고, Partition의 시작 위치 확인



b.       첫 번째 파티션의 시작 위치인 63 sector에서 VBR 손상 확인

 

c.       두 번째 파티션의 시작 위치인 128520 sector에서 VBR 손상 확인

 

 

-      복원 과정

VBR이 손상되었을 때에는, VBR 백업본을 이용하여 복원할 수 있는 가능성이 존재한다. NTFS의 경우 파티션의 가장 마지막 섹터에 백업 되며, FAT32의 경우 보통 VBR에서 6번째 섹터에 기록되어 있다. 각각 파티션의 백업 VBR의 존재를 확인 후 손상된 VBR의 위치에 덮어쓰는 방법으로 복원할 수 있다.

 

a.     첫 번째 파티션의 VBR (63 sector) 바로 다음 섹터 확인

// NTLDR 관련 정보가 있는 것으로 보아 NTFS인 것으로 추측.

NTFS의 경우 VBR의 백업본이 맨 마지막 sector에 저장되어 있음

  

b.    첫 번째 파티션의 맨 마지막 섹터 (128519 sector) 확인

// NTFS 파일시스템 파티션 VBR 이 백업되어 있음

 

c.     두 번째 파티션의 시작위치(128520 sector)로부터 6 sector 뒤 확인

// FAT32 파일시스템 파티션 VBR이 백업되어 있음

 

d.    WinHex dd 이미지를 읽음

(Encase Forensic Training버전에서는 Disk Emulate 기능 없으므로 직접 수정이 불가하므로 WinHex를 이용하여 VBR 백업본을 직접 손상된 VBR에 덮어써서 복원 후 마운트해야 함)



 

e.     Encase를 통해 이미 확인한 VBR 백업본을 원래의 VBR 위치에 덮어씌움

   // NTFS VBR 백업본

 

                  // FAT32 VBR 백업본 

 

 

-      복원 완료

a.       Encase로 확인

Winhex에서 저장 후 Encase에서 Raw Image로 불러들여 읽음

 // 정상적으로 C, D 드라이브가 인식된 것을 확인

  

b.       Linux Loop Device Mount하여 정상 인식되는지 확인

b-1.  dd 파일의 정보 확인 (Encase로 확인한 바와 동일함)

 



           c.f) MMLS filesystemrecovery.dd 를 이용하여도 Partition 정보 확인 가능

MMLS Sleuthkit Tool 중 하나로, 분석할 디스크 레이아웃과 전체 파티션 스키마 취득, 물리적 디스크만 분석 가능 (스냅샵으로 획득한 이미지 파일에서는 사용 못함)

img_stat도 스냅샷 작성한 파일과 원본 디스크 또는 파티션 정보 확인 가능

 

b-2. 첫 번째 파티션의 offset(시작위치sector byte로 환산)을 지정하여 Mount 시킴

 



c.f) 파일 시스템을 마운트하는 것이므로, offset을 지정하지 않는 경우 해당 이미지는 하나의 파일 내에 두 개의 파일시스템이 존재하게 되어 마운트 자체가 불가능함

“dd if=filesystemrecovery.dd of=recovery.dd bs=512 start=63 size=128457”와 같이 offset을 지정하지 않고, 첫 번째 파티션만 따로 dump하여 mount 가능

 

                            b-3. 마운트된 첫 번째 파티션 확인 (정상 인식)

 

 

b-4. 두 번째 파티션 Mount 후 확인 (정상 인식)

 

 

반응형
Posted by CCIBOMB