前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【工具使用】红队工具之Faction

【工具使用】红队工具之Faction

作者头像
Power7089
发布2020-07-27 16:24:17
1K0
发布2020-07-27 16:24:17
举报

Faction是面向安全专业人员的C2框架,它提供了一种扩展代理并与代理进行交互的简便方法。它着重于通过有据可查的REST和Socket.IO API为C2通信提供一个简单,稳定和可访问的平台。

0x01Faction安装

项目主页:

代码语言:javascript
复制
https://github.com/FactionC2/Faction
https://www.factionc2.com/

Faction安装脚本仅在Ubuntu 18.04.2上进行了测试。它可能在其他版本的Ubuntu上运行,但是我们并不能保证所有的系统都可以。

安装Faction的最简单方法是:

代码语言:javascript
复制
curl https://raw.githubusercontent.com/FactionC2/Faction/master/install.sh | sudo bash

如果您(可以理解)担心将Internet上的Shell脚本传送到bash中,则可以克隆安装存储库并在本地运行

代码语言:javascript
复制
git clone https://github.com/FactionC2/Faction/
cd Faction
sudo bash ./install.sh

下面我们使用第一种方法,一条命令安装。

安装完成后会提示使用sudo faction setup启动Faction,在这一步我们需要选择要使用的IP地址对应的网卡。

随后我们就不用管了,是一堆下载,拷贝文件和拉去docker镜像的过程。看到如下信息证明安装完成。

安装完成回显会显示账号密码和url,同时初始的账号密码在/opt/faction/global/config.json文件中也可以找到。

我们可以直接访问HTTPS://IP地址进行访问。

0x02Faction配置及使用

使用初始密码登录之后,在设置页面可把密码进行更改,方便个人使用。

填入初始密码及需要修改的密码。

配置流程及各个选项卡配置

Transports:传输设置方便Payload直接连接到Faction

默认情况下Faction自带一种传输方式,下面我们自己来新建一个。

先到导航栏上选择Transports选项卡并点击New Transport新建。

输入名称并点击Create Transport

Create Transport之后会弹出API名称及秘钥,这个我们最好自己保存下来,因为一旦关闭就消失了。

然后在docker找到对应的容器将生成的API名称及秘钥填入,然后运行即可。

配置方法详见

代码语言:javascript
复制
https://github.com/FactionC2/TransportHTTP

Payloads:在目标上运行Payload以建立Agent。它们控制Agent的初始设置,例如信标间隔,抖动,传输和到期日期。Payload使用相同的密码来分级Agent,作为分级过程的一部分,Agent会获得自己的通信密码。

在“Payload”选项卡上,您可以选择创建新的Payload。需要以下选项:

代码语言:javascript
复制
Agent Type:这是Payload将产生的Agent类型
Agent Format:这是将在其中构建Payload的格式
Agent Transport:这是Payload将用于启动Agent和信标的初始传输
Beacon Interval:两次信标间隔的秒数。这必须是整数。
Jitter:将随机性引入信标间隔。这是通过将信标间隔乘以抖动值来确定的,计算结果并将信标间隔随机调整到该结果。例如,信标间隔为10秒,抖动为0.2,信标将在8到12秒之间随机出现。接受0.0到1.0之间的值。

导航选择Payload选项卡,并点击New Payload新建一个Payload

Agent Type选择Marauder,Description随意输入一个描述,Agent Transport选择默认的传输选项,Version为.net的版本大家根据自己目标的环境来选择,其他的默认。然后点击Create Payload生成Payload。

在Payload页面即可显示Payload的详细信息,点击Download下面的按钮即可下载Payload。

把下载好的Payload复制到靶机里,然后双击打开。

在Faction的Agent选项卡里即可看到靶机已上线。

点击标签任意地方就会进入与主机交互的shell界面里来。

这里面有四个核心命令大家牢记之后就能运用自如了。

代码语言:javascript
复制
show modules #显示可用的模块
show commands #显示可用的命令
Help #显示帮助
help [command name] #显示各个命令的帮助

我们先使用show modules显示可用的模块,然后再使用show commands命令查找对应的模块可用的命令。

加载我们要使用的命令对应的模块load stdlib,然后使用stdlib模块能使用的命令。

执行系统命令可使用shell XXXX即可执行系统命令

Tasks:Task页面会显示所有的靶机上所使用过的任务记录。

点击导航上Task选项卡即可进入页面。

点击单个任务即可显示任务的详情和输出

Files:您可以在“Files”选项卡上上传文件,这也是您从Agent上载文件的地方。

您可以使用命令中引用文件。API会自动使用给定文件的base64编码的字节数组替换此字符串。类似的命令将利用此行为将文件写入磁盘。PS:这个模块貌似出BUG了作者正在修复!!!

0X03后言

这个项目远远没有Covenant,而且搭建的时候很多坑,稍不留神就踩着了,大家测试一下二次开发还可以,如果运用实际攻防当中还是推荐CS和Covenant!!!望大家点个“在看”和转发!!

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

本文分享自 程序员阿甘 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档