泗县天气,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜

admin 4周前 ( 05-29 21:48 ) 0条评论
摘要: 打造自己的渗透测试框架—溯光...

TrackRay简介

溯光,英文名“TrackRay”,意愿望深渊为逆光而行,追溯光源。一起问候安全圈长辈开发的“溯雪”,“流光”。

溯光是一个开源的插件化浸透测验结构,结构本身完结了缝隙扫描功用,集成了闻名安全东西:Metasploit、Nmap、Sqlmap、AWVS等。

溯光运用 Java 编写,SpringBoot 作为基础结构,JPA + HSQLDB嵌入式数据库做耐久化,Maven 办理依靠,Jython 完结 Python 插件调用,quartz 做使命调度,freemarker + thymeleaf 做视图层,Websocket 完结指令行式插件交互。

结构可扩展性高,支撑上海会聚投资有限公司 Java、Python、JSON 等办法编写插件,有“缝隙超易设备办理软件扫描插件”、“爬虫插件”、“MVC插件”、“内部插件”、“无交互插件”和“可交互插件” 等插件类型。

功用展现

>>>>主页

>>>>登录

>>>>使命创立

>>>>使命列表

>>>>使命概况

>>>>无交互接口插件调用

>>>>MVC插件示例

>>>>交互式插件操控台

>>>>MSF 操控台

依靠环境

JDK 1.8

Python 2.7

Maven

Git

Metasploit

Nmap(主张装置)

SQLMAP(主张装置)

AWVS

**加粗为有必要环境,没有装置程序则无法正常编译运转

不论是 Windows 仍是 linux 必定需求先装置 JDK1.8 和 Maven。装置进程这儿不做演示。确保 JDK 和 Maven 都在体系环境变量,能履行java -version 和 mvn色欲后宫 --version即可。

装置进程

>>>>第一步

手动发动 AWVS 服务

登录后台,生成一个API密匙。

仿制密匙和 AWVS 的地址。

找到web/src/main/resources/application.properties装备文件。

修正如下部分

>>>>第二步

找到你 python 的第三方库目录。

Windows 的一般在 python 装置目录下的/Lib/site-packages

Linux 下能够经过输出 sys.path 来找第三方包途径

我的是 D:/Python2/Lib/site-packages

相同找到web/src/main/resources/application.properties装备文件。

修正python.package.path参数

>>>>第三步

装置 Maven 后找到库房方位。

假如没有在 settings.xml 里装备指定库房目录,默许会在当时用户目录中生成一个 .m2的目录

Linux /root/.m2/r洁白娇喘嘘嘘香汗淋漓epository

Windows C:/Users/blue/.m2/repository

找到库房目录后修正 application.properties 的 maven.repository.path参数

>>>>第四步

这个是 DNSLOG 回显检测缝隙时需求的。

去 ceye.io 注册一个账号,拿到给你分配的域名和 TOKEN。

修正装备文件

>>>>第五步

发动 msf 和 sqlmapapi。

假如你是 kali 操作体系,能够直接运转startdep.sh。

假如是其他体系,则要找到 metasploit 和 sqlmap 的目录别离履行

发动成功后修正装备文件

>>>>第六步

编译打包程序

Windows 下运转package.bat

Linux 下运转 package.sh

等候依靠下载完结和编译完结,假如以上操作都没有出现问题则会提示 BUILD SUCCESS

编译成功后会在当时目录打包一个trackray.jar便是溯光的主程序。

然后直接履行startup.bat或startup.sh溯光就会发动服务。

没有抛出反常或ERROR日志,拜访 8080 端口正常。

服务发动正常后,登录 iZone 社区账号。

**开发插件主张运用 Intellij IDEA IDE,需求装置 lombok 插件。

目录结构

插件

AbstractPlugin

这是交互式插件和非交互式插件的父类。

BASE常量

其间的静态常量 BASE 是 /resources/include/ 的地点目录。

假如你的插件需求额定的静态资源,那么你能够在 /resources/include 目录里创立一个和插件 KEY 相同的文件夹,便于辨认,假如没有在 @Plugin 注解中设置 value 则默许的插件 KEY 便是当时类名首字母小写。

如 Typecho001 = typecho001

check(Map param)

这是用于查验是否合规的办法,需求被强制重写,当回来 true 时才会调用 start() 办法

param 参数是从前台传过来的参数键值对。

常被用于查验参数格局是否正确或缝隙是否存在。

after()

在 start() 办法之前调用

before()

在 start() 办法之后调用

start()

这是一个笼统办法,一切承继了该类的子类都需求重写这个办法。

check 办法经过后会调用 start() 办法

start() 办法回来值终究会会作为插件成果,呼应给前台。

shell()

调用当时体系 shell 来辅佐完泗县气候,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜成插件功用。

exec樱姬百度云utor()

插件履行的主办法

crawlerPage

http恳求目标(不引荐运用)

fetcher

履行 http 恳求目标(不引荐运用)

errorMsg

当校验不经过期,回来给前台的信息。

param

前台传过来的参数键值对

requests

HTTP 发包东西(引荐运用)

hackKit

hack 常用东西包

无交互插件

无交互插件需求你填写好一切要填写的参数,直接恳求接口来履行插件。

默许需求去承继 CommonPlugin类。

这是一个笼统类,承继了 AbstractPlugin

首要多出来两个特色:request 和 response。

承继了 CommonPlugin 的类能够经过调用这两个特色来操控恳求和呼应内容。

Type 和 Charset 枚举类,用于在插件注解里声明当时接口回来的数据格局和编码类型。

无交互插件一起也需求运用 @Rule 和 @Plugin 插件,这两个注解后边会讲到。

在 http://127.0.0.1:8080/api,找到相应的插件填写好参数提交即可完结调用。

或直接调用接口。

http://127.0.0.1:8080/plugin/use?key=插件KEY&参数=参数值

交互式插件

交互式插件一般在指令行操控台中调用,能够答应你经过指令行交互来完结插件的调用。

交互式插件由 Websocket 完结,想要写一个交互式插件,首先要承继 WebSocketPlugin 类。

一起设置 @Rule 注解的 websocket 参数为 true ,假如需求异步交互需求将 sync 也设置为 true。

内部插件

所属包:con.trackray.module.inner

内部插件是不能够经过外部去调用的,需求承继 InnerPlugin 并运用 @Plugin 注解,通常在缝隙邱浩轩扫描不时会调用。

例如 “网页爬虫”,“指纹辨认”,“端口扫描” 等,都是经过调用内部插件完结的。

还有用于检测 SSRF 等缝隙用的 FuckCeye 插件也归于内部插件。

经过 spring 的主动注入,来注入内部插件到当时目标。

比如可参阅 WebLogicWLSRCE.java

爬虫插件

所属包:con.trackray.module.crawl诸葛慎er

爬虫插件会在扫描使命被勾选“网页爬虫”时调用,每爬取一条恳求就会调用一次爬虫插件。

爬虫插件需求承继 CrawlerPlugin,承继该类有必要重写 che傻猫大战三小强ck 和 process 办法。

check 办法用于查验恳求是否契合插件规矩,避免发生剩余恳求。

check 办法回来为 true 时会调用 process 办法。

process 办法里写插件首要检测代码。

addVulnerable()

当插件检测出缝隙时,能够经过调用 addVulnerable() 办法来向数据库刺进一条缝隙。

requests

requests 特色为恳求东西包,处理 https 和 htt习仲法p 都很便利。

response

response 特色为当时爬虫得到的 HTTP 呼应。

task

task 特色为当gayhot前使命目标,假如你的爬虫插件不是检测缝隙而期望是检测一些灵敏信息的话能够修正 task.getResult() 里的特色。

参阅 FingerProbe.java 或 InfoProbe.java。

target

爬虫爬取到的 URL 目标。

fetcher & crawlerPage

http 恳求目标(不主张运用)。

缝隙扫描插件

缝隙扫描插件会在,扫描使命中勾选“缝隙进犯模块”时调用。

缝隙扫描插件分为三种

1.独立插件

com.trackray.module.exploit

独立的缝隙扫描插件需求承继 AbstractExploit 并运用 @Plugin 或 @Exploit

AbstractExploit 中有以下需求了解的办法和特色。

requests

http / https 发包东西

target 泗县气候,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜当时扫描使命的地址。

task

当时扫描使命目标。

check()

check 是一个笼统办法,需求被子类强制重写。

该办法一般用于查验是否契合当时缝隙扫描插件的规矩,避免发生多与恳求。

attack()

attack 也是一个笼统办法,whc减速机需求被子类强制重写。

该办法是检测缝隙的主办法。

before()

在 attack 办法前履行

after()

在 attack 办法后履行

addVulnerable()

当插件检测出缝隙时,能够经过调用 addVulnerable() 办法来向数据库刺进一条缝隙。

fetcher & crawlerPage

http 恳求目标(不主张运用)。

2.缝隙规矩

坐落

com.trackray.module.inner.泗县气候,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜Sim泗县气候,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜pleVulRu金梅瓶le

实际上这是一个“内部插件”,会在勾选缝隙模块进犯时调用。

有一些缝隙检测办法很简略,只经过简略的判别呼应体就能辨认出来,也就没有必要再去写一个独立的插件而占用空间了。

在 doSwitch() 办法中会先去依据当时使命的指纹辨认成果走一遍 switch 流程。

swtich 的每一个 case 都是 WEB 指纹的枚举目标。

当 switch 找到当时使命 WEB 指纹对应的 case 后,case 内的代码会经过构建一个缝隙规矩增加到 loaders 调集里。

假如规矩是通用的,能够写在 switch 的外面。

例:phpcms 的 authkey 走漏缝隙规矩

3.kunpeng JSON插件

kunpeng 是一个 go 言语编写的 poc 测验结构,这儿我对 kunpeng 的 JSON 插件做了一个支撑。

只需求依照 kunpeng json 插件的格局标准创立一个 json 文件到 /resources/json 目录。

在扫描使命勾选“缝隙进犯模块”时会被调用,或经过 MVC 插件调用 http://127.0.0.1:8080/apps/json。

MVC 插件

坐落

com.trackray.module.mvc

MVC 插件的特色在于,他能够像是在写一个功用相同,而非简略的接口泗县气候,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜式调用。

MVC 插件泗县气候,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜需求承继 MVCPlugin 类,并运用 @Rule,@Plugin 注解。

MVCPlugin 内置了一个 ModelAndView 目标, 是 SpringMVC 供给的。

能够经过 setViewName() 来指定视图层的网页模板。

经过 addObject(key,value) 向视图层网页模板注入参数。

这儿的视图层是运用 thymeleaf 完结的,需求懂 thymeleaf 的语法。

比如能够参阅:com.trackray.module.inner.JSONPlugin

承继 MVCPlugin 有必要要重写一个 index 办法,这是插件的进口。

假如需求写其他的功用,就得再创立一个 public 回来值为 void 的无参办法。

而且要在该办法上运用 @Function 注解,该注解的 value 参数假如不填写的话则默许的 requestMapping 地址为办法名。

例如

http://127.0.0.1:8080/plugin/mvc/pentest/index 对应 index()

http://127.0.0.1:8080/plugin/mvc/pentest/foo 对应 fooTest()

最终还需求在 /module/src/main/resources/templates 创立一个目录名为插件 KEY 的目录。

里边寄存扩展名为 .html 的模板文件。

Python 插件

python 插件有两种完结办法。

1.经过指令行完结

这种办法最为简略,经过在 include 里写一个 python 欧美白叟脚本。

然后在插件里调用 shell() 办法来履行体系指令。

事例可参阅 com.trackray.module.plugin.windows.smb.MS17010

但这样还需求再写 java 的代码,关于没有学过 java 的人来说很不友爱。

2.经过jython完结

jython 是一个 Python 言语在 Java 中的彻底完结。

我将它的调用进程写成了一个交魔兽选手120骗炮互式插件。

你能够经过龙城风月在 /resources/python/ 目录下装置如下标准去创神受进化论建一个 python 文件。

在这个 python 文件中需求写两个办法。

params(): 回来字典目标,key 为 参数,value 为参数的阐明。

verify(args): args 是一个字典类型,是从前台传过来的参数。

关于注解

com.trackray.base.annotation

@Rule

一般用在“可交互插件”和“无交互插件”类上。

params() 最为常用,它用来声明这个插件需求哪几个参数。

比如:Thinkphp51and52RCE.java

@Plugin

它是一切插件有必要要运用的注解,只有声风云起山河动明晰这个注解才能够泗县气候,安永,电影苹果-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜运用。

WEB指纹

这儿趁便再说一下怎么增加指纹库。

com.trackray.base.enums.FingerPrint

指纹库坐落 base 模块,是一个枚举类。

能够在首部或尾部增加一条新的枚举,尽量运用 $ 最初kaker。

第一个参数是 指纹的称号,假如第二个参数是 String 类型则是该指纹的阐明。

FingerBean 类是指纹匹配目标。

dedecms 指纹示例

文章版权及转载声明:

作者:admin本文地址:http://lovetoeros.com/articles/1075.html发布于 4周前 ( 05-29 21:48 )
文章转载或复制请以超链接形式并注明出处竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜