In my current role as a corporate investigator, I tend to review web browser histories in most of my cases. Due to that, I am always looking for additional tools to review web browser histories and I think Mr. Chris Cohen has written a nice one for Firefox 3.X.
A little background on Firefox....
Firefox 3.X uses a SQLite databases to store:
- Internet browsing history
- Bookmarks
- Settings
- Downloads
- Cookies
- Form History
- and more.
As you can see it can be a treasure trove of data in the various SQLite files such as downloads.sqlite, formhistory.sqlite, places.sqlite, and etc. Sometimes finding a good tool to extract the data can be challenging.
Mr. Chris Cohen has written a freeware tool called Firefox 3 Extractor or f3e for short. F3e can extract data from the Firefox SQLite databases into a various formats that the investigator can review. One of the nice things is that it can extract the data out a CSV file so that can be imported into a spreadsheet program for sorting. Plus it even offers a Internet Usage report in HTML that could be given to HR. The program is simple to use and fairly quick.
Main Menu
After starting the program you are asked to enter in some details surrounding the case. Mr. Cohen was kind enough to offer the US date format for us Yankees. Plus we have an option to put in the UTC offset to make our time line generation easier. The file names for each reports looks like: {Case Reference} — {Case Name} — {data contents}.{csv/html}
Below is an example run with the Main Menu:
Firefox 3 Extractor (f3e.exe) 0.8.9 by Chris COHEN <admin@firefoxforensics.com> http://www.firefoxforensics.com/ English or American date format? [E/A] A UTC offset in minutes decimal, i.e. 0, 360, -90: 0 Case Reference: Test Run Case Name: Test Investigator: K Murphy Select the task you wish to perform: A - Extract RAW data from Firefox 3 SQLite databases to CSV. B - Extract data from Firefox 3 SQLite databases to CSV and decode dates and times. C - Create Firefox CSV Internet History Usage Report. D - Create Firefox HTML Internet History Usage Report. E - Decode PRtime. **EXPERIMENTAL** F - Extract RAW data from Google Chrome SQLite databases to CSV. G - Extract data from Google Chrome SQLite databases to CSV and decode dates and times. R - Reset settings (case name etc.) H - Help X - Exit
Sample Output from Downloads
Below is some sample output from the downloads.sqlite CSV file from f3e. I had to break it up into several lines so that it would fit on the page. I did not include all of the columns from the CSV file. However I including some interesting ones.
id | name | source |
1 | calc.pdf | |
2 | f3e_0.8.9.1.zip | http://www.firefoxforensics.com/download/f3e_0.8.9.1.zip |
Obviously the above gives us some file names to search the file system for as well as where the file was downloaded from.
target | startTime | endTime |
file:///mnt/sys/calc.pdf | 02/24/09 04:11 PM | 02/24/09 04:12 PM |
file:///appl/firefox_3_forensics/f3e_0.8.9.1.zip | 03/09/09 03:57 PM | 03/09/09 03:57 PM |
The above is a continuation from the first table. Here we have where the file was saved to and the times for when the file was downloaded.
currBytes | maxBytes | mimeType |
60858 | 60858 | application/pdf |
339313 | 339313 | application/zip |
I thought the above fields from the table was interesting in regards to the file size (see currBytes and maxBytes) and the file type (mimeType). Both would come in handy when data carving out files from unallocated space on the hard drive. In addition, it might even make it possible to know whether we have the whole file or not.
Remember It's A Database...
Keep in mind when you review the output from F3e that the data is from a database. You will see fields that correlate to other tables. Take your time to review the data and use schema table that Mr. Cohen has provided to trace your way through the files.
For example (from places.sqlite moz_historyvisits.csv file):
id | from_visit | place_id | visit_date | visit_type | session |
1 | 0 | 15637 | 02/23/09 06:40 PM | 1 | 168653348 |
The place_id should correlate to the data listed in the places.sqlite moz_places.csv file.
id | url | title |
15637 | https://blogs.sans.org/computer-forensics/ | SANS Computer Forensics, Investigation, and Response |
Don't be afraid to use tools like grep to search the files for record keys. For example, if I searched (grep 168653348 *) for 168653348 in the directory with my CSV files, I found several files that had data on that key. From there it is just a matter of loading the files into a spreadsheet program to review. In this example, I would review the Internet Usage.csv file to piece together the Internet Usage.csv and places.sqlite moz_historyvisits.csv files.
Mr. Cohen does have a schema table that can be found at: http://www.firefoxforensics.com/research/firefox_places_schema.shtml
Locations for the Firefox database
Linux/Solaris
{User dir - See /etc/passwd for the location}/.mozilla/firefox/{profile folder}/
Windows XP
C:\Documents and Settings\{user id}\Application Data\Mozilla\Firefox\Profiles\{profile folder}\
Windows Vista
C:\Documents and Settings\{user id}\AppData\Roaming\Mozilla\Firefox\Profiles\{profile folder}\
OS Notes:
- The {profile folder} will have some random characters and ends with a .default.
Running Under Linux
'Firefox 3 Extractor' (f3e) can be ran under Wine. Simply copy the binary and dll to your work directory with the Firefox SQLite databases and run "wine f3e.exe".
Where to Download
'Firefox 3 Extractor' (f3e) can be download at: http://www.firefoxforensics.com/