Skip to content

Conan924/CandleDragon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CandleDragon烛龙【插件化漏洞利用工具】

运行环境

JDK 1.8 打包命令:mvn package assembly:single

工具界面

image

功能

全局代理功能

可设置HTTP代理和Socks代理方便各种网络环境使用

image

自定义编码方式

默认使用UTF-8编码,可根据目标站点自行设置

image

关键字搜索

可通过信息探测插件名作者名描述中的关键字进行插件筛选

image

漏洞插件部分可以通过插件名漏洞名称作者名漏洞描述关键字进行筛选

image

插件加载使用

Http工具类

直接使用HttpTool的get或post进行发包返回Response对象,通过Response对象获取返回包的响应码、包内容、是否出错、head等信息

image

信息探测插件

可以直接双击插件名字所在表格行进行加载并自动跳转利用界面,可以根据插件是否设置参数分别加载不同界面。

image

漏洞插件

可通过列表当前行任意位置右键选择POC或者EXP模块,如果当前插件没有POC或EXP,按钮为灰色

image

POC模块

左侧区域每行填写一个检测地址,点击扫描可以根据插件定义的条件输出到表格中。

image

EXP模块

加载漏洞插件中所有实现EXP接口的对象,可同时加载多个EXP对象,可以获取插件中定义好的参数。

image

插件编写

目录结构

此类全限定名不可修改,只需要修改我们上面自自己写的信息探测插件漏洞信息插件的对象名即可

image

其余的类和文件夹名称可以随便改不会影响插件加载。

image

编写规范

漏洞利用插件

所有关于漏洞利用的插件对象都必须实现Exploit接口,并重写其中的方法

其中getExploitTabTitle()方法返回的内容是在插件中这个Tab标签显示

image

getExploitCustomArgs()方法返回的是多个参数,最终在工具显示位置 (可写可不写)

image

需要使用一个List<ArgsInfo>来存储我们自定义的参数名,通过信息探测插件对象来创建参数的对象

image

漏洞利用部分,可以通过targetInfo.getAddress()方法获取主程序工具中输入的URL地址,通过args.get("TestArg")可以获取主程序工具中输入参数的值,最后通过resultOutput的各种打印方式将需要显示的结果打印到主程序工具的前端显示。

image

POC插件部分

需要漏洞插件getHelpPluginInfo()获取一个对象调用createScanResult()返回一个扫描结果对象用来存储扫描结果,

最后通过扫描结果对象的三个方法,将插件定义好的条件插入表格中

scanResult.setTarget(targetInfo.getAddress());
scanResult.setMsg("输出信息");
scanResult.setVul(true);   //是否存在漏洞

image

信息探测插件

前面的逻辑和显示位置和漏洞利用的大同小异,需要新建一个LinkedHashMap,用来最后返回自定义的探测信息,这个和resultOutput的输出内容不冲突

image

插件信息编写

通过调用InfoDetectorPluginInfo的多个方法设置插件名字、插件作者、插件版本等信息,用于前端显示

最后将这个插件中所有的信息探测插件对象添加到一个List中,调用registerInfoDetector()方法传入List

漏洞利用部分同理,具体代码看Demo

感谢

感谢 @V1rtu0l

感谢@c0ny1师傅的woodpecker项目https://github.com/woodpecker-framework

问题建议

感谢师傅们多多提issues

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.5%
  • CSS 0.5%