CATSploit:一款基于CATS的自动化渗透测试执行工具

关于CATSploit

CATSploit是一款基于CATS的自动化渗透测试执行工具,该工具基于网络攻击技术评分(CATS)方法实现其功能,可以在无需渗透测试人员操作的情况下,自动对目标应用执行安全渗透测试。

在执行渗透测试的过程中,广大安全研究人员首先需要针对目标系统的特征选择合适的测试技术,而CATSploit能够使用扫描工具收集目标系统的各种信息,其中包括操作系统、开放端口和软件版本等,并计算目标系统的各种安全评分。通过分析和选择适当的测试向量,CATSploit能够帮助我们在不具备专业渗透测试技术的情况下选择最合适的方法对目标系统执行自动化渗透测试。

工具运行机制

CATSploit能够按照下列操作序列自动执行渗透测试任务:

1、信息收集和输入之前收集的信息:首先,该工具会收集目标系统的相关信息。CATSploit不仅支持使用nmap和OpenVAS来收集目标系统的信息,还支持输入预先收集的目标系统信息;

2、计算渗透测试技术得分值:使用前一阶段获得的信息和渗透测试技术数据库,计算每种渗透测试技术的捕获性(eVc)和可探测性(eVd)评估值。对于每个目标设备,计算每个渗透测试技术的值;

3、渗透测试技术选择:通过使用之前的评分并根据预定义的策略选择渗透测试技术并创建渗透测试场景;

4、渗透测试执行:CATSploit可以根据前一阶段构建的渗透测试场景执行渗透测试技术。除此之外,CATSploit还会使用Metasploit框架和Metasploit API来执行实际的渗透测试;

工具要求

Kali Linux 2023.2a

Python

工具安装

Kali Linux发行版默认会安装好Metasploit、Nmap、OpenVAS和Python环境。

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

$ git clone https://github.com/catsploit/catsploit.git

然后切换到项目目录中,配置好工具帮助组件,并执行工具安装脚本即可:

$ cd catsploit

$ git clone https://github.com/catsploit/cats-helper.git

$ sudo ./setup.sh

工具配置

CATSploit需要进行服务器和客户端配置,服务器会在启动时读取JSON配置文件config.json,我们需要根据实际情况修改相关数据:

DBMS

dbname: CATSploit的数据库名称

user: PostgreSQL的用户名

password: PostgreSQL的密码

host: 如果你的数据库托管在远程主机,则指定远程主机的IP地址

SCENARIO

generator.maxscenarios: 需要计算的最大渗透测试场景数量 (*)

ATACKPF

msfpassword: MSFRPCD的密码

openvas.user: PostgreSQL的用户名

openvas.password: PostgreSQL的密码

openvas.maxhosts: 同时测试的主机数最大数量 (*)

openvas.maxchecks: 同时测试的条目数最大数量 (*)

ATTACKDB

attack_db_dir: 存储AtackSteps 的文件夹路径

其中(*)标记的参数需要根据研究人员设备情况调整。

工具使用

下列命令可启动CATSploit服务器:

$ python cats_server.py -c [CONFIG_FILE]

接下来,打开另一个命令行终端,开启客户端程序,并初始化与服务器端的连接:

$ python catsploit.py -s [SOCKET_PATH]

成功连接服务器后,初始化工具,会话将会启动:

_________  ___________       __      _ __

  / ____/   |/_  __/ ___/____  / /___  (_) /_

 / /   / /| | / /  \__ \/ __ \/ / __ \/ / __/

/ /___/ ___ |/ /  ___/ / /_/ / / /_/ / / /_

\____/_/  |_/_/  /____/ .___/_/\____/_/\__/

                     /_/

 

[*] Connecting to cats-server

[*] Done.

[*] Initializing server

[*] Done.

catsploit>

客户端可以执行多种命令,每一个命令都可以使用-h选项来查看对应的帮助信息:

usage: [-h] {host,scenario,scan,plan,attack,post,reset,help,exit} ...

 

positional arguments:

  {host,scenario,scan,plan,attack,post,reset,help,exit}

 

options:

  -h, --help       显示工具帮助信息和退出

下面给出的是该工具的常用命令参数信息:

host list:

 show information about the hosts

 usage:  host list [-h]

 options:

  -h, --help       显示命令帮助信息和退出

 

host detail:

 show more information about one host

 usage:  host detail [-h] host_id

 positional arguments:

  host_id          要查看信息的主机ID

 options:

  -h, --help       显示命令帮助信息和退出

 

scenario list:

 show information about the scenarios

 usage:  scenario list [-h]

 options:

  -h, --help       显示命令帮助信息和退出

 

scenario detail:

 show more information about one scenario

 usage:  scenario detail [-h] scenario_id

 positional arguments:

  scenario_id      要查看信息的场景ID

 options:

  -h, --help       显示命令帮助信息和退出

 

scan:

 run network-scan and security-scan

 usage:  scan [-h] [--port PORT] target_host [target_host ...]

 positional arguments:

  target_host      要扫描的IP地址

 options:

  -h, --help       显示命令帮助信息和退出

  --port PORT      要扫描的端口

 

plan:

 planning attack scenarios

 usage:  plan [-h] src_host_id dst_host_id

 positional arguments:

  src_host_id      源主机

  dst_host_id      目标主机

 options:

  -h, --help       显示命令帮助信息和退出

 

attack:

 execute attack scenario

 usage:  attack [-h] scenario_id

 positional arguments:

  scenario_id      需要执行的渗透测试场景ID

 

 options:

  -h, --help       显示命令帮助信息和退出

 

post find-secret:

 find confidential information files that can be performed on the pwned host

 usage:  post find-secret [-h] host_id

 positional arguments:

  host_id          需要寻找凭证信息的主机ID

 options:

  -h, --help       显示命令帮助信息和退出

 

reset:

 reset data on the server

 usage:  reset [-h] {system} ...

 positional arguments:

  {system}         重置系统

options:

  -h, --help  显示命令帮助信息和退出

 

exit:

  exit CATSploit

  usage:  exit [-h]

  options:

   -h, --help  显示命令帮助信息和退出

工具使用样例

在下面的演示样例中,我们将使用CATSploit扫描目标网络,并计划渗透测试策略和场景,最终执行渗透测试:

catsploit> scan 192.168.0.0/24

Network Scanning ... 100%

[*] Total 2 hosts were discovered.

Vulnerability Scanning ... 100%

[*] Total 14 vulnerabilities were discovered.

catsploit> host list

┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓

┃ hostID   ┃ IP             ┃ Hostname ┃ Platform                         ┃ Pwned ┃

┡━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩

│ attacker │ 0.0.0.0        │ kali     │ kali 2022.4                      │ True  │

│ h_exbiy6 │ 192.168.0.10   │          │ Linux 3.10 - 4.11                │ False │

│ h_nhqyfq │ 192.168.0.20   │          │ Microsoft Windows 7 SP1          │ False │

└──────────┴────────────────┴──────────┴──────────────────────────────────┴───────┘

 

 

catsploit> host detail h_exbiy6

┏━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━┓

┃ hostID   ┃ IP           ┃ Hostname ┃ Platform     ┃ Pwned ┃

┡━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━┩

│ h_exbiy6 │ 192.168.0.10 │ ubuntu   │ ubuntu 14.04 │ False │

└──────────┴──────────────┴──────────┴──────────────┴───────┘

 

[IP address]

┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━┓

┃ ipv4         ┃ ipv4mask ┃ ipv6 ┃ ipv6prefix ┃

┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━╇━━━━━━━━━━━━┩

│ 192.168.0.10 │          │      │            │

└──────────────┴──────────┴──────┴────────────┘

 

[Open ports]

┏━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃ ip           ┃ proto ┃ port ┃ service     ┃ product      ┃ version                    ┃

┡━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩

│ 192.168.0.10 │ tcp   │ 21   │ ftp         │ ProFTPD      │ 1.3.5                      │

│ 192.168.0.10 │ tcp   │ 22   │ ssh         │ OpenSSH      │ 6.6.1p1 Ubuntu 2ubuntu2.10 │

│ 192.168.0.10 │ tcp   │ 80   │ http        │ Apache httpd │ 2.4.7                      │

│ 192.168.0.10 │ tcp   │ 445  │ netbios-ssn │ Samba smbd   │ 3.X - 4.X                  │

│ 192.168.0.10 │ tcp   │ 631  │ ipp         │ CUPS         │ 1.7                        │

└──────────────┴───────┴──────┴─────────────┴──────────────┴────────────────────────────┘

 

[Vulnerabilities]

┏━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓

┃ ip           ┃ proto ┃ port ┃ vuln_name                                                           ┃ cve            ┃

┡━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩

│ 192.168.0.10 │ tcp   │ 0    │ TCP Timestamps Information Disclosure                               │ N/A            │

│ 192.168.0.10 │ tcp   │ 21   │ FTP Unencrypted Cleartext Login                                     │ N/A            │

│ 192.168.0.10 │ tcp   │ 22   │ Weak MAC Algorithm(s) Supported (SSH)                               │ N/A            │

│ 192.168.0.10 │ tcp   │ 22   │ Weak Encryption Algorithm(s) Supported (SSH)                        │ N/A            │

│ 192.168.0.10 │ tcp   │ 22   │ Weak Host Key Algorithm(s) (SSH)                                    │ N/A            │

│ 192.168.0.10 │ tcp   │ 22   │ Weak Key Exchange (KEX) Algorithm(s) Supported (SSH)                │ N/A            │

│ 192.168.0.10 │ tcp   │ 80   │ Test HTTP dangerous methods                                         │ N/A            │

│ 192.168.0.10 │ tcp   │ 80   │ Drupal Core SQLi Vulnerability (SA-CORE-2014-005) - Active Check    │ CVE-2014-3704  │

│ 192.168.0.10 │ tcp   │ 80   │ Drupal Coder RCE Vulnerability (SA-CONTRIB-2016-039) - Active Check │ N/A            │

│ 192.168.0.10 │ tcp   │ 80   │ Sensitive File Disclosure (HTTP)                                    │ N/A            │

│ 192.168.0.10 │ tcp   │ 80   │ Unprotected Web App / Device Installers (HTTP)                      │ N/A            │

│ 192.168.0.10 │ tcp   │ 80   │ Cleartext Transmission of Sensitive Information via HTTP            │ N/A            │

│ 192.168.0.10 │ tcp   │ 80   │ jQuery < 1.9.0 XSS Vulnerability                                    │ CVE-2012-6708  │

│ 192.168.0.10 │ tcp   │ 80   │ jQuery < 1.6.3 XSS Vulnerability                                    │ CVE-2011-4969  │

│ 192.168.0.10 │ tcp   │ 80   │ Drupal 7.0 Information Disclosure Vulnerability - Active Check      │ CVE-2011-3730  │

│ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Report Vulnerable Cipher Suites for HTTPS                  │ CVE-2016-2183  │

│ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Report Vulnerable Cipher Suites for HTTPS                  │ CVE-2016-6329  │

│ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Report Vulnerable Cipher Suites for HTTPS                  │ CVE-2020-12872 │

│ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Deprecated TLSv1.0 and TLSv1.1 Protocol Detection          │ CVE-2011-3389  │

│ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Deprecated TLSv1.0 and TLSv1.1 Protocol Detection          │ CVE-2015-0204  │

└──────────────┴───────┴──────┴─────────────────────────────────────────────────────────────────────┴────────────────┘

 

[Users]

┏━━━━━━━━━━━┳━━━━━━━┓

┃ user name ┃ group ┃

┡━━━━━━━━━━━╇━━━━━━━┩

└───────────┴───────┘

 

 

catsploit> plan attacker h_exbiy6

Planning attack scenario...100%

[*] Done. 15 scenarios was planned.

[*] To check each scenario, try 'scenario list' and/or 'scenario detail'.

catsploit> scenario list

┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃ scenario id ┃ src host ip ┃ target host ip ┃ eVc   ┃ eVd   ┃ steps ┃ first attack step             ┃

┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩

│ 3d3ivc      │ 0.0.0.0     │ 192.168.0.10   │ 1.0   │ 32.0  │ 1     │ exploit/multi/http/jenkins_s… │

│ 5gnsvh      │ 0.0.0.0     │ 192.168.0.10   │ 1.0   │ 53.76 │ 2     │ exploit/multi/http/jenkins_s… │

│ 6nlxyc      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 48.32 │ 2     │ exploit/multi/http/jenkins_s… │

│ 8jos4z      │ 0.0.0.0     │ 192.168.0.10   │ 0.7   │ 72.8  │ 2     │ exploit/multi/http/jenkins_s… │

│ 8kmmts      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 32.0  │ 1     │ exploit/multi/elasticsearch/… │

│ agjmma      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 24.0  │ 1     │ exploit/windows/http/managee… │

│ joglhf      │ 0.0.0.0     │ 192.168.0.10   │ 70.0  │ 60.0  │ 1     │ auxiliary/scanner/ssh/ssh_lo… │

│ rmgrof      │ 0.0.0.0     │ 192.168.0.10   │ 100.0 │ 32.0  │ 1     │ exploit/multi/http/drupal_dr… │

│ xuowzk      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 24.0  │ 1     │ exploit/multi/http/struts_dm… │

│ yttv51      │ 0.0.0.0     │ 192.168.0.10   │ 0.01  │ 53.76 │ 2     │ exploit/multi/http/jenkins_s… │

│ znv76x      │ 0.0.0.0     │ 192.168.0.10   │ 0.01  │ 53.76 │ 2     │ exploit/multi/http/jenkins_s… │

└─────────────┴─────────────┴────────────────┴───────┴───────┴───────┴───────────────────────────────┘

 

catsploit> scenario detail rmgrof

┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┓

┃ src host ip ┃ target host ip ┃ eVc   ┃ eVd  ┃

┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━┩

│ 0.0.0.0     │ 192.168.0.10   │ 100.0 │ 32.0 │

└─────────────┴────────────────┴───────┴──────┘

 

[Steps]

┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓

┃ # ┃ step                                  ┃ params                ┃

┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩

│ 1 │ exploit/multi/http/drupal_drupageddon │ RHOSTS: 192.168.0.10  │

│   │                                       │ LHOST: 192.168.10.100 │

└───┴───────────────────────────────────────┴───────────────────────┘

 

 

catsploit> attack rmgrof

> ~

> ~

> Metasploit Console Log

> ~

> ~

[+] Attack scenario succeeded!

 

 

catsploit> exit

Bye.

项目地址

CATSploit:【GitHub传送门】

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

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

相关文章

【leetcode】力扣简单题两数之和

题目 思路 代码实现 #include<iostream> #include<unordered_map>using namespace std;class Solution { public:vector<int> TwoNumber(const vector<int>& nums, int target){vector<int> number_vector;unordered_map<int, int> …

【PyQt学习篇 · ⑮】:qrc/rcc资源系统

文章目录 qrc使用介绍rcc编译资源rcc 的安装与基本使用 编译成Python文件使用资源系统文件方式一&#xff1a;导入资源系统文件方式二&#xff1a;整合资源系统文件 qrc使用介绍 在PyQt中&#xff0c;qrc文件是一种资源文件&#xff0c;用于将应用程序所需的资源&#xff08;如…

pmp培训机构哪个比较好?国内10大热门PMP培训机构是哪些?

热门PMP培训机构推荐&#xff0c;PMP备考选择威班就是选择了高通过率 PMP热门培训机构方面我还是比较推荐威班的&#xff0c;当时选择的时候有人推荐我&#xff0c;也了解了很多&#xff0c;各种科普各种对比选择&#xff0c;最后还是选择了威班。经过体验他们的通过率比较靠谱…

Math类

java.lang.Math 提供了一系列静态方法用于科学计算&#xff0c;常用方法如下&#xff1a; abs 绝对值 acos&#xff0c;asin&#xff0c;atan&#xff0c;cos&#xff0c;sin&#xff0c;tan 三角函数 sqrt 平方根 pow(double a,double b) a的b次幂 max(double a,double b) 取大…

LiteFlow逻辑流引擎集成验证

本文将介绍开源逻辑流组件LiteFlow的架构、设计思想和适用场景&#xff0c;如何基于springboot集成LiteFlow&#xff0c;并验证DSL多种逻辑流程&#xff0c;以及逻辑流设计器的开发思路。 一、逻辑流解决什么问题 在每个公司的系统中&#xff0c;总有一些拥有复杂业务逻辑的系…

喜报 | 攸信技术再获殊荣,被授予厦门攸信智能制造系统研发中心

近日&#xff0c;厦门攸信信息技术有限公司凭借其卓越的科技创新实力和突出的研发成果&#xff0c;经过厦门市科学技术局的严格筛选与评审&#xff0c;三月份被正式授予“厦门攸信智能制造系统研发中心”的荣誉称号。 2023年12月&#xff0c;厦门市科学技术局积极响应《厦门市关…

2024年阿里云无影云电脑具体价格,99元一年起

2024年阿里云无影云电脑具体价格99元一年起&#xff0c;配置可选4核8G和8核16G&#xff0c;使用时长可选800小时和1800小时&#xff0c;目前有四款无影云电脑可以享受优惠价格&#xff0c;阿里云服务器网aliyunfuwuqi.com整理2024年无影云电脑详细配置和优惠价格表&#xff0c;…

20240322-1-协同过滤面试题

协同过滤面试题 1. 协同过滤推荐有哪些类型 基于用户(user-based)的协同过滤 基于用户(user-based)的协同过滤主要考虑的是用户和用户之间的相似度&#xff0c;只要找出相似用户喜欢的物品&#xff0c;并预测目标用户对对应物品的评分&#xff0c;就可以找到评分最高的若干个物…

VS Code 安装

VS Code 安装文档 一、下载 进入VS Code官网&#xff1a;https://code.visualstudio.com&#xff0c;点击 DownLoad for Windows下载windows版本 当然也可以点击旁边的箭头&#xff0c;下载Windows版本 或 Mac OS 版本 Stable&#xff1a;稳定版Insiders&#xff1a;内测版 …

算法系列--动态规划--背包问题(4)--完全背包拓展题目

&#x1f495;"这种低水平质量的攻击根本就不值得我躲&#xff01;"&#x1f495; 作者&#xff1a;Lvzi 文章主要内容&#xff1a;算法系列–动态规划–背包问题(4)–完全背包拓展题目 大家好,今天为大家带来的是算法系列--动态规划--背包问题(4)--完全背包拓展题目…

Codeforces Round 838 (Div. 2) D. GCD Queries

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

信息系统项目管理师——第11章项目成本管理(重要)

选择、本章节内容属于10大管理知识领域中的重中之重案例、论文都会考&#xff0c;需要完全掌握。 选择题大概考3分左右&#xff0c;理论和计算都会考。 案例题&#xff0c;必考内容&#xff0c;挣值相关的计算&#xff0c;必须得会。 论文题&#xff0c;考的比较多&#xff0c;…

STM32之HAL开发——DMA转运串口数据

DMA功能框图&#xff08;F1系列&#xff09; 如果外设要想通过 DMA 来传输数据&#xff0c;必须先给 DMA 控制器发送 DMA 请求&#xff0c; DMA 收到请求信号之后&#xff0c;控制器会给外设一个应答信号&#xff0c;当外设应答后且 DMA 控制器收到应答信号之后&#xff0c;就会…

【Linux】POSIX信号量{基于环形队列的PC模型/理解信号量的出现/参考代码}

文章目录 1.POSIX信号量1.1介绍1.2接口 2.基于环形队列的PC模型2.1环形队列常用计算2.2如何设计&#xff1f;2.3如何实现&#xff1f; 3.细节处理3.1空间资源和数据资源3.2push/pop3.3理解信号量的出现1.回顾基于阻塞队列的PC模型中条件变量的使用2.如何理解信号量的投入使用&a…

【活动预告】SLMOps 系列(一)|SLMOps 基础 - Azure AI Studio 的 SLM 应用构建

点击蓝字 关注我们 编辑&#xff1a;Alan Wang 排版&#xff1a;Rani Sun 2023年&#xff0c;Azure OpenAI Service 引领了 AI 2.0 时代的热潮&#xff0c;各行业企业都在 AI 模型的探索与应用中持续发力。相比复杂度更高的大模型&#xff0c;有时候轻量且高效的小模型&#xf…

时序预测 | MATLAB实现BiTCN双向时间卷积神经网络的时间序列预测

时序预测 | MATLAB实现BiTCN双向时间卷积神经网络的时间序列预测 目录 时序预测 | MATLAB实现BiTCN双向时间卷积神经网络的时间序列预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 MATLAB实现BiTCN双向时间卷积

【C语言基础】:自定义类型(一)--> 结构体

文章目录 一、内置类型与自定义类型1.1 内置类型&#xff08;基本数据类型&#xff09;1.2 自定义类型 二、结构体2.1 结构体的声明2.2 结构体变量的创建和初始化2.3 结构体的特殊声明2.4 结构体的自引用 三、结构体内存对齐3.1 对齐规则3.2 为什么存在内存对齐3.3 修改默认对齐…

十七、InnoDB 一次更新事务的执行过程

一、InnoDB的一次更新事务是怎么实现的&#xff1f; InnoDB的一次更新事务涉及到多个组件和步骤&#xff0c;包括Buffer Pool、BinLog、UndoLog、RedoLog以及物理磁盘。 下面是一次完整的事务更新操作过程&#xff1a; 1. 加载数据到缓存中&#xff08;Buffer Pool&#xff0…

Huggingface模型下载

1. 基础信息 huggingface的模型排行榜&#xff08;需要翻墙&#xff09;&#xff1a;https://huggingface.co/spaces/mteb/leaderboard 2. 下载模型 2.1 手动一个个下载&#xff08;方式1&#xff09; 2. 使用huggingface-cli下载(方式2) pip install -U huggingface_hub h…

英文网站怎么推广,英文网站推广排名方案

英文网站的推广对于吸引国际用户、提升品牌知名度和增加业务收入至关重要。而在全球范围内&#xff0c;谷歌是最主要的搜索引擎之一&#xff0c;因此谷歌SEO排名优化是英文网站推广的重要手段之一。本文将介绍英文网站推广的方法&#xff0c;并重点探讨谷歌SEO排名优化推广策略…