0x00 前言
tabby工具还是挺棒的,就是配置太麻烦,我也是在他人的帮助下完成,所以很有必要记一下。
0x01 tabby配置
配置Java环境
建议Java的环境变量设置成jdk17:
验证:
下载tabby项目
本人使用:Release v1.3.2-3 · wh1t3p1g/tabby,选择tabby.zip即可。
不难看到项目里有个tabby.jar,直接运行如下命令,会生成output目录:
1 | java -jar tabby.jar |
0x02 neo4j配置
neo4j搭建
Neo4j是什么,为什么需要Neo4j,Neo4j的优势和应用场景-CSDN博客
本人使用neo4j-5.9.0,可以在微云这边下:https://we-yun.com/doc/neo4j/
我配置了neo4j的环境变量,可以直接启动:
1 | neo4j console |
如果不配置,就需要在bin目录下使用命令。
启动完毕,初始账户和密码都是neo4j,会要求修改密码,然后进入:
tabby相关配置
在tabby项目config目录下的settings.properties文件添加:(密码是刚才修改的)
neo4j插件下载
三个插件:
- tabby-path-finder-1.1.jar
- apoc-core.jar
- apoc-extend.jar
插件 | 下载地址 | 注意事项 |
---|---|---|
tabby-path-finder-1.1.jar | https://github.com/wh1t3p1g/tabby-path-finder | 无 |
apoc-core.jar | https://github.com/neo4j/apoc | apoc 插件版本与项目版本对应 |
apoc-extend.jar | https://github.com/neo4j-contrib/neo4j-apoc-procedures | apoc 插件版本与项目版本对应 |
下载完都得放到neo4j项目的plugins目录下:
neo4j配置文件修改
对neo4j项目conf目录下的neo4j.conf文件进行修改:
- 取消下面代码的注释
1 | server.directories.import=import |
- 允许apoc插件
1 | dbms.security.procedures.unrestricted=jwt.security.*,apoc.* |
在conf目录下创建一个新文件apoc.conf,内容
1 | apoc.import.file.enabled=true |
验证neo4j插件
重新启动neo4j:neo4j console
验证插件是否正常启动:CALL apoc.help('all')
相同的,验证tabby-path-finder依赖是否正常启动:CALL tabby.help(‘tabby’)
在上面输入命令的地方,输入下面命令:
1 | CREATE CONSTRAINT c1 IF NOT EXISTS FOR (c:Class) REQUIRE c.ID IS UNIQUE; |
0x03 tabby-vul-finder
工具下载
tabby把Java反序列化链子变成知识图谱形式且放在neo4j存储和展示。但是1.3h后的tabby不支持系统上传,需要我们自己配置,这就需要用到工具;tabby-vul-finder。
选择第二个吧,第一个不好使,本人是用学长的。
tabby再次配置
再次配置tabby项目的settings.properties,这次是完整的。请一行一行对照,有些需要相应的修改:
这里我是放入了common-collections的3.2.1的jar包,执行如下命令会让tabby分析该jar包存在的Java反序列化链子:
1 | java -jar -Xms4G tabby.jar |
在tabby项目的output\dev目录下出现这些文件:
这些都是存在的漏洞数据,我们需要把这些数据上传到neo4j上面,这就是我们下载tabby-vul-finder工具的原因。
执行如下命令,路径是上图的路径:
1 | java -jar tabby-vul-finder.jar load Path\tabby\output\dev |
tabby-vul-finder配置
配置tabby-vul-finder项目的config目录下的db.properties文件:
然后在tabby-vul-finder项目先执行如下命令生成tabby-vul-finder.jar:(mvn命令请自行配置)
1 | mvn clean package -DskipTests |
在该项目的target目录下生成两个jar包:
把tabby-vul-finder.jar包放到根目录,执行如下命令:
1 | java -jar tabby-vul-finder.jar load Path\tabby\output\dev |
该命令会把tabby项目对应目录下的csv文件上传到neo4j(要先启动neo4j的web端,也就是运行neo4j console
)。
上传的大小大概是:
如果是是(一百多,一百八十多),就该考虑是不是没有上传成功,当然下面的方法也可以验证。
0x04 neo4j验证
上文已经上传csv数据了,但是不知道有没有上传成功。
从下面给出的链子选一条指令放到neo4j的命令行执行一下:
我选择cc2:
显然是存在的,那么就上传成功了。如果不存在,就是上传失败,很可能是tabby-vul-finder工具不行,找人要一下吧(我真的不想搞云盘)。