CVE-2017-3066 深入利用获取命令回显

admin 2025年4月22日17:43:32评论10 views字数 4046阅读13分29秒阅读模式
事情的起因,客户的网站被监测到存在反序列化漏洞
CVE-2017-3066 深入利用获取命令回显
定位 axis2,发现是Adobe ColdFusion反序列化漏洞。
渗透了那么多项目,这个漏洞几乎没见过,也没遇到过,也好奇 这应该是内网里的,怎么能通过外网访问到。
下载 vulhub复现下漏洞
现在的 docker-compose 1.x 的版本不支持了,要升级到 2.x 才可以
root@localhost:~/vulhub/coldfusion/CVE-2017-3066# docker-compose up -dTraceback (most recent call last):  File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 633in send    conn = self.get_connection_with_tls_context(  File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 489in get_connection_with_tls_context    conn = self.poolmanager.connection_from_host(  File "/usr/local/lib/python3.8/dist-packages/urllib3/poolmanager.py", line 303in connection_from_host    return self.connection_from_context(request_context)  File "/usr/local/lib/python3.8/dist-packages/urllib3/poolmanager.py", line 325in connection_from_context    raise URLSchemeUnknown(scheme)urllib3.exceptions.URLSchemeUnknownNot supported URL scheme http+dockerDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File "/usr/bin/docker-compose", line 11in <module>    load_entry_point('docker-compose==1.25.0''console_scripts''docker-compose')()  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 72in main    command()  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 125in perform_command    project = project_from_options('.', options)  File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 53in project_from_options    return get_project(  File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 151in get_project    return Project.from_config(  File "/usr/lib/python3/dist-packages/compose/project.py", line 102in from_config    service_networks = get_networks(service_dict, networks)  File "/usr/lib/python3/dist-packages/compose/network.py", line 320in get_networks    networks[network.true_name] = netdef  File "/usr/lib/python3/dist-packages/compose/network.py", line 125in true_name    self._set_legacy_flag()  File "/usr/lib/python3/dist-packages/compose/network.py", line 146in _set_legacy_flag    data = self.inspect(legacy=True)  File "/usr/lib/python3/dist-packages/compose/network.py", line 106in inspect    return self.client.inspect_network(self.legacy_full_name)  File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 19in wrapped    return f(self, resource_id, *args, **kwargs)  File "/usr/lib/python3/dist-packages/docker/api/network.py", line 212in inspect_network    res = self._get(url, params=params)  File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 46in inner    return f(self, *args, **kwargs)  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 230in _get    return self.get(url, **self._set_request_timeout(kwargs))  File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 602in get    return self.request("GET", url, **kwargs)  File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 589in request    resp = self.send(prep, **send_kwargs)  File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 703in send    r = adapter.send(request, **kwargs)  File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 637in send    raise InvalidURL(e, request=request)requests.exceptions.InvalidURL: Not supported URL scheme http+docker
启动之后就是 404 页面,可以做为指纹记录一下
CVE-2017-3066 深入利用获取命令回显
网上的复现内容,都是基于

ColdFusionPwn-0.0.1-SNAPSHOT-all.jar

ysoserial.jar

以上两个文件,ColdFusionPwn的作用则是结合ysoserial库生成恶意序列化对象,并将其封装到 AMF 消息中,最终生成可用于攻击的载荷文件。
直接用 ysoserial,格式则不符合 AMF类型。
图中的内容,响应包存在 ipconfig 的记录,说明是通过 echo 的方式,将结果显示出来。
直接用这两个工具则是没办法获取相应的结果,反弹 shell 可以尝试,但如果不出网,就没办法利用了。
目测有两种方式,手写Gadget利用链,然后执行echo马,但是我不会,这种方式直接 pass。
第二种则是使用 java-chains.jar 生成对应的利用链。
打开后,点击生成
CVE-2017-3066 深入利用获取命令回显
找到特定的 AMF
CVE-2017-3066 深入利用获取命令回显
就可以找到具体的链。
这里就有一点玄学
网上命令行的操作 基于CB1来进行攻击
java -cp ColdFusionPwn-0.0.1-SNAPSHOT-all.jar:ysoserial-0.0.6-SNAPSHOT-all.jar com.codewhitesec.coldfusionpwn.ColdFusionPwner -e  CommonsBeanutils1 'touch /tmp/aaaa' poc.ser
cb1的版本是 1.9.2
CVE-2017-3066 深入利用获取命令回显
而环境中的 cb 是 1.8 的版本
CVE-2017-3066 深入利用获取命令回显
但是原始的攻击方法,是可以成功创建文件
CVE-2017-3066 深入利用获取命令回显
而web 页面中的 cb1 也是 1.9 的版本,但是却无法创建文件
CVE-2017-3066 深入利用获取命令回显
然后用下面的 cb 1.8,则可以创建 cccc
CVE-2017-3066 深入利用获取命令回显
然后用oneforall echo 用来生成回显马
CVE-2017-3066 深入利用获取命令回显
CVE-2017-3066 深入利用获取命令回显
最后, java-chains.jar ,yyds

原文始发于微信公众号(轩公子谈技术):CVE-2017-3066 深入利用获取命令回显

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月22日17:43:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2017-3066 深入利用获取命令回显http://cn-sec.com/archives/3986949.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息