前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tsunami:一款功能强大的通用网络安全扫描工具

Tsunami:一款功能强大的通用网络安全扫描工具

作者头像
FB客服
发布2020-08-11 15:45:47
1.5K0
发布2020-08-11 15:45:47
举报
文章被收录于专栏:FreeBufFreeBuf

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所需的依赖组件:

代码语言:javascript
复制
nmap >= 7.80

ncrack >= 0.7

2、安装配置一个存在漏洞的并且是Tsunami可识别的应用程序,比如说一个存在身份验证漏洞的Jupyter Notebook服务器。最简单的方法就是直接使用一个Docker镜像:

代码语言:javascript
复制
docker run --name unauthenticated-jupyter-notebook -p 8888:8888 -d jupyter/base-notebook start-notebook.sh --NotebookApp.token=''

3、执行下列命令:

代码语言:javascript
复制
代码语言:javascript
复制
bash -c "$(curl -sfL https://raw.githubusercontent.com/google/tsunami-security-scanner/master/quick_start.sh)"
代码语言:javascript
复制
项目中的quick_start.sh脚本将会执行下列任务:

1、将下列两个项目克隆至本地主机的$HOME/tsunami/repos目录中:

代码语言:javascript
复制
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地址进行漏洞扫描。

扫描器构建和执行

切换到项目的根目录,并执行下列命令:

代码语言:javascript
复制
./gradlew shadowJar

命令执行完成之后,生成的扫描器jar文件将存储在main/build/libs目录内,命名为tsunami-main-[version]-cli.jar。这是一个Fat Jar文件,可以当作一个单独的代码库来使用。

如需执行扫描器,首先我们需要将插件安装在一个给定目录内,并且至少要安装一个PortScanner插件。假设插件安装在~/tsunami-plugins/目录内,那么你就需要使用下列命令来执行一次Tsunami扫描任务:

代码语言:javascript
复制
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/,那么该目录结构应该为:

代码语言:javascript
复制
$ 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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tsunami
  • Tsunami的必要性
  • 工具特性
    • 当前状态
    • 快速开始
    • 扫描器构建和执行
    • 安装Tsunami插件
    • 许可证协议
    • 项目地址
    相关产品与服务
    漏洞扫描服务
    漏洞扫描服务(Vulnerability Scan Service,VSS) 是一款自动探测企业网络资产并识别其风险的产品。依托腾讯二十年累积的安全能力,漏洞扫描服务能够对企业的网络设备及应用服务的可用性、安全性与合规性等进行定期的安全扫描、持续性风险预警和漏洞检测,并且为企业提供专业的修复建议,降低企业安全风险。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档