网站入侵

网站入侵,入侵渗透,怎么样入侵网站,黑客怎么拿站,黑客接单

Android 渗透测试取证实战

                       

5.1 取证类型

采用不同的手动和自动方法从设备中提取和分析数据。大致可分为两类:

  • 逻辑收集:这是一种从文件系统中提取数据的方法。该数据可以是任何内容,如应用特定数据、联系人、电话记录、信息、web 浏览器历史、社交网络用户信息和财务信息。逻辑收集的优点是,在大多数情况下,获取逻辑信息比物理收集更容易。然而,在某些情况下,该方法的一个限制是,在这种情况下,证据(智能手机及其数据)被篡改的风险很高。
  • 物理采集:这意味着对整个物理存储介质进行逐位拷贝。我们还可以在执行物理采集时定位不同的单个分区。与逻辑采集相比,这种方法慢得多,但更可靠和可信赖。此外,为了在智能手机上执行物理采集,检查者需要熟悉不同类型的文件系统,例如 Yet Another Flash File System 2(YAFFS2),ext3,ext4,rfs 等。

5.2 文件系统

在我们深入收集证据和从设备中提取数据之前,我们应该清楚地了解文件系统的类型和差异。正如我们之前讨论的, Android 物理收集有点困难,主要原因之一是文件系统不同。

Android 文件系统的主分区通常分为 YAFFS2。在 Android 中使用 YAFFS2 的原因是它为设备提供了更高的效率和性能,以及更低的占用空间。几年前,当 Android 刚推出的时候,取证是平台上的大问题,因为很少支持 YAFFS2 文件系统格式的取证工具。

SD 卡是 FAT32 类型是正常系统用户中的共享格式。因此,为了获得 SD 卡的图像可以使用任何传统的数据收集和证据收集工具。

是最著名的制作副本或创建现有数据系统图像的工具之一dd,它从原始来源到系统逐块复制。然而,由于工具的缺点,如缺乏内存块和跳过块,会导致数据损坏,因此不建议在证据收集调查期间使用。在下一章中,我们将深入介绍 Android 文件系统将研究如何以最有效的方式从文件系统中提取数据。

Android 文件系统分区

正如我们在前一章中讨论的,Android 基于 Linux 内核,从 Linux 本身衍生出其大部分功能和属性。Android 文件系统分为不同的分区,每个分区都具有重要意义。

为了在 Android 我们可以在设备上查看分区adb shell然后查看proc下的mtd文件,如下列命令所示。有些不存在mtd在文件设备中proc下面还有一个名字partitions如下列命令所示:

adb shellcat /proc/mtd

以下是在设备上执行上述命令列出所有分区后输出的屏幕截图。

正如我们在上面的截图中看到的,有各种各样的文件系统分区及其大小。大多数 Android 在设备上,我们通常会看到一些数据分区,比如system,userdata,cache,recovery,boot,pds,kpanic和misc,它们安装在dev列指定的不同位置。为了看到不同的分区和类型,我们可以在adb shell中键入mount。

正如我们在下面的截图中看到的,通过执行mount所有不同分区及其位置的命令列表将被挂载:

5.3 使用dd提取数据

dd该工具是获取证据最常用的工具之一,为数据提取过程创建图像。换句话说,它被用来转换和复制指定的输入文件作为输出文件。通常在分析过程中,我们不允许直接与证据交互和更改。因此,获取设备文件系统的图像,然后进行分析总是一个很好的选择。

默认情况下,dd大多数基于 的工具Linux 的系统,以及 Android 设备/system/bin都存在。如果它不存在于您的设备中,您可以安装 BusyBox,它将安装dd还有其他有用的二进制文件。你可以从 BusyBox 应用程序(https://play.google.com/store/apps/details?id=stericson.busybox)获取dd二进制文件,或者你甚至可以自己交叉编译。

dd标准语法如下:

dd if = [source file which needs to be copied] of = [destination file to be created]

有几个命令行选项可以与dd包括:

  • if:这是要复制的输入文件
  • of:这是内容复制给它的输出文件
  • bs:这是块大小(一个数字),指定dd复制图像的块大小
  • skip:这是在复制过程开始前跳过的块数

现在让我们继续,获得现有分区之一的图像来获取证据

  • 我们需要找到的第一件事是不同的分区,它们存在于我们的 Android 设备,就像我们以前做的一样。这可以通过查看/proc/mtd完成文件内容。
  • 接下来,我们需要了解数据分区的位置,因为我们在这里收集数据分区的备份。在这种情况下,它位于mtdblock6。在这里,我们将开始dd,并存储图像sdcard我们以后再用adb pull命令拉图像。adb pull命令只允许您将文件从设备拉到本地系统。
  • 复制可能需要一些时间。一旦复制完成,我们可以退出adb shell,访问我们的终端,并输入以下代码:adb pull /mnt/sdcard/data.img data.img
  • 也可以用 Netcat 工具将图像直接保存到远程位置/系统。因此,我们首先需要将端口从设备转发到系统。adb forward tcp:5566 tcp:5566
  • 同时,我们需要在这里启动 Netcat 工具,监控端口 5566。nc 127.0.0.1 5566 > data.img
  • 之后,我们必须执行它adb shell进入设备,然后启动dd将输出转发到 Netcat。nc -l -p 5566-e dd if=/dev/block/mtdblock6
  • 这将图像保存到系统中,而不是保存在设备上的任何位置,然后取出。如果你的手机上没有dd也可以安装二进制 BusyBox 来获得dd二进制。

    在开始证据收集调查之前,应确保检查设备是否设置在超级用户模式下,通常需要设备 root。然而,我们遇到的并非所有设备都是 root。在这种情况下,我们将使用自定义恢复图像启动手机,然后 root 设备。

    5.4 使用 Andriller 提取应用数据

    Andriller 是由 Denis Sazonov 以 Python 编写的开源多平台取证工具有助于从设备中提取一些基本信息,并有助于取证分析。分析完成后,将生成 HTML 取证报告格式。

    为了下载它,我们可以访问官方网站http://android.saz.lt/cgi-bin/download.py并下载必要的包。如果我们在 Linux 或 Mac 我们可以在环境中简单地使用它wget命令下载并解压软件包。因为它只是 Python 文件和其他必要的二进制文件,因此无需安装; 相反,我们可以直接使用它。

    $ wget http://android.saz.lt/download/Andriller_multi.tar.gzSaving to: 'Andriller_multi.tar.gz'100%[=============================>] 114KB/s in 9.2s2013-12-27 KB/s) - 'Andriller_multi.tar.gz' saved [1065574/1065574] $ tar -xvzf Andriller_multi.tar.gz

    一旦解压完成,我们可以访问 Andriller 文件夹,然后只需使用python andriller.py运行它。Andriller 的主要依赖之一是 Python 3.0。若使用 Python 2.7 ,它预装在大多数操作系统上,你可以从官方网站上http://python.org/download/releases/3.0/或http://getpython3.com/下载 3.0 版本 。

    现在,一旦我们连接到设备,我们可以继续运行Andriller.py,从设备中捕获信息,并创建日志文件和数据库。

    $ python Andriller.py

    一旦开始运行,我们会注意到,它会打印出设备的几个信息,如 IMEI 号码、内部版本号和安装的社交网络应用程序。在这里,它检测到 WhatsApp 应用程序和与之相关的电话号码将继续并拉取 WhatsApp 应用程序的所有数据库。

    分析完成后,我们将看到类似于以下屏幕截图的屏幕:

    如果我们看看它为我们创造的 HTML 文件将显示一些关于设备的基本信息,如下面的屏幕截图所示。它还在文件夹中db所有数据库件夹目录中创建所有数据库的转储。

    如果我们分析这个应用程序的源代码,我们可以Andriller.py从源代码中可以看出,它将检查设备中的不同包。我们也可以在这里添加自己的包并保存数据库。我们希望 Andriller 为我们寻找它。

    如下截图所示,您可以手动添加更多使用 Andriller 备份数据库。

    5.5 使用 AFLogical 提取所有联系人、电话记录和短信

    AFLogical 是由 viaForensics 编写的工具可以从设备中创建逻辑收集,并将结果呈现给收集者。它从设备中提取一些关键组件,包括短信、联系人和电话记录。

    为了使用 AFLogical,我们需要从 GitHub 库https://github.com/viaforensics/android-forensics下载项目的源代码。下载后,我们可以将此项目导入我们的 Eclipse 工作区工作区。我们可以访问我们现有的代码File | New | Other | Android | Android Project,然后选择下载的源代码路径。

    一旦我们将项目引入我们的工作区域,我们就可以在我们的设备上操作它,右键单击项目并选择操作 Android 应用程序。一旦我们运行它,我们就会注意到我们的设备AFLogical应用程序提供选项来选择提取什么信息。您将在下面的屏幕截图中看到 AFLogical 在设备上运行,询问用户提取的详细信息:

    我们将检查一切,然后单击Capture。AFLogical 将开始从不同的来源捕获详细信息,并在 中保存详细信息SD 卡中的csv文件中。捕获完成后,我们会注意到一个警告框。

    我们现在可以查看我们的 SD 卡路径,我们可以找到保存的.csv文件。

    然后我们可以做任何事.csv打开这些文件查看器.csv查看详细信息的文件。AFLogical 是从设备中提取一些信息的快速有效工具,如联系人、通话记录和信息。

    5.6 数据库手动转储应用

    既然我们已经看到很多工具可以帮助我们收集证据,我们也可以使用它们adb从设备中提取一些关于我们手动技能的信息。正如我们之前学到的,应用程序文件存储在/data/data/[应用程序包名]/位置。由于大多数应用程序也使用数据库存储数据,我们注意到它们被称为directory包里还有一个名字databases文件夹。这里需要注意的是,它只能帮助我们从使用数据库的应用程序中提取信息,以转移应用程序和其他相关信息。在某些应用程序中,我们也可能注意到应用程序将数据存储在 XML 我们需要手动审计文件中或使用共享首选项。

    Android 使用 SQLite 数据库(.db所有数据库的手动提取步骤如下:

    • 进入设备并创建一个存储所有数据库的文件夹
    • 查找所有.db将文件复制到创建的文件夹中
    • 压缩文件夹并拉取

    因此,我们可以使用它adb shell查找/data/data/location将所有数据库文件压缩到归档文件中,然后拉出。

  • 在 SD 卡中创建一个名字BackupDBS的文件夹。
  • 为此,我们可以简单地执行它adb shell,然后在/mnt/sdcard创建一个名字BackupDBS的文件夹:adb shell mkdir /mnt/sdcard/BackupDBS
  • 查找所有.db并制文件BackupDBS。
  • 为此,我们可以使用一个简单的命令行绝技来搜索和复制/data/data中的所有.db文件。我们先用find命令搜索一切.db文件。我们使用以下命令find工具,指定从当前位置搜索,然后找到任何文件名(通配符*)以及扩展名db所有文件(即*.db),以及文件的类型f。find . -name "*.db" -type f 以下截图显示输出:
  • 现在,我们可以简单地使用它cp和find,以便将其复制到BackupDBS目录find . -name "*.db" -type f -exec cp {} /mnt/sdcard/BackupDBS \;
  • 现在,如果我们查看/mnt/sdcard下的BackupDBS目录,我们所有的数据库都已成功复制到这个位置。
  • 压缩和提取文件。现在,我们可以在同一个位置使用它tar创建压缩包并使用工具adb pull。tar cvf backups.tar BackupDBS/
  • 然后,从系统中,我们可以简单地这样拉它。该方法也可用于/data/app和/data/app-private在文件夹中找到文件类型.apk,把一切都从手机里拉出来.apk文件。
  • 如果我们仔细看,在我们身上backups.tar还有一个叫中msgstore.db的 WhatsApp 应用程序数据库。让我们继续分析和研究数据库的内容。因此,我们需要首先减压我们刚刚提取的内容tar归档文件。tar -xvf backups.tar
  • 现在,为了分析名称msgstore.db的 WhatsApp 的 SQLite 我们可以下载和使用任何 数据库SQLite 浏览器。我们这本书,我们使用 SQLite 从http://sourceforge.net/projects/sqlitebrowser/下载。
  • 现在,如果我们在 SQLite打开数据库浏览器msgstore.db在 SQLite 在浏览器中看到我们所有的 WhatsApp 对话。在下面的截图中,我们可以看到 SQLite打开数据库浏览器的msgstore.db,它显示 WhatsApp 应用程序的所有聊天对话:
  • 5.7 使用 logcat 记录日志

    Android logcat 有时在证据收集和调查过程中非常有用。它包含了在电话和收音机上执行的所有活动的日志。虽然不完整,但它可以帮助调查人员了解设备中发生了什么。

    用于捕获和保存logcat 我们可以简单地使用转储文件adb logcat并将输出保存到文件中,然后我们可以分析它。

    adb logcat > logcat_dump.log

    我们也可以使用它logcat以更详细、更有用的方式获取日志。例如,我们可以指定它-b参数和radio获取收音机日志。-b显示缓冲区(如收音机或事件)的 标志logcat。-v标志用于控制输出格式,代表verbose(详细),也可以time,brief,process,tag,raw,threadtime或long。除了-v,我们也可以使用它-d(调试),-i(信息),-w(警告)或-e(错误)。

    adb logcat -v time -b radio -d

    我们也可以使用其他工具,比如dmesg,它将打印内核信息和getprop,它将打印设备的属性:

    adb shell getprop

    XDA 开发人员成员 rpierce99 自动捕获来自 的应用程序logcat 和其他相关来源的信息可以从https://code.google.com/p/getlogs/下载使用。

    5.8 使用备份功能提取应用数据

    Android 从 4.0 引入使用adb备份功能。该功能可用于创建应用程序的备份和整个数据。这对证据收集非常有用,因为证据收集器可以捕获应用程序及其整个数据。请参考以下步骤:

  • 这可以在终端中执行adb backup命令,后面是应用程序的包名。如果我们不知道应用程序的准确包名,我们可以使用它pm列出所有包,然后过滤应用程序名称。
  • 另一种执行此操作的方法是使用它pm list package命令,其中-f标志指定要在包名称中查找的字符串。
  • 接下来,我们可以简单地使用应用程序的包名来备份我们需要的任何应用程序。adb backup [package name] -f [destination file name]
  • 目标文件将扩展文件的名称.ab(Android 备份)存储。在这里,我们收集 WhatsApp 备份应用程序。
  • 如下截图所示:
  • 在这里,我们需要选择Back up my data(备份我的数据)选项,并指定备份密码。一旦备份过程完成,我们将获得它whatsapp_backup.ab文件。
  • 接下来,我们需要解压此备份,以便从.ab为此,我们将使用文件获取数据库。dd和openssl创建一个.tar然后我们可以解压文件。
  • 现在,因为我们得到了它.tar我们可以使用文件tar xvf简单解压。
  • 一旦解压完成,我们可以访问它apps/[package-name]下的db获取数据库的文件夹。在这里,程序包的名称是com.whatsapp。
  • 让我们快速使用ls -l来查看db文件夹中的所有可用文件。正如你所看到的,我们拥有msgstore.db包含 的文件WhatsApp 对话,我们已经在上一节看到了。

    总结

    在本章中,我们分析了不同的实施证据收集方法和各种工具,我们可以使用它们来帮助我们进行证据收集调查。此外,我们还了解了一些我们可以从设备中提取数据的手动方法。

    在下一章中,我们将深入 SQLite 数据库,这是 Android 渗透测试的另一个要素。

           

    发表评论:

    Powered By

    Copyright Your WebSite.Some Rights Reserved.