创建loop设备
- # losetup /dev/loop0 bak.img
-
- # fdisk -lDisk /dev/loop0: 8 GiB, 8589934592 bytes, 16777216 sectors
- Units: sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disklabel type: dos
- Disk identifier: 0x000a7707Device Boot Start End Sectors Size Id Type
- /dev/loop0p1 * 63 16273844 16273782 7.8G 8e Linux LVM
- /dev/loop0p2 16273845 16771859 498015 243.2M 5 Extended
- /dev/loop0p5 16273908 16771859 497952 243.1M 83 Linux
通过fdisk -l 我们可以看到我们的镜像中有三个分区,所以我们需要将每个分区单独映射出来,然后再进行挂载。
这里通过kpartx来进行分区表的读取和映射
- # kpartx -av /dev/loop0
- add map loop0p1 (254:0): 0 16273782 linear 7:0 63add map loop0p2 (254:1): 0 2 linear 7:0 16273845add map loop0p5 (254:2): 0 497952 linear 7:0 16273908
映射完毕后我们通过
- ls -l /dev/mapper/
-
- lrwxrwxrwx 1 root root 7 Nov 6 07:46 brokenwebapps-root -> ../dm-3lrwxrwxrwx 1 root root 7 Nov 6 07:46 brokenwebapps-swap_1 -> ../dm-4crw------- 1 root root 10, 236 Nov 6 07:46 control
- lrwxrwxrwx 1 root root 7 Nov 6 07:46 loop0p1 -> ../dm-0lrwxrwxrwx 1 ro
查看下映射关系。Linux下的mapper设备是内核中提供的一种从逻辑设备到物理设备的映射机制,通过该设备我们可以很清楚的看到root分区所在位置
mount挂载
下面我们将root分区挂载到我们的test目录
- # mount /dev/mapper/brokenwebapps-root /test/
切换到test目录查看,整个文件系统已经被还原到我们的分析系统上
下面我们就可以在我们的分析系统上对被入侵主机进行更加深入的分析了
卸载
- # umount /dev/mapper/brokenwebapps-root卸载kpartx映射# kpartx -dv /dev/loop0若无法卸载可先通过lvremove命令卸载映射出的逻辑设备再通过kpartx卸载映射
- 卸载loop设备# losetup -a 查看当前创建的loop设备/dev/loop0: [2049]:2107674 (/root/bak.img)# losetup -d /dev/loop0 卸载
内存镜像备份
测试环境:
- Linux kali 4.9.0-kali4-amd64 #1 SMP Debian 4.9.30-2kali1 (2017-06-22) x86_64 GNU/Linux
在比较老的Linux上,通常内核版本为2.6以下的,应该是还可以通过dd命令进行内存镜像备份的
命令大概长这样:
- dd if=/dev/mem of=dumpmem.dd bs=1024
通过dd命令dump出/dev/mem设备的内容完成内存的备份,但是2.6以下版本的内核在平常可能不是太多见所以我也没具体测试这个命令导出的具体效果。
2.6及以上的版本由于Linux安全性要求,其开始限制我们直接对系统内存的访问。所以内存的备份我们可能要违背一下初心,需要引用第三方的模块来完成我们的工作
一开始我尝试使用的工具是fmem,他通过将自己加载到Linux内核中运行,通过创建/dev/fmem设备使我们可以继续使用dd命令来备份我们的内存。奈何我没编译成功,因为找的模拟环境为owasp的一个漏洞环境,然而其源已经连接不上了导致我无法去更新内核的开发包,也就没法编译成功了,转战kali,编译也出问题,大概也是内核版本不匹配,有机会在研究下能不能搞定他。
前面说到由于一开始用的环境无法更新内核开发包了,所以注明下以下的操作皆在kali下完成的,kali的具体内核版本开头已说明
在继续说内存镜像备份前先瞎说一波内核模块的加载,反正也不是什么正儿八经的讨论内核
先引用下度娘百科吧。 (编辑:开发网_开封站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|