Skip to content

Blog

IoM v0.0.3 真正意义上的红队基础设施与C2框架

时间线

在8月份, 我们发布了IoM的蓝图和demo, 制定了一个宏伟的计划, 当时的IoM和绝大多数开源C2一样, 充满bug, 功能简单.

在9月份, 我们发布了修复了大量bug, 以及对client/server/listener的大重构 v0.0.2版本. 还添加了基于lua的插件系统, 半自动化编译.

而现在, 我们终于可以发布v0.0.3 ,也意味着IoM已经具备在实战中使用的价值, 以及满足绝大数实战场景的能力. 在某些OPSEC或者拓展能力上, IoM更是目前最强大的C2框架.

v0.0.3 的IoM至少已经具备了80%以上的Cobaltstrike的能力, 90%的Sliver的能力, 比起nighthawk和BRC4更是不遑多让,并且有非常多独有的功能. 当然在成熟程度与很多细节上我们缺少时间去打磨, 但可用的版本也称得上是开源世界中最强大的C2之一了.

超轻量的nuclei引擎 neutron

repo: https://github.com/chainreactors/neutron

背景

在projectdiscovery融第一轮前, 我就发现了这个充满未来的项目nuclei.

nuclei提供了极简的poc配置, 强大的DSL引擎以及目前**地表最庞大的poc社区**, 最重要的是, 它是完全开源的.

随着nuclei 更新到v3, 也面临了工具进化路上必定会经过的"软件膨胀", nuclei从v1到v3 引入了非常的庞大的功能 * js/python作为  Internal DSL 引擎 * headless浏览器 * file, dns, offline,websoket,ssl,whois等新的协议引擎 * OAST Out-of-band服务 * ...

也引入了更多的bug, nuclei-templates的已经有一部分的poc随着引擎更新出现了bug.

而nuclei的绝大数poc, 都用不着这些功能, 其中最常用的协议是http与socket, 最常用的功能是通过yaml配置一个或者几个数据包, 然后校验返回值. 甚至OAST都不是必备的功能, 因为极少漏洞强依赖这个功能, 都能找到时延, 回显等方式更高效与准确的判断.

IoM v0.0.2 the real beginning

v0.0.2 是一次巨大的改动. 在仓促发布v0.0.1后, 我们同时对server/client/listener/implant都开始了重构. 重构工程的代码量接近20000行, 是原本代码的一半.

好在这么大规模的改动, 也带来了各方面能力的提升.

目录爆破与指纹识别的最佳实践

本文提到的工具: https://github.com/chainreactors/spray

前言

之前在 为什么我们需要收集URL? 发布了两个工具, 分别是用来爆破目录的spray 和用来被动收集url的 urlfounder.

urlfounder在发布后基本没进行更新, 但是spray经过一年的进化, 迎来了v1.0.0版本. 定位也从一个目录爆破工具变成了全面全能的WEB信息收集工具.

它拥有目前最强大的性能与最智能的算法. 几乎能覆盖dirsearch + httpx + 指纹识别(fingers) + fuff的全部功能.

指纹的终极解决方案

repo: https://github.com/chainreactors/fingers

Intro

指纹库当前较为热门的领域之一, 因为每个ASM(攻击面管理)都需要一个强大的指纹库, 而各家大厂都在做自己的ASM.. 指纹库与漏洞库作为安全知识库的两个重要组成部分, 也是各家基建必定会关注的领域.

对于这个问题, 大多数厂商选择堆人力解决, 招几个运营, 给他们定上几个月几百条指纹的KPI, 一两年时间就能把市面上的大多数产品囊括, 看起来似乎对大厂来说也不是个难以解决的问题. 但事实真的如此么?

地表最强大的凭证爆破工具

Overview

zombie是gogo设计之初就诞生的一个计划,中间写了好几版(早期版本@PassingFoam),搁置了快一年。正巧有几个朋友一直在关注这个工具,才把它从内部使用的工具变成基本可用的工具。虽然拖了一年多,但它绝对是目前地球上最强大的爆破工具。

zombie 从1.0就public了。但是因为bug、协议支持、用户体验、兼容性等各种问题,一直不愿写一篇介绍它的文章。至今寥寥几十个star,估计都是长期关注的小伙伴。

到前几天发布的v1.1.6,zombie应该勉强可以出来见人了。与gogo以及之前的其他工具同样,zombie也将是一个长期维护的项目,也是chainreactors工件库中新的一环。

为什么我们需要收集url

Next Generation HTTP Dir/File Fuzz Tool: https://github.com/chainreactors/spray

Fast passive URL enumeration Tool: https://github.com/chainreactors/urlfounder

为什么我们需要收集URL?

这个问题似乎在最基础的安全岗面试中都不太可能出现,但如果要彻底理解dir/file fuzz,我们需要先搞清楚这个问题。

如果你每次都会拿起自己珍藏的字典对着目标一顿轰炸,那么可能需要好好想想目录里的user.php 真的有用么。 如果有用,用爬虫不是更好么?

在红蓝对抗中,资产的最小单位为一个 service,这个 service可以理解为部署在某一台服务器上的服务。例如一个论坛服务,里面可能有 user.php,forum.php 等等一堆目录。但对攻击者来说,只需要知道指纹,这些目录都可以从源码中直接找到, 并不需要爆破。而如果是不开源的应用, 这些目录可以通过爬虫去发现。这样的一个页面 在红蓝对抗,甚至大部分渗透测试中都不需要通过爆破去发现。

只有闭源的, 且管理页面做了特殊保护的站点, 才需要通过目录爆破去发现admin目录. user.php, register.php在html与js中就能被爬虫爬到.

利用github实现rss的协作, 订阅, 精选与管理

前言

在开始硬核的内容前, 先介绍一个空闲时写的小玩具. 基于github的rss协作管理工具.

repo: https://github.com/chainreactors/picker

picker

在过去几年间, 大多数时间我都在使用irreader. http://irreader.fatecore.com/

使用体验还算不错, 但是也仅限于一个阅读器, 并不能保存文章到本地, 也不能进行一些复杂的推送和管理.

直到有一天我看到了 https://github.com/VulnTotal-Team/yarb , 才意识到, 其实github才是rss管理最好的工具.

为此, 我对yarb进行大刀阔斧的改动, 并使用github action 实现serverless的推送以及 issue与issue tag进行管理.

ASM的蓝图

前言

在发布chainreactor的计划之前, 先行发布了我们最成熟的工具 gogo, 是希望大家能从gogo中感受到我们的设计上的风格. 接下来将会介绍chainreactor的其他部分.

开始

chainreactor 将专注于红队自动化以及红队工具工件化. 如果要找一个类比, 可以参考projectdiscovery. 确实, 我们也从pd参考借鉴了非常多的代码, 甚至部分工具直接移植了pd的代码与poc.

为什么要在projectdiscovery之后再做类似的东西? 当然不是为了成为一个国产化的克隆pd , 因此pd已经覆盖到的场景将直接使用pd的工具链或者给pd提交pr, 而一些pd没有覆盖的场景将会自行研发,例如url被动收集与主动收集, 被动收集dns历史解析记录, 弱口令爆破等.

当然, 这些工件只是计划的第一阶段, 第二阶段则是通过工件化的工具链实现一个可编排, 可拓展, 高度可控的面向红队的框架. 并通过流量中间件实现将工具链拓展到内网. 第一阶段与第二阶段将会同步进行

是的, 我们的目标就是实现一个足够强大的, 高可拓展的, 分布式的, 协作的信息收集与漏扫框架. 这一堆词拼凑出的印象大概就是这两年很火的攻击面管理(ASM), 安全自动化编排与响应(SOAR), 漏扫加上CobaltStrike式的teamserver的集合体. 目标很大, 也许不能完全实现, 因此整个计划的所有组成部分都将以工件化的形式编写, 就算不能完成整个计划, 也有一系列中间成果可以单独使用在各种场景中.

目前这个项目使用业余时间进行了一年多, 完成了一两个成熟的工件, 三四个研发中的工件, 以及demo版本的框架与demo版本的流量中间件. 将会逐步发布, 我相信每个工件都能做到市面上最强或在某些场景下有独特的地方.