背景:集群作战
即使安全领域是一个 “个人英雄主义” 至上的领域,但是在实际工作中,面对庞大的资产和打点范围,安全测试小分队仍然是主流,这些小分队的集群作战是大家日常工作的常态。
渗透测试小队在日常工作中的形态往往并没有大家想的那么千变万化,现状是大部分三五人小队深度协同完成一个项目,十人内小队一半人浅度参与项目。不论如何,这个团队协作的规模并没有大家想象的那么 “夸张”,我们发现,实现三五人小队的高效协同作战其实是 “集群作战” 的核心诉求。
并不是资产协同
当然看到这儿,很多读者就会抢答 “这个我会,找个服务器同步传输资产和任务结果就行了!”。当然不可否认这是人人都很自然的能想到的解决方案,但其实也有明显缺点:
- 同步资产和结果过分关注了 “结果”,并没有注意到,这些资产就算同步了还会被多次确认
- 每个人得到资产,或者得到可测试的点的 “过程” 并没有被 “协作”。
深层的协作行为
其实在渗透测试过程中,IM(即时通信)扮演了非常重要的角色,针对一个网站的关键渗透测试的数据包也扮演了重要角色,所以大家变成了 IM 传输数据包的深度受害者。
核心行为:数据包分享
实际上整个协作过程中,分享是主旋律
“师傅有空的话,帮我看个数据包?我微信发给你”
“我这个洞打了半天绕不过去啊,有空帮忙看看?Payload 在 ....”
“我这儿环境不对,打不了这个洞,能帮忙打一下嘛?弹到这个服务器(...) 上”
“这个资产里面有个登录包有点问题,可以测测逻辑”
...
这些对话其实日常高频发生在三五人小队的渗透测试过程中,除了文件传输和 EXP 分享之外,数据包的分享其实是非常深入的 “协作诉求”。
如何解决?
如果大家都用 Yakit Web Fuzzer 的话,会注意到近期的版本,我们新增了一个 “分享 / 导入” 的功能,可以很容易地让用户分享当前正在工作的 Web Fuzzer,生成口令,小队中的同学可以根据生成的口令快速导入数据包:
用户可以在 Web Fuzzer 使用过程中,把感兴趣的或者有问题的数据包生成口令,通过 IM 发送给用户,用户只需要使用口令导入即可。
使用实战案例:
我们发现,我们只需要几步即可实现一台 Yakit 的 Web Fuzzer 到另一台的丝滑分享。
[屏幕录制2022-08-30 10.43.33.mov]
技术架构
- 用户点击分享之后,用户通过 Online 服务器把数据包以及配置信息编码后,上传 Online 缓存服务器,生成一个分享码;
- 分享码获取到之后,返回到 Web Fuzzer 前端,用户可以把分享码复制给同事;
- 点击导入后,分享码传输到 Online 服务器,服务器把对应的资源返回给用户。
安全考虑
时限与密码分享
在分享的时候,由于工作性质问题,我们需要考虑机密数据不外泄的问题,为了解决这类问题,我们在实现这些功能时候,使用 “最短五分钟,最长一天” 的时限,并且可允许用户启用 “密码” 分享,供用户来选择。
数据不想出网?
在公有社区版,用户可完全信赖 Yakit 服务器来辅助大家进行系统测试,我们保证不会获取和存储任何用户数据;
当然如果在大内网或者因为合规和网络设置确实无法出网的情况,可联系 Yakit 官方购买独立的 Yakit Online 服务进行私有部署。
Yak官方资源
Yak 语言官方教程:
https://yaklang.com/docs/intro/
Yakit 视频教程:
https://space.bilibili.com/437503777
Github下载地址:
https://github.com/yaklang/yakit
Yakit官网下载地址:
https://yaklang.com/
Yakit安装文档:
https://yaklang.com/products/download_and_install
Yakit使用文档:
https://yaklang.com/products/intro/
常见问题速查:
https://yaklang.com/products/FAQ