Home how to patch vmdk
Post
Cancel

how to patch vmdk

当没有root密码 该如何给vmdk打patch来进入系统呢?

核心:

  • 生成已知密码
    1
    2
    
    ➜  ~ openssl passwd -6 123456
    $6$Wn6EsJ4RFFqIxsLs$nVZCosJw2DnwI8I52KjeTYIj8j5ghA5/YjKylfeGyS1j.yr0ygGlzEeJfF0MW2ToO7lLhqzEt8LyOUtayPewz.
    
  • 修改/etc/passwd 【推荐,不需要动/etc/shadow】
    1
    
    abc:$6$Wn6EsJ4RFFqIxsLs$nVZCosJw2DnwI8I52KjeTYIj8j5ghA5/YjKylfeGyS1j.yr0ygGlzEeJfF0MW2ToO7lLhqzEt8LyOUtayPewz.:0:0:root:/root:/usr/bin/zsh  
    

    修改/etc/shadow【部分系统推荐,不需要动/etc/passwd】

    1
    
    test:$6$Wn6EsJ4RFFqIxsLs$nVZCosJw2DnwI8I52KjeTYIj8j5ghA5/YjKylfeGyS1j.yr0ygGlzEeJfF0MW2ToO7lLhqzEt8LyOUtayPewz.:20046:0:99999:7:::
    

    其他还有很多值得关注的文件,如/etc/rc.local/etc/ssh/sshd_config还有对应用户的authorized_keys

    1
    
    PermitRootLogin yes
    

法一:使用diskgenius

diskgenius可以将vmdk挂载,从而进行文件读写,好处是浏览十分方便,读文件推荐用DG,挂载也很快。比较有意思的是写文件:

  • 接下来神奇的来了,在对国产OS进行实验时,发现将文件复制到桌面,从外面改好 再复制到DG里( 字节数一样)改动仍未生效,进恢复模式看后,shadow并未被修改一个是文件的修改时间会发生变化 一个可能会影响文件inode(猜的) 导致尽管在DG里看着是修改了 但是进系统后并没有改

  • 疑惑的是改其他一些文件没啥问题 改shadow就会这样;现在一个做法是直接去DG里打开shadow文件,查看文件原始数据的时候修改(右键文件-文件扇区跳转-文件数据起始扇区) 这样不论是读写权限、修改时间、字节数均不变 实现最稳定的修改,实践证明这是可行的,因此我觉得这主要是DG的bug

alt text

因此 在使用DG时,最好修改passwd,修改这个文件是没啥问题的

法二:使用恢复模式

  • 用DG修改shadow-,然后进恢复模式
  • 恢复模式:在引导页界面,立马按e,编辑grub的config,将ro及之后的内容全部换成rw init=/bin/bashctrl+x后即可进入恢复模式,将shadow-拷贝至shadow
  • /sbin/reboot -f

法三: 使用vmware workstation挂载一块磁盘

https://nosec.org/home/detail/4990.html

法四:使用linux进行挂载

apt-get install qemu-utils kpartx

步骤 1:将 VMDK 文件转换为 RAW 格式

首先,需要将 VMDK 文件转换为 RAW 格式,以便可以挂载和编辑:

1
qemu-img convert -O raw your-file.vmdk /tmp/disk.raw

步骤 2:创建设备映射

使用 kpartx 创建设备映射:

1
kpartx -av /tmp/disk.raw    

步骤 3: 挂载分区

找到你需要修改的分区,通常会被映射为类似于 /dev/mapper/loop0p1。挂载它:

1
2
mkdir /mnt/part1
mount /dev/mapper/loop0p1 /mnt/part1

步骤 4: 修改文件

在挂载点 /mnt/part1 中进行你需要的修改。例如,编辑一个文件:

1
vim /mnt/part1/etc/shadow

步骤 5: 卸载分区

修改完成后,卸载文件系统:

1
umount /mnt/part1

步骤 6: 删除设备映射

1
kpartx -d /tmp/disk.raw

步骤 7:将 RAW 文件转换回 VMDK 格式

1
qemu-img convert -O vmdk /tmp/disk.raw your-new-file.vmdk

此时可用新的文件进行挂载

This post is licensed under CC BY 4.0 by the author.