Difference between pages "SIM Forensics" and "Rekall"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
(Created page with "''Under Construction'' The SIM Card is the basic memory device inside of many mobile phones in use today. This small piece of hardware has been key to solving many cases in ...")
 
m (Linux)
 
Line 1: Line 1:
''Under Construction''
+
{{Infobox_Software |
 +
  name = Rekall |
 +
  maintainer = [[Michael Cohen]] |
 +
  os = {{Cross-platform}} |
 +
  genre = {{Memory analysis}}, {{Memory imaging}} |
 +
  license = {{GPL}} |
 +
  website = [https://code.google.com/p/rekall/ code.google.com/p/rekall/] |
 +
}}
  
The [[SIM Card]] is the basic memory device inside of many mobile phones in use today. This small piece of hardware has been key to solving many cases in the world of [[SIM Card Forensics]]. However, without the proper knowledge of the SIM card's filesystem, the user will be missing out on all the valuable information the [[SIM Card]] holds.
+
Rekall is the stand-alone continuation of the [[Volatility]] Technology Preview (TP) version, aka the scudette branch.
  
 +
One of Rekalls goals is to provide better integration with [[GRR]] by improved modularity of the framework and having memory acquisition capability.[http://docs.rekall.googlecode.com/git/overview.html#_history]
  
== Getting Started ==
+
== Memory acquisition drivers ==
  
[[File:What_you_need.jpg|250px|thumb|Items you'll need]]
+
The drivers can be found under:
 +
<pre>
 +
rekall/tools/linux
 +
rekall/tools/osx
 +
rekall/tools/windows
 +
</pre>
  
This is a list of items to get you started on reading SIM Cards and their information:
+
=== Linux ===
 +
In rekall RC11 the advanced Linux acquisition tool (LMAP) was added. lmap allows to inject the pmem functionality into existing kernel modules to bypass having to build a pmem kernel module for every different kernel version. See the corresponding DFRWS EU 2014 paper for more information about LMAP.
  
# [[Windows]] operating system
+
To build the kernel module for the current kernel version, make sure you have a working build environment and the kernel headers installed. Change into this directory and run make:
# [[SIMCon]][http://www.simcon.no/]
+
<pre>
#* Program used to read SIM Cards
+
cd rekall/tools/linux/
# [[SIM Cards]]
+
make
# SIM Card Reader
+
</pre>
  
<br />
+
The acquisition driver is named pmem.ko.
<br />
+
<br />
+
<br />
+
  
== Quick Guide for SIMCon ==
+
To load the driver:
 +
<pre>
 +
sudo insmod pmem.ko
 +
</pre>
  
# Make sure the SIM Card Reader with SIM Card is connected
+
To check if the driver is running:
# Open [[SIMCon]]
+
<pre>
# Click File > Read SIM or Click [[File:Simcon.png]] in the upper left corner of [[SIMCon]]
+
sudo lsmod
# Click OK when the next dialog box pops up
+
</pre>
#* '''Note''', some SIM cards are locked. This is where the PIN needs to be entered if known.
+
#* If the PIN is unknown, the SIM cannot be read.
+
# Click OK again when the next dialog box pops up
+
  
== Definitions ==
+
The driver create a device file named:
 +
<pre>
 +
/dev/pmem
 +
</pre>
  
=== MF ===
+
To unload the driver:
* Only '''one''' MF
+
<pre>
* The Master File (MF)
+
sudo rmmod pmem
* Root of the SIM Card file system
+
</pre>
* Equivalent to the root directory or "/" in the Linux filesystem
+
  
=== DF ===
+
To read acquire the memory just read from the device file. e.g.
* Dedicated Files (DF)
+
<pre>
* Equivalent to a folder in a Windows/Linux filesystem
+
dd if=/dev/pmem of=image.raw
* Usually three DF's
+
</pre>
** DF_GSM / DF_DCS1800 / DF_TELECOM
+
  
==== DF_DCS1800 / DF_GSM ====
+
For more information see:
* Contains network related information
+
<pre>
* Specifying data in DF_GSM writes only to DF_GSM on the SIM
+
rekall/tools/linux/README
* The SIM is expected to mirror GSM and DCS1800
+
</pre>
  
==== DF_TELECOM ====
+
=== Mac OS X ===
* Contains the service related information
+
  
=== EF ===
+
For more information see:
* Elementary Files (EF)
+
<pre>
* Holds one to many records
+
rekall/tools/osx/OSXPMem/README
* Represent the leaf node of the filesystem
+
</pre>
* EF's sit below the DF's in the filesystem hierarchy
+
  
=== PLMN ===
+
=== Windows ===
* Public Land Mobile Network
+
Since recent versions of Windows require a signed driver rekall comes with both pre-built (signed binary) and source versions of the driver.
** A PLMN is a network that is established and operated by an administration or by a recognized operating agency (ROA) for the specific purpose of providing land mobile telecommunications services to the public. [http://en.wikipedia.org/wiki/Public_land_mobile_network]
+
  
=== LAI ===
+
Both the i386 and amd64 binary version of the driver can be found in the directory:
* Location Area Identity
+
<pre>
** Each location area of a public land mobile network (PLMN) has its own unique identifier which is known as Location Area Identity (LAI). [http://en.wikipedia.org/wiki/Location_Area_Identity]
+
rekall/tools/windows/winpmem/binaries
 +
</pre>
  
== Filesystem ==
+
E.g.
 +
<pre>
 +
rekall/tools/winpmem/binaries/amd64/winpmem.sys
 +
</pre>
  
=== EF_ICCID ===
+
A standalone tool for imaging memory that uses an embedded copy of the pmem driver can be found as winpmem.exe in:
 +
<pre>
 +
rekall/tools/winpmem/executables/Release/
 +
</pre>
  
This displays the ID or Card Identity of the SIM Card, this can also be found on the SIM card itself.
+
To load the driver:
 +
<pre>
 +
winpmem.exe -l
 +
</pre>
  
[[File:Ef_iccid.png|350px|thumb|left|EF_ICCID]]
+
The device filename is (This can not be changed without recompiling):
 +
<pre>
 +
\\.\pmem
 +
</pre>
  
<br />
+
Note that running dd directly on this device file can crash the machine.
<br />
+
Use the winpmem.exe tool instead because it handles protected memory regions.
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
----
+
  
=== DF_GSM ===
+
To read and acquire the physical memory and write it to image.raw:
 +
<pre>
 +
winpmem.exe image.raw
 +
</pre>
  
==== EF_IMSI ====
+
To unload the driver:
 +
<pre>
 +
winpmem.exe -u
 +
</pre>
  
* International Mobile Subscriber Identity (IMSI)[http://en.wikipedia.org/wiki/IMSI]
+
For more information see:
* 310  -  260  -  653235860
+
<pre>
* MCC  -  MNC  -  MSIN
+
rekall/tools/windows/README
** MCC[http://en.wikipedia.org/wiki/List_of_mobile_country_codes] (3 Digits)
+
</pre>
*** Mobile Country Code
+
** MNC[http://en.wikipedia.org/wiki/Mobile_Network_Code] (2 Digits EU / 3 Digits NA)
+
*** Mobile Network Code
+
** MSIN[http://en.wikipedia.org/wiki/MSIN] (Remaining Digits)
+
*** Mobile Subscription Identification Number
+
*** Within the network's customer base
+
  
[[File:Ef_imsi.png|350px|thumb|left|EF_IMSI]]
+
== See Also ==
 +
* [[Memory analysis]]
 +
* [[Memory Imaging]]
 +
* [[Volatility]]
  
<br />
+
== External Links ==
<br />
+
* [https://code.google.com/p/rekall/ Project site]
<br />
+
* [http://docs.rekall.googlecode.com/git/index.html Project documentation]
<br />
+
* [http://rekall-forensic.blogspot.com/ Rekall Memory Forensics blog]
<br />
+
* [http://www.rekall-forensic.com/docs/References/Papers/DFRWS2013.html Anti-forensic resilient memory acquisition]] by [[Johannes Stüttgena]] [[Michael Cohen]], August 2013
<br />
+
* [http://www.rekall-forensic.com/docs/References/Papers/DFRWS2014EU.html Robust Linux memory acquisition with minimal target impact], [[Johannes Stüttgena]] [[Michael Cohen]], May 2014
<br />
+
<br />
+
<br />
+
----
+
 
+
==== EF_PLMNSEL ====
+
 
+
* List of all PLMN's (see [[Sim_Filesystem#PLMN]])
+
 
+
[[File:Plmnsel.png|350px|thumb|left|EF_PLMNSEL]]
+
 
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
----
+
 
+
==== EF_LOCI ====
+
* Location Information
+
** Contains Location Area Identity (see [[Sim_Filesystem#LAI]])
+
*** LAI Network Code (see [[Sim_Filesystem#PLMN]] / [[Sim_Filesystem#LAI]])
+
 
+
[[File:Ef_loci.png|350px|thumb|left|EF_LOCI]]
+
 
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
----
+
 
+
=== DF_TELECOM ===
+
 
+
==== EF_ADN ====
+
 
+
 
+
[[File:EF_adn.png|350px|thumb|left|EF_ADN]]
+
 
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
<br />
+
----
+

Revision as of 03:33, 25 June 2014

Rekall
Maintainer: Michael Cohen
OS: Cross-platform
Genre: Memory Analysis,Memory Imaging
License: GPL
Website: code.google.com/p/rekall/

Rekall is the stand-alone continuation of the Volatility Technology Preview (TP) version, aka the scudette branch.

One of Rekalls goals is to provide better integration with GRR by improved modularity of the framework and having memory acquisition capability.[1]

Memory acquisition drivers

The drivers can be found under:

rekall/tools/linux
rekall/tools/osx
rekall/tools/windows

Linux

In rekall RC11 the advanced Linux acquisition tool (LMAP) was added. lmap allows to inject the pmem functionality into existing kernel modules to bypass having to build a pmem kernel module for every different kernel version. See the corresponding DFRWS EU 2014 paper for more information about LMAP.

To build the kernel module for the current kernel version, make sure you have a working build environment and the kernel headers installed. Change into this directory and run make:

cd rekall/tools/linux/
make

The acquisition driver is named pmem.ko.

To load the driver:

sudo insmod pmem.ko

To check if the driver is running:

sudo lsmod

The driver create a device file named:

/dev/pmem

To unload the driver:

sudo rmmod pmem

To read acquire the memory just read from the device file. e.g.

dd if=/dev/pmem of=image.raw

For more information see:

rekall/tools/linux/README

Mac OS X

For more information see:

rekall/tools/osx/OSXPMem/README

Windows

Since recent versions of Windows require a signed driver rekall comes with both pre-built (signed binary) and source versions of the driver.

Both the i386 and amd64 binary version of the driver can be found in the directory:

rekall/tools/windows/winpmem/binaries

E.g.

rekall/tools/winpmem/binaries/amd64/winpmem.sys

A standalone tool for imaging memory that uses an embedded copy of the pmem driver can be found as winpmem.exe in:

rekall/tools/winpmem/executables/Release/

To load the driver:

winpmem.exe -l

The device filename is (This can not be changed without recompiling):

\\.\pmem

Note that running dd directly on this device file can crash the machine. Use the winpmem.exe tool instead because it handles protected memory regions.

To read and acquire the physical memory and write it to image.raw:

winpmem.exe image.raw

To unload the driver:

winpmem.exe -u 

For more information see:

rekall/tools/windows/README

See Also

External Links