CATSploit:一款基于CATS的自动化渗透测试执行工具

2024-03-31 09:04

本文主要是介绍CATSploit:一款基于CATS的自动化渗透测试执行工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于CATSploit

CATSploit是一款基于CATS的自动化渗透测试执行工具,该工具基于网络攻击技术评分(CATS)方法实现其功能,可以在无需渗透测试人员操作的情况下,自动对目标应用执行安全渗透测试。

在执行渗透测试的过程中,广大安全研究人员首先需要针对目标系统的特征选择合适的测试技术,而CATSploit能够使用扫描工具收集目标系统的各种信息,其中包括操作系统、开放端口和软件版本等,并计算目标系统的各种安全评分。通过分析和选择适当的测试向量,CATSploit能够帮助我们在不具备专业渗透测试技术的情况下选择最合适的方法对目标系统执行自动化渗透测试。

工具运行机制

CATSploit能够按照下列操作序列自动执行渗透测试任务:

1、信息收集和输入之前收集的信息:首先,该工具会收集目标系统的相关信息。CATSploit不仅支持使用nmap和OpenVAS来收集目标系统的信息,还支持输入预先收集的目标系统信息;

2、计算渗透测试技术得分值:使用前一阶段获得的信息和渗透测试技术数据库,计算每种渗透测试技术的捕获性(eVc)和可探测性(eVd)评估值。对于每个目标设备,计算每个渗透测试技术的值;

3、渗透测试技术选择:通过使用之前的评分并根据预定义的策略选择渗透测试技术并创建渗透测试场景;

4、渗透测试执行:CATSploit可以根据前一阶段构建的渗透测试场景执行渗透测试技术。除此之外,CATSploit还会使用Metasploit框架和Metasploit API来执行实际的渗透测试;

工具要求

Kali Linux 2023.2a

Python

工具安装

Kali Linux发行版默认会安装好Metasploit、Nmap、OpenVAS和Python环境。

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

$ git clone https://github.com/catsploit/catsploit.git

然后切换到项目目录中,配置好工具帮助组件,并执行工具安装脚本即可:

$ cd catsploit$ git clone https://github.com/catsploit/cats-helper.git$ sudo ./setup.sh

工具配置

CATSploit需要进行服务器和客户端配置,服务器会在启动时读取JSON配置文件config.json,我们需要根据实际情况修改相关数据:

DBMS

dbname: CATSploit的数据库名称user: PostgreSQL的用户名password: PostgreSQL的密码host: 如果你的数据库托管在远程主机,则指定远程主机的IP地址

SCENARIO

generator.maxscenarios: 需要计算的最大渗透测试场景数量 (*)

ATACKPF

msfpassword: MSFRPCD的密码openvas.user: PostgreSQL的用户名openvas.password: PostgreSQL的密码openvas.maxhosts: 同时测试的主机数最大数量 (*)openvas.maxchecks: 同时测试的条目数最大数量 (*)

ATTACKDB

attack_db_dir: 存储AtackSteps 的文件夹路径

其中(*)标记的参数需要根据研究人员设备情况调整。

工具使用

下列命令可启动CATSploit服务器:

$ python cats_server.py -c [CONFIG_FILE]

接下来,打开另一个命令行终端,开启客户端程序,并初始化与服务器端的连接:

$ python catsploit.py -s [SOCKET_PATH]

成功连接服务器后,初始化工具,会话将会启动:

_________  ___________       __      _ __/ ____/   |/_  __/ ___/____  / /___  (_) /_/ /   / /| | / /  \__ \/ __ \/ / __ \/ / __// /___/ ___ |/ /  ___/ / /_/ / / /_/ / / /_\____/_/  |_/_/  /____/ .___/_/\____/_/\__//_/[*] Connecting to cats-server[*] Done.[*] Initializing server[*] Done.catsploit>

客户端可以执行多种命令,每一个命令都可以使用-h选项来查看对应的帮助信息:

usage: [-h] {host,scenario,scan,plan,attack,post,reset,help,exit} ...positional arguments:{host,scenario,scan,plan,attack,post,reset,help,exit}options:-h, --help       显示工具帮助信息和退出

下面给出的是该工具的常用命令参数信息:

host list:show information about the hostsusage:  host list [-h]options:-h, --help       显示命令帮助信息和退出host detail:show more information about one hostusage:  host detail [-h] host_idpositional arguments:host_id          要查看信息的主机IDoptions:-h, --help       显示命令帮助信息和退出scenario list:show information about the scenariosusage:  scenario list [-h]options:-h, --help       显示命令帮助信息和退出scenario detail:show more information about one scenariousage:  scenario detail [-h] scenario_idpositional arguments:scenario_id      要查看信息的场景IDoptions:-h, --help       显示命令帮助信息和退出scan:run network-scan and security-scanusage:  scan [-h] [--port PORT] target_host [target_host ...]positional arguments:target_host      要扫描的IP地址options:-h, --help       显示命令帮助信息和退出--port PORT      要扫描的端口plan:planning attack scenariosusage:  plan [-h] src_host_id dst_host_idpositional arguments:src_host_id      源主机dst_host_id      目标主机options:-h, --help       显示命令帮助信息和退出attack:execute attack scenariousage:  attack [-h] scenario_idpositional arguments:scenario_id      需要执行的渗透测试场景IDoptions:-h, --help       显示命令帮助信息和退出post find-secret:find confidential information files that can be performed on the pwned hostusage:  post find-secret [-h] host_idpositional arguments:host_id          需要寻找凭证信息的主机IDoptions:-h, --help       显示命令帮助信息和退出reset:reset data on the serverusage:  reset [-h] {system} ...positional arguments:{system}         重置系统options:-h, --help  显示命令帮助信息和退出exit:exit CATSploitusage:  exit [-h]options:-h, --help  显示命令帮助信息和退出

工具使用样例

在下面的演示样例中,我们将使用CATSploit扫描目标网络,并计划渗透测试策略和场景,最终执行渗透测试:

catsploit> scan 192.168.0.0/24Network Scanning ... 100%[*] Total 2 hosts were discovered.Vulnerability Scanning ... 100%[*] Total 14 vulnerabilities were discovered.catsploit> host list┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓┃ hostID   ┃ IP             ┃ Hostname ┃ Platform                         ┃ Pwned ┃┡━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩│ attacker │ 0.0.0.0        │ kali     │ kali 2022.4                      │ True  ││ h_exbiy6 │ 192.168.0.10   │          │ Linux 3.10 - 4.11                │ False ││ h_nhqyfq │ 192.168.0.20   │          │ Microsoft Windows 7 SP1          │ False │└──────────┴────────────────┴──────────┴──────────────────────────────────┴───────┘catsploit> host detail h_exbiy6┏━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━┓┃ hostID   ┃ IP           ┃ Hostname ┃ Platform     ┃ Pwned ┃┡━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━┩│ h_exbiy6 │ 192.168.0.10 │ ubuntu   │ ubuntu 14.04 │ False │└──────────┴──────────────┴──────────┴──────────────┴───────┘[IP address]┏━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━┓┃ ipv4         ┃ ipv4mask ┃ ipv6 ┃ ipv6prefix ┃┡━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━╇━━━━━━━━━━━━┩│ 192.168.0.10 │          │      │            │└──────────────┴──────────┴──────┴────────────┘[Open ports]┏━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃ ip           ┃ proto ┃ port ┃ service     ┃ product      ┃ version                    ┃┡━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩│ 192.168.0.10 │ tcp   │ 21   │ ftp         │ ProFTPD      │ 1.3.5                      ││ 192.168.0.10 │ tcp   │ 22   │ ssh         │ OpenSSH      │ 6.6.1p1 Ubuntu 2ubuntu2.10 ││ 192.168.0.10 │ tcp   │ 80   │ http        │ Apache httpd │ 2.4.7                      ││ 192.168.0.10 │ tcp   │ 445  │ netbios-ssn │ Samba smbd   │ 3.X - 4.X                  ││ 192.168.0.10 │ tcp   │ 631  │ ipp         │ CUPS         │ 1.7                        │└──────────────┴───────┴──────┴─────────────┴──────────────┴────────────────────────────┘[Vulnerabilities]┏━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓┃ ip           ┃ proto ┃ port ┃ vuln_name                                                           ┃ cve            ┃┡━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩│ 192.168.0.10 │ tcp   │ 0    │ TCP Timestamps Information Disclosure                               │ N/A            ││ 192.168.0.10 │ tcp   │ 21   │ FTP Unencrypted Cleartext Login                                     │ N/A            ││ 192.168.0.10 │ tcp   │ 22   │ Weak MAC Algorithm(s) Supported (SSH)                               │ N/A            ││ 192.168.0.10 │ tcp   │ 22   │ Weak Encryption Algorithm(s) Supported (SSH)                        │ N/A            ││ 192.168.0.10 │ tcp   │ 22   │ Weak Host Key Algorithm(s) (SSH)                                    │ N/A            ││ 192.168.0.10 │ tcp   │ 22   │ Weak Key Exchange (KEX) Algorithm(s) Supported (SSH)                │ N/A            ││ 192.168.0.10 │ tcp   │ 80   │ Test HTTP dangerous methods                                         │ N/A            ││ 192.168.0.10 │ tcp   │ 80   │ Drupal Core SQLi Vulnerability (SA-CORE-2014-005) - Active Check    │ CVE-2014-3704  ││ 192.168.0.10 │ tcp   │ 80   │ Drupal Coder RCE Vulnerability (SA-CONTRIB-2016-039) - Active Check │ N/A            ││ 192.168.0.10 │ tcp   │ 80   │ Sensitive File Disclosure (HTTP)                                    │ N/A            ││ 192.168.0.10 │ tcp   │ 80   │ Unprotected Web App / Device Installers (HTTP)                      │ N/A            ││ 192.168.0.10 │ tcp   │ 80   │ Cleartext Transmission of Sensitive Information via HTTP            │ N/A            ││ 192.168.0.10 │ tcp   │ 80   │ jQuery < 1.9.0 XSS Vulnerability                                    │ CVE-2012-6708  ││ 192.168.0.10 │ tcp   │ 80   │ jQuery < 1.6.3 XSS Vulnerability                                    │ CVE-2011-4969  ││ 192.168.0.10 │ tcp   │ 80   │ Drupal 7.0 Information Disclosure Vulnerability - Active Check      │ CVE-2011-3730  ││ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Report Vulnerable Cipher Suites for HTTPS                  │ CVE-2016-2183  ││ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Report Vulnerable Cipher Suites for HTTPS                  │ CVE-2016-6329  ││ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Report Vulnerable Cipher Suites for HTTPS                  │ CVE-2020-12872 ││ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Deprecated TLSv1.0 and TLSv1.1 Protocol Detection          │ CVE-2011-3389  ││ 192.168.0.10 │ tcp   │ 631  │ SSL/TLS: Deprecated TLSv1.0 and TLSv1.1 Protocol Detection          │ CVE-2015-0204  │└──────────────┴───────┴──────┴─────────────────────────────────────────────────────────────────────┴────────────────┘[Users]┏━━━━━━━━━━━┳━━━━━━━┓┃ user name ┃ group ┃┡━━━━━━━━━━━╇━━━━━━━┩└───────────┴───────┘catsploit> plan attacker h_exbiy6Planning attack scenario...100%[*] Done. 15 scenarios was planned.[*] To check each scenario, try 'scenario list' and/or 'scenario detail'.catsploit> scenario list┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃ scenario id ┃ src host ip ┃ target host ip ┃ eVc   ┃ eVd   ┃ steps ┃ first attack step             ┃┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩│ 3d3ivc      │ 0.0.0.0     │ 192.168.0.10   │ 1.0   │ 32.0  │ 1     │ exploit/multi/http/jenkins_s… ││ 5gnsvh      │ 0.0.0.0     │ 192.168.0.10   │ 1.0   │ 53.76 │ 2     │ exploit/multi/http/jenkins_s… ││ 6nlxyc      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 48.32 │ 2     │ exploit/multi/http/jenkins_s… ││ 8jos4z      │ 0.0.0.0     │ 192.168.0.10   │ 0.7   │ 72.8  │ 2     │ exploit/multi/http/jenkins_s… ││ 8kmmts      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 32.0  │ 1     │ exploit/multi/elasticsearch/… ││ agjmma      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 24.0  │ 1     │ exploit/windows/http/managee… ││ joglhf      │ 0.0.0.0     │ 192.168.0.10   │ 70.0  │ 60.0  │ 1     │ auxiliary/scanner/ssh/ssh_lo… ││ rmgrof      │ 0.0.0.0     │ 192.168.0.10   │ 100.0 │ 32.0  │ 1     │ exploit/multi/http/drupal_dr… ││ xuowzk      │ 0.0.0.0     │ 192.168.0.10   │ 0.0   │ 24.0  │ 1     │ exploit/multi/http/struts_dm… ││ yttv51      │ 0.0.0.0     │ 192.168.0.10   │ 0.01  │ 53.76 │ 2     │ exploit/multi/http/jenkins_s… ││ znv76x      │ 0.0.0.0     │ 192.168.0.10   │ 0.01  │ 53.76 │ 2     │ exploit/multi/http/jenkins_s… │└─────────────┴─────────────┴────────────────┴───────┴───────┴───────┴───────────────────────────────┘catsploit> scenario detail rmgrof┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┓┃ src host ip ┃ target host ip ┃ eVc   ┃ eVd  ┃┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━┩│ 0.0.0.0     │ 192.168.0.10   │ 100.0 │ 32.0 │└─────────────┴────────────────┴───────┴──────┘[Steps]┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓┃ # ┃ step                                  ┃ params                ┃┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩│ 1 │ exploit/multi/http/drupal_drupageddon │ RHOSTS: 192.168.0.10  ││   │                                       │ LHOST: 192.168.10.100 │└───┴───────────────────────────────────────┴───────────────────────┘catsploit> attack rmgrof> ~> ~> Metasploit Console Log> ~> ~[+] Attack scenario succeeded!catsploit> exitBye.

项目地址

CATSploit:【GitHub传送门】

这篇关于CATSploit:一款基于CATS的自动化渗透测试执行工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/863955

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截图任务,还能快速编辑、标注甚至保存多种格式的图片。这款工具能满足这些需求吗? PixPin不仅支持全屏、窗口、区域截图等基础功能,它还可以进行延时截图,让你捕捉到每个关键画面。不仅如此

如何使用Ansible实现CI/CD流水线的自动化

如何使用Ansible实现CI/CD流水线的自动化 持续集成(CI)和持续交付(CD)是现代软件开发过程中的核心实践,它们帮助团队更快地交付高质量的软件。Ansible,作为一个强大的自动化工具,可以在CI/CD流水线中发挥关键作用。本文将详细介绍如何使用Ansible实现CI/CD流水线的自动化,包括设计流水线的结构、配置管理、自动化测试、部署、以及集成Ansible与CI/CD工具(如Jen

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚