二进制安全
0day2
01 基础知识
02 栈溢出原理和利用
03 shellcode 开发
其它
某固件提取资产网络指纹数据
利用异常的思路
x64 shellcode 内存加载器
本文档使用 MrDoc 发布
-
+
首页
某固件提取资产网络指纹数据
### 虚拟机安装 参考 [在VM环境下安装iKuai(爱快)软路由——适合小白(最新最全教程)](https://blog.csdn.net/weixin_43343299/article/details/113701449) 操作: 1. 正常安装,系统选择 Ubuntu,网络选择主机模式即可 2. 启动,系统询问是否安装,选择【1】将系统安装到硬盘1 即可。 3. 出现此图表示安装成功。 ![](/media/202405/2024-05-14_102754_3788990.12089769585822907.png) 4. 设置网卡,选择 1 ,再输入 `del lan1` 和 `set lan1 eth0` 后,然后按 q 退出。 5. 设置 lan/wan 地址,选择2,然后输入 0,输入我们变更的 ip 地址,这里查看一下虚拟机的网段,选择虚拟机的【编辑】->【虚拟网路编辑器】,可以看到主机模式的子网地址和子网掩码。 ![](/media/202405/2024-05-14_103416_4671750.23588030867527643.png) 6. 点击 【DHCP】设置,可以看到 ip 范围,在这个范围内选择一个 ip 即可。 ![](/media/202405/2024-05-14_103520_4293930.45552564230747883.png) 7. 配置好输入 q 退出,可以看到右边 lan1 已经显示已连接了。然后打开浏览器,输入刚刚设置的地址,注意是 http 协议,即可看到登录页面,初始账号密码都是 admin。 ![](/media/202405/2024-05-14_103716_7701300.08300603125414452.png) 8. 完成安装。 ### 文件提取 - 本来想着用 binwalk 解这个 ISO ,解出来看了下没多大意义。然后我在进入系统之前疯狂按 c 进入命令行: ![](/media/202405/2024-05-14_104016_4146620.6680199796982291.png) - 命令行直接按 tab,可以查看有什么指令,看了下没啥能用的,除了 ls,于是我用 ls,进行了如下操作查看: ![](/media/202405/2024-05-14_104243_7352710.22572441516701258.png) - 能看到有些 db 文件。但是该固件里面缺少很多指令,没法查看具体内容。只能想其它办法把文件取出来。剩下的有些 unknown filesystem 的,猜测可能是存指令的??先不管。 - 开始尝试了 VMWare 自带的磁盘映射。 ![](/media/202405/2024-05-14_104640_6353260.22372895647649615.png) - 每个映射了一遍,一个能识别的都没有,不过也很正常,毕竟这些固件都是基于 Linux 的。 - 既然映射不行,那就直接在安装系统时挂载到物理盘吧。找信息部借了一个空 U 盘,建议不要用带有自己数据的,容易被覆盖掉。然后重新安装虚拟机。其它操作都一样,区别如下: ![](/media/202405/2024-05-14_105116_4953470.2565115193965031.png) - 但是在这里有可能会出现没有 U 盘的情况(往后继续操作的话,会显示 XXX 已被使用之类的话): ![](/media/202405/2024-05-14_105204_4422600.3587427913494682.png) - 解决方案如下: ``` 1. 连接磁盘 1 到计算机上。 2. 按下 Win + X 键,然后选择打开磁盘管理器。 3. 在磁盘管理器中,找到磁盘 1。它通常会显示为一个未分配的磁盘空间。 4. 右击磁盘 1 的未分配空间,并选择"新建简单卷"。 5. 在向导中,使用默认选项并点击"下一步"。 6. 在"分区类型"选项中,选择"主分区"并点击"下一步"。 7. 在"文件系统"选项中,选择"NTFS"作为文件系统类型。 8. 在"卷标"选项中,为磁盘 1 指定一个名称。 9. 最后,在"完成"页面上点击"完成"按钮。 如果 U 盘本身有卷,删除卷重新分配。 ``` - 然后在刚刚选择物理磁盘就能看到了新的一个了,选中即可。对了,**虚拟机存储的位置不能是挂载的 U 盘。** - 然后 Windows 就会弹出来一大堆窗口,显示识别不了卷,希望格式化,这个时候千万不能格式化! ![](/media/202405/2024-05-14_105743_4430670.7447358541293712.png) - 打开资源管理器,可以看到 ![](/media/202405/2024-05-14_105904_2030320.57533933465866.png) - 既然已经成功的写入 U 盘了,下面就是将里面的数据读出来。这里选择用 Ubuntu 系统读: - 先将 U 盘挂载到 Ubuntu。 ![](/media/202405/2024-05-14_110039_0335600.111915301941245.png) ![](/media/202405/2024-05-14_110046_1618490.4257684516834409.png) ![](/media/202405/2024-05-14_110049_1624900.9549087466968291.png) - 进入 Ubuntu 系统,并在系统内挂载卷: 1. 检查系统是否正确识别并加载了新的卷`sudo fdisk -l `:列出所有已识别的磁盘和分区。能够在列表中找到并识别添加的卷。 ![](/media/202405/2024-05-14_110252_0742970.4876739118659875.png) 2. 挂载卷:要访问卷中的文件,需要将其挂载到现有文件系统的目录中。首先,创建一个目录来作为挂载点:`sudo mkdir /mnt/mydisk` 3. 挂载卷:使用以下命令将卷挂载到刚才创建的目录中 `sudo mount /dev/<device> /mnt/mydisk`,将"\<device\>"替换为找到的卷设备名称,例如"/dev/sdb1"。(有些挂载成功,有些挂载失败,可能是指令?) ![](/media/202405/2024-05-14_110516_3187280.4700490863823832.png) 4. 现在通过浏览挂载目录来访问和操作新添加卷中的文件。我将能够挂载的卷的内容复制到其它位置。 5. 通过如下指令查看挂载了哪些卷:`mount`。 6.卸载卷:完成后使用以下命令卸载挂载的卷:`sudo umount /mnt/mydisk` ![](/media/202405/2024-05-14_110616_1483150.46639003404116963.png) - 接下来就是把文件提取出来,很不幸,我的 Ubuntu 虚拟机的 VMTools 坏了,只能通过创建共享文件夹的形式来将文件取出来: - 参考 [【最新可用】VMware中ubuntu与主机window之间使用共享文件夹传输大文件](https://blog.csdn.net/weixin_51111267/article/details/132343320) - 懒得截图了,借用下参考文章的图片: ![](/media/202405/2024-05-14_111248_7839980.20193713483538456.png) 1. 如果之前已经挂载 hgfs,先取消挂载 ``` sudo umount /mnt/hgfs ``` 2. 重新使用**以下命令挂载** ``` sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=0 -o gid=0 -o umask=022 ``` 3. uid 和 gid 在home目录输入id 命令查询,如果报错 use the ‘nonempty’ mount option则使用下面命令 ``` sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o allow_other -o uid=0 -o gid=0 -o umask=022 ``` - 下面还有永久设置的,懒得弄了。不过还是记录下: ``` 先使用下面命令提升权限,否则无法保存 chmod 777 /etc/fstab 进入/etc目录打开fstab文件编辑末尾添加 .host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=0,gid=0,umask=022 0 0 保存成功后重启虚拟机即可,共享文件夹永久不丢失。 最后使用命令创建该文件夹的快捷方式到桌面,方便打开 ln -s /mnt/hgfs/VMShare /home/hqf/桌面 在评论区看到了: 提问者1:虚拟机Ubuntu22.04,改完重启Failed to mount /mnt/hgfs,系统不能启动了,注意避坑!!! 作者 回复 提问者1:永久设置出现的问题吗,你运行暂时设置那些命令会不会出现。 也就是这个永久设置的办法有问题,使用前记得保存快照。 ``` ### 文件分析 - 文件提取出来了,剩下就是分析了。打开共享文件夹的一瞬间,我就发觉文件不对,少了很多啊。我对比了一下挂载到虚拟磁盘的虚拟机文件和挂载到物理磁盘的虚拟机文件: - 虚拟磁盘: ![](/media/202405/2024-05-14_112113_4872000.9838379343825547.png) ![](/media/202405/2024-05-14_112117_3410100.415458066731209.png) - 物理磁盘 ![](/media/202405/2024-05-14_112141_3132050.9130999839873916.png) ![](/media/202405/2024-05-14_112145_2101080.15466460718369557.png) - 稍做研究,发现了是因为挂载虚拟磁盘的系统是因为第一次安装成功,我登陆了 web 页面查看功能,而挂载到物理磁盘的系统,安装完成后直接提取文件,所以文件夹存在差异。为了防止遗漏什么重要数据(实际研究发现,操不操作差别不大),登录 web 端一顿操作后,再提取一遍。 - 先研究 db 数据库文件,筛选出来 ![](/media/202405/2024-05-14_112621_3052190.5834459598675316.png) - 用 dbeaver 打开一个一个看,发现没啥有用的数据。都是网站内设置的配置信息。 ![](/media/202405/2024-05-14_113145_8442450.8657913846309722.png) - 不是 db 文件,再继续找找其它文件。除了日志文件和引导文件,我发现了一个疑似关键数据的文件: ![](/media/202405/2024-05-14_113434_3029100.07088967257006773.png) - 路径的文件夹名是 data,有 md5 效验码,有创建时间的文件,一看就很重要啊。 - 但是没有后缀,我使用 file 工具查看一下: ![](/media/202405/2024-05-14_113919_2724430.7580660835328081.png) - Gzip 压缩文件。改下后缀直接解压: - 又一层文件,借助 file 工具继续分析,还是 gz,继续解压。直到数据都解压出来 ![](/media/202405/2024-05-14_114118_9024370.6246932951878172.png) ![](/media/202405/2024-05-14_114253_9691660.764317667756835.png) - 私钥都被解出来了,理论上我如果对安装这个版本的设备流量进行旁路监控,那我可以解密流量进行监控。
别卷了
2024年6月14日 16:18
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码