预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

天融信防火墙密码恢复手记天融信防火墙密码恢复手记联系天融信厂家寻求技术支持,被告知必须返厂更换芯片,费用大约在2000元左右(网上搜了一下,几乎所有密码遗失的客户最终都只能选择返厂)。公司用于该网络联网的仅此一台防火墙设备,终端数量在500以上,无其他硬件备份方案。因用户众多,管理要求细致,防火墙配置非常复杂,保存的配置文件也不是最新的。若返厂维修的话,则无法找到完备的替代方案。于是决定先自己想办法,开启密码恢复之旅。Go!猜测密码,自动验证首先想到的是根据可能的密码规则和常用组合,构造一个密码字典,通过编写简单的python脚本进行登录验证。万一不行的话,就穷举来尝试暴力破解。可是开始跑脚本的时候发现想法实在太天真了,存在两个致命的问题:防火墙白天负荷过重,Web响应非常慢。有时候一个请求可能在半分钟以上。Web管理平台有登录次数限制,大约6次密码错误以后,就会锁定账号一段时间。在尝试了几十个最可能出现的密码组合后,彻底放弃了这条捷径。看来偷懒是不成了,必须得动真格的。搜寻漏洞,获取控制权nmap扫描发现防火墙只开通了https端口。不是专业的安全研究人员,只能在网上搜索该款防火墙的漏洞资料,不(suo)幸的是,还真发现了不少。找到的第一篇文章《看我如何在2小时内控制100+天融信安全设备的》提到了Heartbleed漏洞,却未对漏洞利用方式做过多解释。需要更多学习资料,根据这个方向继续搜索,又找到了一些文章:NSAEquationGroup泄露的天融信产品漏洞分析(一)天融信率先发布BASH爆出高危漏洞规则库天融信防火墙openssl漏洞可能导致信息泄漏天融信防火墙关于“方程式组织”漏洞处置公告其中,NSAEquationGroup那篇文章信息量最高,对漏洞的特征和产生的原因分析的非常透彻,利用方式也做了简要说明。按照文章的提示,用Brup进行EligibleCandidate漏洞测试(打算用Postman,但因chrome的https证书问题放弃),漏洞果然还在!怀着激动的心情,尝试了ls-la/>/www/htdocs/1、find/-typef>/www/htdocs/1等指令,对防火墙文件系统的目录结构进行初步了解,也看到了配置文件存放的位置。执行cp/tos/conf/config>/www/htdocs/1,把配置文件down下来一看,果然是新鲜的味道。启动telnetd服务并尝试连接,报错,估计是没有加特定启动参数的缘故,没做深入研究。看来暂时还是只能通过https漏洞方式跑命令了。随着执行命令次数越来越多,Brup构造请求的方式效率太低,于是写了简单的Python函数在IPython下面跑,终觉得灵活性不够。最后决定采用HTTPie命令行的方式发送https请求(curl没有httpie方便),后续所有命令都通过这种方式交互。1$http--verify=nohttps://x.x.x.x/cgi/maincgi.cgi'cookie:session_id=x`ls-la/tmp>/www/htdocs/1`'文件上传,执行脚本文件之前都是一次请求执行一条命令,效率太低,也存在诸多限制。最好的方式是上传一个sh脚本在防火墙上执行,这就需要以某种方式传送文件到防火墙上去。另一方面,根据漏洞名称和EquationGroup搜索到这篇文章:EquationGroup泄露文件分析,才注意到这是国际顶尖黑客组织,也是NSA合作的方程式黑客组织(EquationGroup),被另一个名为“TheShadowBrokers”的黑客组织攻下了,珍藏的系列高级工具被打包分享。这可是个好东西!赶紧下载解密,找到ELCA的漏洞利用代码,运行后却发现没有如逾期般的启动nopen远程管理软件,原因未知,颇有些失望。不过在py源码中看到了文件上传的方式,其实就是利用了cgi文件上传处理方式,它每次会在/tmp目录下生成一个cgi*的临时文件。ELCA利用代码的流程是连续执行多次指令,第一次rm/tmp/cgi*清理tmp目录,接着post上传文件同时复制保存一份cp/t*/cg*/tmp/.a,再加执行权限chmod+x/tmp/.a,最后执行/tmp/.a。当然,代码并没有直接上传一个可执行文件,而是巧妙(恕见识少,我知道*nix下经常这样干)的将需要的多个文件用tar打包后,附到sh脚本的最后。在sh脚本中用dd命令将tar包copy出来再解压运行。下面是工具中stage.sh的部分代码:文件tar打包的Python代码片段:就我的需求而言,只是上传脚本执行,就不用做得那么复杂了。简单的post我的sh脚本,同时执行sh/tmp/cgi*。前提是我的sh脚本中都做了清理工作rm/tmp/cgi*。1http--verify=no-