Kali Linux Web渗透测试手册(第二版) - 2.5 - 识别HTTPS加密参数
翻译来自 : 掣雷小组
成员信息:
thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,
标记红色的部分为今日更新内容。
第二章:侦察
介绍
2.1、被动信息收集
2.2、使用Recon-ng收集信息
2.3、使用Nmap扫描和识别应用服务
2.4、识别web应用防火墙
2.5、识别HTTPS加密参数
2.6、使用浏览器的开发工具分析和更改基本行为
2.7、获取和修改cookie
2.8、利用robots.txt
2.5、识别HTTPS加密参数
在某种程度上,我们习惯于假设,当连接使用带有SSL/TLS加密的HTTPS时,它是安全的,任何拦截它的攻击者只会收到一系列无意义的数字。当然,这可能不是绝对正确的,这需要正确地配置HTTPS服务器,以提供强大的加密层,并保护用户免受中间人(MITM)攻击或密码分析。在SSL协议的实现和设计中发现了许多漏洞,并且发现其继任者TLS在某些配置下也很脆弱,因此在任何web应用程序渗透测试中都必须对安全连接进行测试。
在这小节中,我们将使用诸如Nmap、SSLScan和TestSSL等工具来分析服务器的配置(从客户机的角度),以确保其安全通信。
准备
我们将在此“秘籍”中使用的工具之一TestSSL,他在Kali Linux中并没有默认安装,但是可以在它的软件存储库中使用。我们需要配置我们的KaliVM来使用NAT网络适配器以允许它进行internet访问,并在终端中执行以下命令:
# apt update
# apt install testssl
在安装TestSSL后,将网络适配器更改为仅主机,以便你可以与脆弱的虚拟机通信。
怎么做…
根据我们在前面的“秘籍”中所做的扫描,vm_1有一个运行在端口443上的HTTPS服务;来让我们看看它是否安全:
1.使用Nmap查询HTTPS站点支持的协议和密码,我们需要扫描HTTPS端口并使用脚本 ssl-enum-ciphers :
# nmap -sT -p 443 --script ssl-enum-ciphers 192.168.56.11
2.SSLScan是一个命令行工具,用于评估服务器的SSL/TLS配置。要使用它,我们只需要添加服务器的IP地址或主机名( sslscan 192.168.56.11) :
3.TestSSL显示了比Nmap或SSLScan更详细的输入;它的基本用法只需要我们将目标附加到命令行中的命令。它还允许导出输出到多种格式,如CSV、JSON或HTML ( testssl 192.168.56.11 ):
它是如何工作的…
Nmap、SSLScan和TestSSL通过尝试不同的密码套件和客户端配置来测试它接受什么,从而建立到目标HTTPS服务器的多个连接来工作。在这三个工具所显示的结果中,我们可以看到一些可以放置加密通信的问题:使用SSLv3。SSL协议自2015年以来就被弃用了,它有固有的漏洞,使得它容易受到多种攻击,比如Sweet32(https://sweet32)
POODLE (https://www.openssl.org/~bodo/ssl-poodle.pdf)
使用RC4和DES密码以及SHA和MD5哈希。RC4和DES加密算法现在被认为是加密能力较弱的,SHA和MD5哈希算法也是如此。这是由于现代计算机处理能力的提高以及这些算法可以在相当长的一段时间内被攻破的事实。使用TLS 1.0。TLS是SSL的后续版本,其当前版本为1.2。虽然TLS 1.1仍然被认为是可接受的,但是在服务器中允许TLS 1.0被认为是一种糟糕的实践或安全问题。证书是自签名的,使用弱签名算法(SHA1), RSA密钥不够强大(1024位)。当浏览器使用HTTPS连接到服务器时,它们交换关于浏览器可以使用哪些密码以及服务器支持哪些密码的信息,然后同意使用两者共同的更高的复杂性。如果MITM攻击是针对配置不佳的HTTPS服务器执行的,攻击者可以通过说客户端只支持最弱的密码套件(比如SSLv2上的56位DES)来欺骗服务器,然后攻击者截获的通信将用一种算法加密,这种算法可能在几天或几个小时内就会被现代计算机破坏。
另请参阅…
这里显示的工具并不是唯一能够从SSL/TLS连接检索密码信息的工具。Kali Linux中还包含另一个名为SSLyze的工具,它可以用作替代工具,有时还可以为我们的测试提供额外的结果:
- SSLyze –regular www.example.com
- SSL/TLS信息也可以通过OpenSSL命令获得:
- OpenSSL s_client -connectwww2.example.com:443