内网渗透测试基础——内网信息收集

news2024/9/28 13:22:48

内网渗透测试基础——内网信息收集

在内网渗透测试环境中,有很多设备和防护软件,例如Bit9、ArcSight、Maniant等。它们通过收集目标内网的信息,洞察内网网络拓扑结构,找出内网中最薄弱的环节。信息收集的深度,直接关系到内网渗透测试的成败。

1. 内网信息收集概述

渗透测试人员进入内网后,面对的是一片“黑暗森林”。所以,渗透测试人员首先需要对当前所处的网络环境进行判断。判断设计如下三个方面。

我是谁?——对当前机器角色的判断。

这是哪?——对当前机器所处网络环境的拓扑结构进行分析和判断。

我在哪?——对当前机器所处区域的判断。

对当前机器角色的判断,是指判断当前机器是普通Web服务器、开发测试服务器、公共服务器、文件服务器、代理服务器、DNS服务器还是存储服务器等。具体的判断过程,是根据机器的主机名、文件、网络连接等情况综合完成的。

对当前机器所处网络环境的拓扑结构进行分析和判断,是指对所处内网进行全面的数据收集和分析整理,绘制出大致的内网整体拓扑结构图。对当前机器所处区域的判断,是指判断机器处于网络拓扑中的哪个区域,是在DMZ、办公区还是核心区。当然,这里的区域不是绝对的,只是一个大概的环境。处于不同位置的网络,环境不一样,区域界限也不一定明显。

2. 收集本机信息

不管是在外网还是内网中,信息收集都是重要的第一步。对于内网中的一台机器,其所处内网的结构是什么样的、其角色是什么、使用这台机器的人的角色是什么,以及这台机器上安装了什么杀毒软件、这台机器是通过什么方式上网的、这台机器是笔记本电脑还是台式机等问题,都需要通过信息收集来解答。

2.1 手动收集信息

本机信息包括操作系统、权限、内网IP地址段、杀毒软件、端口、服务、补丁更新频率、网络连接、共享、会话等。如果是域内主机,操作系统、应用软件、补丁、服务、杀毒软件一般都是批量安装的。通过本机的相关信息,可以进一步了解整个域的操作系统版本、软件及补丁安装情况、用户命名方式等。

1. 查询网络配置信息

执行如下命令,获取本机网络配置信息,如图所示。


ipconfig /all


内网信息收集1
2. 查询操作系统及软件的信息

(1)查询操作系统和版本信息


systeminfo | findstr /B /C:“OS Name” /C:“OS Version”


执行以上命令,可以看到当前系统为Windows Server 2008 R2 Enterprise。如果是中文版操作系统,则输入如下命令,如图所示。


systeminfo | findstr /B /C:“OS 名称” /C:“OS 版本”


内网信息收集2

(2) 查看系统体系结构

执行如下命令,查看系统体系结构,如图所示。


echo %PROCESSOR_ARCHITECTURE


内网信息收集3

(3) 查看安装的软件及版本、路径等

利用wmic命令,将结果输出到文本文件中。具体命令如下,运行结果如图所示。


wmic product get name, version


内网信息收集4

利用PowerShell命令,收集软件的版本信息。具体命令如下,运行结果如图所示。


powershell “Get-WmiObject -class Win32_Prodcut |Select-Object -Property name, version"


内网信息收集5
3. 查询本机服务信息

执行如下命令,查询本机服务信息,如图所示。


wmic service list brief


内网信息收集53
4. 查询进程列表

执行如下命令,可以查看当前进程列表和进程用户,分析软件、邮件客户端、VPN和杀毒软件等进程,如图所示。


tasklist


内网信息收集8

执行如下命令,查看进程信息,如图所示。


wmic process list brief


内网信息收集9

常见杀毒软件的进程,如表所示。

常见杀毒软件的进程

进 程软件名称
360sd.exe360杀毒
360tray.exe360实时保护
ZhDongFangYu.exe360主动防御
KSafeTray.exe金山卫士
SafeDogUpdateCenter.exe服务器安全狗
McAfee McShield.exeMcAfee
egui.exeNOD32
AVP.EXE卡巴斯基
avguard.exe小红伞
bdagent.exeBitDefender
5. 查看启动程序信息

执行如下命令,查看启动程序信息,如图所示。


wmic startup get command, caption


内网信息收集10

6. 查看计划任务

执行如下命令 ,查看计划任务,结果如图所示。


schtasks /query /fo LIST /v


内网信息收集11
7. 查看主机开机时间

执行如下命令,查看主机开机时间,如图所示。


net statistics workstation


内网信息收集12

8. 查询用户列表

执行如下命令,查看本机用户列表。


net user


通过分析本机用户列表,可以找出内网机器的命名规则。特别是个人机器的名称,可以用来推测整个域的用户命名方式,如图所示。

内网信息收集14

执行如下命令,获取本地管理员(通常包含域用户)信息。


net localgroup administrators


执行如下命令,查看当前在线用户,如图所示。


query user || qwinsta


内网信息收集15

9. 列出或断开本地计算机与所连接的客户端之间的会话

执行如下命令,列出或断开本地计算机与所连接的客户端之间的会话。


net session


10. 查询端口列表

执行如下命令,查看端口列表、本机开放的端口所对应的服务和应用程序。


netstat -ano


此时可以看到当前机器和哪些主机建立了连接,以及TCP、UDP等端口的使用和监听情况,如图所示。可以先通过网络连接进行初步判断(例如,在代理服务器中可能会有很多机器开放了代理端口,更新服务器可能开放了更新端口8530,DNS服务器可能开放了53端口等),再根据其他信息进行综合判断。

内网信息收集16
11. 查看补丁列表

执行如下命令,查看系统的详细信息。


systeminfo


需要注意系统的版本、位数、域、补丁信息及更新频率等。域内主机的补丁通常是批量安装的,通过查看本机补丁列表,就可以找到未补丁的漏洞。可以看到,当前系统更新了4个补丁,如图所示。

内网信息收集17

使用wmic命令查看安装在系统中的补丁,具体如下。


wmic qfe get Caption,Description,HotFixID,InstalledOn


补丁的名称、描述、ID、安装时间等信息,如图所示。

内网信息收集18

12. 查询本机共享列表

执行如下命令,查看本机共享列表和可访问的域共享列表(域共享在很多时候是相同的),如图所示。


net share


内网信息收集19

利用wmic命令查找共享列表,具体如下,如图所示。


wmic share get name,path,status


内网信息收集20

13. 查询路由表及所有可用接口的ARP缓存表

执行如下命令,查询路由表及所有可用接口的ARP(地址解析协议)缓存表,结果如图所示。


route print

arp -a


内网信息收集21内网信息收集22

14. 查询防火墙相关配置

(1)关闭防火墙

Windows Server 2003及之前的版本,命令如下。


netsh firewall set opmode disable


Windows Server 2003之后的版本,命令如下。


netsh advfirewall set allprofiles state off


(2) 查看防火墙配置


netsh firewall show config # win2008 Server 系统

netsh advfirewall firewall show rule name=all dir=in type=dynamic # Windows 10操作系统


(3)修改防火墙配置

Windows Server 2003及之前的版本,允许指定程序全部连接,命令如下。


netsh firewall add a allowedprogram c:\nc.exe “allow nc” enable


Windows Server2003之后的版本,情况如下。

  • 允许指定程序进入,命令如下。

netsh advfirew


all firewall add rule name=“pass nc” dir=in action=allow program=“C:\nc.exe”


  • 允许指定程序退出,命令如下。

netsh advfirewall firewall add rule name=“Allow nc” dir=out action=allow program=“C:\nc.exe”


  • 允许3389端口放行,命令如下。

netsh advfirewall firewall add rule name=“Remote Desktop” protocol=TCP dir=in localport=3389 action=allow


(4) 自定义防火墙日志的存储位置


netsh advfirewall set currentprofile logging filename “C:\windows\temp\fw.log”


15. 查看代理配置情况

执行如下命令,可以看到服务器127.0.0.1的1080端口的代理配置信息,如图所示。


reg query “HKEY_CURRENT_USER\SoftWare\Microsoft\Windows\CurrentVersion\Internet Settings”


内网信息收集23

16. 查询并开启远程连接服务

(1)查看远程连接端口

在命令行环境中执行注册表查询语句,命令如下。连接的端口为0xd3d,转换后为3389,如图所示。


REG QUERY”HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber


内网信息收集24

(2)在Windows Server 2003中开启3389端口


wmic path win32_terminalservicesetting where (_CLASS !=“”) call setallowtsconnections 1


(3)在Windows Server 2008和Windows Server 2012中开启3389端口,如图所示。


wmic .namespace:\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !=“”) call setallowtsconnections 1


内网信息收集25


wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName=‘RDP-Tcp’) call setuserauthenticationrequired 1


内网信息收集30


reg add “HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER” /v fSingleSessionPerUser /t REG_DWORD /d 0 /f


2.2 自动收集信息

为了简化操作,可以创建一个脚本,在目标机器上完成流程、服务、用户账号、用户组、网络接口、硬盘信息、网络共享信息、操作系统、安装的补丁、安装的软件、启动时运行的程序、时区等信息的查询工作。网上很多类似的脚本,当然,我们也可以自己定制一个。在这里,推荐一个利用WMIC收集目标机器信息的脚本。

WMIC(Windows Management Instrumentation Command-Line, Windows管理工具命令行)是最有用的Windows命令行工具。在默认情况下,任何版本的Windows XP的低权限用户不能访问WMIC,Windows 7以上版本的低权限用户允许访问WMIC并执行相关查询操作。

WMIC脚本的下载地址,[http://www.fuzzysecurity.com/scripts/files/wmic_info.rar]

内网信息收集31

3. 查询当前权限

3.1 查看当前权限

查看当前权限,命令如下。


whoami


获取一台主机的权限后,有如下三种情况。

  • 本地普通用户:当前为win7本机的user用户,如图所示。

内网信息收集32

  • 本地管理员用户:当前为win7本机的administrator用户,如图所示。

内网信息收集33

  • 域内用户:当前为htftime域内的administrator用户,如图所示。

内网信息收集34

在这三种情况中,如果当前内网中存在域,那么本地普通用户只能查询本机相关信息,不能查询域内信息,而本地管理员用户和域内用户可以查询域内信息。其原理是:域内的所有查询都是通过域控制器实现的(基于LDAP协议),而这个查询需要经过权限认证,所以,只有域用户才拥有这个权限;当域用户执行查询命令时,会自动使用Kerberos协议进行认证,无须额外输入账号和密码。

本地管理员Administrator权限可以直接提升为Ntauthority或System权限,因此,在域中,除普通用户外, 所有的机器都有一个机器用户(用户名是机器名加上"$")。在本质上,机器的system用户对应的就是域里面的机器用户。所以,使用System权限可以运行域内的查询命令。

3.2 获取域SID

执行如下命令,获取域SID,如图所示。


whoami /all


内网信息收集35

当前域htftime的SID为S-1-5-21-3021483069-261499070-2475277354,域用户administrator的SID为S-1-5-21-3021483069-261499070-2475277354-500。

3.3 查询指定用户的详细信息

执行如下命令,查询指定用户的详细信息。


net user XXX /domain


在命令行环境中输入命令"net user user /domain",可以看到,当前 用户在本地组中没有本地管理员权限,在域中属于Domain Users组,如图所示。

内网信息收集36

4. 判断是否存在域

获得了本机的相关信息后,就要判断当前内网中是否存在域。如果当前内网中存在域,就需要判断所控主机是否在域内。下面讲解几种方法。

4.1 使用ipconfig命令

执行如下命令,可以查看网关IP地址、DNS的IP地址、域名、本机是否和DNS服务器处于同一网段等信息,如图所示。


ipconfig /all


内网信息收集37

然后,通过反向解析查询命令nslookup来解析域名的IP地址。用解析得到的IP地址进行对比,判断域控制器和DNS服务器是否在同一台服务器上,如图所示。

内网信息收集38

4.2 查看系统详细信息

执行如下命令,如图所示,”域“即域名(当前域名为htftime.com),”登录服务器“为域控制器。如果”域“为”WORKGROUP",表示当前服务器不在域内。


systeminfo


内网信息收集39

4.3 查询当前登录域及登录用户信息

执行如下命令,如图所示,“工作站域DNS名称”为域名(如果为“WORKGROUP”, 表示当前为非域环境),“登录域”用于表示当前登录的用户是域用户还是本地用户,此处表示当前登录的用户是域用户。


net config workstation


内网信息收集40

4.4 判断主域

执行如下命令,判断主域(域服务器通常会同时作为时间服务器使用)。


net time /domain


执行以上命令后,通常有如下情况。

  • 存在域,且当前用户是域用户,如图所示。

内网信息收集41

  • 当前网络环境为工作组,不存在域,如图所示。

内网信息收集42

5. 探测域内存活主机

内网存活主机探测是内网渗透测试中不可或缺的一个环节。可在白天和晚上分别进行探测,以对比分析存活主机和对应的IP地址。

5.1 利用NetBIOS快速探测内网

NetBIOS是局域网程序使用的一种应用程序编程接口(API),为了程序提供了请求低级别服务的统一命令集,为局域网提供了网络机及其他特殊功能。几乎所有的局域网都是在NetBIOS协议的基础上工作的。NetBIOS也是计算机的标识名,主要用于局域网中计算机的互访。NetBIOS的工作流程就是正常的机器名解析查询应答过程,因此推荐优先使用。

nbtscan是一个命令行工具,用于扫描本地或远程TCP/IP网络上的开放NetBIOS名称服务器。nbtscan有Windows和Linux两个版本,体积很小,不需要安装特殊的库或DLL就能使用。NetBIOS的使用方法比较简单。将其上传到目标主机中,然后直接输入IP地址范围并运行,如图所示。

内网信息收集43

显示结果的第一列为IP地址,第二列为机器名和所在域的名称,最后一列是对应的MAC地址。

5.2 利用ICMP协议快速探测内网

除了利用NetBIOS探测内网,还可以利用ICMP协议探测内网。依次对内网中的每个IP地址执行ping命令,可以快速找出内网中所有存活的主机。在渗透测试中,可以使用如下命令循环探测整个C段,如图所示。


for /l %i in (1,1,200) do @ping -w 1 -n 1 192.168.1.%i | find /i “ttl”


内网信息收集44

也可以使用VBS脚本进行探测,具体如下。


strSubNet = “192.168.1.”
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
Set objTS = objfso.CreateTextFile(“C:\Windows\Temp\Result.txt”)
For i = 1 To 254
strComputer = strSubNet & i
blnResult = Ping(strComputer)
If blnResult = True Then
objTS.WriteLine strComputer & " is alived ! 😃 "
End If
Next

objTS.Close
WScript.Echo "All Ping Scan , All Done ! 😃 "
Function Ping(strComputer)
Set objWMIService = GetObject(“winmgmts:\.\root\cimv2”)
Set colItems = objWMIService.ExecQuery(“Select * From Win32_PingStatus Where Address='” & strComputer & “'”)
For Each objItem In colItems
Select case objItem.StatusCode
Case 0
Ping = True
Case Else
Ping = False
End select
Exit For
Next
End Function


在使用VBS脚本时,需要修改IP地址段。输入如下命令,扫描结果默认保存在C:\Windows\Temp\Result.txt中,如图所示。


cscript c:\windows\temp\1.vbs


内网信息收集45

5.3 通过ARP扫描探测内网
  1. arp-scan工具

直接把arp.exe上传到目标机器中并运行,可以自定义掩码、指定扫描范围等,命令如下,如图所示。


arp.exe -t 192.168.1.0/20


内网信息收集arp-scan

  1. Empire中的arpscan的模块

Empire内置了arpscan模块。该模块用于在局域网内发生ARP数据包、收集活跃主机的IP地址和MAC地址信息。在Empire中输入命令”usemodule situational_awareness/network/arpscan",即可使用其内置的arpscan模块,如图所示。

  1. Nishang中的Invoke-ARPScan.ps1脚本

使用Nishang中的Invoke-ARPScan.ps1脚本,可以将脚本上传到目标主机中运行,也可以直接远程加载脚本、自定义掩码和扫描范围,命令如下,如图所示。


powershell.exe -exec bypass -Command “& {Import-Module C:\windows\temp\Invoke-ARPScan.ps1; Invoke-ARPScan -CIDR 192.168.1.0/20}” >> C:\windows\temp\log.txt


Nishang脚本

5.4 通过常规TCP/UDP端口扫描探测内网

ScanLine是一款经典的端口扫描工具,可以在所有版本的Windows操作系统中使用,体积小,仅使用单个文件,同时支持TCP/UDP端口扫描,命令如下,如图所示。


scanline -h -t 22,80 - 89,110,389,445,3389,1099,1433,2049,6379,7001,8080,1521,3306,3389,5432 -u 53,161,137,139, -O c:\windows\temp\log.txt -p 192.168.1.1-254 /b


scanline1

6. 扫描域内端口

通过查询目标主机的端口开放信息,不仅可以了解目标主机所开放的服务,还可以找出其开放服务的漏洞、分析目标网络的拓扑结构等,具体需要关注以下三点。

  • 端口的Banner信息。
  • 端口上运行的服务。
  • 常见应用的默认端口。

在进行内网渗透测试时,通常会使用Metasploit内置的端口进行扫描。也可以上传端口扫描工具,使用工具进行扫描。还可以根据服务器的环境,使用自定义的端口扫描脚本进行扫描。在获得授权的情况下,可以直接使用Nmap、masscan等端口扫描工具获取开放的端口信息。

6.1 利用telnet命令进行扫描

Telnet协议是TCP/IP协议族的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在目标计算机上使用Telnet协议,可以与目标服务器建立连接。如果只是想快速探测某台主机的某个常规高危端口是否开放,使用telnet命令是最方便的。telnet命令的一个简单使用示例,如图所示。

内网信息收集48

6.2 S扫描器

S扫描器是早期的一种快速端口扫描工具,支持大网段扫描,特别适合运行在Windows Server 2003以下版本的操作系统中。S扫描器的扫描结果默认保存在其安装目录下的result.txt文件中。推荐使用TCP扫描,命令如下,如图所示。


S.exe TCP 192.168.1.1 192.168.1.254 445, 3389,1433, 7001,1099,9080,80,22,23,21,25,110,3306,5432,1521,6379,2049,111 256 /Banner /save


内网信息收集49

6.3 Metasploit端口扫描

Metasploit 不仅提供了多钟端口扫描技术,还提供了与其他扫描工具的接口。在msfconsole下运行"search portscan"命令,即可进行搜索。

在本实验中,使用auxiliary/scanner/portscan/tcp模块进行演示,如图所示。

内网信息收集50

可以看到,使用Metasploit的内置端口扫描模块,能够找到系统中开放的端口。

6.4 PowerSploit的Invoke-portscan.ps1脚本

PowerSploit的Invoke-Portscan.ps1脚本,推荐使用无文件的形式进行扫描,命令如下,如图所示。


powershell.exe -nop -exec bypass -c “c:\Users\CISP-PTE\Desktop\Invoke-Portscan -Hosts 192.168.1.0/24 -T 4 -ports ‘445,1433,8080,3389,80’ -oA c:\windows\temp\res.txt”


内网信息收集51

6.5 Nishang的Invoke-PortScan模块

Invoke-PortScan是Nishang的端口扫描模块,用于发现主机、解析主机名、扫描端口,是一个很实用的模块。输入“Get-Help Invoke-PortScan-full"命令,即可查看帮助信息。

Invoke-PortScan的参数介绍如下。

  • StartAddress:扫描范围的开始地址。
  • EndAddress:扫描范围的结束地址。
  • ScanPort:进行端口扫描。
  • Port:指定扫描端口。默认扫描的端口有21、22、23、53、69、71、80、98、110、139、111、389、443、445、1080、1433、2001、2049、3001、3128、5222、6667、6868、7777、7878、8080、1521、3306、3389、5801、5900、5555、5901。
  • TimeOut:设置超时时间。

使用以下命令对本地局域网进行扫描,搜索存活主机并解析主机名,如图所示。


Invoke-PortScan -StartAddress 192.168.1.1 -EndAddress 192.168.1.255 -ResolveHost


内网信息收集52

备注:Nishang的用法可以参照【https://blog.csdn.net/weixin_40412037/article/details/115510209】

⚠️:不知为啥解析出来的主机名都是同一个。如果有知道为什么的,给我留言或私信。

6.6 端口Banner信息

如果通过扫描发现了端口,可以使用客户端连接工具或者nc,获取服务端的Banner信息。获取Banner信息后,可以在漏洞库中查找对应CVE编号的POC、EXP,在ExploitDB、Seebug等平台上查看相关的漏洞利用工具,然后到目标系统中验证漏洞是否存在,从而有针对性地进行安全加固。相关漏洞的信息,可以参考如下两个网站。

  • 安全焦点:其中的BugTraq是一个出色的漏洞和Exploit数据源,可以通过CVE编号或者产品信息漏洞直接搜索,
  • Exploit-DB:取代了老牌安全网站milw0rm,提供了大量的Exploit程序和相关公告,【https://www.exploit-db.com/】

常见的端口及说明,如下表所示。

文件共享服务端口

端口号端口说明使用说明
21、22、69FTP/TFTP文件传输协议允许匿名的上传、下载、爆破和嗅觉操作
2049NFS服务配置不当
139SAMBA服务爆破、未授权访问、远程代码执行
389LDAP目录访问协议注入、允许匿名访问、弱口令

远程连接服务端口

端口号端口说明使用说明
22SSH远程连接爆破、SSH隧道及内网代理转发、文件传输
23Telnet远程连接爆破、嗅探、弱口令
3389RDP远程桌面连接Shift后门(Windows Server 2003以下版本)、爆破
5900VNC弱口令爆破
5632PcAnywhere服务抓取密码、代码执行

Web应用服务端口

端口号端口说明使用说明
80、443、8080常见的Web服务端口Web攻击、爆破、对应服务器版本漏洞
7001、7002WebLogic控制台Java反序列化、弱口令
8080、8089JBoss/Resin/Jetty/Jenkins反序列化、控制台弱口令
9090WebSphere控制台Java反序列化、弱口令
4848GlassFish控制台弱口令
1352Lotus Domino邮件服务弱口令、信息泄露、爆破
10000webmin控制面板弱口令

数据库服务端口

端口号端口说明使用说明
3306MySQL数据库注入、提取、爆破
1433MSSQL数据库注入、提权、SA弱口令、爆破
1521Oracle数据库TNS爆破、注入、反弹Shell
5432PostgreSQL数据库爆破、注入、弱口令
27017、27018MongoDB数据库爆破、未授权访问
6379Redis数据库可尝试未授权访问、弱口令爆破
5000Sysbase/DB2数据库爆破、注入

邮件服务

端口号端口说明使用说明
25SMTP邮件服务右键伪造
110POP3协议爆破、嗅探
143IMAP协议爆破

网络常见协议端口

端口号端口说明使用说明
53DNS域名系统允许区域传送、DNS劫持、缓存投毒、欺骗
67、68DNS域名系统DHCP服务劫持、欺骗
161SNMP协议爆破、搜集目标内网信息

特殊服务端口

端口号端口说明使用说明
2181ZooKeeper服务未授权访问
8069Zabbix服务远程执行、SQL注入
9200、9300Elasticsearch服务远程执行
11211Memcached服务未授权访问
512、513、514Linux rexec服务匿名访问、文件上传
873rsync服务匿名访问、文件上传
3690SVN服务SVN泄露、未授权访问
使用说明
-----------------------------------------------------------------
53DNS域名系统允许区域传送、DNS劫持、缓存投毒、欺骗
67、68DNS域名系统DHCP服务劫持、欺骗
161SNMP协议爆破、搜集目标内网信息

特殊服务端口

端口号端口说明使用说明
2181ZooKeeper服务未授权访问
8069Zabbix服务远程执行、SQL注入
9200、9300Elasticsearch服务远程执行
11211Memcached服务未授权访问
512、513、514Linux rexec服务匿名访问、文件上传
873rsync服务匿名访问、文件上传
3690SVN服务SVN泄露、未授权访问
50000SAP Management Console远程执行

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

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

相关文章

Java 数据结构篇-实现堆的核心方法与堆的应用(实现 TOP-K 问题:最小 k 个数)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 堆的说明 2.0 堆的成员变量及其构造方法 3.0 实现堆的核心方法 3.1 实现堆的核心方法 - 获取堆顶元素 peek() 3.2 实现堆的核心方法 - 下潜 down(int i) 3.3 实…

C/C++ 使用 MySQL API 进行数据库操作

C/C 使用 MySQL API 进行数据库操作 一、前言 随着信息时代的到来,数据库的应用日益广泛,MySQL 作为开源的关系型数据库管理系统,被广大开发者所喜爱。在 C/C 程序中,我们可以通过 MySQL 提供的 API 接口来连接数据库&#xff0…

研发管理-代码管理篇

前言: 工作了这些年,工作了三家公司,也用过主流的代码管理平台,比如SVN,git系列(gitlib,gitee),各有优点,我个人比较喜欢SVN,多人协作的代码管理难免会有代码冲突&#…

【算法】红黑树

一、红黑树介绍 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 红黑树是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来&am…

【C语言】SCU安全项目2-BufBomb

目录 关键代码解读: getxs() getbuf() test() 核心思路 具体操作1 具体操作2 前段时间忙于强网杯、英语4级和一些其他支线,有点摸不清头绪了,特别是qwb只有一个输出,太过坐牢,决定这个安全项目做完后就继续投身…

LED恒流调节器FP7126:引领LED照明和调光的新时代(调光电源、汽车大灯)

目录 一、FP7126概述 二、FP7126功能 三、应用领域 随着科技的进步,LED照明成为了当代照明产业的主力军。而在LED照明的核心技术中,恒流调节器是不可或缺的组成部分。今天,我将为大家介绍一款重要的恒流调节器FP7126,适用于LED…

useConsole的封装,vue,react,htmlscript标签,通用

之前用了接近hack的方式实现了console的封装,目标是获取console.log函数的执行(调用栈所在位置)所在的代码行数。 例如以下代码,执行window.mylog(1)时候,console.log实际是在匿名的箭头函数()>{//这里执行的} con…

基础知识回顾:安装 NGINX 开源版和 NGINX Plus

原文作者:Robert Haynes of F5 原文链接:基础知识回顾:安装 NGINX 开源版和 NGINX Plus 转载来源:NGINX 中文官网 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 如今,NGINX 仍然是全球最受欢迎的 web 服务器…

【nice-slam】基于RGB-D类型SLAM的定位与重建(史上最详细nice-slam资料汇总)

【NICE-SLAM】基于RGB-D类型SLAM的定位与重建 1. 总结2. 论文2. 1 算法核心流程小姐2.2 论文摘要2.3 Dataset result2.3.1 Replica Dataset result2.3.2 ScanNet Dataset result2.3.3 Multi-room Apartment result2.3.4 Co-fusion Dataset (Robustness to Dynamic Objects) res…

Leetcode—2828.判别首字母缩略词【简单】

2023每日刷题&#xff08;六十五&#xff09; Leetcode—2828.判别首字母缩略词 实现代码 class Solution { public:bool isAcronym(vector<string>& words, string s) {int i 0;int len1 words.size();int len2 s.size();if(len1 ! len2) {return false;}for(a…

Achronix提供由FPGA赋能的智能网卡(SmartNIC)解决方案来打破智能网络性能极限

作者&#xff1a;Achronix 随着人工智能/机器学习&#xff08;AI/ML&#xff09;和其他复杂的、以数据为中心的工作负载被广泛部署&#xff0c;市场对高性能计算的需求持续飙升&#xff0c;对高性能网络的需求也呈指数级增长。高性能计算曾经是超级计算机这样一个孤立的领域&a…

使用Python编写简单网络爬虫实例:爬取图片

&#x1f34e;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 ​编辑 简介 步骤 1. 安装依赖库 2. 创建目录 3. 发送HTTP请求并解析页面 4. 查找图片标签并下载图片 注意事项 结语 我的其他博客 简介 网络爬虫是一种…

CSP-S2019提高组day1-T2:括号树

题目链接 [CSP-S2019] 括号树 题目描述 本题中合法括号串的定义如下&#xff1a; () 是合法括号串。如果 A 是合法括号串&#xff0c;则 (A) 是合法括号串。如果 A&#xff0c;B 是合法括号串&#xff0c;则 AB 是合法括号串。 本题中子串与不同的子串的定义如下&#xff…

vscode颜色主题插件one dark Pro安装

1.点击扩展图标→搜索“one dark Pro”→第一个点击安装 2.安装成功后&#xff0c;不要忘了点击设置颜色主题 3.看下效果&#xff1a;

【日积月累】sql执行语句优化

目录 sql执行语句优化 1.前言2.sql执行语句优化2.1语句注意类1.避免使用 * 查询(全表查询)2.限制查询返回数3.小数据集驱动大数据集4.group by 优化5.尽量使用数值替代字符串类型6.使用varchar代替char7.批量插入性能提升 3.误操作导致索引失效1.避免查询条件字符串没有加2.避…

JVS低代码和智能BI(自助式数据分析)12.19更新功能说明

低代码更新功能 新增: 1、表单组件&#xff1a;标题、分割线、按钮等非数据组件增加小程序端隐藏设置&#xff1b; 隐藏设置允许开发者对表单组件中的非数据组件进行隐藏&#xff0c;例如&#xff0c;可能只想展示表单的部分内容&#xff0c;或者希望在特定条件下显示或隐藏…

HarmonyOS应用开发实战—开箱即用的应用首页页面【ArkTS】【鸿蒙专栏-34】

一.HarmonyOS应用开发实战—开箱即用的应用首页页面【ArkTS】【鸿蒙专栏-34】 1.1 项目背景 HarmonyOS(鸿蒙操作系统)是华为公司推出的一种分布式操作系统。它被设计为一种全场景、全连接的操作系统,旨在实现在各种设备之间的无缝协同和共享,包括智能手机、平板电脑、智能…

HamronyOS 自动化测试框架使用指南

概述 为支撑 HarmonyOS 操作系统的自动化测试活动开展&#xff0c;我们提供了支持 JS/TS 语言的单元及 UI 测试框架&#xff0c;支持开发者针对应用接口进行单元测试&#xff0c;并且可基于 UI 操作进行 UI 自动化脚本的编写。 本指南重点介绍自动化测试框架的主要功能&#x…

grafana基本使用

一、安装grafana 1.下载 官网下载地址&#xff1a; https://grafana.com/grafana/download官网包的下载地址&#xff1a; yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.2-1.x86_64.rpm官网下载速度非常慢&#xff0c;这里选择清华大…

【单调栈】LeetCode1776:车队

作者推荐 【贪心算法】【中位贪心】.执行操作使频率分数最大 涉及知识点 单调栈 题目 在一条单车道上有 n 辆车&#xff0c;它们朝着同样的方向行驶。给你一个长度为 n 的数组 cars &#xff0c;其中 cars[i] [positioni, speedi] &#xff0c;它表示&#xff1a; positi…