Tsunami:一款功能强大的通用网络安全扫描工具
Tsunami
Tsunami是一款功能强大的通用网络安全扫描工具,除此之外,它还是一个可扩展的插件系统,可以帮助广大安全研究人员以高可信度的方式检测和扫描高危严重漏洞。
Tsunami依赖于其功能强大的插件系统来给安全社区提供基本的漏洞扫描功能,所有公开可用的Tsunami插件都托管在一个独立的google/tsunami-security-scanner-plugins安全扫描插件库中。
Tsunami的必要性
当安全漏洞或错误配置被攻击者主动利用时,组织需要迅速作出反应,以保护潜在的易受攻击的资产。随着攻击者越来越多地投资于自动化,对新发布的高危严重漏洞作出反应的时间窗口通常以小时为单位。这对拥有数千甚至数百万互联网连接系统的大型组织来说是一个重大挑战。在这种超大规模的环境中,必须检测到安全漏洞,并以完全自动化的方式进行理想的补救。要做到这一点,信息安全团队需要有能力在极短的时间内实现并推出针对新的安全问题的检测器。为了解决这些挑战,我们创建了一个可扩展的网络扫描引擎Tsunami,它可以在未经验证的情况下以高可信度的形式检测到高危严重漏洞。
工具特性
Tsunami支持手动管理小规模漏洞集; Tsunami能够检测到高危安全漏洞(RCE等),这些漏洞通常利用率非常高; Tsunami生成的扫描结果可信度非常高,假阳性非常低; Tsunami探测器部署和实施都非常简单; Tsunami支持自定义功能扩展,运行速度快,抗干扰能力强;
当前状态
Tsunami的当前版本仍处于开发测试阶段(pre-alpha),仅供开发者预览。 Tsunami项目当前提供的API接口将随时发生变化。
快速开始
如需立即使用Tsunami的扫描功能,请按照下列步骤操作。
1、安装Tsunami所需的依赖组件:
nmap >= 7.80
ncrack >= 0.7
2、安装配置一个存在漏洞的并且是Tsunami可识别的应用程序,比如说一个存在身份验证漏洞的Jupyter Notebook服务器。最简单的方法就是直接使用一个Docker镜像:
docker run --name unauthenticated-jupyter-notebook -p 8888:8888 -d jupyter/base-notebook start-notebook.sh --NotebookApp.token=''
3、执行下列命令:
bash -c "$(curl -sfL https://raw.githubusercontent.com/google/tsunami-security-scanner/master/quick_start.sh)"
项目中的quick_start.sh脚本将会执行下列任务:
1、将下列两个项目克隆至本地主机的$HOME/tsunami/repos目录中:
google/tsunami-security-scanner
google/tsunami-security-scanner-plugins
2、编译所有的Google Tsunami插件,并将所有的插件jar文件移动到$HOME/tsunami/plugins目录内。
3、编译Tsunami扫描器Fat Jar文件,然后将其移动到$HOME/tsunami目录内。
4、将tsunami.yaml样本配置文件移动到$HOME/tsunami目录内。
5、输出样本Tsunami命令并使用之前生成的工具对127.0.0.1地址进行漏洞扫描。
扫描器构建和执行
切换到项目的根目录,并执行下列命令:
./gradlew shadowJar
命令执行完成之后,生成的扫描器jar文件将存储在main/build/libs目录内,命名为tsunami-main-[version]-cli.jar。这是一个Fat Jar文件,可以当作一个单独的代码库来使用。
如需执行扫描器,首先我们需要将插件安装在一个给定目录内,并且至少要安装一个PortScanner插件。假设插件安装在~/tsunami-plugins/目录内,那么你就需要使用下列命令来执行一次Tsunami扫描任务:
java
# Tsunami classpath, as of now plugins must be installed into classpath.
-cp "tsunami-main-[version]-cli.jar:~/tsunami-plugins/*"
# Specify the config file of Tsunami, by default Tsunami loads a tsunami.yaml
# file from there the command is executed.
-Dtsunami.config.location=/path/to/config/tsunami.yaml
# Main class for TsunamiCli.
com.google.tsunami.main.cli.TsunamiCli
# Scan target.
--ip-v4-target=127.0.0.1
# Scan output file and data format.
--scan-results-local-output-format=JSON
--scan-results-local-output-filename=/tmp/tsunami-result.json
安装Tsunami插件
正如前文所述,Tsunami插件必须安装在一个可以在运行时被Tsunami识别的目录内。这个目录可以是任意目录,只要该目录路径存在于Tsunami运行时类路径下即可。
一般来说,每一个Tsunami插件都是一个单独的jar文件,你可以将任何一个支持的jar插件文件放在这个目录内。比如说,如果插件安装目录为~/tsunami-plugins/,那么该目录结构应该为:
$ ls ~/tsunami-plugins
awesome-port-scanner.jar my-web-fingerprinter.jar weak-ssh-cred-detector.jar
wordpress-installation.jar exposed-jupyter-notebook.jar
许可证协议
Tsunami项目的开发与发布遵循Apache 2.0开源许可证协议。
项目地址
Tsunami:https://github.com/google/tsunami-security-scanner
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SSM 单体框架 - 前端开发:用户和权限模块
- Cnitch:一款Docker引擎运行进程权限检测工具
- SAP Spartacus BrowserPlatformLocation的初始化逻辑
- 重启 CentOS 7 系统后的 IP 地址问题
- SSM 单体框架 - 前端开发:用户权限控制,Nginx 和项目部署与发布
- 用 Python 制作飞机大战小游戏
- SSM 单体框架 - 前端开发:视频讲解
- MyBatis 的 `<if test="">` 语句里面使用反单引号的问题
- 30 个Python代码实现的常用功能,精心整理版
- Java 后台开发面试题分享一
- IDEA 报错:no tests were found 和 UnsupportedOperationException
- Angular sandbox项目的tsconfig.json内容一览
- Java 后台开发面试题分享二
- axios 进行同步请求(async+await)
- Axios 各种请求方式传递参数格式