【经验汇总】破解wfilter镜像root密码再封装

  • 场景需求:
    一些IT服务的产品,如上网行为管理、入侵检测、堡垒机、监控系统等,在提供高端的嵌入式硬件的产品之外,都会有对应的定制性系统镜像,我们拿到后,装载到自己的设备或虚机上即可直接测试或使用了,从而降低成本;当然对此也仅限于使用功能服务,因为我们并没有权限进入到人家的系统里面,而仅仅是通过网页或客户端使用里面的服务,并且真要使用时还要购买人家的license,这个就不要多想了,毕竟别人制作产品还是很辛苦的,但如果能破解了root密码,远程到系统内部,做些小小的更改还是没有问题的!

    声明:本操作仅供学习,不可使用本操作做危害别人产品的事情,不可使用于商业性操作并借此谋取利益,后果自负哦!

一、什么是wfilter及破解思路

既然要对这个镜像做处理,首先要了解一下这个产品,wfilter是一款上网行为管理的操作系统,当然也有与之对应的硬件产品:WSG上网行为管理网关(硬件),而今天案例的系统便是WFilter NGF上网行为管理系统:WFilter_NGF_build_1.1.2017.02.20_zh.iso,可以自行到wfilter官网上下载。

说到上网行为管理系统,很多人都应该很有兴趣,博主也一样;而这款产品,应该也不例外,使用的是linux内核中的netfilter功能模块,可惜是,这样的产品,内核都是定制的,功能程序一般也都是二进制,不幸博主也就是个菜鸟,止步于此了,看不懂!如果有这方面的人才,欢迎留言交友赐教!

不用怀疑它是一个定制的系统,并且是一个封闭式的操作系统,为什么封闭,因为禁用了root密码的使用,你进不去,仅仅提供了服务的admin账户,提供简单的几个操作;

那么如何破解root密码,一个思路直接装载到虚机上,然后关机挂载到另一个虚机上,便可找到查看并修改里面的shadow文件,再还原开机就修改成功了!但是这种方法是一次性的,也就是说只这一个系统密码修改成功,安装一次镜像,就要修改一次!

需求来了:破解root密码,从镜像直接入手,挂载镜像,直接修改镜像文件,镜像是可读系统怎么办?创建一个新目录,统统拷贝出来,修改,重新封装

二、破解wfilter镜像root密码再封装步骤:

①、先挂载镜像,没的说!

[root@Moni ~]# mkdir /mnt/wfilter
[root@Moni ~]# file /home/WFilter_NGF_build_1.1.2017.02.20_zh.iso 
/home/WFilter_NGF_build_1.1.2017.02.20_zh.iso: ISO 9660 CD-ROM filesystem data 'CDROM' (bootable)
[root@Moni ~]# mount -o loop /home/WFilter_NGF_build_1.1.2017.02.20_zh.iso /mnt/wfilter

②、拷贝整个镜像到新目录(镜像的挂载点是可读系统嘛)

[root@Moni ~]# cd /mnt/wfilter
[root@Moni wfilter]# ls
boot.cat boot.catalog initrd.img isolinux.bin isolinux.cfg linux
[root@Moni wfilter]# mkdir /home/wfilter
[root@Moni wfilter]# cp ./* /home/wfilter/
[root@Moni wfilter]# cd /home/wfilter
[root@Moni wfilter]# ll
[root@Moni wfilter]# ll -h
总用量 38M
-r--r--r-- 1 root root 2.0K 2月 20 2017 boot.cat
-r--r--r-- 1 root root 2.0K 8月 10 17:31 boot.catalog
-r--r--r-- 1 root root 34M 8月 10 16:59 initrd.img
-r--r--r-- 1 root root 24K 2月 20 2017 isolinux.bin
-r--r--r-- 1 root root 81 2月 20 2017 isolinux.cfg
-r--r--r-- 1 root root 4.1M 2月 20 2017 linux
<--这里通过一些其它的操作,判断密码文件应该放在initrd.img镜像里面-->

③、解压initrd.img镜像压缩文件

[root@Moni wfilter]# file initrd.img (没错这是个gzip压缩文件)
initrd.img: gzip compressed data, from Unix, last modified: Mon Feb 20 16:08:04 2017
[root@Moni wfilter]# mv initrd.img initrd.img.gz
[root@Moni wfilter]# gunzip initrd.img.gz (解压它)
[root@Moni wfilter]# file initrd.img  (这是一个cpio压缩的归档文件)
initrd.img: ASCII cpio archive (SVR4 with no CRC)
[root@Moni wfilter]# mkdir initrd (新建一个目录拷贝进入解压,避免文件混乱)
[root@Moni wfilter]# mv initrd.img initrd
[root@Moni wfilter]# cd initrd/
[root@Moni initrd]# cpio -ivdm < initrd.img
[root@Moni initrd]# ls (看到etc目录,不要惊喜,套路!里面并没有密码文件)
bin dev etc init initrd.img proc root sbin src sys tmp usr

④、挂载wfilter系统的定制系统分区的镜像文件(姑且这么叫吧)

[root@Moni initrd]# cd root/
[root@Moni root]# ll -h
总用量 34M  (很明显是个gz压缩文件,避免套路确认一下)
-rw-r--r-- 1 1001 1001 34M 2月 20 2017 openwrt-x86-generic-combined-ext4.img.gz
[root@Moni root]# file openwrt-x86-generic-combined-ext4.img.gz 
openwrt-x86-generic-combined-ext4.img.gz: gzip compressed data, from Unix, max compression
[root@Moni root]# gunzip openwrt-x86-generic-combined-ext4.img.gz
[root@Moni root]# ll -h
总用量 307M
-rw-r--r-- 1 1001 1001 307M 2月 20 2017 openwrt-x86-generic-combined-ext4.img
[root@Moni root]# file openwrt-x86-generic-combined-ext4.img 
openwrt-x86-generic-combined-ext4.img: x86 boot sector; 
partition 1: ID=0x83, active, starthead 8, startsector 512, 102400 sectors; 
partition 2: ID=0x83, starthead 9, startsector 103424, 524288 sectors, code offset 0x63
<--没错,这是个虚拟分区文件,包含两个分区,别管是什么,想办法挂载它-->
[root@Moni root]# kpartx -av openwrt-x86-generic-combined-ext4.img 
add map loop4p1 (253:2): 0 102400 linear /dev/loop4 512
add map loop4p2 (253:3): 0 524288 linear /dev/loop4 103424
<--kpartx命令让系统识别并创建了两个设备文件,挂载它吧!-->
[root@Moni root]# mkdir work1
[root@Moni root]# mkdir work2
[root@Moni root]# mount /dev/mapper/loop4p1 work1
[root@Moni root]# mount /dev/mapper/loop4p2 work2

⑤、找到密码文件,并修改它

[root@Moni root]# cd work1
[root@Moni work1]# ls
boot lost+found (显然没有)
[root@Moni work1]# cd ../work2
[root@Moni work2]# ls (有点苗头etc)
bin dev etc lib lost+found mnt overlay proc rom root sbin sys tmp usr var www
[root@Moni work2]# cat etc/shadow | grep root
#root::0:0:99999:7:::
root:zh:0:0:99999:7:::
<--这里很明显,“zh”什么鬼,反正是不生效的密码,也不是“*”锁定用户-->
[root@Moni work2]# useradd test
[root@Moni work2]# echo "123456" | passwd --stdin test
更改用户 test 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@Moni work2]# tail -n1 /etc/shadow | awk -F ":" '{print $2}'
$1$wNfKM.S4$bT2zWOTIeHZevzsWASlcM0
<--把上面这段密文复制拷贝到etc/shadow文件中的root那一行的第二段,是当前目录的etc-->
[root@Moni work2]# vi etc/shadow
root:$1$wNfKM.S4$bT2zWOTIeHZevzsWASlcM0:0:0:99999:7:::
<--密码修改成功,密码是“123456”,当然你可以自定义自己的密码咯-->
[root@Moni work2]# userdel -r test ##最后删除测试用户

⑥、还原压缩再封装

(重点是按照之前的步骤一步步还原)

[root@Moni work2]# cd ../
[root@Moni root]# umount work1 work2
[root@Moni root]# kpartx -d openwrt-x86-generic-combined-ext4.img 
loop deleted : /dev/loop4 (取消虚拟分区设备文件)
[root@Moni root]# gzip openwrt-x86-generic-combined-ext4.img
[root@Moni root]# rm -rf work1 work2
[root@Moni root]# cd ../
[root@Moni initrd]# rm -rf initrd.img
[root@Moni initrd]# ls
bin dev etc init proc root sbin src sys tmp usr
[root@Moni initrd]# find -print | cpio -covB > ../initrd.img
[root@Moni initrd]# cd ../
[root@Moni wfilter]# rm -rf initrd
[root@Moni wfilter]# gzip initrd.img 
[root@Moni wfilter]# mv initrd.img.gz initrd.img
[root@Moni wfilter]# ls
boot.cat initrd.img isolinux.bin isolinux.cfg linux

(到此已经还原之前的结构,下面就是重新封装成可安装的镜像)

[root@Moni wfilter]# mkisofs -R -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o ../wfilter-new.iso ./
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using BOOT000.CAT;1 for /boot.cat (boot.catalog)
Size of boot image is 4 sectors -> No emulation
 25.47% done, estimate finish Wed Aug 23 14:25:05 2017
 50.99% done, estimate finish Wed Aug 23 14:25:05 2017
 76.42% done, estimate finish Wed Aug 23 14:25:05 2017
Total translation table size: 2048
Total rockridge attributes bytes: 660
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
19628 extents written (38 MB)
[root@Moni wfilter]# file ../wfilter-new.iso 
../wfilter-new.iso: ISO 9660 CD-ROM filesystem data 'CDROM' (bootable)

(好的就分享到这里,如果您有高见或好的分享,记得留言哦!)


原创文章,转载请注明:转自于公牛博客

本文链接地址:【经验汇总】破解wfilter镜像root密码再封装

9
祝福我们的祖国繁荣昌盛
  • 请尽情挥洒您的笔墨!