Thursday, April 24, 2014

What's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Word - Thunderbird! - Parser that is....

Thunderbird is a free email client by Mozilla (similar to Outlook).  Most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 major Forensic tools support parsing this data in one way or anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r.  However, I recently came across a Thunderbird profile in a Volume Shadow Copy that was not getting parsed correctly, or in some instances, into a format that I needed it in.


What tipped me off that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile was not being parsed correctly? Several things. One program I used parsed only 274 messages. Based upon cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 large size of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile, this seemed suspect to me.  I tried anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r program and it parsed over 5,000 emails from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same profile. Quite a discrepancy. When I tried to view cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile natively using Thunderbird, it threw errors.

This caused me to take a closer look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Thunderbird files, and untimely, write a python parser to extract cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emails – including deleted ones.
  
Testing

Because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email profile was corrupted, I wanted to test cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same programs with a "normal" profile. I actually use Thunderbird as my email client, so I had a decent profile for testing with over 7,000 emails in my Inbox and about 3,300 in my sent folder over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 course of a couple of years.


I parsed my profile with three forensic programs as well as just viewing it in Thunderbird. I also ran cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 python script  I wrote over it (noted as TB Parser below). I was surprised by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 variety of results - many programs were not getting all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 messages. I've listed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 major email folders from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Thunderbird profile below and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of parsed emails from each program:


Tool 1 is a common "all in one" forensic tool. If you look at results from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Inbox, over 4,000 emails were parsed. If an examiner was using this as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir only tool, it's easy to see how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y might not even realize that an additional 3,000 messages were not parsed.

A possible reason for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se discrepancy is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 format in which Thunderbird stores its emails. Thunderbird uses a modified version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOX email format, called MBOXRD1.This may account for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 partial processing of emails as many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools support state support for MBOX. However, Tool 1 states in it's documentation specific support for Thunderbird.

So if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools states support for Thunderbird, or if you see some emails but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are all not being parsed, is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tool to blame? I think it may be a little misleading that some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emails are parsed, however,   I believe that it is incumbent upon cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 examiner to verify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results and understand cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools work. However, that being said, sometimes it's easier said cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n done. I had a situation where it was pretty obvious all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emails had not been parsed. What if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile size was 1GB and 5,000 emails were parsed? Is that a reasonable number? What if it was supposed to be 6,000 and your smoking gun is one on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ones that didn't get parsed?


Thunderbird Configuration

First, a little background information on Thunderbird. Thunderbird allows a user to set up both POP and IMAP email. Once a user has set up and configured cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir profile, it’s stored under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following location (at least on Windows 7):

C:\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles\[Random].default

Unlike Outlook, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data is not stored in one file, but racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a series of files and folders under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile directory. If you want to view this profile natively with Thunderbird, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 easiest way I have found so far it to launch Thunderbird from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command prompt with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 –profile switch and point it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 path where you have exported out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile. Make sure you’re not connected to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet if your doing this on an evidence profile. The last thing you want to do is download new email or send out a message that has been sitting in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 outbox. This may (and probably will)  modify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file, so only do it on a copy.



Once launched, a typical setup may look like this:


Of course, being forensicators, this may not be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 preferred way to review emails - but sometimes it's nice or even necessary to see files in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 native viewer/program.

A whole bunch of files are created under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile directory. These include files like cookies.sqlite, places.sqite and formhistory.sqlite that may warrant a peek. However, I am going to focus on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email files for now.

Email Files

Thunderbird stores cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IMAP mail profile in a sub folder named "ImapMail" while POP mail and Local Folders are stored in a sub folder named "Mail":



There are several files that hold information related to emails. The first is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 global-messages-db.sqlite file. This file is located in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile folder:


Global-messages.db.sqlite Database

The global-messages.db.sqlite is an SQLite database that Thunderbird uses to index and search messages.2 This file can be viewed using an SQLite Browser. The "mesagesText_Contents" table contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Email Body, Subject, Author, Recipients and Attachment Names.

messagesText_Contents Table
While this database contains email information, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email body is not a true representation of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email. For example, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 body field does not contain images or attachments. Also, it does not contain messages that have been deleted, whereas cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOXRD file can (discussed below).  However, it does contain some useful data, such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 name of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attachments of non-deleted emails. You could browse this database quickly to see if any attachment names are suspicious. 

Using "docid" in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 messagesText_Contents table, you can link it back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “messages”table id field. The messages table contains information about each message, such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 headerMessageID and jsonAttributes. The jsonAttirbutes are what stores whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a message has been read, forwarded or replied to among ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things.

 
The headerMessageID is also located in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOXRD file - which is what I used to link cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 raw MBOXRD data back to global-messages.db.sqlite database. You may noticed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a deleted column here. Based upon limited testing, I believe that this value is used during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 synching of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IMAP mail. When a message is deleted, it remains in this database with a 1 until cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding message is deleted on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mail sever. Once it has been deleted, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message is removed from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database, but remains in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOXRD file. Normally all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se values will be '0' unless cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user was offline when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message was deleted.


In my particular case, this sqlite file was corrupt and I did not have access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se tables.  This may also be why one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 programs did not parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email fully - maybe it was relying on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 table, who knows.  I have written my parser so that it does not need this database to process cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emails. It merely displays "Data not available" for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fields that it can't pull from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 table.

Just a heads up, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is more data that could be mined from this database, such as IM Conversations but I am trying to stay focused on email.. so moving on.... (and who uses Thunderbird to IM anyways????)

MBOXRD aka The Payload

Thunderbird stores email in an mbox  format called MBOXRD. Basically, it stores email in plain text MIME format. The cool thing is (based upon my testing and some internet research) when an email is deleted, it stays in this file. These deleted emails would not be seen if this profile was viewed using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Thunderbird client. The thunderbird parser pulls all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emails from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se files, including deleted ones.

The MBOXRD files are stored in file that is named after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding email folder with no file extension. For example, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Inbox folder stores its emails in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "INBOX" file":


One level deeper, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 .sdb folder are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r folders such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Sent folder and any user created folders to store email:


.MSF files
 For each MBOXRD file, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a corresponding .msf file. The .msf file contains folder indexes and preference data in Mork format. According to internet research, this file format has taken a lot of heat as being a pain to work with. The pointers for messages marked as Junk by Thunderbird appear to be tracked in here (based upon my limited testing). However, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 formatting of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Message-ID's in this file are whacked. They include backslashes and if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are to long, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can also include cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 newline "\n" character as well.

Deleted Files
As mentioned before, when a file is deleted it is removed from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database yet still remains in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOXRD file.  In order to determine if a file is deleted,  cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 headerMessageID in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOXRD file can be cross referenced back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database. However, emails that have been marked as "Junk" mail by Thunderbird are not stored in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 global-messages.db.sqlite eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r. The "Junk" emails appear to be stored in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding MBOXRD .msf file. So two checks need to be done to determine if a file has been deleted. The logic is as follows:



Thunderbird Email Parser

The python thunderbird email parser does three things:

1) Provides an Excel Sheet with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following information: file cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email came from, address information (from, to, cc, bc), subject, raw date, converted date (in UTC) a link to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exported email and a list of attachments:



2) If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding global-messages.db.sqlite is readable, it will provide TRUE/FALSE values for read, replied forwarded and if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message was deleted. If a message was deleted, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database format has changed, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database is corrupt, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se fields will say "Data not available".




3) It exports all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emails into a subfolder named "emails". Each email is named with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 timestamp, email subject and unique number.



Normally, when I write a parser, I like to dump cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output into a CSV, TSV or a plain text file.  This proved difficult for two main reasons. 

First, many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email addresses and strings within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email body contained tabs and commas which threw cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 formatting off.

Second,   I needed a way to supply cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 body of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email. Putting a large body of an email into one cell looked ugly.  Also, html was not displayed as one would see it in an email client making it difficult to read.

For this reason, I decided to put cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output into an Excel sheet. So in order to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 parser, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 xlwt python libary needs to be installed which is pretty quick and easy to do for eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows or Linux platform. For Linux, you can use easy install. For Windows, you can downalod cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 installer for xlwt at https://pypi.python.org/pypi/xlwt/0.7.2

To use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 parser, simply point it at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile directory and select a directory for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output. The script will recurse through all subdirectories, so if you export out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user profile, make sure it goes in it’s own directory:



A report.xls file will be created along with a log file in output folder. The .eml files will be placed in a subdirectory named “emails”.

Some things to note, you may notice duplicate emails. This is because some emails may be stored in several folders, thus cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email is stored in multiple files.  For example, an email may be in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Inbox, as well as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 All Email folder.  Why not remove duplicate emails?  Well, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re may be significance if you find an email has been stored in a particular folder.

I am using a built in MIME python library to parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 emails. If an email does not follow this standard, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output may not be as expected -weird characters, etc. This is why I put cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file name in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Excel sheet. You can always refer back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original MBOXRD file to verify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results.

Although I have made every effort to test this script, and to make sure it is working accurately, verify your own results - which you should be doing anyways, right? ;-)

For deleted emails, I have made cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 notation "Deleted (Verify)". I did this because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is not a specific flag or variable to designate that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email has been deleted. I run through several checks to located cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Message-ID to determine if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file has been deleted.  It seems to be working pretty good, but I have a limited set of test data.  How can you verify if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message has been deleted?  One way would be to open cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile in Thunderbird and use Thunderbird to search for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user deleted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email, it would not show up in Thunderbird.

I have tested this on Thunderbird 24.4.0 using Windows 7 and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SIFT workstation with Python 2.7.  If you want a Python 3+ version, I like shiny things and K-cup hot chocolate.

Given cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 frequency Mozilla tends to update things, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is always a chance that a new version may break cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code. If you run into a situation where it doesn't work on a new or older version of Thunderbird, shoot me an email and I'll see what I can do.

As always, feedback and suggestions are welcome (If you're nice about it. Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise it goes right in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 spam folder).

Download Thunderbird email parser.

References:

 1. Library of Congress "Sustainability of Digital Formats Planning for Library of Congress Collections, MOBXRD Email Format."

2. Mozilla Foundation. "Rebuilding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Global Database"