0x01 漏洞简介
Cisco ASA Software的部分管理接口在身份认证时存在验证逻辑问题,导致攻击者可以绕过身份认证,实现未授权操作。
0x02 漏洞原理
默认情况下,ASA的管理接口通过basic auth+cookie的方式进行认证,如下图:
漏洞存在于Configuration选项卡的Customization页面的preview功能。此页面用于修改webvpn的用户登录页面。但Preview的管理请求处理逻辑缺乏Basic Auth认证,仅仅通过验证cookie的有效性来进行判定。但Cookie验证逻辑上存在问题, Lua代码如下:
Function CheckAsdmSession(cookie,no_redirect)
省略部分代码..
Local f = io.open(‘asdm/’..cookie, “r”)
If f ~= nil then
f:close()
return true;
end
可以看出,在CheckAsdmSession 函数中,仅仅校验该函数cookie传入的文件存在与否。通过修改Cookie中ced的值,设置为设备上存在的文件,如 Ced=../../locale/ru/LC_MESSAGES/webvpn.mo
,即可达到绕过验证的效果。
我们可以通过对/+CSCOE+/cedf.html
页面的请求查看preview页面的修改结果。
现有系统对于preview页面的生效需要进行basic auth校验的,但固件版本保留了老的生效接口/+CSCOE+/cedsave.html(老接口不需要进行basic auth认证),通过调用此接口,即可完成对login page的html代码的修改。如下:
通过修改登录页的代码,攻击者截获用于登录VPN的账号密码,也可以进行诸如劫持、挂马等操作。
0x03 漏洞修复
目前cisco已经针对固件提供了修复方案,受影响的ASA版本可以通过官方通告进行查看。VPN类设备多属于企业的入口,提醒各公司运维人员以最高优先级修复。 官方链接: http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20141008-asa