Monday, June 22, 2015

SQLite Deleted Data Parser Update - Leave no "Leaf" unturned

One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 things I love about open source is that people have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ability to update and share code.  Adrian Long, aka @Cheeky4n6Monkey, did just that. Based upon some research, he located additional deleted data that can be harvested from re-purposed SQLite pages - specifically cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Leaf
Table B-Tree page type. He updated my code on GitHub and BAM!! just like that, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SQLite Deleted Data parser now recovers this information.

He has detailed all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 specifics and technical goodies in a blog post, so I won't go into detail here. It involved a lot of work and I would like to extend a huge thank you to Adrian for taking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time to update cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code and for sharing his research.

You can download cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most recent version on my GitHub page. I've also update cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command line and GUI to support cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 changes as well.

Tuesday, June 9, 2015

Does it make sense?


Through all my high school and college math classes, my teachers always taught me to step back after a problem was completed and ask if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 answer made sense.  What did this mean?  It meant don't just punch numbers into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 calculator, write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 answer, and move on. It meant step back, review cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem, consider all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 known information and ask, "Does cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 answer I came up with make sense?"

Take for instance cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Pythagorean Theorem. Just by looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 picture, I can see that C should be longer than A or B. If my answer for C was smaller than A or B, I would know to recheck my work.

Although cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above example is relatively simple, this little trick applied to more complicated math problems, and many times it helped me catch incorrect answers.

But what does this have to do with DFIR?  I believe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same principle can be applied to investigations. When looking at data, sometimes stepping back and asking myself cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 question, "Does what I am looking at make sense?" has helped me locate issues I may not have ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise caught.

I have had a least a couple of DFIR situations where using this method paid off.

You've got Mail...
I was working a case where a user had Mozilla Thunderbird for an email client. I parsed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 email with some typical forensic tools and begin reviewing emails.

While reviewing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output, I noticed it seemed pretty sparse, even though cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 size of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 profile folder was several gigs. This is where I stepped back and asked myself, does this make sense? It was a large profile, yet contained very few emails.  This led to my research and eventual blog post on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Thunderbird MBOXRD file format. Many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 programs were just parsing out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOX format and not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MBOXRD format, and thus, missing lots of emails. Had I just accepted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final output of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 program, I would have missed a lot of data.

All your files belong to us...
Many times I will triage a system eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r while waiting for an image to complete, or as an alternate to taking an image. This is especially useful when dealing with remote systems that need to be looked at quickly. Exporting out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r files such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Event Logs and Registry files results in a much smaller data set than a complete image. These artifacts can cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n be used to create a mini-timeline so analysis can begin immediately  (see Halan's post here for more details on creating mini-timelines).
 
To parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT file into timeline format, I use a tool called Analyze MFT  to provide a bodyfile. Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT is in bodyfile format, I use Harlan Carvey's parse.pl to convert it into TLN format and add it into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 timeline.

While working a case, I created timelines using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above method for several dozen computers. After cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 timelines were created, I grepped out various malware references from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se timelines. While reviewing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results, I noticed many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware files had a file size of zero. Weird. I took a closer look and noticed ALL cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware files contained a file size of zero. Hmmm.. what did that mean? What are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chances that ALL of those files would have a zero file size??? Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full disk images were not available, validateing this information with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual files was not an option. But I stepped backed and asked myself, given what I knew about my case and how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware behaved.. does that make sense?

So I decided to "check my work" and do some testing with Analyze MFT. I created a virtual machine  with Windows XP and exported out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT.  I parsed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT with Analyze MFT and began looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results for files with a zero file size.

I noticed right away that all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefetch files had a file size of zero, which is odd.  I was able to verify that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefetch files sizes were in fact NOT zero by using ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r tools to parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT, as well as looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefetch files cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM. My testing confirmed that Analyze MFT was incorrectly reporting a file size of zero for some files.

After cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 testing I reached out to David Kovar, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author of Analyze MFT, to discuss cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 issue. I also submitted a bug to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 github page.

If I had not "checked my work" and assumed that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file size of  zero meant cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files were empty, it could have led to an incorrect "answer".

So thanks to those teachers that ground cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "does it make sense" check into my head, as it has proved to be a valuable tip that has helped me numerous times  (more so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Pythagorean Theorem...)

Tuesday, April 7, 2015

Dealing with compressed vmdk files


Wherever I get vmdk files, I take a deep breath and wonder what issues might pop up with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. I recently received some vmkd files and when I viewed one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se in FTK Imager (and some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r mainstream forensic tools), it showed up as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dreaded "unrecognized file system".

To verify that I had not received some corrupted files, I used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMWares disk utility to check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 partitions in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmdk file. This tool showed two volumes, so it appeared cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmdk file was not corrupted:




When I tired to mount cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmdk file using vmware-mount, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 drive mounted, but was not accessible. A review of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir documentation, specifically cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 limitation section, pointed out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 utility could not mount compressed vmdk files:

You cannot mount a virtual disk if any of its files are encrypted, compressed, or have read-only permissions. Change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se attributes before mounting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtual disk

Bummer. It appeared I had some compressed vmdk files.

So after some Googling and research, I found a couple different ways to deal with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se compressed vmdk files - at least until cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are supported by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mainstream forensic tools. The first way involves converting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmdk file, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second way is by mounting it in Linux.

Which method I choose ultimately depend on my end goals. If I want to bring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file into one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mainstream forensics tools, converting it into anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r format may work cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best. If  I want to save disk space, time and do some batch processing, mounting it in Linux may be ideal.

One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first things I do when I get an image is create a mini-timeline using fls and some of Harlan's tools. Mounting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 image in Linux enables me to run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se tools without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 additional overhead of converting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file first.

Method 1: "Convert"

The first method is to "convert" cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmdk file.
I'm using "quotes" because my preferred method is to "convert" it right back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmdk file format, which in essence, decompresses it.

The vmdk file format is usually much smaller cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 raw/dd image and appears to take less time time to "convert".

I used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 free VBoxManger.exe that comes with VirtualBox. This is a command line tool located under C:\Program Files\Oracle\VirtualBox. This tool give you cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 option to convert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compressed vmdk (or a regular vmkd) into several formats: VHD, VDI, VMDK and Raw. The syntax is:

VboxManage.exe clonehd "C:\path\to\compressed.vmkd" "C:\path\to\decompressed.vmdk" --format VMDK.

It give you a nice status indicator during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process:



Now cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file is in a format that can worked with like any ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r normal vmdk file.

Method 2: Mount in Linux

This is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 method that I prefer when dealing with LOTS of vmdk files. This method uses Virtual Box Fuse, and does not require you to decompress/convert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmkd first.

I had a case involving over 100 of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se compressed files. Imagine cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 overhead time involved with converting 100+ vmdk files before you can even begin to work with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. This way, I was able to write a script to mount each one in Linux, run fls to create a bodyfile, throw some of Harlan's parsers into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mix, and was able to create a 100+ mini-timelines pretty quickly.

There is some initial setup involved but once that's done, it's relatively quick and easy to access cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compressed vmdk file.

I'll run though how to install Virtual Box Fuse, how to get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compressed vmkd file  mounted, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n run fls on it.

1)Install VirtualBox:

sudo apt-get install virtualbox-qt

2) Install Virtual Box Fuse. It is no longer in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 app repository, so you will need to download and install cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 .deb file - don't worry, it's pretty easy, no compiling required :)

Download cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 .deb from from Launchpad under "Published Versions". Once you have it downloaded, install it by typing:

sudo dpkg -i --force-depends virtualbox-fuse_4.1.18-dfsg-1ubuntu1_amd64.deb

Note  - this version is not compatible with Virtual Box v. 4.2. At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time of this writing, when I installed Virtual Box on my Ubuntu distro, it was version 4.1 and worked just fine. If you have a newer version of virtual box, it will still work - you just unpack cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 .deb file and run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 binary without installing it. See cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bottom of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 thread here for more details.

3)Mount cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compressed VMDK file read-only


vdfuse -r -t VMDK -f /mnt/evidence/compressed.vmdk /mnt/vmdk

This will created a device called "EntireDisk" and Parition1, Parition2 etc. under /mnt/vmdk


(even though I got this fuse error - everything seems to work just fine)

At this point and time, you can use fls to generate a bodyfile. fls is included in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Sleuth Kit, and is installed on SIFT by default. You may need to specify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset for your partition.  Run mmls to grab this:


Now that we have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offsets, we can run fls to generate a bodyfile:

fls -r -o 2048 /mnt/vmdk/EntireDisk -m C: >> /home/sansforensics/win7-bodyfile
fls -r -o 206848 /mnt/vmdk/EntireDisk -m C: >> /home/sansforensics/win7-bodyfile


Next, if you want access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files/folders etc, you will need to mount cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 EntireDisk Image as an ntfs mount for each partition. This is assuming you have an Windows system - if not, adjust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type accordingly:

Mount Partition 1, Offset 2048:


Mount Parition2, Offset 206848:



There are multiple ways to deal with this compressed format, such as using VMWare or VirtualBox GUI to import/export cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compresses file... cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se are just some examples of a couple of ways to do it. I tend to prefer command line options so I can script out batch files if necessary.












Wednesday, March 4, 2015

USN Journal: Where have you been all my life


One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 goals of IR engagements is to locate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 initial infection vector and/or patient zero. In order to determine this, timeline analysis becomes critical, as does determining when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365  malware was created and/or executed on a system.

This file create time may become extremely critical if you're dealing with multiple or even hundreds of systems and trying to determine when and where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware first made its way into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 environment.

But what happens when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware has already been remediated  by a Systems Administrator, deleted by an attacker, or new AV signatures are being pushed out, resulting in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware being removed?

Many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 residual artifacts demonstrate execution,  however, it seems very few actually document when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was created on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. This is where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal recently helped me on a case. The USN Journal is by no means new.. but I just wanted to talk about a case study and share my experience with it, as I feel it's an often overlooked artifact.

For purposes of demonstrative data, I downloaded and infected a Windows 7 VM with malware.  This malware was from a phishing email that contained a zip file, voice#5734223.zip. This zip file contained a payload, voice.exe. For more details on this malware sample, check out http://malware-traffic-analysis.net/2015/01/27/index.html
 
So lets run through some typical artifacts that demonstrate execution along with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 available timestamps and see what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do and don't tell us...

MFT
The MFT contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 filesystem information - Modified, Accessed and Created dates, file size etc. However, a deleted file's MFT record may be overwritten. If you're lucky, your deleted malware file will still have an entry in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT - however, in my case this was not to be.

The ShimCache
I won't go into to much detail here as Mandiant has a great white paper on this artifact. Basically, on most systems this artifact contains information on files that have been executed including path, file size and last modified date. I parsed this registry key with RegRipper, and located an entry for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test malware, voice.exe:

C:\Users\user1\Downloads\voice#5734223\voice.exe
ModTime: Wed Jan 28 15:28:46 2015 Z
Executed

So what does this tell me? That voice.exe was in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Downloads path, was executed, and has a last modified date of 01/28/2015 - no create date .
 
UserAssist
The User Assist is anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r awesome key... it displays cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last time a file was executed, along with a run count. Once again, using RegRipper to parse this I located an entry for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test malware:

{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}
Mon Feb 23 02:33:34 2015 Z C:\Users\user1\Downloads\voice#5734223\voice.exe (2)*

By looking at this artifact, I can see that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was executed twice - once on February 23rd, however, I don't know when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first time was. It could have been minutes, hours or days earlier. It still does very little to let me know when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was created on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system, although I do know it should be sometime before this time stamp.

Prefetch File
This is a great artifact that can show execution and even multiple times of execution. But what if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system is a Server, where prefetching may not be enabled?  In my case, prefetching was enabled, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was no prefetch file for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware in question - at least that is what I thought until I checked cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal. And, once again, it does not contain information related to when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was created on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system.

Ok, so I've reviewed a couple of typical artifacts that demonstrated that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware executed (for more artifacts related to execution, check out this blog post by Mandiant "Did it Execute") With timeline analysis, I may even get an idea of when this file was most likely introduced on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system - however, a definitive create date would be nice to have. This brings me too.....cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal.

USN Journal
There are a couple of tools I use to parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal. A quick, easy to use script is usnj.pl available from Harlan Carvey's GitHub page.

Parsing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal and looking for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware in question, I see some interesting entries for voice.exe, highlighted in red below:



Sweeet! I now have a File_Create timestamp for voice.exe I can use in my timeline. I can also see that voice.exe was deleted relatively quickly ~ 30 seconds after it was created. This deletion occured about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefetch file for it was created. This might be an indication that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware deleted itself upon execution.

It's also interesting to note that around cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same time cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefetch file was created for voice.exe, a file called testmem.exe was created and executed (highlighted in yellow)..hmmmm.

Time to dig deeper. For a little more detail on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TriForce tool. This tool processes three files: $MFT, $J and $Logfile. It cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cross references cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se three files to build out some additional relationships. In my experience, this tool takes a bit longer to run. As you can see by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output below, I now have full file paths that may help add a little more context:


That testmem.exe just became all that more suspicious due to it's location - a temp folder.

By reviewing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal file, I was able to establish a create date of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware. This create date located in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal gave me an additional pivot point to work with. This pivot point lead to some additional findings -  a suspicious file, testmem.exe. (For some more on timeline pivoting, check out Harlan's post here). Not only did cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 create date help locate additional artifacts, but it can also help me home in on which systems may be patient zero. Malware may arrive on a system long before its executed.
 
Just because it's not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re - doesn't mean it didn't exist. For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case I was working, I did not have any existing prefetch files for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware. However, when I parsed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal, I saw cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prefetch file for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware get created and deleted within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 span of 40 minutes. I also saw some additional temporary files get created and deleted, some of which were not in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT.

Alass, as sad as it is, my relationship with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal does have some shortcomings (and it's not my fault). Since it is a log file, it does "roll over" The USJ Journal can be limited in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of data that it holds - sometimes it seems all I see in it are Windows Update files. If a system is heavily used, and if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was deleted months ago, it may no longer be in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal. However, all is not lost though, Rumor has it that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re may be some USN Journal files located in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Volume Shadow Copies so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re may still be hope. Also, David Cowen points out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 log file is not circular (as I once thought), and just frees cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 old pages to disk:

"After talking to Troy Larson though I now understand that this behavior is due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 journal is not circular but racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r pages are allocated and deallocated as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 journal grows"

This means that you can carve USN Journals records! Check out his blog post here for more information.

Happy Hunting!

Additional reading on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN Journal

http://journeyintoir.blogspot.com/2013/01/re-introducing-usnjrnl.html

http://forensicsfromcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365sausagefactory.blogspot.com/2010/08/usn-change-journal.html

https://msdn.microsoft.com/en-us/library/windows/desktop/aa363798%28v=vs.85%29.aspx

*The run count number was modified from 1 to 2 on this output to illustrate a point.











Tuesday, October 7, 2014

Timestomp MFT Shenanigans


I was working a case a while back and I came across some malware that had time stomping capabilities. There have been numerous posts written on how to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT as a means to determine if time stomping has occurred, so I won't go into too much detail here.

Time Stomping


Time Stomping is an Anti-Forensics technique. Many times, knowing when malware arrived on a system is a question that needs to be answered. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 timestamps of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware has been changed, ie, time stomped, this can make it difficult to identify a suspicious file as well as answer cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 question, "When".

Basically cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are two "sets" of timestamps that are tracked in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT. These two "sets" are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION and $FILE_NAME. Both of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se track 4 timestamps each - Modified, Access, Created and Born. Or if you prefer - Created, Last Written, Accessed and Entry Modified (To-mato, Ta-mato). The $STANDARD_INFORMATION timestamps are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ones normally viewed in Windows Explorer as well as most forensic tools.

Most time stomping tools only change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365  $STANDARD_INFORMATION set. This means that by using tools that display both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION and $FILE_NAME attributes, you can compare cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two sets to determine if a file may have been time stomped.  If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION predates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $FILE_NAME, it is a possible red flag (example to follow).

In my particular case, by reviewing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 suspicious file's $STANDARD_INFORMATION and $FILE_NAME attributes, it was relatively easy to see that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was a mismatch, and thus, combined with ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r indicators, that time stomping had occurred. Below is an example of what a typical malware time stomped file looked like. As you can see, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION highlighted in red predates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $FILE_NAME dates (test data was used for demonstrative purposes)


System A \test\malware.exe

$STANDARD_INFORMATION
M: Fri Jan  1 07:08:15 2010 Z
A: Tue Oct  7 06:19:23 2014 Z
C: Tue Oct  7 06:19:23 2014 Z
B: Fri Jan  1 07:08:15 2010 Z

$FILE_NAME
M: Thu Oct  2 05:41:56 2014 Z
A: Thu Oct  2 05:41:56 2014 Z
C: Thu Oct  2 05:41:56 2014 Z
B: Thu Oct  2 05:41:56 2014 Z

However, on a couple of systems cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re were a few outliers where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time stomped malware $STANDARD_INFORMATION and $FILE_NAME modified and born dates matched:

System B \test\malware.exe

$STANDARD_INFORMATION
M: Fri Jan  1 07:08:15 2010 Z
A: Tue Oct  7 06:19:23 2014 Z
C: Tue Oct  7 06:19:23 2014 Z
B: Fri Jan  1 07:08:15 2010 Z

$FILE_NAME
M: Fri Jan  1 07:08:15 2010 Z
A: Thu Oct  2 05:41:56 2014 Z
C: Thu Oct  2 05:41:56 2014 Z
B: Fri Jan  1 07:08:15 2010 Z

Due to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r indicators, it was pretty clear that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se files were time stomped, however, I was curious to know what may have caused cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se dates to match, while all 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ý bet365rs did not. In effect, it appeared that that Modified and Born dates were time stomped in both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $SI and $FN timestamps, however this was not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MO in all 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 instances.

Luckily, I remembered a blog post written by Harlan Carvey where he ran various file system operations and reported cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT and USN change journal output for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se tests. I remembered that during one of his tests, some dates had been copied from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $FILE_NAME attributesA quick review of his blog post revealed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following had occurred during a rename operation . Below is a quote from Harlan's post:

"I honestly have no idea why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last accessed (A) and creation (B) dates from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION attribute would be copied into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding time stamps of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $FILE_NAME attribute for a rename operation"

In my particular case it was not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 accessed date and creation dates (B) that appeared to have been copied, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 modified and creation dates (B). Shoot.. not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same results as Harlan's test... but his system was Windows 7, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system I was examining was Windows XP.  Because my system was different, I decided to follow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 procedure Harlan used and do some testing on a Windows XP to see what happened when I did a file rename.

Testing


My test system was Widows XP Pro SP3 in a Virtual Box VM.  I used FTK Imager to load up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vmdk file after each test and export out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT record. I cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n parsed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT record with Harlan Carvey's mft.exe.

First, I created "New Text Document.txt" under My Documents. As expected, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 timestamps in both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION and $FILE_NAME were cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same:

12591      FILE Seq: 1    Link: 2    0x38 4     Flags: 1  
[FILE]
.\Documents and Settings\Mari\My Documents\New Text Document.txt
    M: Thu Oct  2 23:22:05 2014 Z
    A: Thu Oct  2 23:22:05 2014 Z
    C: Thu Oct  2 23:22:05 2014 Z
    B: Thu Oct  2 23:22:05 2014 Z
  FN: NEWTEX~1.TXT  Parent Ref: 10469  Parent Seq: 1
    M: Thu Oct  2 23:22:05 2014 Z
    A: Thu Oct  2 23:22:05 2014 Z
    C: Thu Oct  2 23:22:05 2014 Z
    B: Thu Oct  2 23:22:05 2014 Z
  FN: New Text Document.txt  Parent Ref: 10469  Parent Seq: 1
    M: Thu Oct  2 23:22:05 2014 Z
    A: Thu Oct  2 23:22:05 2014 Z
    C: Thu Oct  2 23:22:05 2014 Z
    B: Thu Oct  2 23:22:05 2014 Z
[RESIDENT]


Next, I used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 program SetMACE to change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION timestamps to "2010:07:29:03:30:45:789:1234" . As expected, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $STANDARD_INFORMATION changed, while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $FILE_NAME stayed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same. Once again,  this is common to see in files that have been time stomped:

12591      FILE Seq: 1    Link: 2    0x38 4     Flags: 1  
[FILE]
.\Documents and Settings\Mari\My Documents\New Text Document.txt
    M: Wed Jul 29 03:30:45 2010 Z
    A: Wed Jul 29 03:30:45 2010 Z
    C: Wed Jul 29 03:30:45 2010 Z
    B: Wed Jul 29 03:30:45 2010 Z

  FN: NEWTEX~1.TXT  Parent Ref: 10469  Parent Seq: 1
    M: Thu Oct  2 23:22:05 2014 Z
    A: Thu Oct  2 23:22:05 2014 Z
    C: Thu Oct  2 23:22:05 2014 Z
    B: Thu Oct  2 23:22:05 2014 Z
  FN: New Text Document.txt  Parent Ref: 10469  Parent Seq: 1
    M: Thu Oct  2 23:22:05 2014 Z
    A: Thu Oct  2 23:22:05 2014 Z
    C: Thu Oct  2 23:22:05 2014 Z
    B: Thu Oct  2 23:22:05 2014 Z

Next, I used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rename command via cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command prompt to rename cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file from New Text Document.txt to "Renamed Text Document.txt" (I know - creative naming). The interesting thing here is, unlike cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows 7 test where two dates were copied over, all four dates were copied over from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original files $STANDARD_INFORMATION into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $FILE_NAME:

12591      FILE Seq: 1    Link: 2    0x38 6     Flags: 1  
[FILE]
.\Documents and Settings\Mari\My Documents\Renamed Text Document.txt
    M: Wed Jul 29 03:30:45 2010 Z
    A: Wed Jul 29 03:30:45 2010 Z
    C: Thu Oct  2 23:38:36 2014 Z
    B: Wed Jul 29 03:30:45 2010 Z
  FN: RENAME~1.TXT  Parent Ref: 10469  Parent Seq: 1
    M: Wed Jul 29 03:30:45 2010 Z
    A: Wed Jul 29 03:30:45 2010 Z
    C: Wed Jul 29 03:30:45 2010 Z
    B: Wed Jul 29 03:30:45 2010 Z

  FN: Renamed Text Document.txt  Parent Ref: 10469  Parent Seq: 1
    M: Wed Jul 29 03:30:45 2010 Z
    A: Wed Jul 29 03:30:45 2010 Z
    C: Wed Jul 29 03:30:45 2010 Z
    B: Wed Jul 29 03:30:45 2010 Z


Based upon my testing, a rename could have caused cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 2010 dates to be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same in both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 $SI and $FN attributes in my outliers. This scenario "in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wild" makes sense...cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 malware is dropped on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system, time stomped, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n renamed to a file name that is less conspicuous on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system. This sequence of events on a Windows XP system may make it difficult to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MFT analysis alone to identify time stomping.

So what if you run across a file where you suspect this may be cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case? On Windows XP you could check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 restore points change.log files. These files track changes such as file creations and renames. Once again, Mr. HC has a perl script that parses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se change log files, lscl.pl. If you see a file creation and a rename, you can use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 restore point as a guideline to when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was created and renamed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system.

You could also parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 USN change journal to see if and when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 suspected file had been created and renamed. Tools such as Triforce or Harlan's usnj.pl do a great job.

If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 change.log file and and journal file do not go back far enough, checking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 compile date of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 suspicious file with program like CFF Explorer may also help shed some light. If a program has a compile date years after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 born date,.. red flag.

I don't think anything I've found is ground breaking or new. In fact,cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Forensics Wiki entry on timestomp demonstrates this behavior with time stomping and moved files, but I thought I would share anyways.

Happy hunting, and may cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 odds be ever in your favor...


Tuesday, September 2, 2014

SQLite Deleted Data Parser - GUI Added

Last year I wrote a Python script to parse deleted data from SQLite Databases (original post here).
Every once in a while, I get emails asking for help on how to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SQLite Parser from users who are not that familiar with using Python or command line tools in general.

As an everyday user of command line tools and  Python, I forget cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 little things that may challenge cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se users (we were all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re at one point and time!) This includes things like quotes around file paths, which direction slashes go, and how to execute a python script if Python is not in your environment variable.

So, to that end, I have created a Windows GUI for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SQLite Parser to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 process a little less painful.

The GUI is pretty self explanatory:
  • Choose cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 path to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SQLite database
  • Choose cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file to save cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results to
  • Select Formatted or Raw output

This means cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are now three flavors of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SQLParser available:
  • sqlparse.py - python script
  • sqlparse_CLI.exe - Windows command line tool
  • sqlparse_GUI.exe - Windows GUI tool
All three files are available for download here on on my GitHub page.

Coming soon... a blog post/tutorial on how to use python scripts :-)

Monday, July 21, 2014

Safari and iPhone Internet History Parser

Back in June, I had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 opportunity to speak at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SANS DFIR Summit.  One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 great things about this conference was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ability to meet and socialize with all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attendees and presenters. While I was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, I had a chance to catch up with Sarah Edwards who teaches cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mac 518 class for SANS.

I'm always looking for new projects to work on, and she suggested a script to parse Safari Internet History. So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 4th of July long weekend rolled around and I had some spare time to devote to a project. In between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fireworks and a couple of Netflix shows (OK, maybe 10 shows), I put togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a python script that parses out several plist files related to Safari Internet History: History.plist, Bookmarks.plist, TopSites.plist and Downloads.plist.

Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone also uses Safari, I decided to expand cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script to parse some iPhone Safari artifacts: History.plist, Bookmarks.db and RecentSearches.plist. I imagine cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPad also contains Safari Internet History, but I did not have one at my disposal to test. If you want to send one to me for testing, I would be happy to take it off your hands :-).

In this post I'll run through each of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 artifacts I located and explain how to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script to parse out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files.

Plist Files: A love/hate relationship

First, a little background on plist files. Plist files are awesome because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can contain all sorts of information such as Internet History, Recent Docs, Network IDs etc.  There are free tools for both Windows and OS X that will allow you view cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data stored in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plist file. For Windows, you can use plist Editor.  If you have a Mac, a free plist editor is included in Apple's XCode Developer Tools which can be downloaded through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 App Store.

However, plist files also stink because while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plist format is standardized, it's entirely up to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 programmer to store whatever cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y want, in whatever format cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y want.

A (frustrating) example of this is date information. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Safari History.plist file cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 date is defined as a "String", and is stored in Mac Absolute time. Mac Absolute time is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of seconds since June January 1, 2001.  Below is an example of this from a Safari History.plist file viewed in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XCode plist editor:

History.plist file in XCode plist editor
In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Safari Bookmarks.plist file, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 date is stored in a field defined as "Date".The date is stored in a more standard format:

Bookmarks.plist file in XCode plist editor
This means that each plist file needs to reviewed manually to determine what format cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data is in, and how it's stored before it can be parsed.

So, moving on to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 artifacts...

Where's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beef?

On a Mac OS X, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Safari Internet History is located under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 folder /Users/%USERNAME%/Library/Safari. As I mentioned before, I located four plist files in this folder containing Internet History: History.plist, Bookmarks.plist, TopSites.plist and Downloads.plist. I've written cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script to read eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r an individual file, or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire folder at once.

(If you're wondering about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Safari cookie files, I already wrote a separate tool support cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se, which can be found on my downloads page.)

History.plist
This file contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last visited date, URL, page title and visit count. To run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 parser over this file and get a tsv file use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following syntax:

safari_parser.py --history -f  history.plist -o history-results.tsv

TopSites.plist
The Top Site feature of Safari identifies 12 Top Sites based upon how often and how recent cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sites were visited. There are several ways to view cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tops sites in Safari, such as starting a new tab or selecting it from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Menu>View>Top Sites. Small thumbnails of each Top Site are displayed. The user has cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 option to Pin or Delete a site from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Top Sites. Pinning a site keeps it in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Top Sites List, while deleting it removes it. The list can be increased to hold up to 24 sites.

The thumbnails for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 webpage previews for Safari can be found under /Users/%Username%/Library/Caches/com.apple.Safari. Below is how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TopSites appear to a user ( this may vary depending on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 browser version):



The TopSite.plist file contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Page Title and URL.  It also stores values to indicate if it's a Pinned or Built in Site. Built in Sites are pre-populated sites such as iCloud or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Apple Website.

TopSites that have been deleted are tracked in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TopSites.plist as "BannedURLStrings".

To parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TopSites.plist file use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following syntax:

safari_parser.py --topsites -f  TopSites.plist -o topsite-results.tsv

Downloads.plist
Downloads are stored in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Downloads.plist file. When a file is downloaded, an entry is made containing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following: 1)Download URL; 2)File name including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 path where it was downloaded to; 3)Size of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file; 4)Number of bytes downloaded so far.  The user may clear this list at anytime by selecting "Clear" from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Downloads dialog box:



To parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Downloads.plist file use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following syntax:

safari_parser.py --downloads -f  Downloads.plist -o download-results.tsv

Bookmarks.plist
Safari tracks three different types of bookmarks in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bookmarks.plist file: Favorites, Bookmarks and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Reading List.

Favorites
The Bookmarks Bar (aka Favorites) is located at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 top of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 browser:


The Favorites are also displayed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 side bar:


Bookmark Menu
A folder titled "Bookmark Menu" is created by default when a user creates bookmarks. It contains a hierarchical structure of bookmarks and folders - cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se are shown in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 red box below:


The user may add folders, as demonstrated with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "test bookmarks" folder below:


Reading List
The Reading List is anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r type of bookmark. According to Safari documentation, "Reading List helps you save webpages and links for you to read later, even when you are not connected to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 internet". These items show up when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user selects cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Reading List icon:


Safari downloads and stores information such as cached pages related to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Reading List under  /Users/%USERNAME%/Library/Safari/ReadingListArchives. I didn't spend too much time researching this as my parser is focused on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bookmarks.plist file, but keep it in mind as it may turn up some interesting stuff.

All three types of bookmarks (Favorites, Bookmarks and Reading Lists) are stored in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bookmarks.plist file.

The Bookmarks.plist file tracks cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Page Title and URL for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Favorites and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bookmarks, however, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Reading List entries contain a little bit more information. The Reading Lists also contains a date added, date last fetched, fetch result, and preview text.  There are also a couple of boolean entries, Added Locally and Archived on Disk.

Out of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plist files mentioned so far, I think this one looks cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most confusing in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plist editor programs.  The parent/child relationships of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 folders and sub folders can get pretty messy:


To parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bookmarks.plist file, use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following syntax:

safari_parser.py --bookmarks -f Bookmarks.plist -o bookmark-results.tsv

The Safari Parser will output this into a spreadsheet with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 folder structure rebuilt, which is hopefully more intuitive cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n viewing in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plist editor:




All Four One and One for All
Instead of parsing each file individually, all four files can be parsed by pointing Safari Parser to a folder containing all four files.  This means you can export out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 /Users/%Username%/Library/Safari folder and point cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script at it. You could also mount cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 image and point it to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mounted folder. To parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 folder, use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following syntax:

safari_parser.py -d /Users/maridegrazia/Library/Safari -o /Cases/InternetHistory/Reports

This will create four tsv files with results from each of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above Internet History Files.


iPhone Internet History

Safari is also installed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone so I figured while I was at it I might as well expand cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script to handle cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone Internet History files. I had some test data laying around, and  I was able to locate three files of interest: History.plist, Bookmarks.db and RecentSearches.plist.

While my test data came from an iPhone extraction, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se types of files are also located in an iTunes backup on a computer. This means that even if you don't have access to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 phone, you could get still get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet History. Check in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's folder under \AppData\Roaming\Apple Computer\MobileSync\Backup, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n use a tool like iphonebackupbrowser to browse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 backups and export out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files:


History
The location of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 History.plist file may vary depending on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 model of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone. Check \private\var\mobile\Library\Safari or \data\mobile\Library\Safari for this file.

Luckily, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 History.plist file has cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same format as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OS X version, so using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script to parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone History.plist file works cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same:

safari_parser.py --history -f  history.plist -o history-results.tsv

Bookmarks
The location of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bookmarks.db file may vary depending on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 model of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone. Check \private\var\mobile\Library\Safari or \data\mobile\Library\Safari for this file. On an iPhone, this file is stored in an SQLite database racá 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ý bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plist format used on OS X.  In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test data I had, I did not see any entries for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Reading List. To parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone Bookmarks.db file, use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following syntax:

safari_parser.py --iPhonebookmarks -f bookmarks.db -o bookmark-results.tsv

Recent Searches
I located a RecentSearches.plist file under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cache folder. The location of this file may vary depending on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 model of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 iPhone. Check \private\var\mobile\Library\Caches\Safari or \data\mobile\Library\Caches\Safari. This file contained a list of recent searches, about 20 or so. Use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following syntax to parse this file:

safari_parser.py --iPhonerecentsearches -f recentsearches.plist -o recentsearches-results.tsv

You can also point cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script to a directory with all three files and parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m at once:

safari_parser.py -d /Users/maridegrazia/iPhoneFiles -o /Cases/InternetHistory/Reports

The Script

The Safari Parser can be download here. It requires cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 biplist library which is super easy to install (directions below). However, I've also included a complied .exe file for Windows if you don't want to hassle with installing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 library. A thank you  to Harlan Carvey for suggesting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PyInstaller to compile Windows binaries for python - it worked like a charm.

To install biplist in Linux just type cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:

sudo easy_install biplist

For Windows, if you don't already have it installed, you'll need to grab cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 easy install utility which is included in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 setup tools from python.org. The setup tools will place easy_install.exe into your Python directory in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Scripts folder. Change into this directory and run:

easy_install.exe biplist

Remember to look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plist files to manually to verify your results. I don't have access to every past or future version of Safari or iOS. As always, just shoot me an email or tweet if you need some modifications made.

References and Tools

safari_parser.py (my script to parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Safari Internet History)
Safari 5.1 (OS X Lion): View and customize Top Sites
Plist Editor (free plist editor for Windows)
XCode (includes free Plist Editor for OS X)
iphonebackupbrowser ( free iTunes backup browser)