웹 분석-Chrome
웹 분석-Chrome
아티팩트 저장 경로
Cache
%USERPROFILE%\AppData\Local\google\chrome\user data\default\cache 폴더
History
%USERPROFILE%\AppData\Local\google\chrome\user data\default\history 파일
History파일에는 사용자가 방문한 URL 및 접속 시간, 다운로드 내역 등이 기록됩니다.
Chrome브라우저의 방문기록은 urls 테이블과 visits 테이블에 의해 방문 url과 방문 기록을 분리하여 관리합니다.
urls 테이블에는 방문했던 사이트 고유의 url들이 저장되고, visits 테이블에는 urls 테이블을 참조하여 방문 이력이
관리 됩니다. 다운로드 기록은 downloads 테이블과 downloads_url_chains 테이블에 의해 관리되며 downloads에는
다운로드 받은 파일에 대한 내역이 기록되고 downloads_url_chains테이블에는 다운로드 받은 url들이 기록됩니다.
활용성이 높은 데이터가 들어있는 Table은 downloads, downloads_url_chains, urls, visits가 있습니다.
History DB Table List
downloads Table
다운로드 받은 파일을 관리, 저장경로, 다운로드 시작 시간, 용량 등의 항목이 기록됩니다.
downloads_url_chains Table
다운로드 받은 파일의 원래 URL 관리
urls Table
사용자의 접속 URL을 관리, 접속 URL, 최근 접속 시간, 총 접속 수 등을 기록
visits Table
접속 URL, 접속 시간 등 접속 기록은 urls 테이블을 포함하여 visits 테이블에 저장
keyword_search_terms
크롬 검색 키워드
Cookie
%USERPROFILE%\AppData\Local\google\chrome\user data\default\Cookies 파일
쿠키는 일반적으로 웹마다 남기는 형태가 다르기 때문에 그 형식을 정확히 알기란 어렵거나 쿠키를 암호화 등을 통해
관리한다면 정확한 의미나 값을 파악하는게 쉽지 않다.
Download
%USERPROFILE%\AppData\Local\google\chrome\user data\default\history 파일
Typed URL
%USERPROFILE%\AppData\Local\google\chrome\user data\default\shortcuts 파일
검색어를 포함하여 주소창에서 직접 입력한 후 접근한 사이트. 그러므로 keyword_search_terms 보다 폭넓은
데이터 포함
New Tab
%USERPROFILE%\AppData\Local\google\chrome\user data\default\top sites 파일
최근 접근 Top 10 Web URL
Bookmarks
%USERPROFILE%\AppData\Local\google\chrome\user data\default\Bookmarks 파일
Privacy 관련 자료로 암호화되어 있어 DB를 직접 열 수 없다.
Visited Link
%USERPROFILE%\AppData\Local\google\chrome\user data\default\Visited Links 파일
Privacy 관련 자료로 암호화되어 있어 DB를 직접 열 수 없다.
Preferences
%USERPROFILE%\AppData\Local\google\chrome\user data\default\Preferences 파일
백업, 북마크, 브라우저, 검색 엔진, 다운로드, 확장 기능, 플러그인, 세션, 싱크 설정 정보, 클라우드 프린트,
DNS 프리패칭 정보
이러한 정보들의 관리 방법이나 경로는 크롬 버전이 달라질 때 마다 변경될 수 있다.
위 정보 중 백업, 북마크, 검색 엔진, 다운로드 설정 정보를 통해서도 사용자의 행위를 프로파일링 해볼 수 있다. 하지만, 특정인의 특징이라고 보기에는 다소 보편적인 내용이기 때문에 효과가 크지 않다.
반면, 클라우드 프린트, DNS 프리패칭, 줌 레벨은 사용자의 인터넷 사용 패턴을 알려주기 때문에 프로파일링하는데 큰 도움이 된다. 해당 정보는 넓은 의미에서 프라이버시로 볼 수 있지만, 일반 사용자 입장에서는 딱히 삭제할 방법이 없다.
분석
SQLite
크롬 브라우저에서는 Sqlite db 형태로 파일을 관리하므로 손쉽게 Sqlite Browser를 통해 분석이 가능
F:\temp>sqlite3.exe "%USERPROFILE%\AppData\Local\google\chrome\user data\default\history"
sqlite> .table
Error: database is locked
F:\temp>dir "%USERPROFILE%\AppData\Local\google\chrome\user data\default\history"
2020-03-10 오후 05:11 11,239,424 History
F:\temp>forecopy.exe -f "%USERPROFILE%\AppData\Local\google\chrome\user data\default\history" "f:\temp"
F:\temp>dir "f:\temp\history"
2020-03-10 오후 05:19 11,239,424 history
F:\temp>sqlite3.exe "f:\temp\history"
sqlite> .database
main: f:\temp\history
sqlite> .table
downloads meta urls
downloads_slices segment_usage visit_source
downloads_url_chains segments visits
keyword_search_terms typed_url_sync_metadata
History
sqlite> pragma table_info(urls);
0|id|INTEGER|0||1
1|url|LONGVARCHAR|0||0
2|title|LONGVARCHAR|0||0
3|visit_count|INTEGER|1|0|0
4|typed_count|INTEGER|1|0|0
5|last_visit_time|INTEGER|1||0
6|hidden|INTEGER|1|0|0
sqlite> SELECT datetime(last_visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime') last_visit_time,url,title
FROM urls ORDER BY last_visit_time DESC [limit 10];
Download
sqlite> SELECT datetime(end_time / 1000000 - 11644473600, 'unixepoch', 'localtime') end_time, target_path, tab_url
FROM downloads ORDER BY end_time DESC limit 10;
Keyword Search
select b.url, a.term, datetime(b.last_visit_time / 1000000 - 11644473600, 'unixepoch', 'localtime')
from keyword_search_terms a, urls b where a.url_id = b.id;
기타 Cookies, Typed URL, New Tab도 동일한 방식으로 분석하면 된다. 다만 각 SQLite DB 내 Table 구조 및 Field에
대한 이해가 선행되어야 한다.
DB Browser for SQLite Tool
BrowsingHistoryView Tool
Internet Explorer, MicroSoft Edge, Mozilla Firefox, Google Chrome, Opera and Safari 통합 히스토리 분석
GUI
CLI
F:\>BrowsingHistoryView.exe /LoadIE 0 /LoadFirefox 0 /LoadSafari 0 /LoadChrome 1 /HistorySource 1 /scomma "f:\test\chrome-back.csv"
F:\tool\forensic\browsinghistoryview-x64>dir "f:\test\chrome-back.csv"
2020-03-10 오후 02:05 1,585,621 chrome-back.csv
F:\temp>F:\tool\forensic\LogParser\LogParser.exe -h -i:csv "f:\test\chrome-back.csv" -headerRow:on
Fields:
Filename (S) RowNumber (I) URL (S) Title (S)
Visit Time (S) Visit Count (I) Visited From (S) Visit Type (S)
Web Browser (S) History File (S) User Profile (S) Browser Profile (S)
URL Length (I) Typed Count (I) Record ID (I)
F:\temp>F:\tool\forensic\LogParser\LogParser.exe -i:csv -iDQuotes:auto "select * from 'f:\test\chrome-back.csv'"
<참고>
Visit Type
Hindsight
Chrome 모든 아티팩트를 대상으로 TimeLine 구성
TimeLine 생성
C:\Temp>hindsight.exe -i "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default" -b Chrome -f sqlite -o "c:\temp\chrome_forensic"
DB Browser for SQLite로 TimeLine 조회
SNSS(Server Session) 파일 분석
다음 두 가지 파일이 SNSS 포맷을 가진 크롬 관련 파일이다.
- Current Session / Current Tabs
- Last Session / Last Tabs
위 파일은 현재 탭을 포함한 탭 및 세션 상태와 관련된 모든 것을 저장합니다. 가장 최근의 정보이므로 포렌식에서
매우 민김한 정보일 수 있다.
분석 시에는 해당 파일들이 Shared read/write 권한이 없어서 실기간으로 접근이 불가능하며 권한을 임의로 부여해도
크롬 실행 시 다시 초기의 권한으로 변경한다.
Current Tab/Session, Last Tab/Session 분석 - Current Web URL 확인
C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Current Session" c:\test
C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Current Tabs" c:\test
C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Last Tabs" c:\test
C:\>forecopy.exe -f "C:\Users\chohb\AppData\Local\Google\Chrome\User Data\Default\Last Session" c:\test
Tab 분석
C:\Tools\Forensic\Chromagnon\dist>chromagnonTab.exe "c:\test\Current Tabs"
SelectedNavigationInTab - Tab: 16, Index: 0, Time: 13228317039685565
UpdateTabNavigation - Tab: 16, Index: 0, Url: https://chrome-apps-doc2.appspot.com/extensions/tabs.html
SelectedNavigationInTab - Tab: 20, Index: 0, Time: 13228319147209300
UpdateTabNavigation - Tab: 20, Index: 0, Url: https://secuworld.tistory.com/34
C:\Tools\Forensic\Chromagnon\dist>chromagnonTab.exe "c:\test\Last Tabs"
......
UpdateTabNavigation - Tab: 21, Index: 0, Url: chrome://newtab/
UpdateTabNavigation - Tab: 21, Index: 1, Url: https://www.google.com/search?q=chrome+cookie+forensic&oq=chrome+cookie+forensic&aqs=chrome..69i57j0.34298j0j7&sourceid=chrome&ie=UTF-8
UpdateTabNavigation - Tab: 21, Index: 2, Url: https://www.google.com/search?ei=j3lnXq6VI4y2mAW3mozoBQ&q=chrome+cookie+forensic+sqlite+query&oq=chrome+cookie+forensic+sqlite+query&gs_l=psy-ab.3...2404.6489..6866...0.0..0.136.1767.1j14......0....1..gws-wiz.......0i30j0i13i30j33i160j33i21.GPMZ9fq-5Z8&ved=0ahUKEwjumPy05o_oAhUMG6YKHTcNA10Q4dUDCAs&uact=5
UpdateTabNavigation - Tab: 21, Index: 3, Url: https://digitalisx.tistory.com/entry/Google-Chrome-History-with-Python
SelectedNavigationInTab - Tab: 23, Index: 6, Time: 13228315714799040
UpdateTabNavigation - Tab: 23, Index: 3, Url: https://secuworld.tistory.com/
UpdateTabNavigation - Tab: 23, Index: 4, Url: https://secuworld.tistory.com/manage
UpdateTabNavigation - Tab: 23, Index: 5, Url: https://secuworld.tistory.com/manage/posts
UpdateTabNavigation - Tab: 23, Index: 6, Url: https://secuworld.tistory.com/manage/newpost/34?type=post&returnURL=https%3A%2F%2Fsecuworld.tistory.com%2Fmanage%2Fposts
UpdateTabNavigation - Tab: 23, Index: 7, Url: https://secuworld.tistory.com/manage/posts
UpdateTabNavigation - Tab: 23, Index: 8, Url: https://secuworld.tistory.com/manage/newpost/34?type=post&returnURL=https%3A%2F%2Fsecuworld.tistory.com%2Fmanage%2Fposts
UpdateTabNavigation - Tab: 23, Index: 9, Url: https://secuworld.tistory.com/manage/posts
Session 분석
C:\Tools\Forensic\Chromagnon\dist>chromagnonSession.exe "c:\test\Current Session"
......
UpdateTabNavigation - Tab: 19, Index: 0, Url: https://secuworld.tistory.com/34
......
SetSelectedTabInIndex - Window: 13, Index: 0
SetTabIndexInWindow - Tab: 14, Index: 0
SetPinnedState - Tab: 14, Pinned: 0
C:\Tools\Forensic\Chromagnon\dist>chromagnonSession.exe "c:\test\Last Session"
......
SetTabIndexInWindow - Tab: 8, Index: 1
SetPinnedState - Tab: 8, Pinned: 0
SetSelectedNavigationIndex - Tab: 2, Index: 9
UpdateTabNavigation - Tab: 2, Index: 9, Url: https://secuworld.tistory.com/manage/posts
SetSelectedTabInIndex - Window: 1, Index: 1
......
UpdateTabNavigation - Tab: 2, Index: 9, Url: https://secuworld.tistory.com/manage/posts
......
Chromagnon
2020년 3월 현재 아직 Python v3.x 는 지원하지 않지만 Python v2.x에서 exe로 만들어 실행하면 된다.
이 또한 크롬이 실행중일 경우 Access Denied가 발생하여 분석이 안된다.
E:\Tools\Chromagnon>py -2 chromagnonCache.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\Cache" [ -o c:\temp\ ]
--------------------------------------------------------------------------------
Hash: 0x3ac547ab
Usage Counter: 0
Reuse Counter: 0
Creation Time: 2020-01-15 04:42:01.214355
Key: https://images.contentstack.io/v3/assets/bltefdd0b53724fa2ce/bltfe1709fd28e63c7e/5d07f061b0b16b1c530d1197/logo-maps-24-color.svg
State: Normal
Data (6848 bytes) at 0xc1031126 : HTTP Header image/svg+xml
Data (883 bytes) at 0xa30113d8 : Data
--------------------------------------------------------------------------------
......
E:\Tools\Chromagnon>py -2 chromagnonDownload.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\history"
2019-12-11 00:08:53.688932 https://github.com/packetzero/dnsparser E:\temp\dnsparser-master.zip
2019-12-11 00:27:13.877036 https://bitbucket.org/paulc/dnslib/downloads/ E:\temp\paulc-dnslib-9b80cd497f3d.zip
2019-12-11 01:28:54.747286 http://www.dnspython.org/kits/1.16.0/ E:\temp\dnspython-1.16.0.zip
E:\Tools\Chromagnon>py -2 chromagnonHistory.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\history"
2019-12-10 07:45:50.957715 35 https://www.daum.net/
2019-12-10 07:46:35.677765 1 https://sports.media.daum.net/sports
E:\Tools\Chromagnon>py -2 chromagnonVisitedLinks.py "C:\Users\admin\AppData\Local\Google\Chrome\User Data\Default\Visited Links" "http://www.naver.com"
http://www.naver.com False
'DFIR > 사용자 행위 분석' 카테고리의 다른 글
정보유출 흔적 조사 (4) | 2020.04.01 |
---|---|
Windows Search DB 분석 (0) | 2020.03.11 |
웹 분석-IE&Edge-WebCacheV01.dat (0) | 2020.03.10 |
파일 행위 분석-삭제파일목록 (2) | 2020.03.09 |
파일 행위 분석-다운로드받은파일-Zone.Identifier (2) | 2020.03.09 |