Brute Ratel C4红队框架 brc4 1

将刚刚的破解文件到brc4根目录 并选择替换 将原来的文件替换掉

./brute-ratel-linx64 -ratel -a admin -p password -h 127.0.0.1:50000 -sc cert.pem -sk key.pem

执行一下命令看看是否破解成功,如果能正常启动就说明破解成功了,并且还可以连接

没破解成功它会提示 Enter activation key: 或者 License is invalid or expired

接下来我们结束服务,进入adhoc_scripts目录下运行,生成证书

ps:此处生成证书可以跳过

chmod +x install.sh

chmod +x genssl.sh

然后挨个执行

执行genssl.sh时 需要自定义这些

CN=(名字与姓氏),OU=(组织单位名称), O=(组织名称), L=(城市或区域名称),ST=(州或省份名称), C=(单位的两字母国家代码)"

可以用自己随便写的 也可以用这两套

CN=US, OU=360.com, O=Sofaware, L=Somewhere, ST=Cyberspace, C=CN

CN=ZhongGuo, OU=CC, O=CCSEC, L=BeiJing, ST=ChaoYang, C=CN

然后将生成的cert.pem和key.pem 拷回上级目录

mv ./cert.pem …/cert.pem

mv ./key.pem …/key/pem

4、登录教程

运行./brute-ratel-linx64 -ratel 他会提示有这些参数可以用 感兴趣的师傅可以都测测

./brute-ratel-linx64 -ratel -a admin -p password -h 0.0.0.0:50000 -sc cert.pem -sk key.pem

-a 用户名

-p 密码

-h ip:port

-sc/-sk 认证方式

-e 选项根据官方说的是会加密的

-c 选择配置文件并导入 配置文件这块详情可以看看官方文档 这里不做赘述

C4 Profiles | Brute Ratel C4

启动服务端之后,我们赋予commander-runme 执行权限

chmod +x commander-run

然后执行

./commander-runme

输入用户名密码地址之后 按下回车 或者 点那个猴头都可以

连接成功

5、使用教程

该处不会全测,会有些疏漏的地方,感兴趣的师傅可以测一测

1.Operator

此处相比cs的好处在于,cs貌似是自动加用户,只要你密码对,账号是什么都可以

这里可以选择的选项有三个,我都测了一遍

第一个加用户,后续有团队其他成员加进来可以一起操作,并且新加进来的用户这些选项依然存在,权限相等且为管理员(但是根据官方说法 管理员只能有一个,其他创建的都是操作员,应该有bug)

第二个选项为删除某一个用户

第三个选项是可以修改当前已有用户的密码

2.C4 Profiler

我们先看第一个选项

1.Add Http Listener

第一个 监听器名称 随便取

第二个 监听绑定主机 也就是你的网卡上对应的所有ip都会在里面,可以自己选择

第三个 官方解释为重定向  可以自己设置 也可以点右边的same和上面一样 类似于cs

第四个 端口

第五个 UA头

第六个 header 举个例子

第七个 postdata 根据我的理解来说 就是挂上后门之后是http连接 会发送一个post请求 这个框里可以填post中传递的data或者json等数据进行伪装  这里我们填一个json

格式为这样

效果

第八处 UrI(s) 根据官方说法 可以自行设置任何域名

第九处 OS 只有一个windows

第十处 SSL证书 默认为yes

第十一处 代理 我还没看到后面 估计可以在多层网络环境中 转发上线

接下来这个 我没找到官方说明 细心的师傅可以看看 我觉得类似于cs的心跳频率 可以设置

最后下面 这个东西非常有意思 相比cs来说非常强

Common Auth 就是当目标执行载荷后 会一直反弹shell 如果他们一直执行 将会一直反弹shell 就是和cs msf一样

One time Auth 就很有意思 选择这个之后可以自定义能反弹多少次shell 比如反弹或者目标执行10次后 该载荷就废弃 这样的话 你可以最多放到10台主机上反弹shell 不会被对方拿到载荷后一直执行

当你选择 One time Auth之后 下面这个选项右边默认是1次 并且你不开启下面的选项的话 只能设置一次(但是当你选择选项之后 调完次数 再把选项点掉 他还是你调好的次数 应该是个bug)

我们先来解释一下下面这个选项 他会创建不同的身份验证密钥 如果右边的选项为10 那么他会创建10个不同的密钥

接下来我们看最后两个地方

那个框就是你可以自定义一个唯一的身份验证密钥用于公共身份验证 只能用于 Common Auth 选项

最后一个选项 他的意思是如果你在目标机器上执行了有效载荷,反弹shell的时候可能是防火墙,也可能是什么原因导致没有反弹成功,服务端始终收不到shell的时候,他不会在内存里一直发起请求,而是在连接不上之后会挂掉

这是官方的配置

保存之后选择 点击下面的设置 可以看到你的c2配置详情

接下来根据这个生成payload

选择刚刚生成的test001监听器

你也可以在监听器上生成

此处根据你的需求 可以选择不同的payload 这里我生成一个dll

转移到windows上 执行

rundll32 badger_x64.dll,main

成功上线

火绒静态动态都可以过

https://www.virustotal.com/gui/file/e0fbbc548fdb9da83a72ddc1040463e37ab6b8b544bf0d2b206bfff352175afe?nocache=1

2.Add DOH Listener

这里提供官方教程 C4 Profiler | Brute Ratel C4

3.Hosted Files

该选项用于文件托管的管理

打开这个选项的时候会报错,因为你还没有配置,首先我们先找到我们的监听器,我们设置的是443端口,根据自己实际情况来看,以下是操作步骤

随便拷一个html页面,随便放入一个文件夹,我这里拷的是这个师傅的博客的

几个好看实用的html简单登录页面_html页面_hanscal的博客-CSDN博客

然后我存到了brc4根目录里,命名为index.html

然后找到我们的443端口的监听器 点击这里的 Host File

我的配置如下

记住一定要是text/html不能是 text/plain 否则无法解析html

然后点击OK

接下来访问当前监听器的 ip+端口/文件名 如下图

访问成功就行 然后你会在 Hosted Files 看到你所有设置的监听器网站目录下的文件 并可以选择删除

这里起到一个混淆迷惑的作用

当然不仅如此,你还可以放入一些ps,zip等等文件,他可以起到一些文件传输的作用,这取决于你怎么使用他

4.Change Root Page

更改根页面,该处选项可填入html代码,他会将你除了第三条你设置了那些节点以外的任何页面以外的所有页面,都会显示为你填入的html页面

以下为示例

此处我们键入了一个html页面,点击ok,接下来我们访问任意一个节点

再次访问自行设置的节点

可以看到自行设置的节点不受影响,并且随机输入任何一个其他节点,访问的都是我们在该选项设置的页面

5.Autoruns

选择之后点击+号输入命令,这些命令将会在shell反弹成功之后自动执行

可以看到下图 他自动执行了 sleep 2,并且会标识出来这是设置的自动执行命令,

此处能自动执行的命令请参考下面

首先双击反弹shell的主机 双击红框

然后在下面的 Command 中输入 help 会出现一系列命令 根据需求来写

其余的我们下面在介绍,目前我们只解析这一条

6.Payload Profiler

此处能添加payload配置 修改payload配置 删除payload配置 ,然后根据你选择的不同配置文件,生成该监听器的后门,此处有DOH (DNS over HTTPS),HTTP/HTTPS,TCP,SMB 可以选择,详情还是请参考官方文档,其中http/doh 大部分和原先配置相同,要注意的是tcp和smb,并且它可以和下一个选项 PsExec Config 可以联动,这可以用于多级网络反弹shell搭建隧道,当前多级网络环境我电脑上没有,拿到了之后会试试看

C4 Profiler | Brute Ratel C4

7.PsExec Config

Brc4的PsExec特性部分类似于Microsoft的PsExec特性。它在给定的远程系统上创建一个服务,并使用远程过程调用(remote Procedure Calls, RPC)启动它。但是,与Microsoft的PsExec使用CreateProcess在SMB上管道cmd.exe不同,BRc4的PsExec服务包含一个shellcode blob,用于在PsExec执行期间提供的有效负载配置文件,此有效负载可以是SMB、DOH、HTTP或TCP配置文件,并且不一定仅限于SMB。你可以自定义,也可以默认。

可以在此输入服务名称及服务描述,之后点下图中第一个红框的位置可以看到,因为我没有修改,所以该处还是默认状态,当你修改后,它会变成你修改的样子。

8.ClickScript

此处是设置的自动点击脚本,相比之前的自动运行脚本来说,那个在连接shell会自动执行,这个你可以根据需求设置,根据需求来运行,以下为操作步骤

点击上面的+号创建一个脚本目录,随便取一个名称,这里我取了test这个名称

创建完成之后点击test这个目录,使其变成红色

然后再点下面的那个 窗户+ 如下在里面放入你想执行的命令之后点击OK 这样我们就存入了一个命令 你可以放置多条命令在test这个命令执行目录下 这里我们只存入一个命令

点击save保存下来 接下来我们反弹一个shell 然后选此处 Load Clickscript

他会弹出来一个窗口加在后面

b-3 是你反弹回来的shell id值,下面选择刚刚生成的命令脚本,点击run(在最右边)

查看刚刚连接的shell

执行成功

3.Server

1.View Active Socks

第一条这个用来查看所设置的代理,但是在我完完全全测一遍之后还没找到代理点,我只发现了设置http监听器的时候可以设置代理,但是跟这个不一样,后续找到了会更新这一条

2.Add Credentials

添加凭证,用户名,密码,域,备注 ,你可以自行添加,也可以在brc4根目录下找到server_confs文件夹,该文件夹下有个creds.csv,这是官方提供默认的凭证,你可以将其导入进去,用于横向移动

导入后 点击creds选项卡可以看到我们导入的凭证

3.Save Credentials

将你当前设置的凭证保存下来,这里我存入名称为test.csv

但是有个小问题,这里存储的即使我设置为csv,依然能看出来他就是个json,并且直接导入会导致客户端崩溃,开头说了,brc4核心点在于它的配置文件,他的配置文件就是以json写入的,这样理解其实就通了。

以下写了个python脚本将该导出的json转为csv格式,并可以继续导入进去而不会报错

import json
import csv
# creduser,credpass,creddomain,crednote

class json_to_csv():
    def __init__(self,file):
        self.json_Credentials = json.loads(open(file, 'r', encoding='utf-8').read())
        self.csv_Credentials = csv.writer(open(f"./{file.split('.')[0]}.csv", 'w' ,encoding='utf-8'),lineterminator='\n')
        print(self.json_Credentials)
        self.csv_Credentials.writerow(['creduser','credpass','creddomain','crednote'])
        self.json_length = len(self.json_Credentials)
        self.json_csv()

    def json_csv(self):
        for i in range(0, self.json_length):
            print(self.json_Credentials[f'{str(i)}'])
            self.csv_Credentials.writerow([f"{self.json_Credentials[f'{str(i)}']['user']}",f"{self.json_Credentials[f'{str(i)}']['passowrd']}",f"{self.json_Credentials[f'{str(i)}']['domain']}",f"{self.json_Credentials[f'{str(i)}']['note']}"])




json_to_csv('test.txt')

4.View Downloads

你所有下载的东西在这都能看到

5.View Logs

日志记录 选择日志点击View即可查看 这个详细解释还是有点麻烦的,手测都看看理解更快,这里还是提供官方教程

Server (Reporting) | Brute Ratel C4 | Brute Ratel C4")

最后一个badger_token.conf 记录了反弹shell的监听器详情,目标主机的连接详情

6.Enable/Disable DOH Debug Logs

操作员可以在Server->Enable/Disable DOH Debug Logs中启用它。一旦启用,在禁用之前,每次回调时,服务器都会显示shell签入。调试日志显示在级别服务器日志中。

大致意思就是doh的调试默认不存入日志,启用了就会存入日志,提供官方解释

The debug DOH logs help provide a bit more verbosity to the DOH logging functionality. Due to the way DNS is built, The RFC only allows sending up-to 64 bytes per subdomain per request. This means if the badger needs to send back a large response, it will send it in multiple chunks. Badger sends all output in encrypted format, which means unless the whole response is received from the badger, the server cannot decrypt it, and if it cannot decrypt it, it means it cannot identify which badger is sending the response. This means until the full response is received, the server cannot decrypt the data and Commander won’t show whether the badger checkin-in even if it is continuously sending in chunks of response. However, in order to tackle this, the ratel server comes pre-built with a debug log functionality. This is by-default disabled unless the operator enables it from Server->Enable/Disable DOH Debug Logs. Once enabled, the ratel server will show up the badger checking in everytime it calls back, until disabled. Debug logs show up in the ratel server logs.

7.User Activity

看每个用户做了哪些操作并将操作次数,操作时间等数据记录下来,可以查看所有用户的操作并可以导出csv

不得不说brc4对安全这方面严谨性还是很高的

8.MITRE Team Activity

第8第9 我一开就闪退,可能是版本问题,这里放官方介绍

Unlike Brute Ratel MITRE Map, which provides a MITRE graph of all the Brute Ratel commands, MITRE Team Activity displays a MITRE graph only for the commands executed by the Red Team/Adversary Simulation Team. This can help to narrow down which type of commands worked the most during a Red Team engagement and to list them out during reporting.

9.MITRE Team ActivityBrute Ratel MITRE Map

All of the Badger commands of Brute Ratel can be viewed in a node based MITRE graph which shows the respective tactics and techniques. This can be accessed from Server Config->Brute Ratel MITRE Map.

4.Listeners Tab

1.Riot Control

选择此选项,上面会弹出一个命令行窗口,它的作用是针对这一个监听器发起命令,那么该监听器下所有基于该监听器收到的shell都会收到并执行该命令,相当于统一发出执行

 上面我发送了 ls 所有的badgers都收到了

2.Pivot Graph

这个是带视图的,貌似所有带视图的都会崩溃,后续如果解决了会更新该处,提供官方解释

Commander can display pivoted networks in a graphical manner. The graph also displays Metadata of the selected Badger. You can view the graph by right clicking a listener and selecting Pivot Graph.

3.Activate KillSwitch

针对某一个监听器,启用该选项之后,他会批量杀死该监听器下所有的shell

4.WebHook

选择一个监听器,打开此选项后如下

首先第一个空要输入一个https://ip+端口,因为我们后面启动openssl时会使用证书和密钥,下面第一个选项选择之后它会将第一次连接的时候的post请求连接详情发回你设置的ip+端口处,第二个字面意思,就是会把你执行命令的post请求发回你设置的ip+端口处

上方配置点击ok之后,我们接着下面的步骤

openssl s_server -key key.pem -cert cert.pem -accept 80

找到启动brc4客户端的 key 和 cert 并输入以上命令,使用80端口接收

此时我们在已经连接上来的shell中输入 ls 执行一次命令

可以看到这边收到了post包,下面的json badger里是我们刚刚执行命令的shell id,后面msg是使用base64加密的结果,解一下看看

没问题,我们再测一下 shell 连上时是什么包

监听器详情和目标机详情

再次选择 WebHook 点击 Disable可以将其关掉

5.Staging

目前该选项只支持http/s,点击之后可以选择监听器设置反弹次数,也可以关闭该选项

此处可以生成后门,但是要注意,这里只能生成bin文件,还是需要shellcodeloader

6.Listener Actions

这个选项也没难点

第一个 stop Listener 就是删除该监听器并删除该监听器上的托管文件

第二个 View Authentication 用来查看 你所创建的监听器的密钥,点击之后如下,如果你是使用brc4自己生成的,它显示的也是生成的密钥

第三个 Change Authentication 可以用来更改密钥

 第四个 Host File 还是提一下吧,文件托管,选择文件后指定节点放上去,访问节点即可得到

比如这样,访问节点之后可以得到 index.html 的源码,并不会显示出来,因为type为text/plain

7.Build Stageless Payload

生成payload,bin文件可以找shellcodeloader加载,这里推一个github上开源很久了的

dll文件可以隐藏起来完成dll权限劫持的方法反弹,也可以直接rundll32 badger.dll,main,看怎么使用了

主要是最后一个Service Executable 执行成功也没反弹回来,没测出来

5.Badgers

1.Load/Load Adjacent Tab/Load New Window

这三个选项就放一起了

第一个直接开启一个命令行对话框在下面

第二个在右边开启了个小窗口

第三个开启了个独立的窗口,可伸缩

2.Clear Cmd-Q

监听器默认心跳返回为60,在60秒期间如果你输入了任何命令,他都会等这一个60秒结束才会执行,然后在等60秒返回结果。

这个选项的作用是用来消除你第一个60秒内输入的命令,就是还没执行的时候输入的命令

当你执行成功等下一个60秒返回响应结果的时候,在点此选项就没用了,因为你已经执行成功

可能我说起来有点绕,但还是很好理解的

3.Arsenal

这一块还挺多的,不过还是一次性说完吧

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

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

1️⃣零基础入门
① 学习路线

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

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值