之前大家也曾经尝试过使用ASDM来连接QEMU运行的ASA,但大体都是ASDM不支持该版本,主要原因就是因为ASDM在检测QEMU模拟ASA时,不能得到其硬件版本(5505,5510,5520,etc),其实ASDM检查QEMU模拟的ASA的时候利用的就是HTTPS协议,介绍一个软件Fiddler,一个HTTP debugging proxy,其2.0版本支持https协议,并且这个工具可以截获本机发送的HTTP或者HTTPS流量进行重写,那么我们就有机会将ASDM与QEMU模拟的ASA中间的HTTPS流量进行重写,将硬件版本号写进HTTPS,骗取ASDM来识别.
1.需要的软件
QEMU模拟的ASA(论坛已经有了)
Fiddler (
http://www.fiddler2.com/dl/Fiddler2BetaSetup.exe)
ASDM(QEMU模拟的FLASH中需包含它)
JAVA(最新版本)
2.Howto
>首先,安装JAVA,Fiddler.
>运行并启动QEMU模拟的ASA(基本配置端口IP,http enable,username ,导入ASDM文件到ASA,等等)
>然后运行fiddler,注意定义下图几个地方:
点击Tools->Fiddler option->Https
勾选Decrypt HTTPS traffic
>点击Rules->Customize rules
搜索找到函数
复制内容到剪贴板
代码:
static function OnBeforeRequest(oSession: Session)在该函数中加入一条if语句
复制内容到剪贴板
代码:
if ((oSession.url.EndsWith("/admin/asdm_handler")) || (oSession.url.EndsWith("/admin/pdm.sgz")))
{
oSession.bBufferResponse = false;
}搜索找到函数
复制内容到剪贴板
代码:
static function OnBeforeResponse(oSession: Session)在该函数中加入一条if语句
复制内容到剪贴板
代码:
if (oSession.url.Contains("/show+version"))
{
oSession.utilDecodeResponse();
oSession.utilReplaceInResponse('Hardware: ,','Hardware: ASA5520,');
}
注意('Hardware: ,','Hardware: ASA5520,'); 中的空格保留(3个空格,请完全复制)
点击文件->保存(如果语法正确将听到提示声音,并无任何提示框,假如语法错误或者将会提出提示框)
>点击 开始->控制面板->JAVA->常规->网络设置
使用代理服务器,地址为localhost 端口为8888(fiddler的服务端口)
点击高级,对所有协议使用同一个代理服务器
>运行ASDM
成功登陆到ASDM以后注意取消JAVA代理服务器设置.
备注:所需文件看附件, 说明看33楼
http://netemu.cn/bbs/thread-9955-2-1.html 33楼
高速下载请至FTP
ftp://down.netemu.cn
username:down password:netemu.cn
目录:/down/NetEmu.cn 专用/qemu/Qemu_asa_asdm/asa802_asdm.7z