<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.7.4">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2019-01-20T19:05:37+00:00</updated><id>/feed.xml</id><title type="html">My Journey in Tech</title><subtitle>This blog is dedicated to sharing my experiences in tech. I'll discuss tools and techniques that I find interesting and useful.  Topics will range from system administration to information security.

Ping me on Twitter for any comments or feedback.</subtitle><author><name>Tom Wisniewski</name></author><entry><title type="html">Adding LVM volumes to an EnCase case</title><link href="/dfir/2019/01/20/LVM-in-EnCase.html" rel="alternate" type="text/html" title="Adding LVM volumes to an EnCase case" /><published>2019-01-20T04:00:00+00:00</published><updated>2019-01-20T04:00:00+00:00</updated><id>/dfir/2019/01/20/LVM-in-EnCase</id><content type="html" xml:base="/dfir/2019/01/20/LVM-in-EnCase.html">&lt;h1 id=&quot;adding-lvm-volumes-to-an-encase-case&quot;&gt;Adding LVM volumes to an EnCase case&lt;/h1&gt;

&lt;p&gt;@bit_reader recently posted on Twitter that it seems that EnCase does not support drives with LVM2.  I could’ve sworn I’ve seen EnCase display LVM data before so I decided to do a quick test.&lt;/p&gt;

&lt;p&gt;My original idea for testing this was to check a Linux VM that I already had the EnCase agent on.  Turns out finding one was harder than I expected.  Turns out I didn’t have any non-production VM’s available that had the EnCase agent installed.  The other option at this point was to create a VM specifically for my test and just add the VM disk to EnCase for anlysis.&lt;/p&gt;

&lt;p&gt;I started out by installing a new Centos 7 VM using VMWare Workstation.  I used all default settings for the Centos install as the default partitioning scheme already uses LVM.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/anaconda_partition.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;first-attempt---add-the-vmdk-to-encase-directly&quot;&gt;First Attempt -&amp;gt; Add the VMDK to EnCase directly&lt;/h3&gt;
&lt;p&gt;For my first attempt to analyze the drive, I figured I would simply just add the VMDK file to EnCase for analysis.  The VMDK file is essentially the drive of the VM so I thought this may work.  Turns out it didn’t.&lt;/p&gt;

&lt;h3 id=&quot;second-attempt---acquire-the-drive-as-an-e01&quot;&gt;Second Attempt -&amp;gt; Acquire the drive as an E01&lt;/h3&gt;
&lt;p&gt;Since the first attempt at simply analyzing the VMDK file using EnCase failed, I decided I needed to acquire the drive in a format that EnCase recognizes.  Which in this case is E01.  A quick internet search shows that &lt;em&gt;FTK Imager&lt;/em&gt; has support for working directly with VMDK files.&lt;/p&gt;

&lt;h4 id=&quot;acquisition-with-ftk&quot;&gt;Acquisition with FTK&lt;/h4&gt;
&lt;ol&gt;
  &lt;li&gt;Start &lt;strong&gt;FTK Imager&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Start the acquisition process by using the “Create Disk Image” option located under the File menu
&lt;img src=&quot;/assets/FTK_create_disk_image.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;Image File&lt;/strong&gt; as the source for the acquisition.  Select the VMDK file as the image file of choice.
&lt;img src=&quot;/assets/FTK_VMDK.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Click &lt;strong&gt;Add&lt;/strong&gt; to create a new destination for the disk acquisition.
&lt;img src=&quot;/assets/FTK_destination.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Select E01 as the destination image type.&lt;br /&gt;
&lt;img src=&quot;/assets/FTK_type.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Fill in your case details&lt;br /&gt;
&lt;img src=&quot;/assets/FTK_case.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;li&gt;Select your file destination folder and the file name for the new E01 file you’re creating
&lt;img src=&quot;/assets/FTK_destination.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Make sure &lt;strong&gt;Verify Image&lt;/strong&gt; is checked and click on &lt;strong&gt;Start&lt;/strong&gt; to start the acquisition process&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;add-image-to-encase&quot;&gt;Add image to EnCase&lt;/h4&gt;
&lt;p&gt;Now that we have the drive image in a format that EnCase easily recognizes, we start up EnCase and add the newly created E01 file as evidence to our case.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Click on &lt;strong&gt;Add Evidence&lt;/strong&gt;
&lt;img src=&quot;/assets/add_evidence.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;Add Evidence File&lt;/strong&gt;
&lt;img src=&quot;/assets/add_evidence_file.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;The drive is successfully added to the evidence list.  Unfortunately, you can only browse the filesystem contained on /boot.  Everything else shows up as &lt;strong&gt;Unallocated&lt;/strong&gt;.
&lt;img src=&quot;/assets/encase_nolvm.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;We now need to use the &lt;strong&gt;Scan for LVM&lt;/strong&gt; function in order for the LVM volumes to be view-able in our evidence list.  The &lt;strong&gt;Scan for LVM&lt;/strong&gt; function is accessed by right clicking on the drive in the Evidence List.  Selecting &lt;strong&gt;Device&lt;/strong&gt;.  Selecting &lt;strong&gt;Scan for LVM&lt;/strong&gt;.
&lt;img src=&quot;/assets/encase_LVM_scan.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Once the scan is completed, the LVM volumes will appear in the Evidence List.
&lt;img src=&quot;/assets/encase_LVM_show.jpg&quot; alt=&quot;LVM in EnCase&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;EnCase doesn’t automatically parse/scan for LVM volumes when a disk is added to the Case as evidence.  In order for the LVM volumes to be seen, you have to use the &lt;strong&gt;Scan for LVM&lt;/strong&gt; option.&lt;/p&gt;

&lt;h3 id=&quot;follow-up-question&quot;&gt;Follow up question…&lt;/h3&gt;
&lt;p&gt;@bit_reader followed up his Tweet by mentioning LVM volumes with LUKS encryption.  I performed the same test described above but this time during the installation of the OS, I encrypted the drives using LUKS.  Unfortunately EnCase was not able to find the encrypted volumes and I was not able to find an option to enter the password for the LUKS volumes.  In the end I wasn’t able to analyze the drive using EnCase.  If someone knows how to do it, I’d be very happy to learn your tricks.&lt;/p&gt;</content><author><name>Tom Wisniewski</name></author><summary type="html">Adding LVM volumes to an EnCase case</summary></entry><entry><title type="html">Phantom of the Opera Browser</title><link href="/dfir/2018/08/04/Phantom-of-the-Opera.html" rel="alternate" type="text/html" title="Phantom of the Opera Browser" /><published>2018-08-04T23:00:00+00:00</published><updated>2018-08-04T23:00:00+00:00</updated><id>/dfir/2018/08/04/Phantom-of-the-Opera</id><content type="html" xml:base="/dfir/2018/08/04/Phantom-of-the-Opera.html">&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;The other day I came across the Opera web browser.  I haven’t heard about them in quite a while.  Years ago they used to be the browser that brought new features to the mainstream.  If memory serves me right, they were the first browser to introduce tabbed browsing.  I decided to have a look at the feature list for Opera 54 to see if there is anything new and exciting about the latest version of Opera.  There were two things that I found interesting:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Opera no longer uses their own web engine. The browser is now based on the Chromium engine&lt;/li&gt;
  &lt;li&gt;Opera comes with a built in VPN feature&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These two points were of interest to me from a digital forensic point of view. Being based on Chromium, I was curious whether or not I could analyze Opera artifacts using the same tools that are used for analyzing Chrome artifacts.  The VPN feature was of interest as I’m always interested in ways that users may hide their activity on a system.  Opera provides the VPN feature to enhance your browsing privacy and to hide your browsing from online trackers.  Does it also hide the activity from local investigators?&lt;/p&gt;

&lt;h2 id=&quot;whats-the-challenge&quot;&gt;What’s the challenge?&lt;/h2&gt;

&lt;p&gt;The main questions that I was looking to answer are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Can Chrome investigation tools be used to analyze/investigate Opera usage?&lt;/li&gt;
  &lt;li&gt;Does the VPN feature leave browsing history behind on the local system for investigators to discover?&lt;/li&gt;
  &lt;li&gt;Is there any evidence locally that the user has the VPN feature enabled?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;whats-the-plan&quot;&gt;What’s the plan?&lt;/h2&gt;

&lt;p&gt;To test Opera I used a fresh updated install of Windows 7 in a virtual machine with a few extra analysis tools installed.
Additional tools:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fiddler - web debugging tool(local web proxy)&lt;/li&gt;
  &lt;li&gt;Process Hacker - process analyzer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To answer the two main questions that I was interested in, I followed the following steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Install Opera with default settings&lt;/li&gt;
  &lt;li&gt;Browse to a handful of websites using the default Opera settings&lt;/li&gt;
  &lt;li&gt;Take a copy of all Opera profile files&lt;/li&gt;
  &lt;li&gt;Turn on VPN mode&lt;/li&gt;
  &lt;li&gt;Browse to a handful of different websites using VPN mode&lt;/li&gt;
  &lt;li&gt;Take a copy of all Opera profile files&lt;/li&gt;
  &lt;li&gt;Turn off VPN mode&lt;/li&gt;
  &lt;li&gt;Browse to a handful of further different websites with VPN mode off&lt;/li&gt;
  &lt;li&gt;Take a copy of all Opera profile files&lt;/li&gt;
  &lt;li&gt;Check browser history after VPN test&lt;/li&gt;
  &lt;li&gt;Compare all file changes that occurred between each test&lt;/li&gt;
  &lt;li&gt;Check proxy logs to see what traffic is observed when VPN is OFF vs when VPN is ON&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;what-is-in-the-history&quot;&gt;What is in the History?&lt;/h2&gt;
&lt;p&gt;With the VPN feature turned on, I wanted to see what historical artifacts are left behind regarding the websites that the user may have visited.  I wanted to see if the VPN feature works like a traditional VPN, and only hides information from the network or if it works more like an Incognito browser mode, and hides visited websites from the local browsing history as well.&lt;/p&gt;

&lt;p&gt;My first thought was that I should be able to use Chrome forensic tools to analyze Opera, as version 54 of Opera is based on Chromium.  Unfortunately I kept getting error when I tried to analyze Opera using my favourite Chrome analysis tool, Hindsight.  Plan B was to fall back to the trusty &lt;a href=&quot;https://sqlitebrowser.org/&quot; title=&quot;SQLiteBrowser&quot;&gt;SQLITEBrowser&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In Opera, just as in Chrome, browsing history is stored in a SQLite database file called History. The file can be found in the users profile at:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;C&lt;/span&gt;:\&lt;span class=&quot;n&quot;&gt;Users&lt;/span&gt;\$&lt;span class=&quot;n&quot;&gt;username&lt;/span&gt;\&lt;span class=&quot;n&quot;&gt;AppData&lt;/span&gt;\&lt;span class=&quot;n&quot;&gt;Roaming&lt;/span&gt;\&lt;span class=&quot;n&quot;&gt;Opera&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Software&lt;/span&gt;\&lt;span class=&quot;n&quot;&gt;Opera&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Stable&lt;/span&gt;\&lt;span class=&quot;n&quot;&gt;History&lt;/span&gt;.&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;I opened up the History sqlite database using SQLiteBrowser and analysed the ‘urls’ table.  Scrolling to the bottom of the ‘urls’ table, I can see the URL’s that were visited while VPN was turned on.  In this case, Twitter.com, Yahoo.com, and Flickr.com&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/operahistory.png&quot; alt=&quot;Opera History&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This shows that the Opera VPN feature does not work similar to Incognito mode in other browsers.  Browsing history is available to investigators&lt;/p&gt;

&lt;h2 id=&quot;what-do-we-see-on-the-network&quot;&gt;What do we see on the network?&lt;/h2&gt;

&lt;p&gt;The Opera VPN mode doesn’t have an impact on the browsing history being saved, but what effect does it have from the network traffic point of view?&lt;/p&gt;

&lt;p&gt;I used the &lt;a href=&quot;https://www.telerik.com/fiddler&quot; title=&quot;Fiddler&quot;&gt;Fiddler&lt;/a&gt; web debugging proxy to simulate the use of a corporate internet proxy.&lt;/p&gt;

&lt;h3 id=&quot;browsing-with-vpn-off&quot;&gt;Browsing with VPN off&lt;/h3&gt;
&lt;p&gt;When browsing the internet with the VPN feature turned off, Fiddler clearly sees the user visiting Google and Facebook.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/NOVPNBrowsing1.png&quot; alt=&quot;Fiddler Screenshot&quot; /&gt;
&lt;img src=&quot;/assets/NOVPNBrowsing2.png&quot; alt=&quot;Fiddler Screenshot&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;browsing-with-vpn-on&quot;&gt;Browsing with VPN on&lt;/h3&gt;
&lt;p&gt;When browsing with the VPN feature turned on, Fiddler no longer sees the users browsing activity.  For this test, the user browsed to yahoo.com, twitter.com, and flickr.com. The only web traffic showing up in the Fiddler log is to sitecheck.opera.com.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/YESVPNBrowsing.png&quot; alt=&quot;Fiddler Screenshot&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;browsing-with-vpn-once-again-turned-off&quot;&gt;Browsing with VPN once again turned off&lt;/h3&gt;
&lt;p&gt;When browsing with the VPN feature turned off again, Fiddler once again can see the users browsing activity.  In this case the user browsed to github.com and wikipedia.org&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/NOVPNBrowsing3.png&quot; alt=&quot;Fiddler Screenshot&quot; /&gt;
&lt;img src=&quot;/assets/NOVPNBrowsing4.png&quot; alt=&quot;Fiddler Screenshot&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;evidence-of-feature-use&quot;&gt;Evidence of feature use?&lt;/h2&gt;

&lt;p&gt;The last thing I wanted to confirm is whether or not the Opera profile contains any evidence that the user is using the VPN feature while browsing.&lt;/p&gt;

&lt;p&gt;After reviewing the various JSON configuration files and SQLite databases found in the Opera profile directory, the “Preferences” configuration file has the details I’m looking for.&lt;/p&gt;

&lt;p&gt;The “Preferences” file is a configuration file in JSON format.  The section we are interested in is called “freedom”.  The section looks like this prior to the VPN feature being used for the first time:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&quot;freedom&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;proxy_switcher&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;bytes_transferred&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Once the VPN feature is turned on, the ‘enabled’ flag is set.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&quot;freedom&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;proxy_switcher&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;bytes_transferred&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enabled&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;last_ui_interaction_time&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1533175512.638015&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;stats&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;last_date_stored&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;13177569600000000&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;values&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                    &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;4079234&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ui_visible&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Once the VPN feature is turned back off, the ‘enabled’ flag is set to &lt;strong&gt;false&lt;/strong&gt;.  This means that if the ‘enabled’ flag is set to &lt;strong&gt;false&lt;/strong&gt;, the user has used the VPN feature at least once.&lt;br /&gt;
The ‘last_ui_interaction_time’ value is the timestamp of when this setting was toggled.&lt;br /&gt;
The ‘bytes_transferred’ value should provide details regarding how much data was transferred over the Opera VPN but for some reason during my tests the value never incremented.  This may require some more testing.&lt;br /&gt;
The ‘last_date_store’ value doesn’t make much sense either.  The current value translates to October 4th, 2011.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&quot;freedom&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;proxy_switcher&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;bytes_transferred&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enabled&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;last_ui_interaction_time&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1533175730.769898&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;stats&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;last_date_stored&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;13177569600000000&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;values&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                    &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;4886155&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
                &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ui_visible&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;summary-of-findings&quot;&gt;Summary of Findings&lt;/h2&gt;
&lt;p&gt;Looking back at the original questions we wanted to answer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can Chrome investigation tools be used to analyze/investigate Opera usage?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In theory it should be possible to use the same tools to investigate Opera usage as investigators use to investigate Chrome.  However, my initial tests of using Hindsight(version 1.5 and 2.0) have failed.  This may require some extra testing with possibly other Chrome tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the VPN feature leave artifacts behind on the local system for investigators to discover?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My testing shows that the VPN feature only hides user activity from network analysis.  All browsing is performed through the Opera VPN tunnel so any web filtering proxies that are used in the environment will not be able to see the users activity.  It could be possible to identify and possibly block Opera VPN usage at the proxy level by looking for sitecheck.opera.com.&lt;/p&gt;

&lt;p&gt;All browsing activity while using the Opera VPN feature is still logged in the local browser history database.  Investigators can easily review this activity using an SQLite tool like SQLiteBrowser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is there any evidence locally that the user has the VPN feature enabled?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The VPN feature toggle is logged in the ‘Preferences’ JSON file located in the users Opera profile path.  Investigators can tell if the user is currently using the VPN feature and when the last time was that the VPN feature was turned toggled&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Opera’s new VPN feature can hide browser traffic from your network controls, but standard endpoint forensic techniques are unaffected.&lt;/p&gt;</content><author><name>Tom Wisniewski</name></author><summary type="html">Introduction</summary></entry><entry><title type="html">Install Autopsy 4.6 on Fedora Linux</title><link href="/dfir/autopsy/infosec/2018/06/11/Install-Autopsy.html" rel="alternate" type="text/html" title="Install Autopsy 4.6 on Fedora Linux" /><published>2018-06-11T14:25:06+00:00</published><updated>2018-06-11T14:25:06+00:00</updated><id>/dfir/autopsy/infosec/2018/06/11/Install-Autopsy</id><content type="html" xml:base="/dfir/autopsy/infosec/2018/06/11/Install-Autopsy.html">&lt;p&gt;Install Autopsy 4.6 on Fedora Linux&lt;/p&gt;

&lt;h3 id=&quot;quick-introduction-to-autopsy&quot;&gt;Quick Introduction to Autopsy&lt;/h3&gt;
&lt;p&gt;Anyone exploring what the opensource world has to offer in the realm of digital forensics will soon end up finding the Sleuthkit project.  According to the Sleuthkit project website, the projects mission is to&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;&quot;To create the leading open source file and volume system forensic analysis tools that run on all major platforms and allow access to common data types in methods that support standard analysis techniques. &quot;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The Sleuthkit project is a series of command line tools used for working with and analyzing hard drive images.  The folks behind the Sleuthkit project also created a tool called Autopsy, which is a GUI frontend for the Sleuthkit command line tools.&lt;/p&gt;

&lt;p&gt;Up until version 2, Autopsy ran on Unix type operating systems natively and on Windows systems with the use of Cygwin. This version of Autopsy was HTML based.  The Autopsy server ran locally and you would connect to it using a standard web browser.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/autopsy2.png&quot; alt=&quot;Autopsy 2 Running&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Starting with version 3, Autopsy went through a rewrite.  The project was no longer HTML based.  The project migrated to using the Java Swing GUI toolkit to build the user interface.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/autopsy4.png&quot; alt=&quot;Autopsy 4 Running&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The second major change that occurred was that Autopsy 3 became Windows only.  This was unfortunate for the forensic analysts out there for whom the OS of choice is Linux.  This meant that all Infosec/Forensic Linux distributions no longer had a GUI for hard disk analysis.  Analysts had to rely on using the command line versions of the Sleuthkit.&lt;/p&gt;

&lt;p&gt;There’s good news!  The Autopsy project recently released a version of Autopsy 4.6 that works on Linux.  The packages and instructions are provided for Debian based operating systems.  Since my workstation of choice is Fedora, I had to go through a couple of extra steps to get the software installed.  In the next section I’ll be explaining those steps in detail.&lt;/p&gt;

&lt;h3 id=&quot;installation-pre-requisites&quot;&gt;Installation Pre-Requisites&lt;/h3&gt;

&lt;p&gt;Autopsy 4.6 requires the following prerequisites:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;photorec&lt;/li&gt;
  &lt;li&gt;sleuthkit-java_4.6.0&lt;/li&gt;
  &lt;li&gt;sleuthkit 4.6.0&lt;/li&gt;
  &lt;li&gt;Oracle Java JRE&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My workstation of choice is the Fedora Linux distribution.  Why?….I like staying in the loop regarding what the Enterprise will be eventually using.  Fedora being a cutting edge Redhat distribution means that what you see in Fedora today, will one day make its way into the RedHat Enterprise Linux distribution. Let’s begin with installing the prerequisites.&lt;/p&gt;

&lt;h4 id=&quot;installing-photorec&quot;&gt;Installing photorec&lt;/h4&gt;

&lt;p&gt;To install the photorec we need to install the package called testdisk.  I found this out by quering the software repositories using ‘dnf’ like so:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;	
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost ~]# dnf whatprovides photorec

Last metadata expiration check: 2:08:36 ago on Mon 30 Apr 2018 01:36:50 PM EDT.
testdisk-7.0-11.fc27.x86_64 : Tool to check and undelete partition, PhotoRec recovers lost files
Repo        : @System
Matched from:
Filename    : /usr/bin/photorec

testdisk-7.0-11.fc27.x86_64 : Tool to check and undelete partition, PhotoRec recovers lost files
Repo        : fedora
Matched from:
Filename    : /usr/bin/photorec&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Since testdisk provides us with photorec, we now install testdisk:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost ~]# dnf install testdisk
Last metadata expiration check: 2:37:51 ago on Mon 30 Apr 2018 01:36:50 PM EDT.
Dependencies resolved.
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
 Package                      Arch                       Version                            Repository                  Size
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Installing:
 testdisk                     x86_64                     7.0-11.fc27                        fedora                     439 k

Transaction Summary
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Install  1 Package

Total download size: 439 k
Installed size: 1.5 M
Is this ok &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;y/N]: &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;installing-sleuthkit&quot;&gt;Installing SleuthKit&lt;/h4&gt;

&lt;p&gt;The sleuthkit package does not come in the default Fedora software repositories.  My preferred method for installing sleuthkit is from the CERT Forensics Tools software repository.  You can find details and downloads on the CERT website &lt;a href=&quot;https://forensics.cert.org/&quot;&gt;https://forensics.cert.org/&lt;/a&gt;.  To configure our Fedora workstation to use the CERT repository we perform the following steps:&lt;/p&gt;

&lt;p&gt;1 - Download the RPM for your version of Fedora/Centos/RHEL from the &lt;a href=&quot;https://forensics.cert.org/&quot;&gt;https://forensics.cert.org/&lt;/a&gt; website.  For this instance we download the RPM for Fedora 27: &lt;a href=&quot;https://forensics.cert.org/cert-forensics-tools-release-27.rpm&quot;&gt;https://forensics.cert.org/cert-forensics-tools-release-27.rpm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2 - Once we have the RPM downloaded, we install it locally:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost Downloads]# dnf install cert-forensics-tools-release-27.rpm 
Last metadata expiration check: 2:48:04 ago on Mon 30 Apr 2018 01:36:50 PM EDT.
Dependencies resolved.
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
 Package                                     Arch                  Version                 Repository                   Size
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Downgrading:
 cert-forensics-tools-release                noarch                27-12                   @commandline                 16 k

Transaction Summary
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Downgrade  1 Package

Total size: 16 k
Is this ok &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;y/N]: &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;3 - Once the repository is installed and activated we can install sleuthkit&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost Downloads]# dnf install sleuthkit
Last metadata expiration check: 3:22:18 ago on Mon 30 Apr 2018 01:36:50 PM EDT.
Dependencies resolved.
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
 Package                              Arch                  Version                           Repository                Size
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Installing:
 sleuthkit                            x86_64                4.6.0-3.fc27                      forensics                1.5 M
Installing dependencies:
 afflib                               x86_64                3.7.16-4.fc27                     updates                  210 k
 java-openjdk                         x86_64                1:10.0.1.10-1.fc27                updates                  215 k
 java-openjdk-headless                x86_64                1:10.0.1.10-1.fc27                updates                   41 M
 mac-robber                           x86_64                1.02-13.fc27                      fedora                    22 k
 sleuthkit-libs                       x86_64                4.6.0-3.fc27                      forensics                1.2 M
 ttmkfdir                             x86_64                3.0.9-51.fc27                     fedora                    55 k
 xorg-x11-fonts-Type1                 noarch                7.5-18.fc27                       fedora                   521 k

Transaction Summary
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Install  8 Packages

Total download size: 44 M
Installed size: 189 M
Is this ok &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;y/N]:  &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;install-oracle-java-jre&quot;&gt;Install Oracle Java JRE&lt;/h4&gt;

&lt;p&gt;Autopsy is written in Java and therefore requires a java runtime environment.  You may already have a JRE installed on your workstation as it is a dependency of sleuthkit.  Fedora repositories have the &lt;a href=&quot;&quot;&gt;OpenJDK&lt;/a&gt; java runtime available and this is the version that would’ve been installed if you already installed sleuthkit using dnf.  Unfortunately Autopsy is not compatible with this version.  Autopsy relies on some features found specifically in the Oracle Java JRE so we’ll need to install that one.  Conveniently, Oracle provides RPM’s for Java on the java.com website.  Download the RPM for your specific OS here: &lt;a href=&quot;https://java.com/en/download/linux_manual.jsp&quot;&gt;https://java.com/en/download/linux_manual.jsp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once we have the Java RPM downloaded, we use dnf to install it.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost Downloads]# dnf install jre-8u161-linux-x64.rpm 
Last metadata expiration check: 3:21:24 ago on Mon 30 Apr 2018 01:36:50 PM EDT.
Dependencies resolved.
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
 Package                   Arch                      Version                           Repository                       Size
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Installing:
 jre1.8                    x86_64                    1.8.0_161-fcs                     @commandline                     60 M

Transaction Summary
&lt;span class=&quot;o&quot;&gt;=============================================================================================================================&lt;/span&gt;
Install  1 Package

Total size: 60 M
Installed size: 141 M
Is this ok &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;y/N]: &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;So we now have the Oracle Java JRE installed.  Let’s make sure it installed correctly&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost Downloads]# which java
/usr/bin/java&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Java exists.  Is it the correct version?&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost Downloads]# java &lt;span class=&quot;nt&quot;&gt;-version&lt;/span&gt;
openjdk version &lt;span class=&quot;s2&quot;&gt;&quot;1.8.0_171&quot;&lt;/span&gt;
OpenJDK Runtime Environment &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;build 1.8.0_171-b10&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
OpenJDK 64-Bit Server VM &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;build 25.171-b10, mixed mode&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Uhoh…..It’s the &lt;a href=&quot;&quot;&gt;OpenJDK&lt;/a&gt; version.  What happened to our Oracle JRE installation?  Turns out it’s possible to have more than one JRE installed.  However, only one can be the default java.  To configure which java is the default java used by the system, we use the ‘alternatives’ utility.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost Downloads]# alternatives &lt;span class=&quot;nt&quot;&gt;--config&lt;/span&gt; java

There are 3 programs which provide &lt;span class=&quot;s1&quot;&gt;'java'&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;

  Selection    Command
&lt;span class=&quot;nt&quot;&gt;-----------------------------------------------&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;+ 1           java-1.8.0-openjdk.x86_64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-1.b10.fc27.x86_64/jre/bin/java&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
   2           java-openjdk.x86_64 &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;/usr/lib/jvm/java-10-openjdk-10.0.1.10-1.fc27.x86_64/bin/java&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
   3           /usr/java/jre1.8.0_161/bin/java

Enter to keep the current selection[+], or &lt;span class=&quot;nb&quot;&gt;type &lt;/span&gt;selection number: 3&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;If you select option 3, you’ll make the Oracle JRE the new java default.  We can now test if that’s the case&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost Downloads]# java &lt;span class=&quot;nt&quot;&gt;-version&lt;/span&gt;
java version &lt;span class=&quot;s2&quot;&gt;&quot;1.8.0_161&quot;&lt;/span&gt;
Java&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;TM&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; SE Runtime Environment &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;build 1.8.0_161-b12&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Java HotSpot&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;TM&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; 64-Bit Server VM &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;build 25.161-b12, mixed mode&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;We’re now using the Oracle Java JRE instead of OpenJDK.  One last Java step is setting the $JAVA_HOME variable.  We add the following line to the &lt;a href=&quot;file:///etc/environment&quot;&gt;/etc/environment&lt;/a&gt; file&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;nv&quot;&gt;JAVA_HOME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/usr/bin/&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Perfect.  That takes care of installing java.&lt;/p&gt;

&lt;h4 id=&quot;installing-sleuthkit-java&quot;&gt;Installing Sleuthkit-Java&lt;/h4&gt;

&lt;p&gt;The Autopsy project provides us with the sleuthkit-java prerequisite in the form of a .deb file&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;sleuthkit-java_4.6.0-1_amd64.deb&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The sleuthkit-java_4.6.0-1_amd64.deb file is a Debian .deb package that is used to install Sleuthkit-Java on Debian and Ubuntu based Linux distributions.  This is great for any Linux distributions based on Debian or Ubuntu, such as the SANS SIFT workstation.  Since we’re installing this on Fedora we can’t install the package directly from the .deb file.&lt;/p&gt;

&lt;p&gt;We first extract the files that we need from the .deb file.  For this we use a tool called ‘dpkg-deb’, which is a Debian package archive manipulation tool.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost ~]# dpkg-deb &lt;span class=&quot;nt&quot;&gt;-x&lt;/span&gt; sleuthkit-java_4.6.0-1_amd64.deb /temp/sleuthkit_java/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This command extracts the content of the .deb package.  The file we’re interested in, sleuthkit-4.6.0.jar,  is located in usr/share/java.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost /tmp/sleuthkit_java]# &lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; usr/
usr/:
lib  share

usr/lib:
x86_64-linux-gnu

usr/lib/x86_64-linux-gnu:
libtsk.a  libtsk_jni.a  libtsk_jni.la  libtsk_jni.so  libtsk_jni.so.0  libtsk_jni.so.0.0.0  libtsk.la  libtsk.so  libtsk.so.13  libtsk.so.13.4.1

usr/share:
doc  java

usr/share/doc:
sleuthkit-java

usr/share/doc/sleuthkit-java:
changelog.Debian.gz  copyright

usr/share/java:
sleuthkit-4.6.0.jar  sqlite-jdbc-3.8.11.jar&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The files located in usr/share/java are the files that the sleuthkit-java_4.6.0-1_amd64.deb package would install on a Debian system.  We’ll need to install those ourselves.&lt;/p&gt;

&lt;p&gt;The sqlite-jdbc-3.8.11.jar file can easily be installed using the Fedora package manager as it is available in the default software repositories.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost ~]# dnf install sqlite-jdbc
Last metadata expiration check: 2:29:51 ago on Sun 27 May 2018 07:25:04 AM EDT.
Dependencies resolved.
&lt;span class=&quot;o&quot;&gt;=====================================================================================================================================================================================&lt;/span&gt;
 Package                                        Arch                                      Version                                            Repository                          Size
&lt;span class=&quot;o&quot;&gt;=====================================================================================================================================================================================&lt;/span&gt;
Installing:
 sqlite-jdbc                                    x86_64                                    3.15.1-5.fc27                                      fedora                             194 k

Transaction Summary
&lt;span class=&quot;o&quot;&gt;=====================================================================================================================================================================================&lt;/span&gt;
Install  1 Package

Total download size: 194 k
Installed size: 232 k
Is this ok &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;y/N]: &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The sleuthkit-4.6.0.jar file doesn’t exist in the Fedora repositories so we’ll need to install it manually ourselves.  We need to find out where Autopsy expects the file and copy the file to that location manually.  The Autopsy ZIP comes with a script called ‘unix_setup.sh’.  The script does a handful of checks to see if all prerequisites are present.  The check that we’re interested in right now is for the existance of sleuthkit-4.6.0.jar.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Verify Sleuth Kit Java was installed&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;sleuthkit_jar_filepath&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/share/java/sleuthkit-&lt;span class=&quot;nv&quot;&gt;$TSK_VERSION&lt;/span&gt;.jar&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The ‘unix_setup.sh’ script expects to find sleuthkit-4.6.0.jar to be in &lt;a href=&quot;file:///usr/share/java&quot;&gt;/usr/share/java/.&lt;/a&gt;  We simply copy the file to the expected location.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;root@localhost /tmp/sleuthkit_java]# cp usr/share/java/sleuthkit-4.6.0.jar /usr/share/java/&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h4 id=&quot;configuring-and-running-autopsy&quot;&gt;Configuring and Running Autopsy&lt;/h4&gt;

&lt;p&gt;Normally we should now be able to install/configure Autopsy by executing the unix_setup.sh script. Unfortunately the way we have our $JAVA_HOME configured, the default unix_setup.sh script won’t work.  We need to modify the check for java.
The current line reads this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;	
&lt;span class=&quot;c&quot;&gt;# Verify Java was installed and configured&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$JAVA_HOME&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;  &lt;span class=&quot;k&quot;&gt;then
        if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-x&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$JAVA_HOME&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/bin/java&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The ‘/bin’ in the path results in an error with the check.  Based on how we set our $JAVA_HOME environment variable in a previous step, this check looks for a path/file that doesn’t exist.  Here is what $JAVA_HOME/bin/java actually resolves to:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;	
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;user@localhost ~]&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$JAVA_HOME&lt;/span&gt;/bin/java
/usr/bin//bin/java&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This path doesn’t exist.  We need to modify the unix_setup.sh script to read as follows:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;c&quot;&gt;# Verify Java was installed and configured&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$JAVA_HOME&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;  &lt;span class=&quot;k&quot;&gt;then
        if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-x&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$JAVA_HOME&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/java&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This line now resolves correctly:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;user@localhost ~]&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$JAVA_HOME&lt;/span&gt;/java
/usr/bin//java&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;We can now run the unix_setup.sh script to configure/install Autopsy.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;	
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;user@localhost autopsy4.6]&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;./unix_setup.sh 
/usr/bin/photorec found
Java found &lt;span class=&quot;k&quot;&gt;in&lt;/span&gt; /usr/bin/
/usr/share/java/sleuthkit-4.6.0.jar found
Copying into the Autopsy directory
Autopsy is now configured. You can execute bin/autopsy to start it&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Run it to test the installation.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;user@localhost autopsy4.6]&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;bin/autopsy&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;img src=&quot;/assets/autopsy4.png&quot; alt=&quot;Autopsy 4 Running&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Awesome!  You’re now ready to analyze evidence using Autopsy on your Feodra workstation.  In future posts I’m hoping to go over how to analyze some evidence using your newly installed tool.&lt;/p&gt;

&lt;p&gt;Stay tuned!&lt;/p&gt;</content><author><name>Tom Wisniewski</name></author><summary type="html">Install Autopsy 4.6 on Fedora Linux</summary></entry></feed>