Skip to content

Latest commit

 

History

History
84 lines (42 loc) · 5.63 KB

README_LEGACY.md

File metadata and controls

84 lines (42 loc) · 5.63 KB

1. YAK语言简介

一群拥有丰富网络安全从业经验的工程师,对现有的通用编程语言感到不满——他们想要的是一个开源的语言,它要具备Golang的高并发执行能力;要像Python一样语法简单;要是个脚本语言,这样可以快速分发给同伴;要可以一次编写直接执行,而不要安装第三方库;要原生具备网络安全专用能力,如端口探测、SYN无状态扫描、Nmap的服务指纹,并以函数形式扩展提供;还有,它应该是图灵完备的,易于学习的……

所以,Yak 语言诞生了!

YAK是国际上首个为网络安全而生的“领域特定语言(Domain Specific Language)”,提供了非常强大的安全能力。Yak是绝大部分 “数据描述语言/容器语言” 的超集,宿主语言采用Golang,具备Go语言所有能力与库生态,具备自己的VSCode插件等。Yak语法可自定义,是一门图灵完备的脚本语言,完全国产。通过函数提供各类底层安全能力,包括端口扫描、指纹识别、poc框架、shell管理、MITM劫持、强大的插件系统等。

2. YAKIT单兵工具简介

Yakit是基于Yak语言开发的网络安全单兵工具,旨在打造一个覆盖渗透测试全流程的网络安全工具库。

受限于Yak使用形式,用户必须学习 Yak 语言并同时具备对安全的一定理解。为了让 Yak 本身的安全能力更容易被大家接受和使用,我们为Yak编写了gRPC服务器,并使用这个服务器构建了一个客户端:Yakit,通过界面化GUI的形式,降低大家使用Yak的门槛。

2.1 Burpsuite 的年轻中国挑战者

Burpsuite几乎成为全球WEB安全从业者必装的安全测试工具,然而十余年来尚无一个可替代的解决方案。破解版被投毒风险高、商业版太贵、插件难写、依赖java等等问题逐渐显露。我们团队基于yak顺手实现了BurpSuite的核心功能,期望给所有的从业者一个新的选择。完全替代并不是我们终极目标,替代并超越,切实降低门槛,提升从业者工作效率,才是我们的追求。

当前,我们已经实现了BurpSuite常用的功能,包括拦截并修改请求/返回报文、history模块、repeater模块、intruder模块,并且在我们的fuzz模块中创新性的实现了GUI标签fuzz,具备更好的可扩展性。

HTTP History

image-20220106162406937

WEB Fuzzer:

image-20220106162442487

被动漏洞检测系统:

image-20220106165619622

2.2 Poc/Exp超集

在实战安全测试过程中,我们经常面临一个需求,即已知对方使用了weblogic/struts2等,需要一键检测是否存在指定漏洞,然而这么简单的需求我们当下却要打开各种专用工具不停切换,甚至为了安装某个工具而不得不切换Windows/Linux,或者安装一堆复杂的依赖。在yakit上,我们将致力于提供一站式的解决方案,您只需要输入目标,点击开始检测按钮,即可快速得到结果。

image-20220106162908302

为了快速提升poc的检测能力,我们在yak语言中原生集成了nuclei(MIT协议),当然,在插件模块中,你可以基于yak/yaml编写各种你想要的检测能力,并将插件快速展示到左侧菜单栏中。快来跟我们一起完善Yakit插件吧

2.3 ”地表最强“的插件系统

作为一个单兵工具平台,自然离不开可快速扩展的插件系统。理论上一个带界面的插件,编写者需要对前端、后台都比较熟悉,这增大了开发者的进入门槛。与其他平台不同的是,我们在设计时,插件核心代码全部用yak实现,并且可以通过yakit库实现与界面的交互,除此之外,为了配得上”地表最强“,您还可以参考以下文章的描述:

插件设计思路

插件编写指南

img

2.4 Teamserver设计

由于 Yak 核心引擎与 Yakit 的分离式安装,Yakit 仅仅作为一个客户端而存在,Yakit 的使用理所当然就应该存在两种模式。

  1. 本地模式:默认启动一个随机端口的 yak grpc 服务器

  2. 远程模式:

    yak grpc
    

    可以启动在任何平台 / 任何网络位置,包括

    • 远端托管主机 ECS/VPS

    • 本地个人 PC

    • 内网环境

除此以外,我们还创新性的加入了brige模式,可方便的将内网通过反弹模式映射到公网,在这种模式下,我们不在需要安装frp之类的端口转发工具,而是在一个GUI界面下,执行内网横向移动操作,极大的提升了测试效率。

image-20220106203601893

2.5 原生的JAVA反序列化能力支持

在当下环境,我们要检测java反序列化漏洞,在生成payload阶段,我们通常需要借助ysoserial,然而这种解决方案不仅需要安装java环境,还甚至需要安装指定版本的java才行。而yakit则使用yak原生实现了java反序列化协议的支持,如此一来,我们即可方便的通过编写yak脚本快速对目标进行测试。

image-20220106204618700

该部分的使用详情请参见文章”新年献礼:使用 Yakit 打破 Java 序列化协议语言隔离“