作者:hacker发布时间:2023-04-13分类:网站入侵浏览:105评论:4
为了在您的机器上配置起一个Java开发环境——您将使竖稿用一个“开发环境”来“开发”(编写)程序——您需要完成以下这些步骤:
1.下载一个包含Java开发环境(编译器和其他工具)的大文件。点击“下载J2SE SDK”链接下载SDK(软件开发工具包)软件。网页会显示一个许可协议。点击“接受”。选择您的操作系统,然后将文件保存到下载目录中。这是一个巨大链纤猛的文件,用电话调制解调器下载需要好几个小时。接下来的两个文件也很大。
2.下载一个包含Java文档的大文件。选择操作系统后点击SDK1.4.1文档的链接。
3.如果您的机器上还没有安装WinZip(或可执行相同功能的程序),那么您需要下载一个包含WinZip的大文件并安装之。如果您的机器上没有安装某个的版本的WinZip或其他解压缩软件,下载WinZip的试用版。运行EXE文件安装。很快我们将使用它来安装文档。
4.安装Java开发环境。运行第一步下载的j2sdk-1_4_1-*.exe文件。他将自动解压并安装开发工具包。
5.安装文档。阅读安装说明文档。它会要求您将文档文件移至刚才开发工具包的安装目录。将文档解压缩,文件就会被安排到适当的位置。
6.调整环境变量。按照此页棚桥的要求,您需要改变路径变量。最简单的办法是打开一个MS-DOS窗口键入PATH看看当前的路径变量是什么,然后用记事本打开autoexec.bat按要求修改PATH环境变量。
7.全面测试。现在您应该可以打开另一个MS-DOS窗口并键入javac了。
JAVA编程常用的软件:
1、Eclipse:
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
2、MyEclipse:
MyEclipse是Eclipse的升级版,也是一款功能强大的J2EE集成开发环境,由Genuitec公司发布,提供免费版和收费版。被誉为最好用的Java IDE之一。
MyEclipse 是对Eclipse IDE的扩展,利用它可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
3、IntelliJ IDEA:
IntelliJ IDEA是一款综合的Java 编程环境,被许多开发人员和行业专家誉为市场上最好用的IDE之一,与MyEclipse齐名。
它提供了一系列最实用的的工具组合:棚颂智能编码辅助和自动控制,支持J2EE,Ant,JUnit和CVS集成,非平链差郑行的编码检查和创新的GUI设计器。
4、NetBeans:
NetBeans IDE是一个屡获殊荣的集成开发环境,可以方便的在Windows、Mac、Linux和Solaris中运行。NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序。
5、BlueJ:
BlueJ是一款支持Java编程语言的集成开发环境(IDE)。它原本是为了教育目的而开发的,同时也适合于那些想做小型软件开发的开发人员。它的运行需要JDK(Java开发工具包)的帮助。BlueJ主要是为面向对象的程序设计教学庆团而开发的,因此它的设计不同于其他的开发环境。
参考资料来源:百度百科-BlueJ
参考资料来源:百度百科-IntelliJ IDEA
参考资料来源:百度百科-Netbeans
参考资料来源:百度百科-eclipse
参考资料来源:百度百科-MyEclipse
常用是python,有的工具是用C++和java写的,所以最好多学习一门语言
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的目录
找到仓库目录后修改 application.properties 的 maven.repository.path参数
第四步
这个是 DNSLOG 回显检测漏洞时需要的。
去 ceye.io 注册一个账号,拿到给你分配的域名和 TOKEN。
修改配置文件
第五步
启动 msf 和 sqlmapapi。
如果你是 kali 操作系统,可以直接运行startdep.sh。
如果是其他系统,则要找到 metasploit 和 sqlmap 的目录分别执行
启动成功后修改配置文件
第六步
编译打包程序
等待依赖下载完成和编译完成,如果以上操作都没有出现问题则会提示 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 来辅助完成插件功能。
executor()
插件执行的主方法
crawlerPage
http请求对象(不推荐使用)
fetcher
执行 http 请求对象(不推荐使用)
errorMsg
当校验不通过时,返回给前台的信息。
param
前台传过来的参数键值对
requests
HTTP 发包工具(推荐使用)
hackKit
hack 常用工具包
无交互插件
无交互插件需要你填写好所有要填写的参数,直接请求接口来执行插件。
默认需要去继承 CommonPlugin类。
这是一个抽象类,继承了 AbstractPlugin
主要多出来两个属性:request 和 response。
继承了 CommonPlugin 的类可以通过调用这两个属性来控制请求和响应内容。
无交互插件同时也需要使用 @Rule 和 @Plugin 插件,这两个注解后面会讲到。
在 ,找到相应的插件填写好参数提交即可完成调用。
或直接调用接口。
交互式插件
交互式插件一般在命令行控制台中调用,可以允许你通过命令行交互来完成插件的调用。
交互式插件由 Websocket 实现,想要写一个交互式插件,首先要继承 WebSocketPlugin 类。
同时设置 @Rule 注解的 websocket 参数为 true ,如果需要异步交互需要将 sync 也设置为 true。
内部插件
内部插件是不可以通过外部去调用的,需要继承 InnerPlugin 并使用 @Plugin 注解,通常在漏洞扫描时时会调用。
例如 “网页爬虫”,“指纹识别”,“端口扫描” 等,都是通过调用内部插件实现的。
还有用于检测 SSRF 等漏洞用的 FuckCeye 插件也属于内部插件。
通过 spring 的自动注入,来注入内部插件到当前对象。
例子可参考 WebLogicWLSRCE.java
爬虫插件
爬虫插件会在扫描任务被勾选“网页爬虫”时调用,每爬取一条请求就会调用一次爬虫插件。
爬虫插件需要继承 CrawlerPlugin,继承该类必须重写 check 和 process 方法。
check 方法用于检验请求是否符合插件规则,以免产生多余请求。
当 check 方法 返回为 true 时会调用 process 方法。
process 方法里写插件主要检测代码。
addVulnerable()
当插件检测出漏洞时,可以通过调用 addVulnerable() 方法来向数据库插入一条漏洞。
requests
requests 属性为请求工具包,处理 https 和 http 都很方便。
response
response 属性为当前爬虫得到的 HTTP 响应。
task
task 属性为当前任务对象,如果你的爬虫插件不是检测漏洞而希望是检测一些敏感信息的话可以修改 task.getResult() 里的属性。
参考 FingerProbe.java 或 InfoProbe.java。
target
爬虫爬取到的 URL 对象。
fetcher crawlerPage
http 请求对象(不建议使用)。
漏洞扫描插件
漏洞扫描插件会在,扫描任务中勾选“漏洞攻击模块”时调用。
漏洞扫描插件分为三种
1.独立插件
独立的漏洞扫描插件需要继承 AbstractExploit 并使用 @Plugin 或 @Exploit
AbstractExploit 中有以下需要了解的方法和属性。
requests
http / https 发包工具
target 当前扫描任务的地址。
task
当前扫描任务对象。
check()
check 是一个抽象方法,需要被子类强制重写。
该方法一般用于检验是否符合当前漏洞扫描插件的规则,以免产生多与请求。
attack()
attack 也是一个抽象方法,需要被子类强制重写。
该方法是检测漏洞的主方法。
before()
在 attack 方法前执行
after()
在 attack 方法后执行
addVulnerable()
当插件检测出漏洞时,可以通过调用 addVulnerable() 方法来向数据库插入一条漏洞。
fetcher crawlerPage
http 请求对象(不建议使用)。
2.漏洞规则
位于
实际上这是一个“内部插件”,会在勾选漏洞模块攻击时调用。
有一些漏洞检测方法很简单,只通过简单的判断响应体就能识别出来,也就没有必要再去写一个独立的插件而占用空间了。
在 doSwitch() 方法中会先去根据当前任务的指纹识别结果走一遍 switch 流程。
swtich 的每一个 case 都是 WEB 指纹的枚举对象。
当 switch 找到当前任务 WEB 指纹对应的 case 后,case 内的代码会通过构建一个漏洞规则添加到 loaders 集合里。
如果规则是通用的,可以写在 switch 的外面。
3.kunpeng JSON插件
kunpeng 是一个 go 语言编写的 poc 测试框架,这里我对 kunpeng 的 JSON 插件做了一个支持。
只需要按照 kunpeng json 插件的格式规范创建一个 json 文件到 /resources/json 目录。
在扫描任务勾选“漏洞攻击模块”时会被调用,或通过 MVC 插件调用 。
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 地址为方法名。
例如
最后还需要在 /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 中的完全实现。
我将它的调用过程写成了一个交互式插件。
你可以通过在 /resources/python/ 目录下安装如下规范去创建一个 python 文件。
在这个 python 文件中需要写两个方法。
关于注解
@Rule
一般用在“可交互插件”和“无交互插件”类上。
@Plugin
WEB指纹
这里顺便再说一下如何添加指纹库。
指纹库位于 base 模块,是一个枚举类。
可以在首部或尾部添加一条新的枚举,尽量使用 $ 开头。
第一个参数是 指纹的名称,如果第二个参数是 String 类型则是该指纹的说明。
FingerBean 类是指纹匹配对象。
1、Kali Linux
不使用Kali Linux作为基本渗透测试操作系统,算不上真正的黑客。Kali Linux是基于Debian的Linux发行版,
设计用于数字取证操作系统。每一季度更新一次。由Offensive Security Ltd维护和资助。最先由Offensive Security的Mati
Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版 。
Kali Linux的前身是BackTrack
Linux,有进攻性安全部门的专业人士维护,它在各个方面都进行了优化,可以搭脊举作为进攻性渗透测试工具使用。
2、Nmap
Nmap是发现企业网络中任何类型的弱点或漏洞的绝佳工具,它也是审计的很好工具。该工具的作用是获取原始数据包并确定哪些主机在网络的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。Nmap对渗透测试过程的任何阶段都很有用并且还是免费的。
3、Wireshark
Wireshark是一个无处不在的工具,可用于了解通过网络的流量。虽然通常用于深入了解日常TCP/IP连接问题,但Wireshark支持对数百种协议的分析,包括对其中许多协议的实时分析和解密支持。如果不熟悉渗透测试,Wireshark是一个必须学习的工具。
4、John the Ripper
John the
Ripper是一个很流行的密码破解工具,是渗透测试工具包中的一个很必要的补充。它可以用来确定数据库中的未知弱点,通过从传统字典中找到的复杂和流行的单词列表,获知碧取文本字符样本,并用与正在生成的密码相同的格式,对其进行加密来达到目的。
5、Hashcat
Hashcat自称世界上最快和最先进的密码恢复应用程序,可能并不是谦虚,懂Hashcat的人肯定知道它的价值。Hashcat让John the
Ripper一筹莫展。它是破解哈希的首选渗透测试工具,Hashcat支持多种密码猜测暴力攻击,包括字典和掩码攻击。
6、Hydra
Hydra在需要在线破解密码时发挥作用,例如SSH或FTP登录、IMAP、IRC、RDP等等。将Hydra指向你想破解的服务,如果你愿意,可以给它传递一个单词列表,然后扣动扳机。像Hydra这样的工具提醒人野尺们为什么限制密码尝试和在几次登录尝试后断开用户连接可以成功地防御攻击者。
7、Sqlmap
Sqlmap,是非常有效的开源的SQL注入工具,并且自动化检测和利用SQL注入缺陷并接管数据库服务器的过程,就像它的网站所说的那样。Sqlmap支持所有常用目标,包括MySQL、oracle、PostgreSQL、Microsoft
SQL、server等。
JAVA编程常用的软件:
1、Intellij IDEA
Intellij IDEA是当前Java开发人员呼声很高的一款IDE,具有美观,高效等众穗渣铅多特点,小编还是非常喜欢的,所以以往我都是在自己电脑安装这款软猜好件的。
2、Eclipse
Eclipse是免费的,这点很重要,所以大多公司里依然是使用eclipse这款IDE,而且它良好的性能,也在市场占着不小的比重。
3、MyEclipse
MyEclipse是同eclipse一个公司的,在功能上增加了不少,相对于eclipse来说,myeclipse更像将eclipse中好多插件都集成起来了,当然,性能上面也有更好的考虑,不过这款IDE是收费的。
4、NetBeans
NetBeans是甲骨文公司生产的IDE,在其中也内置了许多功能,相对于idea和eclipse市场还是较少的。
5、JDK
JDK是Java语言必备的工具,我们代码编写、编译、运行都是依靠jdk来帮助我们运作,jdk是编写Java代码的根基。梁者
标签:java渗透工具编写
已有4位网友发表了看法:
访客 评论于 2023-04-13 17:36:09 回复
代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。2、MyEclipse:MyEclip
访客 评论于 2023-04-13 22:08:02 回复
python 文件中需要写两个方法。 关于注解 @Rule 一般用在“可交互插件”和“无交互插件”类上。 @Plugin WEB指纹 这里顺便再说一下如何添加指纹库。 指纹库位于 base 模块,是一个枚举类。 可以在首部或尾部添加一条新的枚举
访客 评论于 2023-04-13 21:34:09 回复
H环境变量。7.全面测试。现在您应该可以打开另一个MS-DOS窗口并键入javac了。java程序是用什么软件编写的啊?JAVA编程常用的软件:1、Eclipse:Eclip
访客 评论于 2023-04-13 15:45:20 回复
,这里我对 kunpeng 的 JSON 插件做了一个支持。 只需要按照 kunpeng json 插件的格式规范创建一个 json 文件到 /resources/json 目录。 在扫描任务勾选“漏洞攻击模块”时会被调用,或通过 MVC 插件调用 。 MVC 插件 位于 MV