Belkasoft
Belkasoft
Belkasoft
1. In the "Add a data source" window, select Add existing → Mobile image.
If you have already closed this window, go to the case dashboard, and
under Actions, select Add data source.
3. Сlick Next till the application displays the “Add data source | Select
advanced analysis options” window.
4. From the Profile drop-down, select the Custom analysis profile, and
verify that all Artifact types are selected.
5. Click Next a few times skipping the following selection options. If the
“Create or update a profile” window displays, click No.
II. Add one more data source to your case. Select Add existing → Folder.
Select the "Android app data" subfolder. Repeat steps 3-6 from the previous
list.
Belkasoft displays the data source analysis progress in the “Tasks” window. You
can find more information about it here: https://belkasoft.com/tasks.
Smartphone devices are evolving rapidly and often use proprietary technology,
making it difficult to retrieve data from them. Mishandling a device or using
improper techniques during the acquisition and extraction can result in
invalidating or losing data, or even bricking the device. To avoid it, digital
examiners should adhere to a set of fundamental rules in their work.
Experts from SysAdmin, Audit, Network, and Security (SANS) Institute have
established a set of guidelines that digital examiners should keep in mind to
conduct investigations successfully.
3. Keeping the device powered on and the network isolated increases the
chances of accessing the device, so please try to accommodate that. Note
that some devices will turn on when plugged in, enabling them to be
remotely wiped when they connect to a network.
4. Ideally, interact with the device as little as possible before carrying out any
extraction, given the possibility of triggering database changes, and
altering logs and usage records. Ensure that interaction with the target
device, which may change settings or data, is necessary, proportionate,
and deliberate.
7. Use more than one tool or method to extract data that may be the focal
point or key artifact of the crime. Understand that mobile log and system
data (clock, etc.) constantly change (user-created artifacts should not
change assuming the device is properly isolated), and two data extractions
may not be exactly the same, nor necessary.
Android devices come in various brands and models, featuring different chipsets
and operating system flavors. This diversity poses challenges when you acquire
them as a source of evidence in digital forensics and cyber incident response
(DFIR) investigations. Despite the open-source architecture of Android, which
provides advanced ways to interact with devices, ongoing enhancements in OS
and application security create additional complexities.
Most modern mobile devices are equipped with File-Based Encryption (FBE), a
security feature that protects each file using a unique key derived from user
credentials and the device hardware keys. This encryption level significantly
complicates the extraction of device contents through physical acquisition, once
considered the most efficient method. While you can still use physical
acquisition on older Android devices, for FBE-protected ones, you can choose
methods that obtain unencrypted system and application files.
In this and the following sections, we will explore Android device acquisition
methods available in Belkasoft X, and cover the following aspects of their usage:
Currently, the following standard acquisition methods are available for Android
devices (arranged from the safest to riskier ones):
Some methods may not work at the first attempt, and even common
methods may stall on some device models. If an acquisition method does
not work as expected, verify the prerequisite settings on the device, and
then repeat the steps exactly as prompted by Belkasoft X and described in
the lessons.
To begin the acquisition of a mobile device, create or open a case in Belkasoft X.
On the case dashboard, click Add data source. In the window that displays,
select Acquire > Mobile > Android.
The "Select device model to acquire" window displays Android device models.
Start typing the name of your device in the Filter field to quickly find it in the list.
If you cannot locate your model, select the Android Generic option. Click Next.
The "Please select the acquisition method" window displays the list of acquisition
types available for the selected device model. Click the one you want to run.
Note that you can run the Android file system copy and Physical
dump methods only for rooted Android devices.
Android Debug Bridge (ADB) is a tool designed for communicating with Android
devices through commands. Among its functionalities is the "backup" command.
Belkasoft X employs it to provide the ADB backup acquisition method, allowing
you to copy backup files from a wide array of Android devices.
Through this method, you can typically obtain media files, SMS, calendar
records, application data, and other artifacts stored within the device's internal
memory and on SD cards. The amount of files you can obtain may vary based on
the settings of the applications installed on the device since the extent of data
saved through this mechanism is determined by the application developers.
Pros and cons of the ADB backup method
Set the device screen lock timeout to the maximum possible value.
4. When the device displays a message asking whether to allow USB debugging,
select OK.
5. In the "Full backup" window on the smartphone screen, you will be asked if
you would like to back up your data. Do not select anything. Just wait, the
backup creation will start automatically.
When you use the Agent backup acquisition method in Belkasoft X, the tool
installs the agent application on the device you are acquiring to copy its files via
USB. When the acquisition is complete, Belkasoft X automatically uninstalls the
agent. The information you obtain typically includes contacts, SMS, calendar
records, the list of installed applications, and more. The extent of data depends
on the device chipset vendor.
Set the device screen lock timeout to the maximum possible value.
Watch your device screen closely; in some cases, you have very limited time to
give the required permission (e.g. 10 seconds on the Redmi 7).
The Agent SD card acquisition method in Belkasoft allows you to extract device
files without connecting the device to the workstation with USB. Instead, you use
an SD card to copy and deploy the Belkasoft agent onto a device, subsequently
exporting data to the same card.
2. Connect the card reader to your forensic workstation that runs Belkasoft X.
5. Specify the folder where you want to save the agent on the SD card. Click Next.
6. When the copying process completes, you can find the BelkasoftAgent file in
the selected folder:
7. Remove the SD card and click Next. If you do not plan to acquire a device right
away, you can click Cancel to stop the process.
2. Use a file manager to navigate to the folder with the Belkasoft agent and run the
agent.
3. Select the checkboxes next to the data categories you want to acquire.
4. Select CAPTURE and wait while the agent completes the acquisition.
5. Remove the SD card from the device
1. Connect the SD card to your workstation and continue the acquisition process in
Belkasoft X.
2. Specify the path to the folder with extracted data on the SD card (the folder
name typically contains a date).
3. Select the path where you want to save the acquired data on your workstation
and click Start to extract the files.
The Android screen capturer method is based on the ADB protocol and has
the same requirements as for a backup: the phone must be unlocked and have
Developer mode enabled.
There are several reasons to opt for the screen capture method on Android
devices:
Basic Android acquisition methods like Android Debug Bridge (ADB) backup or
Agent backup have limitations. Forensic images obtained through these methods
do not include many applications, while you can access and screenshot their
contents on devices.
Application files are often protected by encryption. Even if you acquire their
backup copies, there is no straightforward way to extract the data they include
without the decryption key which may not be part of the backup.
Advanced methods, such as APK downgrade, can extract unencrypted
application data, but they come with a set of risks. Belkasoft's screen capturer,
on the contrary, is based on standard ADB commands and is perfectly safe.
According to established device handling strategies, like the SANS "Six Steps"
guidelines, investigators should prioritize the least intrusive data extraction
methods. Thus, it is a good practice to take device screenshots before trying to
downgrade applications or use other advanced acquisition methods.
Go to the device Settings and, under Developer options, enable the USB
debugging and Install via USB options.
We also strongly recommend putting the device into Airplane mode, as
notifications may interfere with screen capturing. However, some applications
that store data on web servers (for example, Telegram or email clients), may
need internet access for loading earlier data. If you plan to capture such
applications, you can preload their data before enabling Airplane mode.
o For generic apps, open the application screen you want to capture on the device
and proceed with Belkasoft X's prompts. Define the scrolling options and click OK to
begin the acquisition.
Do not touch the device during the entire acquisition process. The process log
will help you understand the acquisition stages:
Keep in mind that the screen capturer may not work on certain devices. If
you encounter issues during the acquisition, make sure you have enabled
the prerequisite options on the device and try again.
When the tool completes the acquisition, it offers to analyze the acquired
screenshots. Your strategy will depend on the application you have acquired.
When analyzing supported messengers, you can accept the default options and
proceed with the analysis.
After the process is complete, the results are conveniently displayed in text
format under the messenger profile in the "Artifacts" window.
You can search and filter chats, calls, and contacts by keywords, participants,
dates, and more. Keep in mind that some recent messages may not have
timestamps since, within the application, their dates are marked as "Yesterday,"
"Friday," "Thursday," and so on.
To double-check your findings, use the original screen captures located under
the Pictures profile.
Generic app
When analyzing screenshots from other applications, you can use text
recognition to facilitate your further examination. To do so, when defining the
analysis options, go to the Media tab, select Text, and specify the Recognition
language.
You can check whether a seized device is rooted in the Settings. In the search bar, type
"phone status" and select the related result. If the Phone status displays as Official, you are
dealing with an unrooted device. Other values, for example, Custom, indicate that the device
is rooted.
WARNING: The file system copy method is generally safe for already rooted devices, but if
you decide to perform rooting yourself, it may cause bricking of the device and complete loss
of data.
On the device you want to acquire, go to Settings > Developer options and enable
the USB debugging and Install via USB options.
Set the device screen lock timeout to the maximum possible value.
3. Follow the tool's prompts. In the "Review Android device properties" window, verify that
the correct device is detected:
4. Specify the target path for the image and click Start to begin the acquisition.
5. Follow the onscreen instructions. When the device displays prompts to authorize the ADB
service and asking whether to allow USB debugging, select OK.
How to create a physical dump
This method creates a physical image and is only available for rooted Android devices.
You can carve physical images in Belkasoft X. However, keep in mind that if your device is
protected with File-Based Encryption, the data will be acquired in an encrypted form.
The Physical dump method works essentially the same as the file system copy. The only
difference is that after the tool detects the device, you can select the partitions to acquire.
Android Package or APK is the standard Android operating system format for
installing applications. Modern-day mobile applications use security mechanisms
and encryption to protect their data from direct access within the device.
However, in earlier versions of many applications, these measures were not in
place. The APK downgrade method in Belkasoft X is based on this catch.
When you use this method, the tool replaces application packages on the device
with their earlier versions, which enables it to extract the folders and files with
the available data from the downgraded applications, including the files stored
on SD cards. Upon completing the acquisition process, Belkasoft X restores the
original versions of applications, even in cases where errors occur during the
procedure.
2. Connect the Android device you want to acquire to the computer via USB and
unlock it. The tool will detect your device:
3. Select one or more applications to acquire using their checkboxes. Note that
this window only displays the apps installed on a particular device and
supported by the method.
Once you start the acquisition process, Belkasoft X will do the following:
Back up the current versions of the applications
Install the old versions of the applications. The user data is preserved
Reboot the device (it is required for Android 6.0 or newer)
Make an ADB backup
Restore the original app versions
If anything works incorrectly, the next APK downgrade (or Advanced ADB)
attempt will fix the problem by recovering original app versions, safely stored in
a temporary location. You need to select the APK downgrade method again, and
then select the Recover from failed attempt option.
If a subsequent attempt does not work either, you can manually recover original
versions from the [Application folder]/Options/[unique name] folder on the
device or use Google Play Store to restore it.
SIM cards typically include device-related data, such as IMEIs and installed software
versions, as well as cellular data, such as the mobile subscriber's ID and phone number. They
may also contain contact records and SMS texts if the device owner chooses to store them on
the SIM card.
You can use the Android SIM device method in Belkasoft X to acquire this information
from SIM cards within Android devices. Alternatively, you can use the SIM Reader method
to acquire SIM data through a SIM card reader device.
Before the acquisition make sure that 3GPP AT commands are switched on in the Developer
options:
The resulting image will include all data you can acquire with these three methods when
running them separately.
MTP/PTP
Media Transfer Protocol (MTP) and Picture Transfer Protocol (PTP) are standard
communication protocols used to transfer files between a device and a computer over USB.
While PTP is limited to interacting with graphic formats, MTP allows sending and receiving
various types of media files.
Belkasoft X provides the MTP/PTP acquisition method that copies Android device files
available through these protocols. The files can include pictures, audio and video files, and
other document types, such as PDFs. Since MTP and PTP are standard protocols, this method
will work for most Android devices.
Before you start acquisition, connect the device to the computer and select the
appropriate mode in the settings:
Acquisition mechanisms depend not only on the operating system but also on
the device hardware. In particular, the chipset plays a significant role. Belkasoft X
provides a number of chipset-specific acquisition methods to accommodate this
challenge:
Note that some chipset-specific methods may not work at the first attempt
and may stall on some device models. If an acquisition method does not
work as expected, verify the prerequisites and repeat the steps exactly as
prompted by Belkasoft X and described in the lessons.
Belkasoft X allows you to acquire a physical image from a wide range of mobile devices
running on Qualcomm Snapdragon SoC and not protected with File-Based Encryption.
Qualcomm acquisition is based on the emergency download mode (EDL).
You can use this method to acquire more than 250 smartphone types, including various
models of Samsung, Xiaomi, Meizu, ZTE, Vivo, and others. Find the full list of supported
devices at https://belkasoft.com/supported_qualcomm_devices.
How to create a physical image from devices on Qualcomm Snapdragon SoC using the EDL mode
If you see the message: "The COM-port is not open. The EDL driver may not be
installed or doesn't have digital signature. Please, try rebooting the system with driver
signature verification disabled," disable Driver Signature Verification on Windows.
Here is how you can do it:
a. Restart your computer and then keep pressing the F8 key before Windows starts.
You will see the Advanced Options screen.
b. Go to Troubleshoot > Advanced options > Startup Settings and click Restart.
c. When your computer restarts you will see a list of options. Press F7 on your
keyboard to select Disable driver signature enforcement.
d. After your computer restarts, you will be able to install unsigned drivers. Install the
EDL driver.
2. In the window that displays, select Acquire > Mobile > Android, and
choose your Qualcomm-based device model.
4. Now, switch the phone to EDL mode. You can do it using one of the
following methods:
o Connect the device to your machine, launch the ADB console, and
run the following commands:
Note that the second method may not work on some devices
and under certain conditions (the bootloader may be locked).
For example, in Xiaomi smartphones, most commands are
locked by default.
5. Connect the device to your workstation with a USB cable if it is not already
connected. When the tool detects your device, click Next.
6. In the following window, select a Firehose programmer corresponding to
your device model and click Next.
7. Select a path for the device image and click Start to begin the acquisition.
The MTK acquisition option in Belkasoft X allows you to create a physical image
from devices based on MediaTek chipsets that include the Preloader
component. You can find the list of chipsets supported by this method in the
Belkasoft X User Reference document.
Before you begin, verify the presence of the Preloader component in the
MediaTek smartphone you want to acquire:
2. Expand either the Universal Serial Bus controllers or the Ports category
to view the devices it includes.
3. Connect the MediaTek smartphone to the machine using a USB cable and
watch out for changes under the expanded category in the Device
Manager window. After you connect the smartphone to the PC,
the MediaTek PreLoader USB driver will appear for a short period of
time and then disappear.
If the driver does not appear, double-check that the device chipset is
supported by the method and that your USB cable is working.
Note that Preloader activates only for a short period of time after the device is
connected via USB. For this reason, when you run the acquisition, you must not
connect the MediaTek device to the PC before the process starts. You must do it
at the right moment (when the flash memory wizard is expecting the
connection).
2. In the window that displays, select Acquire > Mobile > Android and
choose your MTK-based device model or use
the Generic Mediatek device option.
6. Specify the Target path where you want to save the smartphone image.
Click Start.
7. Turn off the mobile device, remove is battery, and connect the device to
your computer with a USB cable.
he Agent backup MTK (physical) and Agent backup MTK (logical) methods
help you create device images using an agent designed to acquire data from
MTK-based devices. This method supports more than 150 devices and 25
chipsets, including various models of Huawei, Lenovo, LG, Meizu, Sony, ZTE, and
others. Find the full list of supported devices
at https://belkasoft.com/supported_mtk_devices.
On the device you want to acquire, go to Settings > Developer options and
enable the USB debugging and Install via USB options.
Set the device screen lock timeout to the maximum possible value.
3. Next, select the device partitions you want to acquire and click Next.
4. Specify the Target path where you want to save the smartphone image and
click Start.
5. When the device displays a message asking whether to authorize the ADB
service, select OK.
The Agent backup MTK (logical) method works essentially the same. The only
difference is that you do not need to select the device partitions to acquire.
2. In the window that displays, select Acquire > Mobile > Android, and select your
Spreadtrum-based device model.
In this training, we only use Belkasoft X, however, you should keep in mind that
different tools might parse different data types from the same applications.
Most tools support the import of extractions from other tools and are able to
process them. You can use it to verify your primary tools' findings after the
device is returned to the owner.
Artifacts
The "Artifacts" window is your starting point for examining various pieces of
forensically important data. Belkasoft X automatically extracts these pieces,
known as artifacts, from the data sources that you add to your case. Examples of
artifacts are a chat, a document, an email, a picture, a registry key, a video, and
so on.
The window is divided into several panes, with the Structure and Overview tabs
on the left.
Structure
On the Structure tab, you can see where your artifacts are stored: at the top
level, there is a data source that may include various artifact types like Audio,
Chats, Documents, and more. Under the subnodes, you can find artifact profiles,
for example, Skype, Facebook, Telegram, and so on.
Overview
Unlike Structure, the Overview tab contains all artifacts of the same type under
the same node. For example, if you have several data sources and each has
several chat applications such as WhatsApp, Skype, and Telegram, all these chats
will be shown under the Chats node in the Overview while in Structure they all
will have different nodes. To summarize, Overview is more lightweight and gives
you an easier overview, while Structure gives you more details about artifact
origins.
Artifact list
In the middle pane of the "Artifacts" window, you can view the list of artifacts
belonging to the profile selected in the Structure tab or the artifact type
selected in the Overview tab. The items can have different views depending on
the selected artifact type. For example, if you select a chat, there is a bubble view
and a table view. The bubble view mimics chat representation on the device and
is easier to share with non-technical people, while the table view allows you to fit
more information on the screen and select the columns you need.
Note that by default, chat profiles display all available conversations as one set
of records. If you right-click a profile and select Show contacts, Belkasoft X
breaks down the records by groups and private chats as they display on the
device:
In the table view, you can sort the list by any column. To do so just click on the
column header. You can also filter by any column having the funnel icon.
Tools
It includes Item text, Hex viewer, and other viewers depending on the type of the
item in focus. If you select a record that is part of an SQLite database, there will
be an SQLite viewer. If it is a registry or a Plist item, a corresponding viewer will
display.
To open a viewer full screen, click on the corresponding icon at the right of
the viewer name.
Properties
On the right side of the Artifacts window, there is the Properties pane. Here
you can review the properties of an item currently selected in the item list. You
can also copy any property or its part.
Top part
At the top, there is the Report button, the mini-timeline, and the global filter
button.
The report button creates a report for all items checked in the currently shown
tab at the left, either Structure or Overview. If you need to create a report for
items checked in the item list, right-click there.
Mini-timeline shows you how artifacts spread over time. You can click inside
and select a date range. The product will filter all items and show only those
which fall under the selected range. You can adjust the range by dragging its left
and right border. Clear the selection by single-clicking anywhere on the timeline.
At the right of the mini-timeline, there is a global filter icon. Click on it to apply,
edit, or reset global filters. When a filter is applied, this icon turns orange. Find
more information in the Filtering chapter.
Once you have extracted artifacts, you may want to search through them using
different criteria. Along with filtering, search allows you to narrow the number of
items to review. Belkasoft X automatically indexes all text-based properties of
artifacts, such as their texts, dates and times, metadata, and so forth. So,
running a search query against extracted artifacts data is a quick process.
Note: Do not confuse the search of profiles and the search inside artifact texts.
Search for application profiles is performed during analysis of a data source and
the main goal is to find all artifacts for a specific application. For instance,
Belkasoft X will find an Outlook mailbox (and will extract all emails) and 1000
documents (and will extract texts and metadata for every one of those items).
Once that mailbox and the documents within are analyzed, you can search for
particular texts extracted from them.
To run a search in artifacts, you can either press the Ctrl+F key combination or
go to the "Dashboard" window and under Actions, select the Search
artifacts option.
Word or phrase. Select this option to find all data containing a certain
word or phrase.
o This search is not case-sensitive.
o This search is carried out by exact match of the whole word. If you
need to find artifacts by part of a word, use the * symbol.
o Select the Treat as a regex checkbox if you want to use a regular
expression. Regular expression is a powerful mechanism to
perform complicated searches. You can choose this option when
you do not know exactly what you are looking for, for example,
while searching for emails or credit cards when you do not yet
know the exact email address or card number. More details about
the syntax of writing regular expressions will be discussed below.
Words from file. Select this option when you have a keyword file
containing all words of interest. Having such a file saves a lot of time if you
have numerous words for which you need to search—all the keywords
can be searched for in a single search operation.
Select the Treat as a regex checkbox if you would like to use a file
containing a list of regular expressions.
Select a data source. Here you can specify in which data sources to run
the search
Select types to search in. Here you can specify which artifact types to
look for; for example, only perform a search in Documents and
Downloads
Both panes have root checkboxes helping you to do mass selection operations.
Tip: Typically, investigators run searches in all data sources and profiles because
it is more efficient to find all the results and only then to narrow them down
using filters inside the "Search Results" window.
When you click on OK, the search task will start and be shown in the "Tasks"
window.
If it is not entirely clear what to look for, use special search operators.
Wildcard operator, type an asterisk (*) in place of the word you're not
sure about. It replaces zero or more characters.
Example: win* Matching: win, wine, wineglass, etc.
Fuzzy ~ operator. Find all terms with a maximum of two changes, where a
change is the insertion, deletion, or substitution of a single character or
transposition of two adjacent characters.
To speed up the search, all found artifacts (words, dates, document content,
passwords, etc.) are indexed. Due to this, the search even on huge amounts of
data is fast. A list of all indexed artifacts is placed in the Key dictionary. It can be
created from the Dashboard actions.
We will explain how to examine these artifacts in Belkasoft X and provide tips on
using them in criminal and cybersecurity investigations.
Note that, as part of the system files, all these data sources are only
available in "file system copy" images of Android devices.
You can begin examining Android system artifacts by reviewing the properties of the
acquired device in the "File System" window. In the tree view, right-click the image data
source node and select Show properties.
The set of details you can find in the Device properties dialog depends on the data source
type. The window below displays the properties of a Samsung Galaxy file system copy that
includes such information as IMEI, IMSI, ICCID, OS version, last boot time, factory reset
time, Bluetooth address and name, and more.
Belkasoft X collects these details about the device from a number of system files:
You can also find them summarized in the "Artifacts" window. Go to the Overview tab
under System files > Device info.
SIM Card Details
Details of SIM cards used on an Android device are stored in an SQLite database
located in ..\data\user_de\%USERNUMBER%\
com.android.providers.telephony\databases\ telephony.db. According to
our observations, this database retains records of all SIM cards ever used with
the device.
The telephony.db artifact can offer insights into the history of SIM card usage
on the device. In digital investigations, it helps to identify the mobile networks
where the device was used with those SIM cards and provides SIM card IDs that
can be used to request information about their owners.
External connections
In Belkasoft X, you can find this artifact profile on the Structure tab
under adb_keys → ADB hosts. It displays the host computer name and the user
name of the account that has interacted with the device through ADB.
..\data\system_ce\%USERNUMBER%\accounts_ce.db
..\data\system_de\%USERNUMBER%\accounts_de.db
When analyzing Android artifacts in Belkasoft X, you can find these database
profiles on the Structure tab under System files:
The accounts_ce.db → Android accounts profile includes details of the
authentication accounts used on the device:
Account description includes the user’s account ID; this description may
be different depending on how the application identifies users (for
example, it may be the user’s login name, email, internal ID number, a
generic application description, and so on)
In Belkasoft X, you can find Digital Wellbeing data on the Structure tab
under System files → app_usage → Digital Wellbeing or System files →
dwbCommon.db → Digital Wellbeing, depending on the device model. The
profile displays the records of the device and application events, including their
timestamps. For example, ACTIVITY_RESUMED indicates that an application was
moved to the foreground, meaning that it was in active use at a specified
moment. You can find descriptions of events in Android developer
documentation.
The range of events recorded by the Digital Wellbeing services varies depending
on the device manufacturer. For instance, on some devices, such as Samsung
phones and tablets, you can additionally find details on when the device was
powered on (DEVICE_STARTUP) or off (DEVICE_SHUTDOWN), and when it
displayed the lock screen (KEYGUARD_SHOWN).
Digital Wellbeing records can add precision to the timeline of events in a digital
investigation by providing information on the application and device states at
certain periods of time. Nonetheless, there are a few caveats when you should
consider this artifact:
Device owners can opt out of sharing their usage statistics. The absence of
Digital Wellbeing records does not mean that the user did not interact with the
device and applications.
Not all event records imply the user’s interaction with the device. For example,
some NOTIFICATION records may indicate internal communication events that
are not visible to the user. DEVICE_SHUTDOWN may both suggest that the user
turned the device off and that the device battery ran out.
Like app_usage_stats.xml, Digital Wellbeing records only include recent activities
and exclude deleted application data.
Belkasoft X displays this artifact on the Structure tab under System files
→ frosting.db → Android app updates. When inspecting this profile, you can
find the list of applications installed on the device at the time of the acquisition,
their resource folder location on the file system, and the last time they were
installed or updated.
Also note that the Google Play Store can be set to auto-update installed
applications, so the timestamps in the database do not necessarily indicate that
the user interacted with the device at the specified time.
The suggestions.db artifacts can provide insights into the device user’s
intentions and contribute to building the timeline of events in digital
investigations.
In this chapter, we intend to examine a few popular Android chat apps from a forensic
standpoint. We will briefly review extracting data from these apps and the artifacts
associated with them. You will learn what data you can obtain from a suspect’s Android
smartphone and how to examine it in Belkasoft X.
WhatsApp emerged in 2009, rapidly becoming the go-to communication app for
iOS users. When its Android version was launched a year later, the app was
already popular enough to quickly grow a large Android user base that has
substantially increased over time. Today’s global popularity of WhatsApp and the
wide usage of Android mobile devices make Android WhatsApp one of the
foremost sources of evidence in criminal and cybersecurity investigations.
Android WhatsApp creates daily backups of chat databases within the device,
encrypting them with a key stored in the Application Sandbox. WhatsApp backup
files are accessible through the Media Transfer Protocol (MTP) when connecting
a device to a computer via USB. Depending on how the device is set up to store
application data, you can find backups either within its internal memory or on
the SD card in it.
Chat databases in the backup folder are encrypted in the CRYPT14 or CRYPT15
format, while media files are stored as-is.
Users can opt to upload WhatsApp backups to their Google Account cloud
storage. Like on devices, media files in these backups are stored as-is, and
databases are by default encrypted in the CRYPT14 format.
Databases
We will take a closer look at these databases in the second part of this article.
Configuration file
WhatsApp encrypts and decrypts database backups with a key that is generated
when the user authenticates in the application using their phone number. You
can find this key in ..\data\data\com.WhatsApp\files.
Note that this key only works to decrypt files with the .crypt14 extension. When
end-to-end backup encryption is on (files have the .crypt15 extension), the
second key or password required to decrypt the backup is only known to the
user and it is not stored in the application folders
Media files
WhatsApp saves exchanged media files into the backup folders it creates on the
device. You can find them in ..\Android\media\com.whatsapp\WhatsApp\
Media. Other media files, such as contact avatars, are part of the application
resource folders.
How to acquire Android WhatsApp data
The way Android WhatsApp stores data and creates backups allows for several
approaches to data acquisition. In this section, we will explore these approaches
and look into the files they let you extract.
Due to security measures, not all acquisition methods can provide you with
access to messaging data. Obtaining the complete WhatsApp data set requires a
specialized tool that can acquire unencrypted WhatsApp data. For this purpose,
we will use Belkasoft X that includes advanced Android device acquisition and
cloud acquisition methods.
Backup copy
Copying the WhatsApp backup folder from the device is a good starting point.
Here is why:
How to acquire:
Connect the device to your workstation and unlock it. Navigate to ..\Android\
media and copy the com.whatsapp folder to your machine. WhatsApp backups
can reside either within the device internal memory or on the SD card, so you
may need to check both of these storages to locate the files.
The Android WhatsApp backup comprises two folders with database backups
and a structure of media file folders. The Databases folder
includes msgstore.db.crypt14, the latest backup of the main WhatsApp
database. It may also contain a few versions of this backup created earlier,
named similar to msgstore-yyyy-mm-dd.db.crypt14. These earlier files may be
of use for recovering messages that were deleted after these backups were
made (if you manage to get hold of the decryption key).
The Backups folder includes wa.db.crypt14 that, when decrypted, can help you
identify the users with whom the account owner communicated.
All database backups are encrypted with the same key tied to the WhatsApp
account phone number. You can acquire this key from the device using the APK
downgrade and Android file system copy methods that we will discuss later.
How to acquire:
To begin the acquisition, launch Belkasoft X and create a case. Add a new data
source either from the "Create case" window or the Actions menu on the case
dashboard:
In the "Add a data source" window, select Acquire → Cloud → WhatsApp:
Provide the Android WhatsApp user's Google account login and password,
click Next, and follow the on-screen instructions to complete the acquisition:
The Android WhatsApp backup is stored in a folder named after the phone
number registered with the account. The files you can obtain from a Google
Account are typically the same as those stored on the device but with only one
version of the encrypted msgstore.db.crypt14.
WhatsApp QR
How to acquire:
Before you begin the acquisition, you should verify that the device camera is
working. You will need it to scan the authentication QR code. The device must
also be online for the linking functionality to work.
To start the acquisition, launch Belkasoft X and create a case. Add a new data
source either from the "Create case" window or the Actions menu on the case
dashboard. In the "Add a data source" window, select Acquire → Cloud →
WhatsApp QR and follow the on-screen instructions to complete the acquisition.
What you get:
Belkasoft X writes the acquired conversations into a Cloud.belkaml file (in XML
format) and downloads a WhatsApp folder with files exchanged in those
conversations.
How to acquire:
You can find detailed information on using this method in lesson "2.6.
Automated screen capturing."
When exploring WhatsApp data acquired from an Android device, you should
understand what kind of information you can find and how to interpret it. In this
lesson, we will explore the following topics:
You may be curious to know that the initial idea behind WhatsApp was to show
its user's status updates—hence the name; though, quite quickly it grew into a
messenger. Present-day WhatsApp users can engage in one-to-one and group
chats by exchanging:
Text messages
Media files such as pictures, video, audio, and documents
Location pins and live locations
Contact cards
Polls
The application also supports VoIP and video calls, including conferences.
Additionally, in some countries, it can be used for making payments. With such a
variety of features, WhatsApp users leave numerous digital traces that provide
insights into their connections, interactions, behaviors, locations, and more.
Moreover, a single WhatsApp account can be used across multiple devices. This
feature can aid in identifying additional devices involved with the account usage.
Evidence in Android WhatsApp databases
Now that you know how to obtain WhatsApp databases, let us delve into their
records and explore how they can help you reconstruct users' activities within
the application.
wa.db
The wa.db table is your source of information about the account owner's
contacts and groups.
wa_contacts can reveal the names of the account owner's contacts, their phone
numbers, "about" information, and other details. When exploring the jid column
containing user's chat IDs, you may notice that several types of contact records
are available:
wa_bloc_list offers insights into the unwanted contacts in the user's list.
Interestingly, it may also include the blocked contact's internal WhatsApp ID
indicated by @lid:
wa_group_admin provides one more notable piece of
information. creator_jid helps you to define the admins of the group chats
where the user participates:
companion_devices.db
msgstore.db
As for the call records, you can locate them in the call_log table:
You can find more details on how to examine and query Android WhatsApp
databases in this insightful article: https://thebinaryhick.blog/2022/06/09/new-
msgstore-who-dis-a-look-at-an-updated-whatsapp-on-android/.
How to analyze Android WhatsApp with Belkasoft X
Belkasoft X analyzes WhatsApp folders available in the device image and extracts
the conversations for easy examination.
When you add an Android device image as a data source in Belkasoft X, the tool
presents extracted findings in the "Artifacts" window. You can locate the
WhatsApp profile on the Structure tab under Chats:
The profile appearance depends on the type of the device image you analyze.
The screenshot above displays the analyzed "file system copy" image. Such
images typically include two or more profiles:
the main database profile extracted from the application folder; it is identified by
the user's phone number without the country code
msgstore.db.crypt14 that originates from the automatically decrypted database
backup and its earlier versions, if available
If you have an APK downgrade image, you will only find the main database
profile since this method does not copy backup folders.
The middle pane in Belkasoft X reveals the user's sent and received messages in
the bubble chat view. You can select a message and inspect its details in
the Properties pane. You can also find its source SQLite record highlighted in
the SQLite viewer.
By default, the "Artifacts" window displays messages from all user's chats in one
view. If you want to look into each chat individually, in the Structure tab, right-
click a WhatsApp profile and select Show contacts:
The database may also include cached chats with which the user did not
interact. For example, such records are created when the user browses
WhatsApp channels. To avoid scrolling through multiple empty nodes, you can
right-click the profile and select Hide empty conversations:
As a result, Belkasoft X only displays the chats that have message history. You
can understand the types of these chats by their "@ suffixes," which we have
covered when exploring the wa.db database records:
Apply search filters
When you need to narrow down your search, you can switch to the grid view and
apply search filters. For example, you may want to search the exchanged
messages for specific keywords or check which files the account owner received
in the conversations:
Locate attachments
When WhatsApp users exchange media files, the database records their binary
representation and location on the device file system. When Belkasoft X analyzes
these records, it marks messages with attachments with the "transfer" tag that
also includes the description of the exchanged file type (for example, [VIDEO
TRANSFER], [FILE TRANSFER], and so on). When examining such messages, you
can find the representations of exchanged files in the Attachments pane.
Note that the original files stored in WhatsApp backup folders may be missing
from some device images, such as those acquired with the APK downgrade
method. They may also be missing from the artifact view if you analyze This is
why, in the previous lesson on WhatsApp acquisition, we emphasized the
importance of copying backup folders from the device as the first step in
WhatsApp data acquisition. You can import these folders as an additional data
source to your case to complete the application dataset.
Conclusion
Analyzing WhatsApp data from Android devices provides valuable insights into
users' interactions, behaviors, and connections. The examination of databases
such as wa.db, companion_devices.db, and msgstore.db uncovers a detailed
picture of WhatsApp usage, including contacts, groups, linked devices,
conversations, and media exchanges. With tools like Belkasoft X, you can
efficiently explore and interpret this data, identifying key details and
reconstructing timelines of events for your digital investigation.
Android file system copy
If the Android device you are investigating is rooted, you can use the Android
file system copy method. It extracts a wide range of artifacts, including the
WhatsApp resource folder.
How to acquire:
You can find detailed instructions on how to run this method in lesson "2.8.
Logical and physical acquisition of rooted Android devices."
In the files folder, you will find the key file to use for decrypting database
backups
The \files\Avatars folder contains the profile pictures of the user's contacts
The shared_prefs folder includes
the com.whatsapp_preferences_light.xml configuration file
Note that WhatsApp does not store the exchanged media files in the application
resource folder. You can locate them in the backup folders.
APK Downgrade
If you are dealing with a non-rooted device, you can acquire an unencrypted
backup copy of WhatsApp data using the APK downgrade method. It relies on
the ADB backup mechanism through which, in the past, many applications
allowed users to create backup copies of their data. Since security was not such
a concern in those times, most applications did not encrypt their ADB backups.
How to acquire:
You can find detailed instructions and safety notes for this method in lesson
"2.9. APK downgrade acquisition."
The resulting image is an ADB backup (.ab) archive that includes a copy of
WhatsApp files from the application resource folder under ..\apps\
com.whatsapp. The ADB backup folder structure differs from the one stored on
the device but contains essentially the same files:
Here are a few ideas on how to build your WhatsApp acquisition workflow based
on the SANS Institute guidelines we covered in lesson "2.0. Before you begin":
Begin with copying backup folders directly from the device, which is the safest
way to obtain data
Next, if the device is rooted, go for the Android file system copy method
If you are dealing with a non-rooted Android device:
o After copying WhatsApp backup files, use all possible cloud methods
o Then, run the Android screen capturer
o Finish the acquisition with the APK downgrade method as the riskiest
one
This way, you will have a few copies of the WhatsApp databases and will be able
to corroborate their contents with screenshots and data acquired from the
cloud.
Telegram is one of the world's most popular messaging applications with over
700 million monthly active users. It has evolved from a simple messenger into a
comprehensive ecosystem offering features like groups and channels, making it
akin to a social media platform. However, not all users and entities on Telegram
are legitimate. Those channels and groups are extremely easy to create and
delete, and there are cases when they are used to sell illicit goods and run
fraudulent activities.
In the context of criminal and cyber investigations, Telegram can hold a wealth
of valuable evidence, from users' conversations and activities to potential traces
of malicious content. Navigating this data can be challenging, especially for those
unfamiliar with the platform.
Introduction
An important factor that separates Viber from other popular services requiring
only an Internet connection for communication, is their Viber Out subscription
plan. It allows calls to all mobiles and landlines in 50 countries around the world.
Viber is also considered to be a secure messenger app since it provides end-to-
end encryption based on Open Whisper Signal security architecture.
In this lesson, we will focus mainly on the Viber app installed on Android devices.
We will cover the following topics:
We will also examine the techniques and tools which can be used to analyze
Viber artifacts. Along with it, we will describe how artifacts can be extracted and
displayed in Belkasoft X, a DFIR tool by Belkasoft.
Viber does not store any chat information on its servers once it is delivered to a
recipient. If there is a problem delivering a message, it will remain encrypted
until the receiver gets it and will disappear from the server once it has been
delivered.
However, messages sent to and from chatbots and the Chat Extensions feature
are not protected by end-to-end encryption. Messages from bots are identified
with a bot icon.
Public chats on Viber are not encrypted at all, however, Viber offers secret chats.
Thanks to this feature users can communicate in an encrypted channel and their
communication history will not be synchronized with the cloud service or with
Viber Desktop. In secret chats there is a feature of the self-destructing messages
as well as screenshot notifications. It is also a wide practice in chat apps
including Viber to allow users to delete a chat for everyone.
A really unique Viber feature is the ability to hide any chat by setting a PIN code
for it in the Viber settings. Once the chat is hidden you need to enter the PIN
code in the messenger search field to unhide it.
The target artifacts that are mostly wanted by digital investigators in chat apps
are:
Most of the data from the Viber app can be obtained through a file system
acquisition, it is also possible to manually download a specific folder containing
Viber data using the ADB backup extraction method.
The number occupies the last bytes of files. There is a 7-byte header in front of
it. The number in the canonical form includes the country code and the actual
phone number without spaces, hyphens, brackets, and other symbols. The non-
canonical number is commonly stored by a Viber user in a free form.
The files in '/files/preferences' also contain the name the user displays in the
app (Display_name) and the SIM card's ICCID (Activated_sim_serial).
The files in the '/sdcard/viber/media' path are the profile photos (/User
Photos/) of people in the user's contact list who use Viber, regardless of
whether they have been added as friends in the app. Under the path images
(/Viber Images/) and videos (/Viber Videos/) sent through the app are stored
as well.
This database stores contacts, all the sent or received messages, and
geographical location information.
There are two possible versions of the 'viber_messages' database—the old one
and the new one. The structure of the older Viber versions differed a bit from
the structure of the new one.
There is a table 'participants', where active contacts are kept. This table
includes:
The next table 'messages' will help an investigator to get the required data
about the communications of the account owner with their contacts. The main
columns here are:
Using the 'thread_id' from the 'participants' table and 'address' field from
the 'messages' table, you can find the interlocutor in the
table 'participants' and retrieve their ID and display name from this table.
However, not only text messages can be of interest to an investigator. There are
non-text messages, which can be either the data about the calls through the
service or the geolocation data.
The key difference between the older version of the database structure and the
new one is that the database in the older format does not contain
tables 'stickers' and 'conversations'.
Active contacts are stored in the new 'participants_info' table. The account
owner's contact is stored there as well and is marked with the value 0 in
the 'participant_type' column.
The 'messages' table in general has the same structure as the corresponding
table in the old format. However, there are some differences:
The 'type' field is replaced by the field 'send_type' (1 stands for outgoing
messages, and messages with any other value are interpreted as incoming),
and the 'date' field is replaced by the 'msg_date' field
The 'conversation_id' field has a link to the 'conversations' table, which
contains information about individual chats
Information about calls now can be stored in the 'messages_calls' table. The
main fields of the table are:
The contact list is kept in the table 'phonebookcontact'. Every contact inside
has a unique identifier '_id' and 'display_name' for the contact display name.
The next table of interest is the 'calls' table. The main fields inside are:
'number', the identifier of an interlocutor
'date', the start time of a call
'duration', the duration of a call in seconds
'type', the direction of a call (the first bit is zero for outgoing calls)
'viber_call_type', the call type (4—for video calls, any other value stands for
audio calls)
Carving of Viber data in the physical image of an Android device is carried out
using three-byte signatures of the following type. For the old format '00 0X 2Y' is
used, where X can be 1, 2, and 9, and Y is 3 for 11-digit phone numbers, 5 for 12-
digit phone numbers, and 7 for 13-digit phone numbers. For the new format '00
2Y 05' is used, where Y takes values according to the same rule as in the old
format.
Each found signature is an entry from the 'messages' table of the messages
database. Record fields are stored sequentially and can be read one by one.
The length of a field is determined by the value of its first byte. You can extract
the ID of an interlocutor, direction, and text of the message, but it is quite
possible to extract the date as well.
In this lesson, we will demonstrate how to analyze Viber data in Belkasoft X.
Belkasoft X supports both older and newer Viber database formats. All the data
mentioned below is extracted and presented by Belkasoft X. In the screenshot
below, you can see how the evidence (in this case there are text and non-text
messages) appears within Belkasoft X.
[PICTURE TRANSFER]
[CALL]
[VIDEO CALL]
[LOCATION]
[SYSTEM INFO]
Apart from the bubble chat view, messages are presented in the grid view. This
view allows for fitting more data columns, and the messages can be sorted and
filtered by various columns.
In the right pane in the Belkasoft X user interface, it is possible to review the
properties of the selected message. Both participants’ phone numbers and
display names are shown. You can also find the Delivery status of the message.
The Origin properties of the selected message are shown in the right bottom
column. Among them, you can find the profile name and path, and define if the
data is available in the file system or was extracted by carving.
Conclusion
The most meaningful part of the data related to the Viber app on Android is
stored in the database 'viber_messages', in which you can find contacts, all the
sent or received messages, and geographical location information. This database
can be stored in two possible versions—the old one and the new one,
depending on the Viber app version.
Browser forensics plays a significant role in case of incident response and helps
to answer the following questions: how the attack began on the computer or
computer network, when the attack began, what was the source, etc.
Google Chrome can work in Incognito mode. Incognito mode prevents the
browser from permanently storing any history information, cookies, site data, or
form inputs.
We will use an image from BelkaCTF #2, however, the tasks will be different than
those performed during the CTF. If you have not participated in this CTF, you can
do that now and gain additional knowledge and experience, however, it is not
necessary. If you have completed the CTF, this will help you to pass the practical
exercises more efficiently.
The plot:
A man was detained on the street because he looked suspicious, walking around
late at night with a backpack in the middle of a suburban area.
The police found traces of drugs on his seemingly empty backpack. The man had
an Android phone with him, which was later imaged in a digital forensics lab.
Now, you are tasked with identifying if the person has any connections to drug
dealing.
We suggest you review this case with Belkasoft X and answer several questions.
Please note that the case is artificial and does not involve real data.
1. In the "Add a data source" window, select Add existing → Mobile image.
If you have already closed this window, go to the case dashboard, and
under Actions, select Add data source.
3. Сlick Next till the application displays the “Add data source | Select
advanced analysis options” window.
4. From the Profile drop-down, select the Custom analysis profile, and
verify that all Artifact types are selected.
5. Click Next a few times skipping the following selection options. If the
“Create or update a profile” window displays, click No.
o Click the Enter missing data button and enter 04049 19810 47697
72485 91554 88046 to unencrypt the data