FTK imager 下载地址 https://marketing.accessdata.com/ftkimager4.2.0 javascript
阅览目录css
dd是Linux/UNIX 下的一个很是有用的命令,做用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。html
# fdisk -l
# dd if=须要拷贝的磁盘 of=/存储目录/镜像文件 (确保存储目录有足够的空间)
克隆硬盘或分区的操做,不该在已经mount的的系统上进行,采起远程取的办法这样能够避免破坏现场。java
从受害机器A拷贝文件到取证机器B。须要先在取证机器B上,用nc激活监听。linux
取证机器B上运行: nc -l 1234 > text.txt 受害机器A上运行: nc 192.168.10.11 1234 < text.txt
注:取证机器B监听要先打开,192.168.10.11是取证机器B的IPios
取证机器B上运行:git
nc -l -p 4445 | dd of=/tmp/sda2.dd
受害机器A上执行传输,便可完成从受害机器A克隆sda硬盘到取证机器B的任务:github
dd if=/dev/sda2 | nc 192.168.10.11 4445
能够用ls -lh命令,查看传输过来的数据大小。shell
Image Mounting挂载dd备份出来的硬盘数据。windows
dd使用方法详解
http://www.jb51.net/LINUXjishu/157283.html
计算机取证过程当中要用到不少工具 , 根据取证工具的用途, 主要能够将取证工具分为三大类:第一类是磁盘文件取证复制工具, 第二类是内存文件取证工具,第三类是取证分析工具。尽管不少商业工具都是在 Windows 环境中开发的,可是 Linux 平台仍是得到了本身的一席之地,由于 Linux 包含了很是强大的工具,这些工具对取证调查是很是有帮助的,Linux 环境下的取证工具备很多, 有兴趣的读者可参阅网址http://www.opensourceforensics.org/tools/unix.html,本文主要介绍 Linux 环境下的磁盘和内存取证工具包括 Ftkimage、xmount、Volatility、dd、netcat 等。
通常来讲取证就是收集并分析证据,并为司法行动中的展现构建事实的一个过程。但在计算机技术中,或在计算机取证技术中,取证就是经过专门的技术来发现证据的过程,这些证据可被用于确认计算机、计算机网络、相关设备、数据存储媒体是否被用于实施犯罪或未受权的活动。在计算机的取证领域中,取证人员在取证调查的整个过程当中证实证据媒体没有在任何方面被篡改是相当重要的。其中一种方法是对原始的证据媒体做一个映象复制,并对映象复制品展开调查,以防止对原始证据的任何更改。本文介绍磁盘取证工具的平台是 Fedora 21 x64 系统。
计算机取证时须要为计算机生成一个位镜像, 这个操做要在系统还在运行的时候或在系统关闭以前进行。最常使用的就是两个工具: dd 和 netcat(二者都是开源软件安装很是简单这里从略)。dd 为咱们生成磁盘的位镜像文件,而 netcat 将拷贝经过网络传送出去。你须要一台联网的电脑来接收该镜像文件,并且该电脑须要有足够的空间来存放镜像文件。
复制/dev/sdc 到文件 cyqdrive.dd 中。将文件分割成多个 1GB 大小的文件。读取错误时,忽略该错误而不中止拷贝行为。这个例子命令以下:
1
|
#dd if=/dev/sdc split=1G of=cyqdrive.dd
|
刚才已经展现如何建立一个磁盘镜像,但只是建立镜像到系统的本地文件。可是当当前的物理空间不足时就要使用 netcat 来将 dd 命令的的输出经过网络链接进行重定向。首先在目标服务器上,启动 netcat 做为一个监听,并将输出重定向到一个远程服务器上的文件。我会用 netcat 监听 TCP 的 3452 端口,并将镜像写入一个远程的文件 cyqimage.dd。
1
|
#nc -l -p 3452 > myimage.dd
|
而后你能够对服务器(192.168.1.1)进行镜像拷贝,并经过标准输出(没有指定输出的文件)来将镜像文件输出到 netcat,而后由 netcat 将镜像文件发送到目标服务器,使用以下命令:
1
|
# dd if=/dev/sdc split=1G of=cyqdrive.dd | nc 192.168.1.1 3452
|
使用 FTK Imager 工具用户能够建立原始证据媒体的取证映象,如本地硬盘、闪盘、软盘、Zip 驱动器、CD、DVD 等。对于 FTK Imager 来讲 Command Line Version(命令行版本)是免费的,用户能够访问 http://www.accessdata.com/support/product-downloads 下载对应的操做系统版本,这里笔者使用的是 Fedora and Red Hat Version x64 – 3.1.1 版本的文件,下载后解压缩后便可使用,文件名称是 ftkimager。
用户可使用这个命令查看帮助信息
1
|
./ftkimager –help
|
首先查看当前加载的驱动器列表,输出界面见图 1
获取/dev/sdb 这个磁盘的 E01 模式的文件映像, 使用以下命令:
1
|
#./ftkimager /dev/sdb /tmp/cyq.e01 --e01 --frag 500M --description "cyq" --examiner cyq
|
ftkimager 这个命令比较长,参数也比较多。这里简单介绍一下
/dev/sdb 是取证目标驱动器名称
/tmp/cyq.e01 是取证文件的名称和路径
--e01 是表示使用 E01 格式。
--frag 500M 表示每 500MB 分红一个文件,在映象片段的大小中,用户能够能够选择将映象分割为多个文件以便于在 DVD 或 FAT 文件系统中中备份。
--examiner cyq 是取证操做人员的姓名简称。
--description "cyq"是操做说明。
E01 格式说明:dd 镜像格式是目前被最普遍使用的一种镜像格式,也称成原始格式 (RAW Image)。dd 镜像的优势是兼容性强,目前全部磁盘镜像和分析工具都支持 dd 格式。E01 是法证分析工具 EnCase 的一个证据文件格式,较好地解决了 dd 镜像的一些不足。在生成 E01 格式证据文件时,会要求用户输入与调查案件相关的信息,如调查人员、地点、机构、备注等元数据。这些元数据将随证据数据信息一同 存入 E01 文件中。文件的每一个字节都通过 32 位的 CRC 校验,这就使得证据被篡改的可能性几乎为 0。默认状况下,分析软件自动以每 64 扇区的数据块进行校验,这种方式兼顾速度和完整性两个方面的考虑。获取个磁盘的 E01 模式的文件映像须要一些时间,根据磁盘大小和硬件型号有所差别,图 2 是完成的界面。
xmount 工具能够把 E01 格式的镜像文件转化为 VDI 或者 VMDK 格式。而后用户可使用 VirtualBox 和 Vmware 软件打开文件进行取证操做。
安装 xmount 软件包
1
2
|
#RPM –ivh https://forensics.cert.org/cert-forensics-tools-release-el7.rpm
#yum install xmount
|
下面须要修改配置文件
1
2
|
#usermod -a -G fuse cyq
#vi /etc/fuse.conf”
|
把下面一行的 # 去掉,修改成:
1
|
user_allow_other
|
而后保存文件后,而后创建一个目录
1
|
#mkdir ~/mnt0
|
若是须要创建 vdi 格式,使用以下命令:
1
|
#xmount --in ewf --out vdi --cache ~/tmp/MyDisk.cache ~/tmp/cyq.E?? ~/mnt0
|
这个命令比较长,参数也比较多。这里简单介绍一下
--in ewf 是表示源文件是 E01 格式。
-~/tmp/cyq.E?? 表示源文件的路径,而且多是多个文件。
--out vdi 表示输出格式是 vdi。
/mnt0 是输出文件的目录。
--description "cyq"是操做说明。
~/tmp/MyDisk.cache 是缓存文件名称。
创建 vdi 文件后,可使用 VirtualBox 虚拟机导入这个 vdi 文件进行取证分析。
若是须要创建 vmdk 格式,使用以下命令:
1
|
#xmount --in ewf --out vmdk --cache ~/tmp/MyDisk.cache ~/tmp/cyq.E?? ~/mnt0
|
创建 vmdk 文件后,可使用 Vmware Workstation 导入这个文件进行取证分析。
内存取证主要经过对内存数据及其缓存硬盘数据进行分析,提取那些对案件侦破可能有重要意义的易失性数据,这些易失性数据的特色是存在于正在运行的计算机或网络设备的内存中,关机或重启后这些数据将再也不存在。
成功获取物理内存之后,接下来的工做就是要对镜像文件进行分析,从中提取有用的入侵证据。通常来讲,咱们能够从镜像文件中提取如下信息 ( 这些信息是指在生成镜像文件那个时刻的信息) :
Volatility 是一款基于 GNU 协议的开源框架,使用 Python 语言编写而成的内存取证工具集,能够分析内存中的各类数据。Volatility 支持对 32 位或 64 位 Wnidows、Linux、Mac、Android 操做系统的内存数据进行提取与分析。
工做流程首先在取证计算机上安装 Volatility 软件包。接着获取内存副本后传输到取证计算机上面,最后是进行分析工做。本文介绍内存取证工具的平台是 Backtrack5 x64 系统。
1
2
3
|
#apt-get update
#dpkg --get-selections | grep volatility
#apt-get install volatility
|
进入程序的存储目录验证一下
1
2
3
|
#cd /pentest/forensics/volatility
#ls -l vol.py
#./vol.py –h
|
vol.py 是主程序,主要包括以下
-f FILENAME 选项的功能是说明打开一个镜像文件所使用的文件名,这个命令选项几乎在全部命令中都会用到。
--cache 选项的功能是使用缓存。
--dtb=DTB 选项的功能是说明 DTB(Directory Table Base) 页目录表的基地址。
-k KPCR 选项的功能是说明一个指定的内核处理器控制区的虚拟地址。
apihooks 插件命令的功能是监测在进程和内核中的 api 钩子。
bioskbd 插件命令的功能是动态地从内存中读取键盘缓冲区的数据。
cmdscan 插件命令的功能是经过访问_command_history 获取历史命令记录。
connections 插件命令查看当前内存中活跃的 tcp 链接。
Volatility 自带一些 windows 系统的 profile,Linux 系统的 Profile 须要本身制做,制做的方法以下:实际是将 module.dwarf 和 system.map 打包成一个 zip 文件,接着将 zip 文件移动到 volatility/plugins/overlays/linux/ 目录中。
也能够在 https://github.com/KDPryor/LinuxVolProfiles 处直接下载已经作好的 profile 文件(zip 文件)而后复制到目录后解压缩便可。
1
2
3
|
# cd /pentest/forensics/volatility/volatility/plugins/overlays/linux
#wget -O–no-check-certificate <
a
href
=
"https://github.com/KDPryor/LinuxVolProfiles/blob/master/Ubuntu1004_pae32-33.zip"
><
code
>https://github.com/KDPryor/LinuxVolProfiles/blob/master/Ubuntu1004_pae32-33.zip</
code
></
a
>
#unzip Ubuntu1004_pae32-33.zip
|
这里使用的工具是 fmem,fmem 是用于检索内存的取证工具。它是做为一个内核模块的来运行。
安装使用方法:
1
2
3
4
|
#wget http://hysteria.sk/~niekt0/foriana/fmem_current.tgz
#tar zxvf fmem_current.tgz
#cd fmem_1.6-0
# make; ./run.sh
|
下面的命令将内存里的数据拷贝到 root 目录下的 cyq.vmem 文件
1
|
# dd if=/dev/fmem of=/root/cyq.vmem bs=10MB count=2048
|
检查进程详细信息
检查进程详细信息可使用 linux_psaux 子命令,命令以下:
1
|
#./vol.py -f /root/pexit.vmem --profile=LinuxUbuntu1004_pae32-33x86 linux_psaux
|
命令输出结果见图 3
检查系统进程树信息
检查系统进程树信息可使用 linux_pstree 子命令,命令以下:
1
|
#./vol.py -f /root/pexit.vmem --profile=LinuxUbuntu1004_pae32-33x86 linux_pstree
|
命令输出结果见图 4
说明: 进程树 (Process tree) 是计算机科学中的术语,又称为进程图 (Process map) 或进程家族树 (Process graph),是一种表示进程关系的直观方法。linux 的树形进程结构为管理进程提供了很大的方便,不论是内核对进程的管理仍是用户对进程的管理都受惠很多,对于审计也是颇有用的,无论运行的什么进程,都会有一条不会断的线索将之绑在系统内部。
查看某具体进程的状况
检查某具体进程的状况可使用 linux_proc_maps 子命令,命令以下:
1
|
# ./vol.py -f /root/cyq.vmem --profile=LinuxUbuntu1004_pae32-33x86 linux_proc_maps | grep httpds
|
命令输出结果见图 5
说明:这个子命令能够查看进程细节包括共享库、开始和结束的位置等信息。
查看网络连接状况
检查网络连接状况可使用 linux_netstat 子命令,命令以下:
1
|
#./vol.py -f /root/pexit.vmem --profile=LinuxUbuntu1004_pae32-33x86 linux_netstat
|
命令输出结果见图 6
参数查看内核路由表状况
检查内核路由表状况可使用linux_route_cache子命令,命令以下:
#./vol.py -f /root/pexit.vmem --profile=LinuxUbuntu1004_pae32-33x86
linux_route_cache 命令输出结果见图 7
限于篇幅这里笔者就介绍以上几个命令,这里笔者把相关命令(也能够叫插件)进行分类。
获取系统进程信息相关命令:
linux_pstree:进程树列表
linux_pslist_cache:来自的 kmem_cache 活动进程
linux_psxview:比较进程列表
linux_lsof :打开文件描述符的每一个活动进程
linux_pslist :活动的进程列表
linux_psaux:活动的进程列表(输出内容包括更多的细节)
获取系统内存信息的相关命令:
linux_memmap:内存映射文件
linux_pidhashtable: Linux 内核中的 PID 散列表
linux_proc_maps::转储由-s/--vma 参数到磁盘上指定的内存范围。
linux_dump_map:进程内存的详细信息,包括堆和共享库。
linux_bash :bash 历史文件
获取网络接口信息的相关命令:
linux_arp:显示 arp 列表
linux_ifconfig:显示网络接口详细状况
linux_route_cache:显示网络路由表
linux_netstat:查看网络连接状况
获取系统硬件信息的相关命令:
linux_cpuinfo :显示 cpu 的相关命令信息。
linux_dmesg :显示内核缓存信息。
linux_iomem :显示 io 设备信息。
linux_mount :显示/proc/mouns 的相关命令信息,主要是挂载的磁盘设备。
linux_mount_cache :显示 kmem_cache 的相关命令信息。
linux_slabinfo :显示/proc/slabinfo 的相关命令信息。
rootkit 检测的相关命令:
linux_check_afinfo:检查篡改网络协议结构。
linux_check_creds:检查进程共享结构。
linux_check_fop:检查文件操做数据结构篡改状况。
linux_check_idt:检查中断描述符表(IDT)的篡改状况。
linux_check_syscall:在系统调用表检查功能状况。
linux_check_modules:检查用于从内核模块列表中缺乏在 sysfs 中的项目。
获取内核模块信息的相关命令:
linux_lsmod:加载内核模块。
linux_tmpfs::tmpfs 的内容。
详细使用方法能够看在官方网站包含 Linux 的相关命令参考:
1
|
<
a
href
=
"https://blogs.sans.org/computer-forensics/files/2012/04/Memory-Forensics-Cheat-Sheet-v1_2.pdf"
><
code
>https://blogs.sans.org/computer-forensics/files/2012/04/Memory-Forensics-Cheat-Sheet-v1_2.pdf</
code
></
a
>
|
计算机取证主要包括两个阶段:物理证据获取和信息分析。本文经过介绍 Linux 系统工具(Ftkimage、xmount、Volatility、dd、netcat)来介绍使用计算机取证的方法和步骤。包括磁盘数据的取证和内存取证。
摘自
https://www.ibm.com/developerworks/cn/linux/1511_cyq_tool/index.html