/Yscanner

一个基于golang的简单漏洞扫描器

Primary LanguageGo

Yscanner

一个基于go的简易漏洞检测器。

个人平时就有写PoC的需求,手里捏的PoC多了以后就想把他们整合起来。github上有不少极其优秀的基于golang的PoC检测框架如Kunpeng、Roby等。但是这些框架对于我个人而言有些过于复杂了,于是写了这个简易框架。虽然plugin的编写比yaml格式来的繁琐,但他能实现的功能更多也方便调试。

使用

运行全部插件

./Yscanner -t http://127.0.0.1

运行指定漏洞检测插件

./Yscanner -t http://127.0.0.1 -v CVE-2023-35843

通过指定指纹载入检测插件(支持模糊搜索)

./Yscanner -t http://127.0.0.1 -p weblogic

从文件中读入大量url检测

./Yscanner -f urls.txt

展示支持的检测插件

./Yscanner -s

默认账号密码检测

./Yscanner -f urls.txt -d <对应的指纹,如Zabbix>
./Yscanner -t http://127.0.0.1 -d <对应的指纹,如Zabbix>

default_pwd.json保存了从网络上开源的yaml脚本中检测默认账号密码的方法,数据是我个人处理过的,并不是所有的都能支持检测。比如rabbitMQ是通过设置authorization头实现的,我这里就没有支持了(todo)。此处目前只支持通过get和post方式传递登录信息的。还有的可能是脚本本身的问题,或者我处理数据的时候损坏了。总之我并没有对其一一检测过,有问题遇到了再改。

同时我发现了一个问题,在批量检测的时候,为了能够动态显示结果,每个goroutine当场输出结果,这就会造成漏报。检测的网址一多,运行时间就会很长,增加互斥锁又会造成性能大幅下降(而且丑)。于是在【漏洞检测】模块我还是保持了动态输出,【默认账密】模块我就是检测完统一输出。如果对精准度要求很高的话,漏洞批量检测的时候建议多跑几遍。

目前支持的漏洞基本上都是2023年以后披露的,集中在2023年下半年(至少我加的时候还是崭新出厂的hhh)。2023以前的重要漏洞有的已经能在别的地方找到PoC,我这里一般就不做二次搬运了。总之,遇到需求了我再加。

支持漏洞

CVE-2024-0195\CVE-2024-0352\CVE-2024-0305\CVE-2024-0713\CVE-2024-0490\CVE-2023-51467\CVE-2023-22527\CVE-2023-35885等三十余个漏洞

Screen Shot