diff --git a/docs/en/references/01-reference-androidqf-dictionary/index.md b/docs/en/references/01-reference-androidqf-dictionary/index.md index 4bc902688..77897a2be 100644 --- a/docs/en/references/01-reference-androidqf-dictionary/index.md +++ b/docs/en/references/01-reference-androidqf-dictionary/index.md @@ -10,6 +10,7 @@ created: 2025-06-16 comments: true name: jose +translation-review-pending: true --- # AndroidQF output file dictionary @@ -17,7 +18,9 @@ name: jose This document is part of a **technical documentation repository** whose main objective is to establish a baseline of proven, flexible and accessible knowledge to **boost consensual forensic analysis in support of civil society across the globe**. To organize the contents, we use the [technical documentation framework Diátaxis](../00-glossary/index.md#diataxis). This particular resource fits within [the reference category in Diataxis](https://diataxis.fr/reference/), and contains information about files generated by the tool [androidqf](https://github.com/mvt-project/androidqf) when conducting a forensic extraction of an Android device. The objective is to **facilitate the understanding of the resulting files, including what information is included and why it could be helpful from a forensic standpoint**. +This particular resource falls under the [references](https://diataxis.fr/reference) category, and contains information about the files generated by [androidqf](../.../references/00-glossary/index.md#androidqf) when performing a forensic extraction of an Android device, so that an analyst person **knows what files are generated, how to use them, where to look for specific information and in what format to find it.** Additionally, the equivalent ADB commands for each module are included to show the queries that AndroidQF performs internally and how it can be replicated manually. In cases where the output of the ADB command differs from the file generated by AndroidQF, an example of the actual output of the command is also added to show these differences and facilitate its interpretation. +This resource was last updated on November 26, 2025 and the [commit e6bbc564bf9d1edfb18886f4b58c05dcf5b23c9c](https://github.com/mvt-project/androidqf/commit/e6bbc564bf9d1edfb18886f4b58c05dcf5b23c9c) was used as the basis for compiling the information. This resource was last updated on June 16, 2025, and for the presentation of the information we based our [version 1.7.1](https://github.com/mvt-project/androidqf/tree/v1.7.1). This resource was originally developed in Spanish, and translated with the support of Marianne Parrott. [Androidqf](../00-glossary/index.md#androidqf) is a forensic extraction tool, part of the [Mobile Verification Toolkit (MVT) project](../00-glossary/index.md#mvt). It is maintained by [Amnesty International Security Lab.](https://securitylab.amnesty.org/) @@ -163,6 +166,7 @@ The hashes help to guarantee the integrity of the information and ensure that it The information in this file is generated by the [getprop.go](https://github.com/mvt-project/androidqf/blob/main/modules/getprop.go) module. +This file is in *txt* format and contains information about device properties such as Android version, build number, serial number, network settings, manufacturer, USB debugging status, software and hardware related values. **What is included in this file?** This file is in TXT format and contains the output of the `adb getprop` command, which details the **system properties**. @@ -186,8 +190,10 @@ The most common groups are: * *audio*, audio related * *graphics*, graphics related * *vold*, vold related +The equivalent ADB command in this module is as follows: For more details, see the [list of properties already defined in the Android source code](https://oneamnesty-my.sharepoint.com/personal/marianne_parrott_amnesty_org/Documents/Downloads/lista%20de%20propiedades%20ya%20definidas%20en%20el%20c%C3%B3digo%20fuente%20de%20Android). +adb shell getprop **Why is this important?** @@ -198,6 +204,7 @@ The properties provide important information about the device's hardware and sof ``` [property_name]: [value] [aaudio.hw_burst_min_usec]: [2000] +Example of content returned by AndroidQF execution: [aaudio.mmap_exclusive_policy]: [2] [aaudio.mmap_policy]: [2] [apex.all.ready]: [true] @@ -224,8 +231,35 @@ The properties provide important information about the device's hardware and sof * [Configuration overview | Android Open Source Project](https://source.android.com/docs/core/architecture/configuration#system-properties) * [Implement system properties as APIs | Android Open Source Project](https://source.android.com/docs/core/architecture/configuration/sysprops-apis) * [Add system properties | Android Open Source Project](https://source.android.com/docs/core/architecture/configuration/add-system-properties) +Example of content returned by ADB command execution: * [Policy compatibility | Android Open Source Project](https://source.android.com/docs/security/features/selinux/compatibility#system-property-and-ownership) +[DEVICE_PROVISIONED]: [1]. +[apex.all.ready]: [true]. +[bluetooth.device.class_of_device]: [90,2,12]. +[bluetooth.device.default_name]: [moto g(7) power]. +[bluetooth.hardware.power.operating_voltage_mv]: [3300]. +[bluetooth.profile.a2dp.source.enabled]: [true]. +[bluetooth.profile.asha.central.enabled]: [true]. +[bluetooth.profile.avrcp.target.enabled]: [true]. +[bluetooth.profile.bas.client.enabled]: [true]. +[bluetooth.profile.gatt.enabled]: [true]. +[bluetooth.profile.hfp.ag.enabled]: [true]. +[bluetooth.profile.hid.device.enabled]: [true]. +[bluetooth.profile.hid.host.enabled]: [true]. +[bluetooth.profile.map.server.enabled]: [true]. +[bluetooth.profile.opp.enabled]: [true]. +[bluetooth.profile.pan.nap.enabled]: [true]. +bluetooth.profile.pan.panu.enabled]: [true]. +[bluetooth.profile.pbap.server.enabled]: [true]. +[bluetooth.profile.sap.server.enabled]: [true]. +[bootreceiver.enable]: [0] +[build.version.extensions.ad_services]: [11]. +[build.version.extensions.r]: [11]. +[build.version.extensions.s]: [11]. +[build.version.extensions.t]: [11]. +[build.version.extensions.u]: [11]. +[cache_key.bluetooth.bluetooth_adapter_get_connection_state]: [2184677357365305812] ### selinux.txt @@ -241,9 +275,12 @@ This file is in TXT format and contains the output of the `adb shell getenforce` [*SELinux*](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) is a key security layer in Android. Changes to its configuration can be an indication of compromises to the security of the device. **Example:** +This file is in *txt* format and contains information about the security policy *SELinux* security policy applied on the device, indicating the mode it is in (*enforcing*, *permissive*, or *disabled*). +The ADB equivalent command of this module is as follows: ``` Enforcing +adb shell getenforce ``` **Learn more** @@ -252,6 +289,7 @@ Enforcing * [SELinux Project](https://github.com/selinuxproject) * [What is SELinux?](https://www.redhat.com/en/topics/linux/what-is-selinux) +Example of content returned by running AndroidQF and ADB command: ### settings\_global.txt @@ -270,11 +308,14 @@ It allows the identification of anomalous settings that could compromise the sec **Example:** +This file is in *txt* format and contains information about the preferences that apply identically to all defined users ([well-defined user](https://source.android.com/docs/devices/admin/multi-user#user_types)). Applications can read them, but cannot write them; these are preferences that the user must explicitly modify through the system user interface or specialized APIs for these values. ``` Phenotype_boot_count=68 adb_enabled=1 +The ADB equivalent command of this module is as follows: airplane_mode_on=0 bluetooth_on=1 +adb shell cmd settings list global boot_count=71 bug_report=0 default_device_name=Galaxy A14 5G @@ -283,6 +324,7 @@ phone_play_store_availability=0 require_password_to_decrypt=1 spam_call_enable=1 subscription_mode=0 +Example of content returned by running AndroidQF and ADB command: turnOff_5g_network_mode_set=0 wifi_networks_available_notification_on=0 wifi_on=1 @@ -315,13 +357,16 @@ It allows the identification of anomalous settings that could compromise the sec **Example:** +This file is in *txt* format and contains information about system security preferences that applications can read but not write. These are preferences that the user must explicitly modify through the user interface of a system application. Normal applications cannot modify the security settings database. ``` accessibility_allow_diagonal_scrolling=1 accessibility_button_mode=1 accessibility_button_target_component=com.android.settings/com.samsung.android.settings.accessibility.shortcut.AmplifyShortcut accessibility_display_magnification_enabled=0 +The ADB equivalent command of this module is as follows: accessibility_enabled=0 android_id=af4de9XXXXXXXXXX +adb shell cmd settings list secure autofill_service=null assistant=com.google.android.googlequicksearchbox/com.google.android.voiceinteraction.GsaVoiceInteractionService aware_enabled=0 @@ -331,6 +376,7 @@ bluetooth_settings_foreground=0 clipboard_show_access_notifications=0 default_input_method=com.samsung.android.honeyboard/.service.HoneyBoardService fingerprint_screen_lock=1 +Example of content returned by running AndroidQF and ADB command: location_mode=3 location_time_zone_detection_enabled=1 lockscreen.disabled=0 @@ -365,13 +411,16 @@ It allows the identification of anomalous settings that could compromise the sec ``` FOTA_CLIENT_POLLING_TIME=1710699386219 FOTA_CLIENT_REGISTRATION=1 +This file is in *txt* format and contains information about various general device preferences. These preferences affect the user experience and basic operation of the device. FOTA_CLIENT_TEST=0 SEM_VIBRATION_FORCE_TOUCH_INTENSITY=4 SEM_VIBRATION_NOTIFICATION_INTENSITY=5 SOFTWARE_UPDATE_LAST_CHECKED_DATE=1728477705778 SOFTWARE_UPDATE_WIFI_ONLY2=1 +The ADB equivalent command of this module is as follows: alarm_alert_set=1 anykey_mode=0 +adb shell cmd settings list system aod_mode=0 automatic_unlock=1 block_unwanted_call=1 @@ -380,6 +429,7 @@ lockscreen_sounds_enabled=1 lockscreen_wallpaper=1 login_state=0 mic_mode_enable=0 +Example of content returned by running AndroidQF and ADB command: mic_mode_wificall=0 samsung_errorlog_agree=1 tty_mode=0 @@ -426,6 +476,7 @@ The [*mkshrc* binary can be found in one of the following directories](https://a /apex/com.android.runtime/bin /apex/com.android.art/bin /system_ext/bin +This file is in *txt* format and contains information about the configuration of the terminal environment variables (shell) [*mkshrc*](http://mirbsd.de/mksh) which is used by Android. /system/bin /system/xbin /odm/bin @@ -457,8 +508,10 @@ ANDROID_ROOT=/system TERM=xterm-256color SHELL=/bin/sh ANDROID_BOOTLOGO=1 +The ADB equivalent command of this module is as follows: ANDROID_ASSETS=/system/app ANDROID_SOCKET_adbd=21 +adb shell env HOSTNAME=a14x DOWNLOAD_CACHE=/data/cache SECONDARY_STORAGE=/storage/sdcard:/storage/usb1:/storage/usb2 @@ -469,6 +522,7 @@ PATH=/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/syste SYSTEMSERVERCLASSPATH=/system/framework/com.android.location.provider.jar:/system/framework/knoxanalyticssdk.jar:/system/framework/mcfsdk.jar:/system/framework/uibc_java.jar:/system/framework/services.jar:/system/framework/semwifi-service.jar:/system/framework/ssrm.jar:/apex/com.android.adservices/javalib/service-adservices.jar:/apex/com.android.adservices/javalib/service-sdksandbox.jar:/apex/com.android.appsearch/javalib/service-appsearch.jar:/apex/com.android.art/javalib/service-art.jar:/apex/com.android.configinfrastructure/javalib/service-configinfrastructure.jar:/apex/com.android.healthfitness/javalib/service-healthfitness.jar:/apex/com.android.media/javalib/service-media-s.jar:/apex/com.android.ondevicepersonalization/javalib/service-ondevicepersonalization.jar:/apex/com.android.permission/javalib/service-permission.jar:/apex/com.android.rkpd/javalib/service-rkp.jar:/apex/com.samsung.android.shell/javalib/service-samsung-shell.jar ASEC_MOUNTPOINT=/mnt/asec ANDROID_I18N_ROOT=/apex/com.android.i18n +Example of content returned by AndroidQF execution: EXTERNAL_STORAGE=/sdcard ``` @@ -497,8 +551,23 @@ These files are in plain text with a .txt extension and contain the output of th The file contains the following structure: * Start of record (contains record divisions). +Example of content returned by ADB command execution: * Timestamp (timestamp). * Process and thread identifier (PID) and (TID). +_=/system/bin/env +ANDROID_DATA=/data +LOGNAME=shell +STANDALONE_SYSTEMSERVER_JARS=/apex/com.Android.btservices/javalib/service-bluetooth.jar:/apex/com.Android.devicelock/javalib/service-devicelock.jar:/apex/com.Android.os.statsd/javalib/service-statsd.jar:/apex/com.Android.os.statsd/javalib/service-statsd.jar:/apex/com.Android.scheduling/javalib/service-scheduling.jar.Android.scheduling/javalib/service-scheduling.jar:/apex/com.Android.tethering/javalib/service-connectivity.jar:/apex/com.Android.uwb/javalib/service-uwb.jar:/apex/com.Android.wifi/javalib/service-wifi.jar +HOME=/ +DEX2OATBOOTBOOTCLASSPATH=/apex/com.Android.art/javalib/core-oj.jar:/apex/com.Android.art/javalib/core-libart.jar:/apex/com.Android.art/javalib/okhttp.jar:/apex/com.Android.art/javalib/okhttp.jar:/apex/com.Android.art/javalib/bouncycastle.jar.Android.art/javalib/bouncycastle.jar:/apex/com.Android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/framework-location.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/frameworkwork-nfc.jar:/system/framework/telephony-ext.jar:/apex/com.Android.i18n/javalib/core-icu4j.jar +ANDROID_TZDATA_ROOT=/apex/com.Android.tzdata +USER=shell +ANDROID_ROOT=/system +TERM=xterm-256color +SHELL=/bin/sh +ANDROID_BOOTLOGO=1 +ANDROID_ASSETS=/system/app +BOOTCLASSPATH=/apex/com.Android.art/javalib/core-oj.jar:/apex/com.Android.art/javalib/core-libart.jar:/apex/com.Android.art/javalib/okhttp.jar:/apex/com.Android.art/javalib/bouncycastle.jar:/apex/com.Android.art/javalib/apache-xml.jar:/system/framework/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/framework-location.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/framework-n * Priority level: * E: Error * W: Warning @@ -508,39 +577,176 @@ The file contains the following structure: * V: Verbose * Label indicating the system component or process. * Description and details of messages or errors. +### mounts.json +The information in this file is generated by the [mounts.go] module (https://github.com/mvt-project/androidqf/blob/main/modules/mounts.go). **Why is this important?** +**Information contained This information can be used to analyze the behavior and execution of events in the system and apps on the device to identify anomalies or patterns that may indicate the presence of malware. In forensic terms, they are among the most relevant files in terms of content. +This file is in *json* format and contains information about the partitions and file system directories mounted on a device in user space and the Android linux kernel. +The ADB equivalent command of this module is as follows: **Example:** +adb shell "mount" +adb shell "cat /proc/mounts". ``` --------- beginning of crash +The *mount* command reads information directly from the kernel, which reflects a list of the file systems mounted on the device. The *cat /proc/mounts* command directly accesses the */proc/mounts* file, which is a virtual file generated and managed by the Android linux kernel. This file accurately reflects in real time the exact state of all file systems mounted on the device, including partitions, logical volumes and temporary file systems. 2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: FATAL EXCEPTION: main +The format in which the assembly points are presented is as follows: 2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: Process: example.android.app, PID: 12345 2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate receiver example.android.app.MyBroadCastReceiver 2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: at android.app.ActivityThread.handleReceiver(ActivityThread.java:4861) 2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 2025-01-01 00:00:00.000 30144 30860 I ActivityManager: Process example.android.app has died. +Where each parameter means the following: ``` +* **device**: Partition or mounted volume, in Android the most common ones are: + * Physical storage partitions + /dev/block/sdX: Physical storage device ([eMMC/UFS](https://new.c.mi.com/es/post/11738)) exposed as sd by the kernel. + /dev/block/mmcblk: eMMC storage device presented as mmcblk. + /dev/block/dm-X: Device managed by device-mapper (encrypted, verity or logical partitions). + /dev/block/by-name/: Symbolic links pointing to real partitions by name e.g. system, vendor, userdata. + * Virtual kernel volume in RAM + * proc: Virtual interface to obtain kernel and process information. + * sysfs: exposes device, driver and kernel parameter information. + * selinuxfs: Displays SELinux policies, status and labels. + * tracefs: virtual system for kernel tracing and debugging tools. + * pstore: Stores persistent kernel crash logs. + * bpf: Exposes interfaces for [eBPF](https://source.android.com/docs/core/architecture/kernel/bpf) programs loaded in the kernel. + * User space + /dev/fuse: Interface [FUSE](https://source.android.com/docs/core/storage/fuse-passthrough) used by Android to mount emulated storage p.j /storage/emulated. + * Internal kernel control interfaces + * none: Identifier indicating that the assembly does not come from a real device. + * binder: Android's internal [IPC system](https://source.android.com/docs/core/architecture/ipc/binder-overview) for inter-process communication. + * APEX files mounted as loopback + /dev/block/loopX: Loop devices used to mount APEX packages as if they were real partitions. +* mount point**: Path of the root folder of the storage where the information is accessed, in android they are usually the following: + /system: Contains the main operating system. + * Vendor: Includes components and drivers provided by the hardware manufacturer such as HALs, firmware and vendor-specific binaries. + * product: Stores manufacturer's customizations of system functions and device-specific applications. + /data: User data area and app storage. + * cache: Temporary space used for update files and transient system data. + * Metadata: Contains critical device information needed for [AVB](https://source.android.com/docs/security/features/verifiedboot/avb), encryption and system validations. + /mnt/media\_rw/: Mounting point for removable or adopted storage e.g. SD card + /storage/emulated: Emulated view of user's internal storage. + /proc: Virtual system that exposes kernel and process information (not real storage). + /sys: Virtual system that exposes information about devices and kernel drivers. + /mnt/user/0/emulated: Specific view of the emulated storage for user 0. +* **file system type**: File system type, in android are as follows: + * ext4: Linux file system used on internal partitions. + * f2fs: File system optimized for flash storage. + * erofs: Optimized read-only file system. + * vfat: FAT32 file system used for SD cards and external storage. + * sdfat: Extended implementation of FAT/exFAT. + * tmpfs: Temporary RAM file system used for volatile directories e.g. /dev, /run, /apex. + * proc: Virtual file system that exposes kernel and process information. + * sysfs: Virtual system that displays hardware information, drivers and kernel drivers. + * selinuxfs: Virtual system that exposes SELinux parameters and status on the device. + * functionfs: System used for [USB gadget](https://source.android.com/docs/core/permissions/usb-hal) interfaces when Android acts as a USB device. + * incremental-fs: System designed to allow installing or running apps "on demand" while they are still downloading. + * binder: Android IPC internal communication system. + * cgroup: Virtual system based on control groups to manage resources by processes e.g. CPU, memory. CPU, memory. + * fuse: User-space file system used for emulated storage. +* options**: Assembly parameters, these may vary according to the assembly. + * Access modes + * ro: read only + * rw: read an write + * Safety labels + * seclabel: Enables and applies SELinux labels to the file system. + * nodev: Prevents device files from being used in that partition. + * nosuid: Block binaries with [set-UID/set-GID](https://www.cbtnuggets.com/blog/technology/system-admin/linux-file-permissions-understanding-setuid-setgid-and-the-sticky-bit) to avoid scaling. + * noexec: Prevents executing files from that partition. + * hidepid=invisible: Hides processes from other users in */proc*. + * user\_xattr: Allows user-defined extended attributes. + * acl: Allows more detailed access control lists than *rwx*. + * inlinecrypt: Uses inline encryption supported by hardware/FS (Android). + * usrquota: Enables per-user quotas (limited space). + * grpquota: Enables quotas per group. + * Time stamps associated to files and directories + * lazytime: Defer writing timestamps to storage to improve performance. + * relatime: Update access times only if necessary. + * noatime: Disables the access time update. + * Users related to assemblies + * uid=0: Owner of the assembly, who is the *root* user. + * gid=1000: Android base group which is usually *system* or *media_rw*, depending on context. + * user\_id=0: Main user of the Android system. + * group\_id=0: Primary group of the root user. **Learn more** +**Why is it important? +The mount points allow you to identify the storage areas mounted on the device, their origin and how they are configured. * [Logcat command-line tool | Android Studio | Android Developers](https://developer.android.com/tools/logcat) +With this information it is possible to know the permissions with which the partitions were mounted, the associated users and in some cases the SELinux security labels applied. +This is useful for identifying mounts that may be suspicious of malicious activity on the device, for example, a system partition such as /system, /vendor, /product partitions whose mount is usually read-only is mounted with write permissions or lacking security labels or a partition such as /data is mounted with read permissions on subfolders containing application information could indicate unauthorized fraudulent mounts evidencing highly suspicious behavior. ### dumpsys.txt +**Example of file contents** **Example of file contents** **Example of file contents** **Example of file contents The information in this file is generated by the [dumpsys.go](https://github.com/mvt-project/androidqf/blob/main/modules/dumpsys.go) module. +Example of content returned by AndroidQF execution: **What is included in this file?** +[ + "/dev/block/dm-13 on / type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround).", + "tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=2839372k,nr_inodes=709843,mode=755)", + "devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600,ptmxmode=000)", + "proc on /proc type proc (rw,relatime,gid=3009,hidepid=invisible)", + "sysfs on /sys type sysfs (rw,seclabel,relatime)", + "selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)", + "tmpfs on /mnt type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=2839372k,nr_inodes=709843,mode=755,gid=1000)", + "tmpfs on /mnt/installer type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=2839372k,nr_inodes=709843,mode=755,gid=1000)", + "tmpfs on /mnt/androidwritable type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=2839372k,nr_inodes=709843,mode=755,gid=1000)", + "/dev/block/sda44 on /metadata type f2fs (rw,sync,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,nogc_merge,discard,discard_unit=block,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,barrier,extent_cache,data_flush,mode=adaptive,active_logs=6,inlinecrypt,alloc_mode=reuse,checkpoint_merge,fsync_mode=strict,memory=normal)", + "/dev/block/dm-14 on /vendor type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-15 on /vendor_dlkm type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround).", + "/dev/block/dm-16 on /system_dlkm type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround).", + "/dev/block/dm-17 on /product type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-18 on /odm type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-19 on /prism type ext4 (ro,seclabel,relatime)", + "/dev/block/dm-20 on /optics type ext4 (ro,seclabel,relatime)", + "tmpfs on /apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755)", + "tmpfs on /bootstrap-apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755)", + "tmpfs on /linkerconfig type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755)", + This is a plain text file (.txt) that contains the result of the command `adb shell dumpsys` This command provides detailed information about running services, including processes and applications. +Example of content returned by ADB command execution: The file is split in the the following sections: +/dev/block/mmcblk0p63 on / type ext4 (ro,seclabel,relatime,discard) +tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=1812632k,nr_inodes=453158,mode=755) +devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600,ptmxmode=000) +proc on /proc type proc (rw,relatime,gid=3009,hidepid=2) +sysfs on /sys type sysfs (rw,seclabel,relatime) +selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) +tmpfs on /mnt type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755,gid=1000) +tmpfs on /mnt/installer type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755,gid=1000) +tmpfs on /mnt/Androidwritable type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755,gid=1000) +/dev/block/mmcblk0p61 on /vendor type ext4 (ro,seclabel,relatime,discard) +tmpfs on /apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755) +tmpfs on /bootstrap-apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755) +tmpfs on /linkerconfig type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755) +none on /dev/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) +none on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime) +none on /dev/cpuctl type cgroup (rw,nosuid,nodev,noexec,relatime,cpu) +none on /dev/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent) +none on /dev/memcg type cgroup (rw,nosuid,nodev,noexec,relatime,memory) +none on /dev/stune type cgroup (rw,nosuid,nodev,noexec,relatime,schedtune) * List of active services +To learn more: * Details of running services +* [Android partitions overview](https://source.android.com/docs/core/architecture/partitions?hl=es-419) +* [Background and terminology of dynamic partitions](https://source-android-com.translate.goog/docs/core/ota/virtual_ab?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sge#background) +* [File System of Android](https://medium.com/@aditi.kale20/file-system-of-android-a89dcbb693f1) +* [Android kernel file system support](https://source-android-com.translate.goog/docs/core/architecture/android-kernel-file-system-support?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=tc) +* [SELinux compatibility](https://source.android.com/docs/security/features/selinux/compatibility) +* [APEX file format](https://source.android.com/docs/core/ota/apex) +* [Android file system](https://keepcoding.io/blog/sistema-de-ficheros-android/) * Status and flags of some services [Dumpsys](https://developer.android.com/tools/dumpsys) is a powerful ADB tool, and in addition to what is collected through androidqf, there are additional options to be used to further explore the network services, battery, and input diagnostics. @@ -550,7 +756,9 @@ The file is split in the the following sections: **Why is this important?** This file provides information about the services running on a device and the flags and logs they generate. This is useful from a forensic standpoint since it can help identify known services or processes that are suspicious. +These files are in plain text with extension .*txt* and contain the system message log on two levels: current logs of all buffers (logcat.txt) and logs prior to the last reboot (logcat_old.txt). +Some examples of the information contained are: **Example:** ``` @@ -571,8 +779,13 @@ Currently running services: audio auth battery +The ADB equivalent command of this module is as follows: batteryproperties batterystats +#Equivalent command for current records +adb shell logcat -d -b all "*:V" +#Equivalent command for previous records +adb shell logcat -L -b all "*:V" bluetooth_manager bugreport cpuinfo @@ -585,8 +798,30 @@ Currently running services: netstats ostats_pullerd ostats_tpd +09-06 10:36:55.111 544 544 I snet_event_log: [121035042,-1,] +09-06 10:36:55.125 544 544 I auditd : SELinux: Loaded service context from: +09-06 10:36:55.125 544 544 I auditd : /system/etc/selinux/plat_service_contexts +09-06 10:36:55.125 544 544 I auditd : /system_ext/etc/selinux/system_ext_service_contexts +09-06 10:36:55.125 544 544 I auditd : /product/etc/selinux/product_service_contexts +09-06 10:36:55.125 544 544 I auditd : /vendor/etc/selinux/vendor_service_contexts ostatsd +09-06 10:36:55.187 0 0 0 I : [ 0.000000,0] Booting Linux on physical CPU 0x0 +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Linux version 4.9.337-perf+ (root@7954fa367a89) (Android (10087095, +pgo, +bolt, +lto, -mlgo, based on r487747c) clang version 17.0.2 (https://Android.googlesource.com/toolchain/llvm-project d9f89f4d16663d5012e5c0949595f3b30ece3d2362)) #1 SMP PREEMPT Sun Sep 15 06:15:22 UTC 2024 +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Boot CPU: AArch64 Processor [51af8014] +09-06 10:36:55.187 0 0 0 I [ 0.000000,0] Machine: ocean +09-06 10:36:55.187 0 0 0 I [ 0.000000,0] efi: Getting EFI parameters from FDT: +09-06 10:36:55.187 0 0 0 I [ 0.000000,0] efi: UEFI not found. +09-06 10:36:55.187 0 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x00000000008f800000, size 8 MiB +09-06 10:36:55.187 0 0 0 I [ 0.000000,0] OF: reserved mem: initialized node gpu_region@0, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x000000000000c7800000, size 8 MiB +09-06 10:36:55.187 0 0 0 I [ 0.000000,0] OF: reserved mem: initialized node adsp_shmem_device_region@0xc0100000, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x0000000000000, size 20 MiB +09-06 10:36:55.187 0 0 0 I [ 0.000000,0] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x0000000000fe800000, size 4 MiB +09-06 10:36:55.187 0 0 0 I [ 0.000000,0] OF: reserved mem: initialized node qseecom_ta_region, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 0 I : [ 0.000000,0] Reserved memory: created package +2025-01-01 00:00:00.000 30144 30860 I ActivityManager: Process example.android.app permission phone power @@ -600,6 +835,7 @@ Currently running services: window ------------------------------------------------------------------------------- +This file is in *txt* format and contains diagnostic information about the services on the device. The dumpsys report provides technical details about the status of services and system components which is very useful for identifying abnormal configurations or behavior. DUMP OF SERVICE AtlasService: --------- 0.001s was the duration of dumpsys AtlasService, ending at: 2025-05-08 18:12:33 ------------------------------------------------------------------------------- @@ -607,9 +843,12 @@ DUMP OF SERVICE DockObserver: Current Dock Observer Service state: reported state: 0 previous state: 0 +To know the list of services that can be found in a *dumpsys* of a device you can execute the command `adb shell service list`. actual state: 0 +The ADB equivalent command of this module is as follows: --------- 0.007s was the duration of dumpsys DockObserver, ending at: 2025-05-08 18:12:33 ------------------------------------------------------------------------------- +adb shell dumpsys DUMP OF SERVICE ISubsysRadio: --------- 0.005s was the duration of dumpsys ISubsysRadio, ending at: 2025-05-08 18:12:33 ------------------------------------------------------------------------------- @@ -618,6 +857,7 @@ DUMP OF SERVICE MMListService: ------------------------------------------------------------------------------- DUMP OF SERVICE OPLUSExService: --------- 0.001s was the duration of dumpsys OPLUSExService, ending at: 2025-05-08 18:12:33 +Example of content returned by running AndroidQF and ADB command: ------------------------------------------------------------------------------- DUMP OF SERVICE OplusLocationManager: --------- 0.001s was the duration of dumpsys OplusLocationManager, ending at: 2025-05-08 18:> @@ -707,6 +947,7 @@ The files and folders included in the bugreport are as follows: * `fs/data/misc/recovery/` * **ro.buil.fingerprint** + Op WRITE_CONTACTS: * Contains a unique identifier of the software version installed on the device. * **ro.build.fingerprint.1** * Contains a variant of the compilation number of the device. @@ -730,6 +971,7 @@ The bugreport is highly valuable from a forensic standpoint since it contains in * [How to capture and interpret android bugreport](https://developer.android.com/studio/debug/bug-report) * [Reading bug reports](https://source.android.com/docs/core/tests/debug/read-bug-reports) +This is a compressed file in *zip* format and contains a complete report on the current status of the device including system data, logs and settings. ### logs/ @@ -758,8 +1000,10 @@ The files and folders included are: * `log/batterystats/` * **newbatterystats240905095247** * File with metrics about energy consumption of the device. +The ADB equivalent command of this module is as follows: * `log/dropbox.txt` +adb bugreport bugreport.zip * **dropbox.txt** * File with logs from DropBoxManager. @@ -767,8 +1011,11 @@ The files and folders included are: * **dumpstate_debug_history.lst** * File with history of dumpstate executions. +**Example of file contents** **Example of file contents** **Example of file contents** **Example of file contents * `log/dumpstate_lastkmsg_20240423_152746_0_MP.log.gz` * **dumpstate_lastkmsg_20240423_152746_0_MP.log.gz** +/data/user_de/0/com.Android.shell/files/bug...kipped. 41.5 MB/s (4519231 bytes in 0.104s) +Bug report copied to bugreport.zip * File with the last kernel message after an unexpected reboot. * `log/dumpstate_latest_lastkmsg.log.gz` @@ -781,20 +1028,126 @@ The files and folders included are: * `log/dumpstate_sys_error.zip` * **dumpstate_sys_error.zip** +This folder contains a list of files and system and application log files from the following paths: * File with information about critical system errors. +* /data/system/uiderrors.txt +* /proc/kmsg +/proc/last_kmsg +* /sys/fs/pstore/console-ramoops +* /data/anr/ +* /data/log/ * `log/lom_log.txt` +Some may not be accessible due to device permissions. * **lom_log.txt** * File with logs from storage or system monitoring processes. - +* anr + * anr_yyyy-mm-dd-hh-mm-ss + * File that provides a detailed diagnosis of the system status and activity of a specific process. +* log + * acore + * 0_dump_all.zip + * File containing a dump of the system state associated with the acore process. + * batterystats + * newbatterystats240905095247 + * File containing metrics on the device's energy usage. + * dropbox.txt + * File containing logs of system events managed by DropBoxManager. + * dumpstate_debug_history.lst + * File containing the execution history of the system log collection process. + * dumpstate_lastkmsg_20240423_152746_0_MP.log.gz + * File containing the last kernel message after an unexpected reboot. + * dumpstate_latest_lastkmsg.log.gz + * File containing the most recent persistent kernel log after a reboot. + * dumpstate-stats.txt + * File containing statistics generated during the collection of the system status. + * dumpstate_sys_error.zip + * Compressed file containing information about critical system errors. + * lom_log.txt + * File containing records related to storage or monitoring of the system. + * pm_debug_info.txt + * File containing debugging information from the system package manager. + * power_off_reset_reason.txt + * File indicating the cause of the last shutdown or restart of the device. + * prev_dump.log + * File containing a pre-capture of the system state before a critical event. + * radio_PRECONFG_SET.log + * File documenting the initial configuration of the device's radio module. + * shutdown_profile.1.txt + * File containing the shutdown profile recorded by the system. + * shutdown_profile_latest.txt + * File containing the profile of the most recent system shutdown. + * err/ + * mobiledata_dns.dat + * File containing errors related to DNS resolution in mobile networks. + * mobiledata_tp2.dat + * File containing errors in the transfer of mobile packets. + * mobiledata_tp.dat + * File containing errors in the transfer of mobile packets. + * ewlogd/ + * ewlog0_20240920_144426188369.log + * File containing logs of system events generated by the ewlogd service. + * imscr/ + * imscr.log.0 + * File containing records of the IMS component for communication services. + * wto/ + * cidmanager.log + * File containing information from the operator code manager (CID). + * csc_update_log.txt + File containing the CSC customization package update log. + * home_fota_update_log.txt + * File containing logs of FOTA updates in home network. + * prev_csc_log.txt + * File containing a previous configuration history of the operator. + * search + * 0_com.samsung.android.scs_index_encrypted.tar.gz + * Encrypted compressed file containing data from the system's search index. + * sfslog/ + * sfslog.0.gz + * Compressed file containing Secure File System (SFS) records. + * smartswitch/ + * 1726696227738SmartSwitchSimpleLog.log + * File containing records of the data transfer process via Smart Switch. + * update_engine_log/ + * update_engine.20240603-222843 + * File containing records of the system software update engine. + * wfd + * wfdDumpSource.log + * File containing logged activity of the Wifi direct (WFD) component. + * wifi +* system +* proc + * kmsg + * File containing the current kernel log with low-level system activity. + * last_kmsg + * File containing the last persistent kernel log after a reboot. +* sys/ + * fs/ + * pstore/ + +The equivalent ADB commands for this module are as follows: +Equivalent command for recursive listing of each folder: * `log/pm_debug_info.txt` * **pm_debug_info.txt** +adb shell "ls -R /data/anr/" +adb shell "ls -R /data/log/" +adb shell "ls -R /sdcard/log/" * File with logs and information of the debugger for the system packet manager. +Equivalent command for downloading each file: * `log/power_off_reset_reason.txt` +adb pull /data/system/uiderrors.txt +adb pull /proc/kmsg +adb pull /proc/last_kmsg +adb pull /sys/fs/pstore/console-ramoops +adb pull /data/anr/ +adb pull /data/log/ +adb pull /sdcard/log/ * **power_off_reset_reason.txt** * File with information about the last reboot or system shutdown. +**Why is it important? +This information is important because it collects system and application log files, providing detailed information about errors and other device events. This provides insight into system behavior, detects failures, identifies execution traces or anomalies. * `log/prev_dump.log` * **prev_dump.log** * File with system information before a critical event. @@ -803,6 +1156,7 @@ The files and folders included are: * **radio_PRECONFG_SET.log** * File with initial configuration information for the radio module of the device. +This file is in json format and contains a list of applications installed on the device providing information about them such as the name of the installed package, the path where it is located, installation source, its current status or if it is a third party application. * `log/shutdown_profile.1.txt` * **shutdown_profile.1.txt** * File with the shutdown profile recorded by the system. @@ -814,17 +1168,21 @@ The files and folders included are: * `log/err/` * **mobiledata_dns.dat** * File with errors on DNS resolution using mobile data. +The ADB equivalent command of this module is as follows: * **mobiledata_tp2.dat** * File with errors in data packet transfer for mobile data. +adb shell pm list packages -f * **mobiledata_tp.dat** * File with errors in data packet transfer for mobile data. * `log/ewlogd/` * **ewlog0_20240920_144426188369.log** * System logs generated by the service *ewlogd*. +The content of this file includes information that allows identifying installed applications and their origin, location and trust status on the device. This helps analysts to assess whether there are risky or malicious applications, what permissions they have and which ones can compromise security. * `log/imscr/` * **imscr.log.0** +Example of content returned by AndroidQF execution: * Logs of the IMS communication component. * `log/omc/` @@ -865,8 +1223,28 @@ The files and folders included are: ## Processes and applications +Example of ADB package listing command output: ### packages.json +package:/system/system_ext/priv-app/QuickAccessWallet/QuickAccessWallet.apk=com.Android.systemui.plugin.globalactions.wallet +package:/apex/com.Android.mediaprovider/priv-app/MediaProvider@AP2A.240905.003/MediaProvider.apk=com.Android.providers.media.module +package:/system/product/overlay/IconPackCircularAndroid/IconPackCircularAndroidOverlay.apk=com.Android.theme.icon_pack.circular.Android +package:/system/app/MotoSignatureApp/MotoSignatureApp.apk=com.motorola.motosignature.app +package:/system/product/priv-app/Eleven/Eleven.apk=org.lineageos.eleven +package:/system/app/BookmarkProvider/BookmarkProvider.apk=com.Android.bookmarkprovider +package:/system/app/CaptivePortalLogin/CaptivePortalLogin.apk=com.Android.captiveportallogin +package:/system/product/overlay/IconPackFilledSystemUI/IconPackFilledSystemUIOverlay.apk=com.Android.theme.icon_pack.filled.systemui +package:/apex/com.Android.adservices/priv-app/AdServicesApk@AP2A.240905.003/AdServicesApk.apk=com.Android.adservices.api +package:/system/system_ext/app/AccessibilityMenu/AccessibilityMenu.apk=com.Android.systemui.accessibility.accessibilitymenu +package:/system/product/priv-app/MotCamera2/MotCamera2.apk=com.motorola.camera2 +package:/apex/com.Android.uwb/priv-app/ServiceUwbResources@AP2A.240905.003/ServiceUwbResources.apk=com.Android.uwb.resources +package:/system/system_ext/app/MotoActions/MotoActions.apk=org.lineageos.settings.device +package:/system/product/priv-app/AndroidAutoStub/AndroidAutoStub.apk=com.google.Android.projection.gearhead +package:/system/product/overlay/LineageSettingsProvider__lineage_ocean__auto_generated_rro_product.apk=org.lineageos.lineagesettings.auto_generated_rro_product__ +package:/apex/com.Android.cellbroadcast/priv-app/CellBroadcastServiceModule@AP2A.240905.003/CellBroadcastServiceModule.apk=com.Android.cellbroadcastservice +package:/apex/com.Android.cellbroadcast/priv-app/CellBroadcastApp@AP2A.240905.003/CellBroadcastApp.apk=com.Android.cellbroadcastreceiver.module +package:/system/system_ext/app/QtiTelephonyService/QtiTelephonyService.apk=com.qualcomm.qti.telephonyservice +package:/system/product/overlay/FontRubik/FontRubikOverlay.apk=org.lineageos.overlay.font.rubik The information in this file is generated by the module [packages.go](https://github.com/mvt-project/mvt/blob/main/src/mvt/android/modules/adb/packages.py). **What is included in this file?** @@ -879,17 +1257,24 @@ The file contains: * **files**: Path of the APK file, including also the file hashes and certificate information. * **installer**: Information indicating from which app was installed. * **uid**: The PID associated with the app execution. +The ADB equivalent command of this module is as follows: * **disabled**: Indicates if the app is disabled or not. * **system**: Indicates if the package is part of the operating system packages. +adb pull * **third\_party**: Indicates if the app is from a third party. **Why is this important?** This file contains information about the applications installed on the devices and whether they are enabled or not. The list of apps, and app names are often used as indicators to signal a potentially malicious application. By exploring the apps, their permissions and settings it might be possible to understand their usage of data and their intent. +**Example of file contents** **Example of file contents** **Example of file contents** **Example of file contents **Example:** +Example of content returned by executing ADB command to download APKs: ``` +$ adb pull +/system/system_ext/priv-app/QuickAccessWallet/QuickAccessWallet.apk +/system/system_ext/priv-app/QuickAccessWallet... 0 skipped. 8.6 MB/s (745270 bytes in 0.083s) [ { "name": "com.whatsapp", @@ -899,11 +1284,14 @@ This file contains information about the applications installed on the devices a "local_name": "", "md5": "a6014f075183b8872d115e04f546a19a", "sha1": "7c52f9781c44c4902aecb4fc8a13584998e02376", +This file is in *json* format and contains detailed information about the running processes. "sha256": "26721b2669943d57f9de57614a11077b7c3f3036396d48c3e54cbf0effd2268e", "sha512": "21bea0ff94a748826041a1a8b3b9189090340086469ec62d31cf0d263c743fc2e> "error": "", +The ADB equivalent command of this module is as follows: "verified_certificate": true, "certificate": { +adb shell ps -A "Md5": "556c6019249bbc0cab70495178d3a9d1", "Sha1": "38a0f7d505fe18fec64fbf343ecaaaf310dbd799", "Sha256": "3987d043d10aefaf5a8710b3671418fe57e0e19b653c9df82558feb5ffce5> @@ -912,6 +1300,7 @@ This file contains information about the applications installed on the devices a "Issuer": "C=US, ST=California, L=Santa Clara, O=WhatsApp Inc., OU=Engin> "Subject": "C=US, ST=California, L=Santa Clara, O=WhatsApp Inc., OU=Engi> "SignatureAlgorithm": "DSA-SHA1", +Example of content returned by AndroidQF execution: "SerialNumber": 1277507236 }, "certificate_error": "", @@ -974,8 +1363,36 @@ This file provides additional information about the processes that are executed "cwd": "/" }, { +Example of content returned by ADB command execution: "pid": 2, "uid": 0, +USER PID PPID VSZ RSS RSS WCHAN ADDR S NAME +root 1 0 11066580 10020 0 0 S init +root 2 0 0 0 0 0 0 0 0 S [kthreadd] [kthreadd] root 2 0 0 0 0 0 0 0 0 S +root 4 2 2 0 0 0 0 0 S [kworker/0:0H] +root 5 2 2 0 0 0 0 0 0 S [kworker/u16:0] +root 6 2 0 0 0 0 0 0 S [ksoftirqd/0] [ksoftirqd/0] root 6 2 0 0 0 0 0 0 S +root 7 2 2 0 0 0 0 0 0 S [rcu_preempt] +root 8 2 2 0 0 0 0 0 0 S [rcu_sched] +root 9 2 2 0 0 0 0 0 0 S [rcu_bh] +root 10 2 2 0 0 0 0 0 0 S [rcuop/0] +root 11 2 0 0 0 0 0 0 0 0 S [rcuos/0] +root 12 2 0 0 0 0 0 0 0 S [rcuob/0] +root 13 2 0 0 0 0 0 0 0 S [migration/0] +root 14 2 0 0 0 0 0 0 S [lru-add-drain] [lru-add-drain] root 14 2 0 0 0 0 0 +root 15 2 0 0 0 0 0 0 0 S [cpuhp/0] +root 16 2 0 0 0 0 0 0 0 S [cpuhp/1] +system 987 1 10866216 3536 0 0 0 S Android.hardware.graphics.allocator@2.0-service +system 988 1 11113564 10352 0 0 0 S Android.hardware.graphics.composer@2.1-service +system 989 1 10791636 3268 0 0 0 S Android.hardware.health@2.1-service +system 990 1 10784848 3080 0 0 0 S Android.hardware.light@2.0-service.msm8953 +system 991 1 10836444 3044 0 0 0 S Android.hardware.memtrack@1.0-service +system 992 1 10866528 4276 0 0 S Android.hardware.power-service-qti +system 996 1 10820064 2996 0 0 0 S Android.hardware.thermal@1.0-service +system 999 1 10802340 3188 0 0 0 S Android.hardware.usb@1.0-service +wifi 1002 1 11082236 5180 0 0 S Android.hardware.wifi-service +system 1003 1 10870516 3864 0 0 0 S vendor.display.color@1.0-service +system 1004 1 10830264 3552 0 0 S vendor.lineage.health-service.default "ppid": 0, "pgroup": 0, "psid": 0, @@ -988,11 +1405,14 @@ This file provides additional information about the processes that are executed "context": "u:r:kernel:s0", "previous_context": "u:r:kernel:s0", "command_line": null, +This file is in *txt* format and contains detailed information about the running services. "env": null, "cwd": "" }, +The ADB equivalent command of this module is as follows: { "pid": 20430, +adb shell service list "uid": 0, "ppid": 0, "pgroup": 0, @@ -1001,6 +1421,7 @@ This file provides additional information about the processes that are executed "priority": 0, "state": "", "user_time": 0, +Example of content returned by running AndroidQF and ADB command: "kernel_time": 0, "path": "", "context": "u:r:untrusted_app:s0:c11,c257,c512,c768", @@ -1074,6 +1495,7 @@ Found 368 services: 252 processinfo: [android.os.IProcessInfoService] 253 procstats: [com.android.internal.app.procstats.IProcessStats] 255 recovery: [android.os.IRecoverySystem] +This file is in *json* format and contains a list of binaries to know if they are present in the system. 273 sensorservice: [android.gui.SensorServer] 274 serial: [android.hardware.ISerialManager] 276 settings: [] @@ -1092,8 +1514,19 @@ Found 368 services: 367 window: [android.view.IWindowManager] ``` +The equivalent ADB commands for this module are as follows: **Learn more:** +adb shell "which -a su" +adb shell "which -a busybox +adb shell "which -a supersu" +adb shell "which -a Superuser.apk". +adb shell "which -a KingoUser.apk". +adb shell "which -a SuperSu.apk". +adb shell "which -a magisk" +adb shell "which -a magiskhide" +adb shell "which -a magiskinit" +adb shell "which -a magiskpolicy" * [How services work on Android](https://developer.android.com/develop/background-work/services9) ### root\_binaries.json @@ -1109,7 +1542,9 @@ The binaries included are commonly used to obtain root access, or to elevate pri * su * busybox * supersu +When the module identifies rooting-related binaries in the standard system paths on the device, it will contain a list of these paths to the detected binaries. * Superuser.apk +Example of content returned by running AndroidQF and ADB command: * KingoUser.apk * SuperSu.apk * magisk @@ -1136,24 +1571,33 @@ In case the device is rooted, the command will provide a list of the binaries fo ``` [ "/system/xbin/su", +This file is in binary format and contains data related to the backup of applications and device settings. The binary data in this file is compressed and includes sensitive device information. "/system/bin/su", +Depending on the option selected in androidqf the content of the file can be only SMS or it can be a copy of data from those applications that have declared in their manifest the possibility of making copies. It is worth noting that this feature is rarely used nowadays, so it does not represent a reliable backup of the device. "/data/local/xbin/su", "/data/local/bin/busybox", "/sbin/su", +The equivalent ADB commands for this module are as follows: +Equivalent command for SMS only: "/su/bin/magisk", "/system/bin/.ext/.su", +adb backup com.Android.providers.telephony "/data/local/tmp/Superuser.apk", "/data/local/tmp/magiskhide" +Equivalent command for full backup: ] +adb backup -all ``` ## Information backed up from the device +This information allows to generate a backup copy of the device, which helps to keep relevant evidence such as SMS or system configurations. It also facilitates the preservation of information potentially related to security incidents or phishing attacks in an integral manner with possibilities to be used for further analysis. ### backup.ab The information on this file is generated by the [backup.go](https://github.com/mvt-project/androidqf/blob/main/modules/backup.go) module. This module is specifically designed to create security copies of data stored on Android devices. +Example of content returned by AndroidQF execution: **What is included in this file?** @@ -1184,6 +1628,7 @@ When SMS backup is allowed, the information from the SMS messages can be used to ``` **Learn more:** +This file is in *json* format and generates a record of files and metadata in the following paths: * [Extracción de archivos de respaldo | Android Backup Extractor](https://github.com/nelenkov/android-backup-extractor) * [Analysis of Android backup file](https://digitalforensicforest.com/2016/01/28/android-backup-file-ab-analysis/) @@ -1202,12 +1647,29 @@ This is a file in *json* format that contains the result of using the find comma * /system\_ext/ * /vendor/ * /cust/ +The equivalent ADB commands for this module are as follows: * /product/ * /apex/ +adb shell "find /sdcard/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /system/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /system_ext/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /vendor/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /cust/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /product/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /apex/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/local/tmp/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/media/0/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/misc/radio/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/vendor/secradio/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/log/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /tmp/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find / -maxdepth 1 -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/data/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" * /data/local/tmp/ * /data/media/0/ * /data/misc/radio/ * /data/vendor/secradio/ +Example of content returned by AndroidQF execution: * /data/log/ * /tmp/ * / @@ -1234,8 +1696,30 @@ Information in this file can be helpful to identify malicious files or traces of "modified_time": 1722868692, "access_time": 1714937715, "error": "", +Example of content returned by ADB command execution: "context": "u:object_r:fuse:s0", "sha1": "", +1762885286.638000649 770 3464 root everybody /sdcard/ +1762885284.208000407 770 3464 root everybody /sdcard/Android +1762886328.989657481 771 3464 root sdcard_rw /sdcard/Android/data +1230768000.0 755 4096 root root root /system/ +1230768000.0 755 16384 root root /system/lib +1230768000.0 644 56516 root root root /system/lib/aaudio-aidl-cpp.so +174618780.323371170 755 4096 root root root /system_ext/ +1230768000.0 755 4096 root root root /system_ext/lib +1230768000.0 644 197552 root root root /system_ext/lib/com.qualcomm.qti.imscmservice@2.0.so +1230768000.0 755 4096 root shell /vendor/ +1230768000.0 755 4096 root shell /vendor/vendor_dlkm +1230768000.0 755 4096 root shell /vendor/vendor_dlkm/etc +174618784.276704897 755 4096 root root root /product/ +174618779.613371100 755 4096 root root root /product/lib +174618779.620037767 644 943652 root root root /product/lib/libjni_latinimegoogle.so +210875820.303334210 755 1380 root root root /apex/ +210875816.683333849 771 3464 shell shell shell /data/local/tmp/ +1726625293.972938149 755 4096 root root root / +210875815.30000351 710 80 shell everybody /storage +1230768000.0 644 11 root root root /etc +1762885284.64667059 771 24576 system system /data/data/ "sha256": "", "sha512": "", "md5": "" @@ -1244,4 +1728,4 @@ Information in this file can be helpful to identify malicious files or traces of ## Comments -Do you have any **comment or suggestion** about this resource? You can use the **comment function provided below** to leave your ideas, corrections or thoughts. Please make sure to follow our [code of conduct](../../community/code-of-conduct/) when leaving your comment. If you prefer, you can also participate in the discussion directly in the [github repository](https://github.com/Socialtic/forensics/discussions). +Do you have any **comment or suggestion** about this resource? You can use the **comment function provided below** to leave your ideas, corrections or thoughts. Please make sure to follow our [code of conduct](../../community/code-of-conduct/) when leaving your comment. If you prefer, you can also participate in the discussion directly in the [github repository](https://github.com/Socialtic/forensics/discussions). \ No newline at end of file diff --git a/docs/es/references/01-reference-androidqf-dictionary/index.md b/docs/es/references/01-reference-androidqf-dictionary/index.md index 73399707f..5d45f217a 100644 --- a/docs/es/references/01-reference-androidqf-dictionary/index.md +++ b/docs/es/references/01-reference-androidqf-dictionary/index.md @@ -4,12 +4,12 @@ summary: dictionary of androidqf resulting files keywords: android, androidqf, reference lang: es tags: [explainer, intro] -last_updated: 2025-06-16 +last_updated: 2025-11-26 some_url: created: 2025-06-16 comments: true name: jose - +auto-translate: true --- @@ -17,9 +17,9 @@ name: jose Este documento forma **parte de un repositorio de documentación técnica** que tiene como objetivo establecer una base de conocimientos probados, flexibles y accesibles para **impulsar el análisis forense consentido en beneficio de la sociedad civil**. Para organizar los contenidos, se utiliza el [marco de referencia de documentación técnica Diataxis](../../references/00-glossary/index.md#diataxis/). -Este recurso en particular se enmarca dentro de la categoría de [referencias](https://diataxis.fr/reference), y contiene información sobre los archivos generados por [androidqf](../../references/00-glossary/index.md#androidqf) al realizar una extracción forense de un dispositivo Android, esto con el objetivo de que una persona analista **conozca los archivos generados, cómo utilizarlos, donde buscar información específica y en qué formato la encontrará.** +Este recurso en particular se enmarca dentro de la categoría de [referencias](https://diataxis.fr/reference), y contiene información sobre los archivos generados por [androidqf](../../references/00-glossary/index.md#androidqf) al realizar una extracción forense de un dispositivo Android, esto con el objetivo de que una persona analista **conozca los archivos generados, cómo utilizarlos, donde buscar información específica y en qué formato la encontrará.** Adicionalmente, se incluyen los comandos ADB equivalentes a cada módulo con el fin de mostrar las consultas que realiza AndroidQF de forma interna y cómo puede replicarse manualmente. En los casos donde la salida del comando ADB difiere del archivo generado por AndroidQF, se agrega también un ejemplo de salida real del comando para mostrar estas diferencias y facilitar su interpretación. -Este recurso se actualizó por última vez el 16 de Junio del 2025 y para la recopilación de la información se tomó como base la [versión 1.7.1](https://github.com/mvt-project/androidqf/tree/v1.7.1). +Este recurso se actualizó por última vez el 26 de Noviembre del 2025 y para la recopilación de la información se tomó como base el [commit e6bbc564bf9d1edfb18886f4b58c05dcf5b23c9c](https://github.com/mvt-project/androidqf/commit/e6bbc564bf9d1edfb18886f4b58c05dcf5b23c9c). [Androidqf](https://github.com/mvt-project/androidqf) es una herramienta de extracción forense que pertenece al [MVT Project](https://github.com/mvt-project/). Es mantenida actualmente por el [Laboratorio de Seguridad de Amnistía Internacional](https://securitylab.amnesty.org/es/). @@ -165,7 +165,7 @@ La información de este archivo se genera mediante el módulo [getprop.go](https **Información contenida** -Este archivo se encuentra en formato *TXT* y contiene la salida del comando de `adb getprop`, el cual detalla las **propiedades del sistema**. +Este archivo se encuentra en formato *txt* y contiene información sobre las propiedades del dispositivo como versión de Android, número de compilación, número de serie, configuraciones de red, fabricante, estado de la depuración USB y valores relacionados con software y hardware. Las propiedades del sistema son pares clave-valor de cadenas que se almacenan en el diccionario global [*build.prop*](https://xdaforums.com/t/guide-build-prop-wiki.2056266/) o en archivos de descripción *.sysprop*, y proporcionan una forma conveniente de compartir configuraciones dentro del sistema. @@ -189,12 +189,23 @@ Los grupos más comunes son: Para mayor detalle se puede revisar la [lista de propiedades ya definidas en el código fuente de Android](https://android.googlesource.com/platform/system/sepolicy/+/refs/heads/main/private/property_contexts). +El comando equivalente de ADB en este módulo es el siguiente: + +``` +adb shell getprop + +``` + + **¿Por qué es importante?** Las propiedades brindan información importante sobre el hardware y el software del dispositivo, las cuales pueden ser alteradas por software malicioso para ocultar su presencia o para modificar el comportamiento del dispositivo de forma inadvertida. **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF: + + ``` [property_name]: [value] [aaudio.hw_burst_min_usec]: [2000] @@ -219,6 +230,37 @@ Las propiedades brindan información importante sobre el hardware y el software [ro.vendor.product.cpu.abilist64]: [arm64-v8a] ``` +Ejemplo de contenido devuelto por ejecución de comando ADB: + +``` +[DEVICE_PROVISIONED]: [1] +[apex.all.ready]: [true] +[bluetooth.device.class_of_device]: [90,2,12] +[bluetooth.device.default_name]: [moto g(7) power] +[bluetooth.hardware.power.operating_voltage_mv]: [3300] +[bluetooth.profile.a2dp.source.enabled]: [true] +[bluetooth.profile.asha.central.enabled]: [true] +[bluetooth.profile.avrcp.target.enabled]: [true] +[bluetooth.profile.bas.client.enabled]: [true] +[bluetooth.profile.gatt.enabled]: [true] +[bluetooth.profile.hfp.ag.enabled]: [true] +[bluetooth.profile.hid.device.enabled]: [true] +[bluetooth.profile.hid.host.enabled]: [true] +[bluetooth.profile.map.server.enabled]: [true] +[bluetooth.profile.opp.enabled]: [true] +[bluetooth.profile.pan.nap.enabled]: [true] +bluetooth.profile.pan.panu.enabled]: [true] +[bluetooth.profile.pbap.server.enabled]: [true] +[bluetooth.profile.sap.server.enabled]: [true] +[bootreceiver.enable]: [0] +[build.version.extensions.ad_services]: [11] +[build.version.extensions.r]: [11] +[build.version.extensions.s]: [11] +[build.version.extensions.t]: [11] +[build.version.extensions.u]: [11] +[cache_key.bluetooth.bluetooth_adapter_get_connection_state]: [2184677357365305812] +``` + **Aprende más** * [Descripción general de la configuración | Propiedades del sistema | Android Open Source Project](https://source.android.com/docs/core/architecture/configuration?hl=es-419#system-properties) @@ -232,7 +274,13 @@ La información de este archivo se genera mediante el módulo [selinux.go](https **Información contenida** -Este archivo se encuentra en formato *txt* y contiene la salida del comando de `adb shell getenforce` e indica la política de seguridad *SELinux* aplicada en el dispositivo, indicando el modo en el que se encuentra (*enforcing*, *permissive*, o *disabled*). +Este archivo se encuentra en formato *txt* y contiene información sobre la política de seguridad la política de seguridad *SELinux* aplicada en el dispositivo, indicando el modo en el que se encuentra (*enforcing*, *permissive*, o *disabled*). + +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell getenforce +``` **¿Por qué es importante?** @@ -240,6 +288,9 @@ Este archivo se encuentra en formato *txt* y contiene la salida del comando de ` **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF y comando ADB: + + ``` Enforcing ``` @@ -256,16 +307,24 @@ La información de este archivo se genera mediante el módulo [settings.go](http **Información contenida** -Este archivo se encuentra en formato *txt* y contiene la salida del comando `adb shell cmd settings list global` , el cual muestra preferencias que siempre se aplican de forma idéntica a todos los usuarios definidos ([well-defined user](https://source.android.com/docs/devices/admin/multi-user#user_types)). Las aplicaciones pueden leerlas, pero no pueden escribirlas, se trata de preferencias que el usuario debe modificar explícitamente a través de la interfaz de usuario del sistema o API especializadas para esos valores. +Este archivo se encuentra en formato *txt* y contiene información sobre las preferencias que se aplican de forma idéntica a todos los usuarios definidos ([well-defined user](https://source.android.com/docs/devices/admin/multi-user#user_types)). Las aplicaciones pueden leerlas, pero no pueden escribirlas, se trata de preferencias que el usuario debe modificar explícitamente a través de la interfaz de usuario del sistema o API especializadas para esos valores. Estas configuraciones incluyen opciones de desarrollador, arranque, y estado de la conexión de bluetooth, wifi y telefonía. Para ver la [lista completa de preferencias globales](https://developer.android.com/reference/android/provider/Settings.Global) se puede revisar la documentación correspondiente de Android. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell cmd settings list global +``` + **¿Por qué es importante?** Permite identificar configuraciones anómalas que podrían comprometer la seguridad, privacidad o funcionalidad del dispositivo. Configuraciones predeterminadas inusuales pueden señalar intentos de modificar el comportamiento del sistema, intencionados o accidentales. **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF y comando ADB: + ``` Phenotype_boot_count=68 adb_enabled=1 @@ -297,18 +356,27 @@ La información de este archivo se genera mediante el módulo [settings.go](http **Información contenida** -Este archivo se encuentra en formato *txt* y contiene la salida del comando `adb shell cmd settings list secure` Muestra preferencias de seguridad del sistema que las aplicaciones pueden leer pero no escribir. Son preferencias que el usuario debe modificar explícitamente a través de la interfaz de usuario de una aplicación del sistema. Las aplicaciones normales no pueden modificar la base de datos de configuraciones de seguridad. +Este archivo se encuentra en formato *txt* y contiene información sobre las preferencias de seguridad del sistema que las aplicaciones pueden leer pero no escribir. Son preferencias que el usuario debe modificar explícitamente a través de la interfaz de usuario de una aplicación del sistema. Las aplicaciones normales no pueden modificar la base de datos de configuraciones de seguridad. Estas configuraciones incluyen opciones de desarrollador, accesibilidad, ubicación, entrada de datos, bloqueo de pantalla, control parental, text-to-speech, y conexión de bluetooth, wifi y telefonía. Para ver la [lista completa de preferencias de seguridad](https://developer.android.com/reference/android/provider/Settings.Secure?hl=es-419) se puede revisar la documentación correspondiente de Android. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell cmd settings list secure +``` + + **¿Por qué es importante?** Permite identificar configuraciones anómalas que podrían comprometer la seguridad, privacidad o funcionalidad del dispositivo. Configuraciones predeterminadas inusuales pueden señalar intentos de modificar el comportamiento del sistema, intencionados o accidentales. **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF y comando ADB: + ``` accessibility_allow_diagonal_scrolling=1 accessibility_button_mode=1 @@ -342,18 +410,27 @@ La información de este archivo se genera mediante el módulo [settings.go](http **Información contenida** -Este archivo se encuentra en formato *txt* y contiene la salida del comando `adb shell cmd settings list system` , el cual muestra diversas preferencias generales del dispositivo. Estas preferencias afectan la experiencia del usuario y el funcionamiento básico del dispositivo. +Este archivo se encuentra en formato *txt* y contiene información sobre las diversas preferencias generales del dispositivo. Estas preferencias afectan la experiencia del usuario y el funcionamiento básico del dispositivo. Estas configuraciones incluyen opciones de sensores como el acelerómetro o giroscopio, zona horaria, pantalla, alarmas, sonido, vibración, actualizaciones, y conexión de bluetooth, wifi y telefonía. Para ver la [lista completa de preferencias de sistema](https://developer.android.com/reference/android/provider/Settings.System?hl=es-419) se puede revisar la documentación correspondiente de Android. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell cmd settings list system +``` + **¿Por qué es importante?** Permite identificar configuraciones anómalas que podrían comprometer la seguridad, privacidad o funcionalidad del dispositivo. Configuraciones predeterminadas inusuales pueden señalar intentos de modificar el comportamiento del sistema, intencionados o accidentales. **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF y comando ADB: + + ``` FOTA_CLIENT_POLLING_TIME=1710699386219 FOTA_CLIENT_REGISTRATION=1 @@ -398,7 +475,7 @@ La información de este archivo se genera mediante el módulo [env.go](https://g **Información contenida** -Este archivo se encuentra en formato *txt* y contiene la salida del comando `adb shell env` el cual muestra la configuración de las variables de entorno de la terminal (shell) [*mkshrc*](http://mirbsd.de/mksh) la cual es utilizada por Android. +Este archivo se encuentra en formato *txt* y contiene información sobre la la configuración de las variables de entorno de la terminal (shell) [*mkshrc*](http://mirbsd.de/mksh) la cual es utilizada por Android. Por defecto las variables de *mkshrc* en Android se encuentran en el archivo *mkshrc* o *profile* que puede estar en alguno de los siguientes directorios. @@ -429,12 +506,23 @@ Las variables contenidas pueden indicar: * Valores de entorno de ejecución de la máquina virtual de Android * Configuraciones de la terminal + +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell env +``` + + **¿Por qué es importante?** Las variables de entorno pueden indicar cambios en las configuraciones de la terminal, del intérprete de comandos, del entorno de ejecución de la máquina virtual de Android o de los puntos de montaje de algunas particiones y carpetas. Esto podría ser un indicador de un comportamiento sospechoso. + **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF: + ``` _=/system/bin/env ANDROID_DATA=/data @@ -462,12 +550,203 @@ ANDROID_I18N_ROOT=/apex/com.android.i18n EXTERNAL_STORAGE=/sdcard ``` +Ejemplo de contenido devuelto por ejecución de comando ADB: + +``` +_=/system/bin/env +ANDROID_DATA=/data +LOGNAME=shell +STANDALONE_SYSTEMSERVER_JARS=/apex/com.Android.btservices/javalib/service-bluetooth.jar:/apex/com.Android.devicelock/javalib/service-devicelock.jar:/apex/com.Android.os.statsd/javalib/service-statsd.jar:/apex/com.Android.scheduling/javalib/service-scheduling.jar:/apex/com.Android.tethering/javalib/service-connectivity.jar:/apex/com.Android.uwb/javalib/service-uwb.jar:/apex/com.Android.wifi/javalib/service-wifi.jar +HOME=/ +DEX2OATBOOTCLASSPATH=/apex/com.Android.art/javalib/core-oj.jar:/apex/com.Android.art/javalib/core-libart.jar:/apex/com.Android.art/javalib/okhttp.jar:/apex/com.Android.art/javalib/bouncycastle.jar:/apex/com.Android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/framework-location.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/framework-nfc.jar:/system/framework/telephony-ext.jar:/apex/com.Android.i18n/javalib/core-icu4j.jar +ANDROID_TZDATA_ROOT=/apex/com.Android.tzdata +USER=shell +ANDROID_ROOT=/system +TERM=xterm-256color +SHELL=/bin/sh +ANDROID_BOOTLOGO=1 +ANDROID_ASSETS=/system/app +BOOTCLASSPATH=/apex/com.Android.art/javalib/core-oj.jar:/apex/com.Android.art/javalib/core-libart.jar:/apex/com.Android.art/javalib/okhttp.jar:/apex/com.Android.art/javalib/bouncycastle.jar:/apex/com.Android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/framework-graphics.jar:/system/framework/framework-location.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/framework-n +``` + + **Aprende más** * [Shell (informática) \- Wikipedia, la enciclopedia libre](https://es.wikipedia.org/wiki/Shell_\(inform%C3%A1tica\)) * [Can I update the adb shell's environment variables? \- Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/53389/can-i-update-the-adb-shells-environment-variables/64926#64926) * [Update mksh to latest version \- Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/217617/update-mksh-to-latest-version/217627#217627) +### mounts.json + +La información de este archivo se genera mediante el módulo [mounts.go](https://github.com/mvt-project/androidqf/blob/main/modules/mounts.go). + +**Información contenida** + + +Este archivo se encuentra en formato *json* y contiene información sobre las particiones y directorios de sistemas de archivos montados en un dispositivo en el espacio de usuario y en el kernel de linux de Android. + +El comando equivalente de ADB de este módulo es el siguiente: + +```shell +adb shell "mount" +adb shell "cat /proc/mounts" +``` + +El comando *mount* lee la información directamente del kernel, lo que refleja una lista de los sistemas de archivos montados en el dispositivo. Por su parte, el comando *cat /proc/mounts* accede directamente al archivo */proc/mounts*, que es un archivo virtual generado y administrado por el kernel de linux de Android. Este archivo refleja en tiempo real y de manera precisa el estado exacto de todos los sistemas de archivos montados en el dispositivo, incluyendo particiones, volúmenes lógicos y sistemas de archivos temporales. + +El formato en el que se presentan los puntos de montajes es el siguiente: + +``` + +``` + +Donde cada parámetro significa lo siguiente: + +* **dispositivo**: Partición o volumen montado, en Android las más comunes son: + * Particiones de almacenamiento físico + * /dev/block/sdX: Dispositivo de almacenamiento físico ([eMMC/UFS](https://new.c.mi.com/es/post/11738)) expuesto como sd por el kernel. + * /dev/block/mmcblk: Dispositivo de almacenamiento eMMC presentado como mmcblk. + * /dev/block/dm-X: Dispositivo manejado por device-mapper (cifrado, verity o particiones lógicas). + * /dev/block/by-name/: Enlaces simbólicos que apuntan a las particiones reales por su nombre e.j. system, vendor, userdata. + * Volumen virtual del kernel en RAM + * proc: Interfaz virtual para obtener información del kernel y procesos. + * sysfs: expone información de dispositivos, drivers y parámetros del kernel. + * selinuxfs: Muestra políticas, estados y etiquetas de SELinux. + * tracefs: sistema virtual para herramientas de trazado y debugging del kernel. + * pstore: Almacena registros persistentes de fallos del kernel. + * bpf: Expone interfaces para programas [eBPF](https://source.android.com/docs/core/architecture/kernel/bpf) cargados en el kernel. + * Espacio de usuario + * /dev/fuse: Interfaz [FUSE](https://source.android.com/docs/core/storage/fuse-passthrough) usada por Android para montar almacenamiento emulado p.j /storage/emulated. + * Interfaces internas de control de kernel + * none: Identificador que indica que el montaje no proviene de un dispositivo real. + * binder: [Sistema de IPC](https://source.android.com/docs/core/architecture/ipc/binder-overview) interno de Android para comunicación entre procesos. + * Archivos APEX montados como loopback + * /dev/block/loopX: Dispositivos de bucle usados para montar paquetes APEX como si fueran particiones reales. +* **punto de montaje**: Ruta de la carpeta raiz del almacenamiento donde se accede a la información, en android suelen ser los siguientes: + * /system: Contiene el sistema operativo principal . + * /vendor: Incluye componentes y drivers proporcionados por el fabricante del hardware como HALs, firmware y binarios específicos del proveedor. + * /product: Almacena personalizaciones del fabricante sobre las funciones del sistema y aplicaciones específicas del dispositivo. + * /data: Área de datos del usuario y almacenamiento de apps. + * /cache: Espacio temporal usado para archivos de actualización y datos transitorios del sistema. + * /metadata: Contiene información crítica de dispositivo necesaria para [AVB](https://source.android.com/docs/security/features/verifiedboot/avb), cifrado y validaciones del sistema. + * /mnt/media\_rw/: Punto de montaje para almacenamiento removible o adoptado e.j. SD card + * /storage/emulated: Vista emulada de almacenamiento interno del usuario. + * /proc: Sistema virtual que expone información del kernel y procesos (no es almacenamiento real). + * /sys: Sistema virtual que expone información sobre dispositivos y controladores del kernel. + * /mnt/user/0/emulated: Vista específica del almacenamiento emulado para el usuario 0\. +* **tipo de sistema de archivos**: Tipo de sistema de archivos, en android son los siguientes: + * ext4: Sistema de archivos de Linux usado en particiones internas. + * f2fs: Sistema de archivos optimizado para almacenamiento flash. + * erofs: Sistema de archivos de solo lectura optimizado. + * vfat: Sistema de archivos FAT32 usado para tarjetas SD y almacenamiento externo. + * sdfat: Implementación extendida de FAT/exFAT. + * tmpfs: Sistema de archivos temporal en RAM usado para directorios volátiles e.j. /dev, /run, /apex. + * proc: Sistema de archivos virtual que expone información del kernel y procesos. + * sysfs: Sistema virtual que muestra información de hardware, drivers y controladores del kernel. + * selinuxfs: Sistema virtual que expone parámetros y estado de SELinux en el dispositivo. + * functionfs: Sistema usado para interfaces [USB gadget](https://source.android.com/docs/core/permissions/usb-hal) cuando Android actúa como dispositivo USB. + * incremental-fs: Sistema diseñado para permitir instalar o ejecutar apps “bajo demanda” mientras aún están descargándose. + * binder: Sistema de comunicación interna IPC de Android. + * cgroup: Sistema virtual basado en control groups para gestionar recursos por procesos e.j. CPU, memoria. + * fuse: Sistema de archivos en espacio de usuario utilizado para almacenamiento emulado. +* **opciones**: Parámetros del montaje, estos pueden variar según el montaje + * Modos de acceso + * ro: read only + * rw: read an write + * Etiquetas de seguridad + * seclabel: Habilita y aplica etiquetas SELinux al sistema de archivos. + * nodev: Evita que se usen archivos de dispositivo en esa partición. + * nosuid: Bloquea binarios con [set-UID/set-GID](https://www.cbtnuggets.com/blog/technology/system-admin/linux-file-permissions-understanding-setuid-setgid-and-the-sticky-bit) para evitar escalación. + * noexec: Impide ejecutar archivos desde esa partición. + * hidepid=invisible: Oculta procesos de otros usuarios en */proc*. + * user\_xattr: Permite atributos extendidos definidos por el usuario. + * acl: Permite listas de control de acceso más detalladas que *rwx*. + * inlinecrypt: Usa cifrado en línea soportado por hardware/FS (Android). + * usrquota: Habilita cuotas por usuario (espacio limitado). + * grpquota: Habilita cuotas por grupo. + * Marcas de tiempo de asociadas a los archivos y directorios + * lazytime: Aplaza la escritura de timestamps al almacenamiento para mejorar el rendimiento. + * relatime: Actualiza tiempos de acceso solo si es necesario. + * noatime: Desactiva la actualización del tiempo de acceso. + * Usuarios relacionados con los montajes + * uid=0: Propietario del montaje, quien es el usuario *root*. + * gid=1000: Grupo base de Android quien es usualmente *system* o *media\_rw*, según contexto. + * user\_id=0: Usuario principal del sistema Android. + * group\_id=0: Grupo primario del usuario root. + + +**¿Por qué es importante?** + +Los puntos de montaje permiten identificar las áreas de almacenamiento montadas en el dispositivo, su origen y cómo están configuradas. + +Con esta información se pueden conocer los permisos con los que fueron montadas las particiones, los usuarios asociados y en algunos casos las etiquetas de seguridad SELinux aplicadas. + +Esto resulta útil para la identificación de montajes que pueden ser sospechosos de actividades maliciosas en el dispositivo, por ejemplo, una partición del sistema como /system, /vendor, /product particiones cuyo montaje es usualmente de solo lectura se encuentre montada montada con permisos de escritura o carente de etiquetas de seguridad o una partición como /data esté montada con permisos de lectura en subcarpetas que contienen información de aplicaciones podría indicar montajes fraudulentos no autorizados evidenciando comportamientos altamente sospechosos. + +**Ejemplo del contenido del archivo** + + +Ejemplo de contenido devuelto por ejecución de AndroidQF: + +``` +[ + "/dev/block/dm-13 on / type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=2839372k,nr_inodes=709843,mode=755)", + "devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600,ptmxmode=000)", + "proc on /proc type proc (rw,relatime,gid=3009,hidepid=invisible)", + "sysfs on /sys type sysfs (rw,seclabel,relatime)", + "selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)", + "tmpfs on /mnt type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=2839372k,nr_inodes=709843,mode=755,gid=1000)", + "tmpfs on /mnt/installer type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=2839372k,nr_inodes=709843,mode=755,gid=1000)", + "tmpfs on /mnt/androidwritable type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=2839372k,nr_inodes=709843,mode=755,gid=1000)", + "/dev/block/sda44 on /metadata type f2fs (rw,sync,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,nogc_merge,discard,discard_unit=block,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,barrier,extent_cache,data_flush,mode=adaptive,active_logs=6,inlinecrypt,alloc_mode=reuse,checkpoint_merge,fsync_mode=strict,memory=normal)", + "/dev/block/dm-14 on /vendor type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-15 on /vendor_dlkm type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-16 on /system_dlkm type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-17 on /product type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-18 on /odm type erofs (ro,seclabel,relatime,user_xattr,acl,cache_strategy=readaround)", + "/dev/block/dm-19 on /prism type ext4 (ro,seclabel,relatime)", + "/dev/block/dm-20 on /optics type ext4 (ro,seclabel,relatime)", + "tmpfs on /apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755)", + "tmpfs on /bootstrap-apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755)", + "tmpfs on /linkerconfig type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,mode=755)", +] +``` + +Ejemplo de contenido devuelto por ejecución de comando ADB: + +``` +/dev/block/mmcblk0p63 on / type ext4 (ro,seclabel,relatime,discard) +tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=1812632k,nr_inodes=453158,mode=755) +devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600,ptmxmode=000) +proc on /proc type proc (rw,relatime,gid=3009,hidepid=2) +sysfs on /sys type sysfs (rw,seclabel,relatime) +selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) +tmpfs on /mnt type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755,gid=1000) +tmpfs on /mnt/installer type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755,gid=1000) +tmpfs on /mnt/Androidwritable type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755,gid=1000) +/dev/block/mmcblk0p61 on /vendor type ext4 (ro,seclabel,relatime,discard) +tmpfs on /apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755) +tmpfs on /bootstrap-apex type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755) +tmpfs on /linkerconfig type tmpfs (rw,seclabel,nosuid,nodev,noexec,relatime,size=1812632k,nr_inodes=453158,mode=755) +none on /dev/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) +none on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime) +none on /dev/cpuctl type cgroup (rw,nosuid,nodev,noexec,relatime,cpu) +none on /dev/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent) +none on /dev/memcg type cgroup (rw,nosuid,nodev,noexec,relatime,memory) +none on /dev/stune type cgroup (rw,nosuid,nodev,noexec,relatime,schedtune) +``` + +Para aprender más: + +* [Descripción general de particiones de Android](https://source.android.com/docs/core/architecture/partitions?hl=es-419) +* [Antecedentes y terminología de particiones dinámicas](https://source-android-com.translate.goog/docs/core/ota/virtual_ab?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sge#background) +* [File System of Android](https://medium.com/@aditi.kale20/file-system-of-android-a89dcbb693f1) +* [Compatibilidad con el sistema de archivos del kernel de Android](https://source-android-com.translate.goog/docs/core/architecture/android-kernel-file-system-support?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=tc) +* [SELinux compatibility](https://source.android.com/docs/security/features/selinux/compatibility) +* [APEX file format](https://source.android.com/docs/core/ota/apex) +* [SIstema de ficheros Android](https://keepcoding.io/blog/sistema-de-ficheros-android/) + ## Registros y eventos del sistema ### logcat.txt y logcat\_old.txt @@ -476,7 +755,9 @@ La información de estos archivos se genera mediante el módulo [logcat.go](http **Información contenida** -Estos archivos se encuentran en texto plano con extensión .*txt* y contienen la salida de los comandos `adb shell logcat -d -b all` y `adb shell logcat -L -b all` respectivamente, los cuales muestran el registro de mensajes del sistema. Algunos ejemplos de la información contenida son: +Estos archivos se encuentran en texto plano con extensión .*txt* y contienen el registro de mensajes del sistema en dos niveles: registros actuales de todos los buffers (logcat.txt) y registros previos al último reinicio (logcat_old.txt). + +Algunos ejemplos de la información contenida son: * Mensajes de error y advertencia (FATAL EXCEPTION). * Mensajes de aplicaciones, procesos y servicios del sistema operativos. @@ -497,6 +778,16 @@ El archivo contienen la siguiente estructura: * Etiqueta que indica el componente o proceso del sistema. * Descripción y detalles de los mensajes o de los errores. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +#Comando equivalente para los registros actuales +adb shell logcat -d -b all "*:V" +#Comando equivalente para los registros previos +adb shell logcat -L -b all "*:V" +``` + + **¿Por qué es importante?** Esta información puede ser utilizada para analizar el comportamiento y ejecución de eventos en el sistema y de las aplicaciones del dispositivo para identificar anomalías o patrones que puedan indicar presencia de malware. En términos forenses son de los archivos más relevantes por su contenido. @@ -505,12 +796,32 @@ Esta información puede ser utilizada para analizar el comportamiento y ejecuci ``` --------- beginning of crash -2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: FATAL EXCEPTION: main -2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: Process: example.android.app, PID: 12345 -2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate receiver example.android.app.MyBroadCastReceiver -2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: at android.app.ActivityThread.handleReceiver(ActivityThread.java:4861) +--------- beginning of events +09-06 10:36:55.111 544 544 I snet_event_log: [121035042,-1,] +09-06 10:36:55.125 544 544 I auditd : SELinux: Loaded service context from: +09-06 10:36:55.125 544 544 I auditd : /system/etc/selinux/plat_service_contexts +09-06 10:36:55.125 544 544 I auditd : /system_ext/etc/selinux/system_ext_service_contexts +09-06 10:36:55.125 544 544 I auditd : /product/etc/selinux/product_service_contexts +09-06 10:36:55.125 544 544 I auditd : /vendor/etc/selinux/vendor_service_contexts +--------- beginning of kernel +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Booting Linux on physical CPU 0x0 +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Linux version 4.9.337-perf+ (root@7954fa367a89) (Android (10087095, +pgo, +bolt, +lto, -mlgo, based on r487747c) clang version 17.0.2 (https://Android.googlesource.com/toolchain/llvm-project d9f89f4d16663d5012e5c09495f3b30ece3d2362)) #1 SMP PREEMPT Sun Sep 15 06:15:22 UTC 2024 +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Boot CPU: AArch64 Processor [51af8014] +09-06 10:36:55.187 0 0 I [ 0.000000,0] Machine: ocean +09-06 10:36:55.187 0 0 I [ 0.000000,0] efi: Getting EFI parameters from FDT: +09-06 10:36:55.187 0 0 I [ 0.000000,0] efi: UEFI not found. +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x000000008f800000, size 8 MiB +09-06 10:36:55.187 0 0 I [ 0.000000,0] OF: reserved mem: initialized node gpu_region@0, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x00000000c7800000, size 8 MiB +09-06 10:36:55.187 0 0 I [ 0.000000,0] OF: reserved mem: initialized node adsp_shmem_device_region@0xc0100000, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x00000000fec00000, size 20 MiB +09-06 10:36:55.187 0 0 I [ 0.000000,0] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Reserved memory: created CMA memory pool at 0x00000000fe800000, size 4 MiB +09-06 10:36:55.187 0 0 I [ 0.000000,0] OF: reserved mem: initialized node qseecom_ta_region, compatible id shared-dma-pool +09-06 10:36:55.187 0 0 I : [ 0.000000,0] Reserved memory: created 2025-01-01 00:00:00.000 12345 12345 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) -2025-01-01 00:00:00.000 30144 30860 I ActivityManager: Process example.android.app has died. +2025-01-01 00:00:00.000 30144 30860 I ActivityManager: Process example.android.app + ``` **Aprende más** @@ -523,7 +834,7 @@ La información de este archivo se genera mediante el módulo [dumpsys.go](https **Información contenida** -Este archivo se encuentra en formato *txt* y contiene la salida del comando `adb shell dumpsys` el cual muestra información detallada sobre los servi`cios en ejecución, incluyendo procesos y aplicaciones. +Este archivo se encuentra en formato *txt* contiene información del diagnóstico de los servicios en el dispositivo. El reporte de dumpsys proporciona detalles técnicos sobre el estado de los servicios y componentes del sistema que resulta muy útil para identificar configuraciones o comportamientos anormales. El archivo está dividido en secciones específicas para cada servicio siguiendo un orden: @@ -531,7 +842,13 @@ El archivo está dividido en secciones específicas para cada servicio siguiendo * Detalles de cada servicios * Logs detalladas -Para conocer el listado de servicios que se pueden encontrar en un *dumpsys* de un dispositivo se puede ejecutar el comando `adb shell service list` +Para conocer el listado de servicios que se pueden encontrar en un *dumpsys* de un dispositivo se puede ejecutar el comando `adb shell service list`. + +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell dumpsys +``` **¿Por qué es importante?** @@ -539,6 +856,8 @@ El archivo brinda una perspectiva completa del estado del sistema en el disposit **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF y comando ADB: + ``` Currently running services: accessibility @@ -627,7 +946,7 @@ Current AppOps Service state: #2: ModeCallback{f993e3b watchinguid=-1 flags=0x1 op=FINE_LOCATION from uid=u0a124 pid=3315} Op READ_CONTACTS: #0: ModeCallback{12983a3 watchinguid=-1 flags=0x0 op=READ_WRITE_HEALTH_DATA from uid=1000 pid=1807} - Op WRIT E_CONTACTS: + Op WRITE_CONTACTS: #0: ModeCallback{12983a3 watchinguid=-1 flags=0x0 op=READ_WRITE_HEALTH_DATA from uid=1000 pid=1807} Op READ_CALL_LOG: #0: ModeCallback{12983a3 watchinguid=-1 flags=0x0 op=READ_WRITE_HEALTH_DATA from uid=1000 pid=1807} @@ -639,8 +958,6 @@ Current AppOps Service state: #0: ModeCallback{12983a3 watchinguid=-1 flags=0x0 op=READ_WRITE_HEALTH_DATA from uid=1000 pid=1807} Op POST_NOTIFICATION: #0: ModeCallback{12983a3 watchinguid=-1 flags=0x0 op=READ_WRITE_HEALTH_DATA from uid=1000 pid=1807} - - ``` **Aprende más** @@ -653,7 +970,7 @@ La información de este archivo se genera mediante el módulo [bugreport.go](htt **Información contenida** -Este es un archivo comprimido en formato *zip* y contiene la salida del comando `adb shell bugreport` el cual es un informe completo sobre el estado actual del dispositivo que incluye datos del sistema, logs y configuraciones. +Este es un archivo comprimido en formato *zip* y contiene un informe completo sobre el estado actual del dispositivo que incluye datos del sistema, logs y configuraciones. Este archivo comprimido puede ser analizado por la MVT mediante el comando `mvt-android check-bugreport bugreport.zip` @@ -682,10 +999,24 @@ Los archivos y carpetas contenidas en el comprimido incluye los siguiente: * **mountinfo:** Este archivo proporciona información detallada sobre los puntos de montaje en un sistema operativo basado en Linux. Básicamente, permite entender cómo están configurados los sistemas de archivos y las particiones montadas. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb bugreport bugreport.zip +``` + + **¿Por qué es importante?** Este comprimido es una fuente de información con mucho valor para el análisis forense para poder identificar el estado general del dispositivo y dar seguimiento a irregularidades o fallas de software o hardware que se presenten en contextos de explotación de vulnerabilidades. +**Ejemplo de contenido del archivo** + +``` +/data/user_de/0/com.Android.shell/files/bug...kipped. 41.5 MB/s (4519231 bytes in 0.104s) +Bug report copied to bugreport.zip +``` + **Aprende más** * [Cómo capturar y leer informes de errores](https://developer.android.com/studio/debug/bug-report?hl=es-419) @@ -695,103 +1026,127 @@ Este comprimido es una fuente de información con mucho valor para el análisis La información de esta carpeta se genera mediante el módulo [logs.go](https://github.com/mvt-project/androidqf/blob/main/modules/logs.go). **Información contenida** -Contiene archivos de registro recolectados directamente desde el dispositivo, utilizando el comando `adb pull` en varias carpetas. -El módulo accede a rutas específicas del sistema para extraer archivos que documentan el comportamiento, errores y eventos del sistema operativo, las cuales son: +Esta carpeta contiene una lista de los ficheros y los archivos de registro del sistema y aplicaciones puntualmente extraidos de las siguientes rutas: -* /data/anr/ -* /data/log/ +* /data/system/uiderrors.txt +* /proc/kmsg +* /proc/last_kmsg +* /sys/fs/pstore/console-ramoops +* /data/anr/ +* /data/log/ * /sdcard/log/ -Los archivos y carpetas contenidas en este directorio son los siguiente: - -* `anr/anr_yyyy-mm-dd-hh-mm-ss` - * **anr_yyyy-mm-dd-hh-mm-ss**: Archivo que proporciona un diagnóstico detallado del estado del sistema y de la actividad de un proceso específico. - -* `log/acore/0_dump_all.zip` - * **0_dump_all.zip**: Archivo que contiene un volcado del estado del sistema asociado al proceso acore. - -* `log/batterystats/newbatterystats240905095247` - * **newbatterystats240905095247**: Archivo que contiene métricas sobre el uso energético del dispositivo. - -* `log/dropbox.txt` - * **dropbox.txt**: Archivo que contiene registros de eventos del sistema gestionados por DropBoxManager. - -* `log/dumpstate_debug_history.lst` - * **dumpstate_debug_history.lst**: Archivo que contiene el historial de ejecuciones del proceso de recolección de logs del sistema. - -* `log/dumpstate_lastkmsg_20240423_152746_0_MP.log.gz` - * **dumpstate_lastkmsg_20240423_152746_0_MP.log.gz**: Archivo que contiene el último mensaje del kernel tras un reinicio inesperado. - -* `log/dumpstate_latest_lastkmsg.log.gz` - * **dumpstate_latest_lastkmsg.log.gz**: Archivo que contiene el log persistente más reciente del kernel después de un reinicio. - -* `log/dumpstate-stats.txt` - * **dumpstate-stats.txt**: Archivo que contiene estadísticas generadas durante la recolección del estado del sistema. - -* `log/dumpstate_sys_error.zip` - * **dumpstate_sys_error.zip**: Archivo comprimido que contiene información sobre errores críticos del sistema. - -* `log/lom_log.txt` - * **lom_log.txt**: Archivo que contiene registros relacionados con almacenamiento o monitoreo del sistema. - -* `log/pm_debug_info.txt` - * **pm_debug_info.txt**: Archivo que contiene información de depuración del gestor de paquetes del sistema. - -* `log/power_off_reset_reason.txt` - * **power_off_reset_reason.txt**: Archivo que indica la causa del último apagado o reinicio del dispositivo. - -* `log/prev_dump.log` - * **prev_dump.log**: Archivo que contiene una captura previa del estado del sistema antes de un evento crítico. - -* `log/radio_PRECONFG_SET.log` - * **radio_PRECONFG_SET.log**: Archivo que documenta la configuración inicial del módulo de radio del dispositivo. - -* `log/shutdown_profile.1.txt` - * **shutdown_profile.1.txt**: Archivo que contiene el perfil de apagado registrado por el sistema. - -* `log/shutdown_profile_latest.txt` - * **shutdown_profile_latest.txt**: Archivo que contiene el perfil del apagado más reciente del sistema. - -* `log/err/` - * **mobiledata_dns.dat**: Archivo que contiene errores relacionados con resolución DNS en redes móviles. - * **mobiledata_tp2.dat**: Archivo que contiene errores en la transferencia de paquetes móviles. - * **mobiledata_tp.dat**: Archivo que contiene errores en la transferencia de paquetes móviles. - -* `log/ewlogd/ewlog0_20240920_144426188369.log` - * **ewlog0_20240920_144426188369.log**: Archivo que contiene registros de eventos del sistema generados por el servicio ewlogd. +Algunos pueden no ser accesibles por permisos del dispositivo. + + +* anr + * anr_yyyy-mm-dd-hh-mm-ss + * Archivo que proporciona un diagnóstico detallado del estado del sistema y de la actividad de un proceso específico. +* log + * acore + * 0_dump_all.zip + * Archivo que contiene un volcado del estado del sistema asociado al proceso acore. + * batterystats + * newbatterystats240905095247 + * Archivo que contiene métricas sobre el uso energético del dispositivo. + * dropbox.txt + * Archivo que contiene registros de eventos del sistema gestionados por DropBoxManager. + * dumpstate_debug_history.lst + * Archivo que contiene el historial de ejecuciones del proceso de recolección de logs del sistema. + * dumpstate_lastkmsg_20240423_152746_0_MP.log.gz + * Archivo que contiene el último mensaje del kernel tras un reinicio inesperado. + * dumpstate_latest_lastkmsg.log.gz + * Archivo que contiene el log persistente más reciente del kernel después de un reinicio. + * dumpstate-stats.txt + * Archivo que contiene estadísticas generadas durante la recolección del estado del sistema. + * dumpstate_sys_error.zip + * Archivo comprimido que contiene información sobre errores críticos del sistema. + * lom_log.txt + * Archivo que contiene registros relacionados con almacenamiento o monitoreo del sistema. + * pm_debug_info.txt + * Archivo que contiene información de depuración del gestor de paquetes del sistema. + * power_off_reset_reason.txt + * Archivo que indica la causa del último apagado o reinicio del dispositivo. + * prev_dump.log + * Archivo que contiene una captura previa del estado del sistema antes de un evento crítico. + * radio_PRECONFG_SET.log + * Archivo que documenta la configuración inicial del módulo de radio del dispositivo. + * shutdown_profile.1.txt + * Archivo que contiene el perfil de apagado registrado por el sistema. + * shutdown_profile_latest.txt + * Archivo que contiene el perfil del apagado más reciente del sistema. + * err/ + * mobiledata_dns.dat + * Archivo que contiene errores relacionados con resolución DNS en redes móviles. + * mobiledata_tp2.dat + * Archivo que contiene errores en la transferencia de paquetes móviles. + * mobiledata_tp.dat + * Archivo que contiene errores en la transferencia de paquetes móviles. + * ewlogd/ + * ewlog0_20240920_144426188369.log + * Archivo que contiene registros de eventos del sistema generados por el servicio ewlogd. + * imscr/ + * imscr.log.0 + * Archivo que contiene registros del componente IMS para servicios de comunicación. + * omc/ + * cidmanager.log + * Archivo que contiene información del gestor de códigos de operador (CID). + * csc_update_log.txt + Archivo que contiene el registro de actualizaciones del paquete de personalización CSC. + * home_fota_update_log.txt + * Archivo que contiene registros de actualizaciones FOTA en red doméstica. + * prev_csc_log.txt + * Archivo que contiene un historial previo de configuración del operador. + * search + * 0_com.samsung.android.scs_index_encrypted.tar.gz + * Archivo comprimido cifrado que contiene datos del índice de búsqueda del sistema. + * sfslog/ + * sfslog.0.gz + * Archivo comprimido que contiene registros del sistema de archivos seguro (Secure File System). + * smartswitch/ + * 1726696227738SmartSwitchSimpleLog.log + * Archivo que contiene registros del proceso de transferencia de datos mediante Smart Switch. + * update_engine_log/ + * update_engine.20240603-222843 + * Archivo que contiene registros del motor de actualización de software del sistema. + * wfd + * wfdDumpSource.log + * Archivo que contiene actividad registrada del componente Wifi direct (WFD). + * wifi +* system +* proc + * kmsg + * Archivo que contiene el log actual del kernel con actividad del sistema a bajo nivel. + * last_kmsg + * Archivo que contiene el último log persistente del kernel tras un reinicio. +* sys/ + * fs/ + * pstore/ + +Los comandos equivalentes de ADB de este módulo son los siguientes: +Comando equivalente para el listado recursivo de cada carpeta: -* `log/imscr/imscr.log.0` - * **imscr.log.0**: Archivo que contiene registros del componente IMS para servicios de comunicación. - -* `log/omc/` - * **cidmanager.log**: Archivo que contiene información del gestor de códigos de operador (CID). - * **csc_update_log.txt**: Archivo que contiene el registro de actualizaciones del paquete de personalización CSC. - * **home_fota_update_log.txt**: Archivo que contiene registros de actualizaciones FOTA en red doméstica. - * **prev_csc_log.txt**: Archivo que contiene un historial previo de configuración del operador. - -* `log/search/0_com.samsung.android.scs_index_encrypted.tar.gz` - * **0_com.samsung.android.scs_index_encrypted.tar.gz**: Archivo comprimido cifrado que contiene datos del índice de búsqueda del sistema. - -* `log/sfslog/sfslog.0.gz` - * **sfslog.0.gz**: Archivo comprimido que contiene registros del sistema de archivos seguro (Secure File System). - -* `log/smartswitch/1726696227738SmartSwitchSimpleLog.log` - * **1726696227738SmartSwitchSimpleLog.log**: Archivo que contiene registros del proceso de transferencia de datos mediante Smart Switch. - -* `log/update_engine_log/update_engine.20240603-222843` - * **update_engine.20240603-222843**: Archivo que contiene registros del motor de actualización de software del sistema. - -* `log/wfd/wfdDumpSource.log` - * **wfdDumpSource.log**: Archivo que contiene actividad registrada del componente Wifi direct (WFD). +``` +adb shell "ls -R /data/anr/" +adb shell "ls -R /data/log/" +adb shell "ls -R /sdcard/log/" +``` +Comando equivalente para la descarga de cada archivo: -* `log/wifi/` +``` +adb pull /data/system/uiderrors.txt +adb pull /proc/kmsg +adb pull /proc/last_kmsg +adb pull /sys/fs/pstore/console-ramoops +adb pull /data/anr/ +adb pull /data/log/ +adb pull /sdcard/log/ +``` -* `system/proc/` - * **kmsg**: Archivo que contiene el log actual del kernel con actividad del sistema a bajo nivel. - * **last_kmsg**: Archivo que contiene el último log persistente del kernel tras un reinicio. +**¿Por qué es importante?** -* `sys/fs/pstore/` +Esta información es importante porque recopila los archivos de registro del sistema y de las aplicaciones, proporcionando información detallada sobre errores y otros eventos del dispositivo. Esto permite conocer el comportamiento del sistema, detectar fallos, identificar rastros de ejecución o anomalías. ## Procesos y aplicaciones @@ -800,7 +1155,7 @@ Los archivos y carpetas contenidas en este directorio son los siguiente: La información de esta carpeta se genera mediante el módulo [packages.go](https://github.com/mvt-project/mvt/blob/main/src/mvt/android/modules/adb/packages.py). **Información contenida** -Este archivo se encuentra en formato *json* y contiene la salida del comando `adb shell pm list packages` , el cual muestra un listado de aplicaciones instaladas en el dispositivo. +Este archivo se encuentra en formato json y contiene un listado de aplicaciones instaladas en el dispositivo ofreciendo información sobre estas como el nombre de paquete instalado, la ruta donde se encuentra, origen de instalación, su estado actual o si es una aplicación de terceros. El archivo contiene: @@ -812,12 +1167,23 @@ El archivo contiene: * system: Indica si el paquete pertenece al sistema. * third\_party: Indica si es una aplicación de terceros. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell pm list packages -f +``` + + + **¿Por qué es importante?** -El contenido de este archivo incluye información que permite identificar aplicaciones instaladas y cuál es su estado en el dispositivo. Esto ayuda a los analistas a evaluar si existen aplicaciones de riesgo o maliciosas, que permisos tienen y cuales pueden comprometer la seguridad. +El contenido de este archivo incluye información que permite identificar aplicaciones instaladas y cuál es su origen, ubicación y estado de confianza en el dispositivo. Esto ayuda a los analistas a evaluar si existen aplicaciones de riesgo o maliciosas, que permisos tienen y cuales pueden comprometer la seguridad. **Estructura del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF: + + ``` [ { @@ -856,6 +1222,32 @@ El contenido de este archivo incluye información que permite identificar aplica ] ``` +Ejemplo de salida de comando ADB de listado de paquetes: + +``` +package:/system/system_ext/priv-app/QuickAccessWallet/QuickAccessWallet.apk=com.Android.systemui.plugin.globalactions.wallet +package:/apex/com.Android.mediaprovider/priv-app/MediaProvider@AP2A.240905.003/MediaProvider.apk=com.Android.providers.media.module +package:/system/product/overlay/IconPackCircularAndroid/IconPackCircularAndroidOverlay.apk=com.Android.theme.icon_pack.circular.Android +package:/system/app/MotoSignatureApp/MotoSignatureApp.apk=com.motorola.motosignature.app +package:/system/product/priv-app/Eleven/Eleven.apk=org.lineageos.eleven +package:/system/app/BookmarkProvider/BookmarkProvider.apk=com.Android.bookmarkprovider +package:/system/app/CaptivePortalLogin/CaptivePortalLogin.apk=com.Android.captiveportallogin +package:/system/product/overlay/IconPackFilledSystemUI/IconPackFilledSystemUIOverlay.apk=com.Android.theme.icon_pack.filled.systemui +package:/apex/com.Android.adservices/priv-app/AdServicesApk@AP2A.240905.003/AdServicesApk.apk=com.Android.adservices.api +package:/system/system_ext/app/AccessibilityMenu/AccessibilityMenu.apk=com.Android.systemui.accessibility.accessibilitymenu +package:/system/product/priv-app/MotCamera2/MotCamera2.apk=com.motorola.camera2 +package:/apex/com.Android.uwb/priv-app/ServiceUwbResources@AP2A.240905.003/ServiceUwbResources.apk=com.Android.uwb.resources +package:/system/system_ext/app/MotoActions/MotoActions.apk=org.lineageos.settings.device +package:/system/product/priv-app/AndroidAutoStub/AndroidAutoStub.apk=com.google.Android.projection.gearhead +package:/system/product/overlay/LineageSettingsProvider__lineage_ocean__auto_generated_rro_product.apk=org.lineageos.lineagesettings.auto_generated_rro_product__ +package:/apex/com.Android.cellbroadcast/priv-app/CellBroadcastServiceModule@AP2A.240905.003/CellBroadcastServiceModule.apk=com.Android.cellbroadcastservice +package:/apex/com.Android.cellbroadcast/priv-app/CellBroadcastApp@AP2A.240905.003/CellBroadcastApp.apk=com.Android.cellbroadcastreceiver.module +package:/system/system_ext/app/QtiTelephonyService/QtiTelephonyService.apk=com.qualcomm.qti.telephonyservice +package:/system/product/overlay/FontRubik/FontRubikOverlay.apk=org.lineageos.overlay.font.rubik +``` + + + ### apks/ La información de esta carpeta se genera mediante el módulo [packages.go](https://github.com/mvt-project/androidqf/blob/main/modules/packages.go). @@ -864,26 +1256,51 @@ La información de esta carpeta se genera mediante el módulo [packages.go](http Este directorio almacena los archivos APK (paquetes de aplicaciones Android) extraídos del dispositivo. Estos son los archivos de instalación de las aplicaciones que estaban presentes en el sistema en el momento del análisis. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb pull +``` + **¿Por qué es importante?** El análisis de los APKs permite examinar las aplicaciones instaladas en el dispositivo, identificar posibles muestras de malware o aplicaciones maliciosas, así como validar las versiones instaladas y sus firmas. +**Ejemplo del contenido del archivo** + +Ejemplo de contenido devuelto por ejecución de comando ADB para la descarga de APKs: + +``` +$ adb pull +/system/system_ext/priv-app/QuickAccessWallet/QuickAccessWallet.apk +/system/system_ext/priv-app/QuickAccessWallet... 0 skipped. 8.6 MB/s (745270 bytes in 0.083s) +``` + + ### processes.txt La información de este archivo se genera mediante el módulo [processes.go](https://github.com/mvt-project/androidqf/blob/main/modules/processes.go). **Información contenida** -Este archivo se encuentra en formato *json* y contiene la salida del comando `adb shell ps -A` , el cual muestra información detallada sobre los procesos que se encuentran en ejecución. +Este archivo se encuentra en formato *json* y contiene información detallada sobre los procesos que se encuentran en ejecución. Este archivo presenta la información en una forma estructurada teniendo como orden identificadores, detalles de la ejecución, consumo de recursos y estado del proceso. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell ps -A +``` + **¿Por qué es importante?** Este archivo permite identificar procesos que son ejecutados de manera inusual o que son ejecutados por usuarios no autorizados como resultado de una escalada de privilegios. Así mismo, podemos asegurar que los procesos y sus jerarquías coinciden con las configuraciones establecidas o normales. **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF: + ``` [ { @@ -945,6 +1362,38 @@ Este archivo permite identificar procesos que son ejecutados de manera inusual o ] ``` +Ejemplo de contenido devuelto por ejecución de comando ADB: + +``` +USER PID PPID VSZ RSS WCHAN ADDR S NAME +root 1 0 11066580 10020 0 0 S init +root 2 0 0 0 0 0 S [kthreadd] +root 4 2 0 0 0 0 S [kworker/0:0H] +root 5 2 0 0 0 0 S [kworker/u16:0] +root 6 2 0 0 0 0 S [ksoftirqd/0] +root 7 2 0 0 0 0 S [rcu_preempt] +root 8 2 0 0 0 0 S [rcu_sched] +root 9 2 0 0 0 0 S [rcu_bh] +root 10 2 0 0 0 0 S [rcuop/0] +root 11 2 0 0 0 0 S [rcuos/0] +root 12 2 0 0 0 0 S [rcuob/0] +root 13 2 0 0 0 0 S [migration/0] +root 14 2 0 0 0 0 S [lru-add-drain] +root 15 2 0 0 0 0 S [cpuhp/0] +root 16 2 0 0 0 0 S [cpuhp/1] +system 987 1 10866216 3536 0 0 S Android.hardware.graphics.allocator@2.0-service +system 988 1 11113564 10352 0 0 S Android.hardware.graphics.composer@2.1-service +system 989 1 10791636 3268 0 0 S Android.hardware.health@2.1-service +system 990 1 10784848 3080 0 0 S Android.hardware.light@2.0-service.msm8953 +system 991 1 10836444 3044 0 0 S Android.hardware.memtrack@1.0-service +system 992 1 10866528 4276 0 0 S Android.hardware.power-service-qti +system 996 1 10820064 2996 0 0 S Android.hardware.thermal@1.0-service +system 999 1 10802340 3188 0 0 S Android.hardware.usb@1.0-service +wifi 1002 1 11082236 5180 0 0 S Android.hardware.wifi-service +system 1003 1 10870516 3864 0 0 S vendor.display.color@1.0-service +system 1004 1 10830264 3552 0 0 S vendor.lineage.health-service.default +``` + **Aprende más** * [Descripción general de los procesos y subprocesos](https://developer.android.com/guide/components/processes-and-threads?hl=es-419) @@ -955,16 +1404,24 @@ La información de este archivo se genera mediante el módulo [services.go](http **Información contenida** -Este archivo se encuentra en formato *txt* y contiene la salida del comando `adb shell service list` el cual muestra información detallada sobre los servicios en ejecución. +Este archivo se encuentra en formato *txt* y contiene información detallada sobre los servicios en ejecución. La estructura del archivo es el nombre del servicio y el proceso o paquete que está en ejecución para ese servicio. +El comando equivalente de ADB de este módulo es el siguiente: + +``` +adb shell service list +``` + **¿Por qué es importante?** Este archivo permite identificar los servicios en ejecución o en sentido contrario identificar si un servicio no se encontraba en ejecución. Esto es útil para identificar que todos los servicios necesarios estén en ejecución para mantener la integridad de la seguridad del dispositivo. **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF y comando ADB: + ``` Found 368 services: 0 AtlasService: [android.atlas.service] @@ -1037,7 +1494,7 @@ Este módulo hace una búsqueda específica de proceso de rooting. **Información contenida** -Este archivo se encuentra en formato *json* y contiene la salida del comando `adb shell which -a` aplicado a una lista de binarios para saber si están presentes en el sistema. +Este archivo se encuentra en formato *json* y contiene una lista de binarios para saber si están presentes en el sistema. Los binarios a los que se aplica son utilizados para obtener acceso de root o elevar privilegios en el dispositivo. @@ -1056,6 +1513,22 @@ La lista de binarios y archivos es: Si ninguno de estos archivos está presente en el dispositivo entonces el contenido del archivo será vacío. +Los comandos equivalentes de ADB de este módulo son los siguientes: + +``` +adb shell "which -a su" +adb shell "which -a busybox" +adb shell "which -a supersu" +adb shell "which -a Superuser.apk" +adb shell "which -a KingoUser.apk" +adb shell "which -a SuperSu.apk" +adb shell "which -a magisk" +adb shell "which -a magiskhide" +adb shell "which -a magiskinit" +adb shell "which -a magiskpolicy" +``` + + **¿Por qué es importante?** Este archivo detecta herramientas de rooting, lo cual puede representar un indicativo de accesos no autorizados y escalada de privilegios que pueda exponer alguna vulnerabilidad. Así mismo, permite al analista identificar binarios sospechosos que podrían haberse instalado sin el conocimiento del usuario y ayuda a determinar si el dispositivo ha sido manipulado. @@ -1068,7 +1541,10 @@ El archivo vacío tiene la siguiente estructura: [] ``` -Cuando el módulo identifica binarios relacionados con el rooting en las rutas estándar del sistema en el dispositivo, contendrá una lista de estas rutas a los binarios detectados: +Cuando el módulo identifica binarios relacionados con el rooting en las rutas estándar del sistema en el dispositivo, contendrá una lista de estas rutas a los binarios detectados. + +Ejemplo de contenido devuelto por ejecución de AndroidQF y comando ADB: + ``` [ @@ -1082,8 +1558,6 @@ Cuando el módulo identifica binarios relacionados con el rooting en las rutas e "/data/local/tmp/Superuser.apk", "/data/local/tmp/magiskhide" ] - - ``` ## Información de archivos en el dispositivo @@ -1096,18 +1570,35 @@ Este módulo está diseñado específicamente para realizar copias de seguridad **Información contenida** -Este archivo se encuentra en formato binario y contiene datos relacionados con la copia de seguridad de aplicaciones y configuraciones del dispositivo. Los datos binarios presentes en este archivo se encuentran comprimidos e incluyen información confidencial del dispositivo. +Este archivo se encuentra en formato binario y contiene datos relacionados con el la copia de seguridad de aplicaciones y configuraciones del dispositivo. Los datos binarios presentes en este archivo se encuentran comprimidos e incluyen información confidencial del dispositivo. -Dependiendo de la opción seleccionada en androidqf el contenido del archivo puede ser solamente los SMS o puede ser una copia de datos de aquellas aplicaciones que tienen declarado en su manifiesto la posibilidad de realizar copias. +Dependiendo de la opción seleccionada en androidqf el contenido del archivo puede ser solamente los SMS o puede ser una copia de datos de aquellas aplicaciones que tienen declarado en su manifiesto la posibilidad de realizar copias. Vale resaltar que esta función es poco utilizada en la actualidad, por lo que no representa un respaldo fiable del dispositivo. Este archivo comprimido puede ser analizado por la MVT mediante el comando `mvt-android check-backup backup.ab` +Los comandos equivalentes de ADB de este módulo son los siguientes: +Comando equivalente para solo SMS: + +``` +adb backup com.Android.providers.telephony +``` + +Comando equivalente para respaldo completo: + +``` +adb backup -all +``` + + **¿Por qué es importante?** -En el caso forense este respaldo permite analizar los SMS en búsqueda de enlaces sospechosos o maliciosos. +Esta información permite generar una copia de seguridad del dispositivo, lo que ayuda a mantener evidencia relevante como SMS o configuraciones del sistema. También facilita la conservación de información potencialmente relacionada a incidentes de seguridad o ataques de phishing de manera íntegra con posibilidades de usarse para análisis posteriores. **Ejemplo del contenido del archivo** +Ejemplo de contenido devuelto por ejecución de AndroidQF: + + ``` (Binary data containing app backups and settings) 414e 4452 4f49 4420 4241 434b 5550 0a35 @@ -1136,9 +1627,7 @@ La información de este archivo se genera mediante el módulo [files.go](https:/ **Información contenida** -Este archivo se encuentra en formato *json* y contiene el resultado de la busqueda de archivos mediante el comando *find.* - -El comando completo de *find* es `adb shell find '/' -maxdepth 1 -printf '%T@ %m %s %u %g %p\n' 2\> /dev/null` y se aplica a las siguientes carpetas: +Este archivo se encuentra en formato *json* y genera un registro de archivos y metadatos en las siguientes rutas: * /sdcard/ * /system/ @@ -1157,8 +1646,30 @@ El comando completo de *find* es `adb shell find '/' -maxdepth 1 -printf '%T@ %m Cada archivo incluye metadatos como: la ruta completa del archivo, tamaño, marca de tiempo (indica última modificación del archivo y último acceso al archivo), permisos del archivo, identificador del propietario, mensajes de error y hashes sha1, sha256, sha512, md5 si es que están pre-calculados. +Los comandos equivalentes de ADB de este módulo son los siguientes: + +``` +adb shell "find /sdcard/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /system/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /system_ext/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /vendor/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /cust/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /product/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /apex/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/local/tmp/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/media/0/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/misc/radio/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/vendor/secradio/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/log/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /tmp/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find / -maxdepth 1 -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +adb shell "find /data/data/ -printf '%T@ %m %s %u %g %p\n' 2>/dev/null" +``` + **¿Por qué es importante?** +Ejemplo de contenido devuelto por ejecución de AndroidQF: + Este archivo tiene relevancia para identificar archivos de interés en una investigación forense, incluyendo potenciales archivos utilizados por atacantes para comprometer un dispositivo y hacer los análisis oportunos que permitan dar seguimiento a actividad maliciosa. **Ejemplo del contenido del archivo** @@ -1184,6 +1695,33 @@ Este archivo tiene relevancia para identificar archivos de interés en una inves } ``` +Ejemplo de contenido devuelto por ejecución de comando ADB: + +``` +1762885286.638000649 770 3464 root everybody /sdcard/ +1762885284.208000407 770 3464 root everybody /sdcard/Android +1762886328.989657481 771 3464 root sdcard_rw /sdcard/Android/data +1230768000.0 755 4096 root root /system/ +1230768000.0 755 16384 root root /system/lib +1230768000.0 644 56516 root root /system/lib/aaudio-aidl-cpp.so +174618780.323371170 755 4096 root root /system_ext/ +1230768000.0 755 4096 root root /system_ext/lib +1230768000.0 644 197552 root root /system_ext/lib/com.qualcomm.qti.imscmservice@2.0.so +1230768000.0 755 4096 root shell /vendor/ +1230768000.0 755 4096 root shell /vendor/vendor_dlkm +1230768000.0 755 4096 root shell /vendor/vendor_dlkm/etc +174618784.276704897 755 4096 root root /product/ +174618779.613371100 755 4096 root root /product/lib +174618779.620037767 644 943652 root root /product/lib/libjni_latinimegoogle.so +210875820.303334210 755 1380 root root /apex/ +210875816.683333849 771 3464 shell shell /data/local/tmp/ +1726625293.972938149 755 4096 root root / +210875815.30000351 710 80 shell everybody /storage +1230768000.0 644 11 root root /etc +1762885284.64667059 771 24576 system system /data/data/ +``` + + ## Comentarios ¿Tienes **comentarios o sugerencias** sobre este recurso? Puedes utilizar la **función de comentar que se muestra a continuación** para dejarnos tus ideas o apreciaciones. Por favor asegúrate de seguir nuestro [código de conducta](../../community/code-of-conduct/). La función de comentarios enlaza directamente a la sección de [_Discussions_ de Github](https://github.com/Socialtic/forensics/discussions), donde también **puedes participar en las discusiones de forma directa**, si lo prefieres.