Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26909
  • 博文数量: 5
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-22 16:32
文章分类

全部博文(5)

文章存档

2009年(5)

我的朋友
最近访客

分类:

2009-07-24 13:41:57

1.
破解CISCO ASA操作系统

工作前的准备:
①Linux操作系统环境
②ASA 二进制文件(bin)


准备工作完成, 那么下面我们就可以开始如何破解出ASA bin文件中的一个完整的linux系统,关于CISCO对PIX和ASA里使用了开源程序的说明和列表:

根据上面这个地址,可以清楚的看出ASA 操作系统是一个linux系统的改造过来的,基于linux 内核版本为2.6.
OK,让我们开始吧


Step by step:

进入Linux系统,从cisco官方下载 asa802-k8.bin,验证其MD5值.
命令:
# md5sum asa802-k8.bin
a94c3eff8c6d12d6ae6d1be9ba2ea529
asa802-k8.bin






Cisco 官方网站MD5截图;



2:    使用hexdump输出asa802-k8.bin 十六进制数据流,将其输入到一个指定文件中.
命令:

# hexdump -C asa802-k8.bin > asa802-k8.hd



3:
利用grep在生成的asa802-k8.hd 16进制文件中搜索串“1f 8b 08 00 1d”.

命令:
# grep "1f 8b 08 00 1d" asa802-k8.hd
001228b0 1f 8b 08 00 1d 3d 73 46 00 03 ec 3a 6d 54 14 57





4:

首先获取asa802-k8.bin文件的大小,然后使用10进制的文件大小数减去16进制头

001228b0,
得到最后N bytes (10进制).



得到asa802-k8.bin文件大小为14524416 字节.
        下面我们可以使用linux下非常实用的脚本语言Perl来帮助计算145244160-0x001228b0
命令:

# perl -e '$x=14524416-0x1228b0;print "$x\n"'
13334352





这样我们就得到了偏移量 13334352







5:
使用tail 获取asa802-k8.bin CPIO镜像文件(一种linux文件系统压缩格式)

命令:


#tail -c 13334352 asa802-k8.bin > asa802-k8.gz






这时文件夹内已经生成了一个gzip压缩格式文件.


6:
使用gzip解压asa802-k8.gz


    命令:
#gzip -d asa802-k8.gz





这时我们发现文件夹内已经包含一个asa802-k8CPIO镜像文件.接下来使用cpio命令解压该文件.








7:
使用cpio解压



命令:


cpio -i --make-directories --no-absolute-filenames < asa802-k8





OK,下面可以看到当前文件夹内出现了一个标准的文件系统,可以使用ls查看:





下面需要做的是一些编辑相关文件,之后在将这个文件系统打包,然后使用Qemu这个虚拟机来引导它.



8:编辑相关文件(etc/init.d/rcS 注意此文件并非linux根下的/etc,而是解压asa802-k8所得的文件系统内的/etc),打包文件系统.


命令:



# vim etc/init.d/rcS







看的内容为上面,那么我们应该使用vim来编辑它(当然也可以使用别的编辑工具,gedit 等等).编辑后的内容如下:






确认:wr保存退出


注意拷贝出vmlinuz内核文件(模拟需要它来引导)






下面进行打包ASA文件系统工作.



打包命令:



# find . | cpio -o -H newc | gzip -9 > /home/bzzjh/asa802.gz




到这里asa802-k8.bin这个二进制文件已经完全的被破解出来,我们可以很清晰的发现,Cisco ASA的操作系统就是个Linux系统,唯一的只是在asa文件夹内的两个asa的操作程序,linalina_ monitor (后面关于模拟部分会执行lina_ monitor这个程序).





1.
利用Qemu引导(模拟)Cisco ASA Linux 文件系统.



准备工作:



Qemu
程序(附件中提供)



破解出来的ASA Linux文件系统asa802.gz (附件中提供)



内核:vmlinuz (附件中提供)



   因为我们日常工作都是使用windows系统,下面模拟部分我转到windows下系统进行




GO !!




   首先打开附件文件夹:




你看到内容如上图,之后打开asaemu:




asa802-k8是我们通过上面的步骤破解出来的asa文件系统.


这里需要说明一下:破解的步骤不能在windows环境中进行,虽然像cpio这样的程序都有一个windows的移植版,但是无法创建linux下的链接文件!

.点击创建Disk.cmd 文件.


  之后该文件夹内将会生成一个asa802.vmdk 大小为64.0 KB的文件.



.鼠标右键选种3.ASA802.bat 文件,点编辑


  我们将看到该批处理文件的主体内容如下



我们将看到该批处理文件的主体内容如下


..\qemu.exe -L ..\bios -hda asa802.vmdk -hdachs 980,16,32 -kernel vmlinuz -initrd asa802-k8.gz -m 256 --no-kqemu -append "auto nousb ide1=noprobe bigphysarea=16384 console=ttyS0,9600n8 hda=980,16,32"
–net nic,vlan=0,model=i82557b,macaddr=00:aa:00:00:02:01 –net pcap,vlan=0,ifname=\Device\NPF_{E93E58F7-430F-45F7-9565-0CEED2108E27} -net nic,vlan=1,model=i82557b,macaddr=00:aa:00:00:02:02 -net pcap,vlan=1,ifname=2 -serial telnet::1007,server,nowait


注意上面方框内的命令其实是为一行,只是因为换行的缘故.注意灰色部分请不要改动


可以进行修改的部分是粉红色部分深蓝色部分


下面解释一下粉红色部分深蓝色部分的意思:


–net nic,vlan=0,model=i82557b,macaddr=00:aa:00:00:02:01


asa中创建一个网卡,型号为intel i82557b,vlan号为0,mac地址为00:aa:00:00:02:01。这条命令后面: –net pcap,vlan=0,ifname=\Device\NPF_{E93E58F7-430F-45F7-9565-0CEED2108E27}


意思是说将创建的这个属于vlan0的网卡桥接到本地网卡中,其中本地网卡的参数为\Device\NPF_{E93E58F7-430F-45F7-9565-0CEED2108E27}



那么深蓝色部分也同样理解:


-net nic,vlan=1,model=i82557b,macaddr=00:aa:00:00:02:02 -net pcap,vlan=1,ifname=2


asa创建另一个网卡,vlan1,mac地址为00:aa:00:00:02:02,并将其桥接到网卡号为2的本地网卡上.



这里肯定会有一个疑问:


ifname=\Device\NPF_{E93E58F7-430F-45F7-9565-0CEED2108E27}


ifname=2


这是两个参数主要是用来桥接到本地网卡,那么它是如何得知?


答案就在下面



. 点击获取网卡参数.


.(注意需要安装winpcap,附件文件夹内已提供)



如图:以上就是我的机器中所有可用的网卡,和它的参数


这里同一个网卡参数,可以用两个不同的方法去表示.比如3,Intel的无线网卡.我们即可以ifname=3 也可以ifname= \Device\NPF_{E93E58F7-430F-45F7-9565-0CEED2108E27} 意思都是将某一个asa中的端口桥接到本地的这个无线网卡上.(这里ifname还可以支持tap接口,因为篇幅问题加上tap接口配置有比较烦琐,不加详细介绍,有兴趣可以邮件讨论)


所以在第一次运行之前请务必需要修改文件中的网卡参数为你主机对应的网卡参数(红下划线部分).






提示:当然3.ASA802.bat 文件的批处理只模拟运行一个asa(2个端口),你也可以模拟更多的接口,创建接口:


-net nic,vlan=N,model=i82557b,macaddr=00:aa:00:00:02:01 -net pcap,vlan=N,ifname=XXXX


运行多个asa可以在附件文件夹内复制多个asaemu文件夹,分别运行文件夹内的相应文件





.做好一切准备工作后,点击3.ASA802.bat


  将看到:






之后使用telnet 工具.这里我使用SecureCRT演示





创建快速连接,如上图.点击Connect,将会看到一个启动信息:




今后将进入shell 命令环境:

阅读(1316) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~