Skip to content

Blog

IoM GUI 内测招募

Intro

IoM 的v0.1.0 的开发工作还需要一段时间, 但GUI已经开启了抢先测试. 测试不限名额, 发布在 https://github.com/chainreactors/malice-network/releases/tag/nightly

可以参考下面的安装流程安装GUI.

IoM-GUI采用vscode extension的形式实现, 不是传统的GUI client, 也不是WEB GUI。 我们尝试了一种前所未有的C2 GUI形式, 原因有很多:

  • vscode 已经是目前现代化,兼容最多场景的IDE, 它提供的基座让我们能自然而然的实现跨屏与各类场景覆盖
  • vscode 集成了文件浏览,终端,远程开发,代理等等功能, 而C2也有这些功能,可以直接接入到vscode实现无缝的交互
  • vscode本身就是IDE, 可以进行二次开发, 插件开发等, 可以让开发与后渗透无缝进行
  • vscode 提供了最优秀的AI集成,后续会尝试将AI接入到GUI的工作流中
  • ......

要从零实现一个GUI大概率会很平庸, 但是我们计划最大程度利用vscode的各种特性,打造一个最好用的C2-GUI。

警告:

目前提供的版本是早期测试版,每天都会自动基于最新的commit打包,是极不稳定的状态

数据和api可能每天都会改变,如果用于生产环境请三思。

有任何建议和反馈, 欢迎在 https://github.com/chainreactors/malice-network/issues 中沟通

或通过wiki中的联系方式发送邮件, 我会手动拉入交流群

安装

下载文件

malice-network仓库 中的nightly release中下载对应的vscode插件文件以及client文件

从文件安装vscode插件

打开extension或ctrl+sheft+x 并单击如图所示

配置VSCODE插件

IoM: Executable Path 填入从nightly release下载的iom二进制程序

打开IoM 插件

IoM需要 malice-network生成的.auth凭证, 所以在这一步之前请先自行搭建好server

可以参考quickstart文档快速搭建server

安装server的命令需要修改为:

curl -L "https://raw.githubusercontent.com/chainreactors/malice-network/master/install.sh" -o install.sh
sudo MALICE_NETWORK=nightly bash install.sh

如果已经通过client连接过server, 则会直接显示历史连接过的auth文件. 单击即可进入到交互界面.

请注意server版本,client版本,gui版本一致

使用

GUI还未完全实现client的全部功能, 目前只实现了较为重要的功能. 并且在很多交互上还缺乏联动,存在bug等等问题。 请见谅

如果有任何用户体验, bug, 建议, 欢迎提供issue。 我们会尽快处理。

配置github action编译

IoM支持通过github action上准备好的编译环境自动化编译

fork https://github.com/chainreactors/malefic

点击申请github token , 需要有以下权限

在设置中搜索iom

这里的参数填写fork后的仓库所有者和仓库名, 以及刚刚申请的github token

连接任意服务器, 点击Artifacts 发现github变为绿点表示github action 自动编译已正确启用,点击Add Profile即可生成implant编译任务

拓展golang代理的边界 proxyclient

前言

本文是rem发布前的前菜, 是在实现rem过程中的附带产物,但因其可以被使用在大量其他组件中, 故将其抽象出来作为独立的库使用。

TLNR:

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

wiki: https://chainreactors.github.io/wiki/libs/proxyclient/

golang 代理的背景知识

众所周知, golang上有着远超其他任意语言的网络相关的生态库。 各种应用也层出不穷,从安全领域常用的iox,frp,nps 到网络代理gost, xray, v2ray, 以及相对底层的网络协议实现库如kcp,quic, rawpacket, 还有最重要的标准库提供的密码学库(crypto和tls)及其优雅的抽象。

越来越多的扫描器也都基于golang实现,这也包括了我在多年前编写的扫描器gogo。 在gogo开发的早期我对使用代理去扫描是有偏见的,这源于我对网络协议和golang设计上的了解不够深入,还有一个重要原因是标准库库中的proxy提供了很好的抽象, 但是在具体实现上略显混乱。 这也导致了很长一段时间gogo的代理扫描实际上是误用了,让我一直以为只有socks5协议能代理socket。

IoM进阶系列(1) PELoader&RDI的TLS之殇

从一个崩溃开始的 PE Loader 救赎之旅

本系列文章虽然叫做IoM进阶系列, 但实际与IoM关系不大,只是在开发IoM的过程中遇到的。进阶系列均为解决前无古人的问题、创新等, 本文将从最常用的技术 PE-Loader开始。

如果读者已经熟知PE加载, 那么本文的内容将不会有非常大的革新, 但各位阅读完本文可能也会看到一些新鲜玩意, 聊以慰籍 :)

今年8月, 我们推出了下一代 C2 计划 -- Internal of Malice , 旨在实现一套 post-exploit 基础设施, 在implant的语言选用中, 我们尝试了这两年最火热的红队语言:Rust, 也因为这个选择,在实现过程中遇到了和解决了非常多有意思的问题。

在推出stager 版本之后, 交流群的一位同学贴出了Writing a PE Loader for the Xbox in 2024 这篇文章, 用一种非常粗暴的方式解决了 Rust在使用MSVC编译时引入了TLS(thread-local storage) , 而只常见的PELoader 简单调用 tls callback 无法正常加载 PE 文件的问题, 遂成文。

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, 一两年时间就能把市面上的大多数产品囊括, 看起来似乎对大厂来说也不是个难以解决的问题. 但事实真的如此么?