深度开发:
使用深度强化学习的全自动渗透测试工具
概述:
DeepExploit是与Metasploit连接的全自动渗透测试工具。
DeepExploit标识目标服务器上所有打开端口的状态,并使用机器学习在pinpoint执行攻击。它的主要特点如下。
ex)有效的执行攻击
DeepExploit可以使用机器学习在精确位置(至少1次尝试)执行漏洞攻击。ex)深穿透。
- 如果DeepExploit成功利用目标服务器的漏洞,它将进一步对其他内部服务器执行该漏洞利用。
自学。
DeepExploit可以自己学习如何开发(使用强化学习)
人类没有必要准备学习数据。ex)学习时间很快
一般来说,强化学习需要很多时间
因此,DeepExploit使用多代理的分布式学习.
我们采用了一种先进的机器学习模型A3Cex)强大的情报收集
收集目标服务器上运行的软件的信息对于成功开发是非常重要的。DeepExploit可以使用以下方法识别产品名称和版本- 1端口扫描
- 2机器学习(分析Web爬网收集的HTTP响应)
- 3内容探索
“深度开发”能力。
当前的DeepExploit版本是测试版
但是,它可以完全自动执行以下操作:
ex)情报搜集
ex)威胁建模
ex)脆弱性分析
ex)剥削
ex)后剥削
ex)报告
好处
通过使用我们的深度开发,您将从以下方面受益
对于戊酯:
(a)它们可以大大提高测试效率。
(b)pentester使用DeepExploit的次数越多,DeepExploit就学习如何使用机器学习进行开发的方法。从而提高了测试的准确性
信息安全人员:
(c)它们可以快速识别自己服务器的漏洞。因此,要防止攻击者利用漏洞攻击您的服务器,并通过避免攻击后的负面媒体报道来保护您的声誉。
由于对服务器的攻击方法日新月异,不能保证昨天的安全对策在今天是安全的。要迅速发现薄弱环节,采取应对措施。我们的深入开发将大大有助于保护您的安全
注意 |
---|
如果您感兴趣,请在您控制的环境中使用,并自行承担风险。而且,如果您在不受您控制的系统上执行DeepExploit,则可能会将其视为攻击,并且您可能对自己的行为承担法律责任。 |
系统组件
DeepExploit由机器学习模型(A3C)和Metasploit组成
A3C通过RPC API对目标服务器执行攻击。
A3C是由著名的基于Python的ML框架Keras和Tensorflow开发的。它是利用深度强化学习进行自我学习的一种方法。自学习的结果被存储到可重用的学习数据中
Metasploit是世界上最著名的渗透测试工具。它用于根据来自A3C的指令对目标服务器执行攻击。
怎么练习?
DeepExploit使用先进的机器学习模型A3C学习如何自行开发。
A3C由多个神经网络组成。.
该模型接收训练服务器的操作系统类型、产品名称、产品版本等信息作为神经网络的输入,并根据输入信息输出有效载荷。关键是,当该模型根据输入信息输出最优负载时,开发是成功的。
在训练中,该模型通过Metasploit对训练服务器执行10000多次攻击,同时更改输入信息的组合。该模型根据开发结果(回报)对神经网络权值进行更新,逐步优化神经网络。
训练后,该模型能根据输入信息输出最优载荷。
为了缩短训练时间,采用多线程技术进行训练。
因此,通过使用各种训练服务器进行学习,DeepExploit可以根据不同的情况执行准确的开发
- ex)培训服务器
metasploitable2
metasploitable3
其他
处理流程:
第一步。情报搜集。
情报搜集电影端口扫描
DeepExploit使用Nmap收集目标服务器信息,如操作系统类型、打开的端口、产品名称、产品版本。作为Nmap结果,DeepExploit可以提取以下信息
ex)Nmap的扫描结果:Idx | OS | Port# | product | version |
---|---|---|---|---|
1 | Linux | 21 | vsftpd | 2.3.4 |
2 | Linux | 22 | ssh | 4.7p1 |
3 | Linux | 23 | telnet | - |
4 | Linux | 25 | postfix | - |
5 | Linux | 53 | bind | 9.4.2 |
6 | Linux | 80 | apache | 2.2.8 |
7 | Linux | 5900 | vnc | 3.3 |
8 | Linux | 6667 | irc | - |
9 | Linux | 8180 | tomcat | - |
Web端口检查
因此,如果80S8180等web端口被打开,那么DeepExploit将在下面的检查中执行
内容发现通过DeepExploit执行内容探索,它可以使用找到的产品的默认内容来识别Web产品。
内容勘探结果:
Idx | Port# | found content | product |
---|---|---|---|
1 | 80 | /server-status | apache |
2 | 80 | /wp-login.php | wordpress |
3 | 8180 | /core/misc/drupal.init.js | drupal |
4 | 8180 | /CFIDE/ | coldfusion |
DeepExploit使用Scrapy从Web端口上的Web应用程序收集大量HTTP响应。
并且,通过DeepExploit使用签名(字符串匹配模式)和机器学习对收集到的HTTP响应进行分析,可以识别Web产品
HTTP响应示例如下:
HTTP/1.1 200 OK Date: Tue, 06 Mar 2018 06:56:17 GMT Server: OpenSSL/1.0.1g Content-Type: text/html; charset=UTF-8 Set-Cookie: f00e68432b68050dee9abe33c389831e=0eba9cd0f75ca0912b4849777677f587; path=/; Etag: "409ed-183-53c5f732641c0" …snip… <form action="/example/confirm.php">
通过DeepExploit使用签名,它可以轻松识别OpenSSL和PHP两种产品。
Server: OpenSSL/1.0.1g confirm.php
此外,通过深度开发利用机器学习,它可以识别出更多的产品,Joomla!还有阿帕奇。。
Set-Cookie: f00e68432b68050dee9abe33c389831e=0eba9cd0f75ca0912b4849777677f587;
这是Joomla的特写
Etag: "409ed-183-53c5f732641c0"
这是Apache的特性
在此之前,通过DeepExploit使用机器学习(Naive Bayes)学习这些特性,它可以识别无法通过签名识别的产品
第二步。剥削。
DeepExploit使用经过训练的数据和标识的产品信息对第一个目标服务器执行攻击
它可以在精确位置执行攻击(至少一次尝试)
如果DeepExploit成功利用此漏洞,则DeepExploit和第一个目标服务器之间的会话将打开
第三步。后剥削。
在步骤2中,DeepExploit使用打开的会话执行旋转。
之后,没有直接连接到内部服务器的DeepExploit可以通过第一个服务器(=受攻击的服务器)执行攻击。因此,DeepExploit正在通过受损服务器在内部服务器中重复步骤1到步骤3。
第四步。生成报告
DeepExploit生成一个扫描报告,总结漏洞。
报告样本如下:
*声明文章转自13o由kgjoylcy编译