怎么经过乱用SSL TLS绕过Web应用程序防火墙

介绍 近些年来,Web安全现已逐步变成了IT安全范畴里十分重要的一个部分。Web运用的优势就在于开发人员能够在较短的时间内集成各种要害服务,并且保护难度也比传统的桌面端运用程序要低许多。除...


介绍
近些年来,Web安全现已逐步变成了IT安全范畴里十分重要的一个部分。Web运用的优势就在于开发人员能够在较短的时间内集成各种要害服务,并且保护难度也比传统的桌面端运用程序要低许多。除了规划新的Web规范之外,企业对Web运用的安全需求也在不断改变。在这篇文章中,咱们将跟我们介绍一种针对防火墙的新式绕过技能。
缝隙布景
近期,我对某公司的网络防火墙进行了测验,该公司所布置的基础设施架构如下:

当我拿到我所需求的数据信息之后,我计划测验一些不同的绕过办法来对其基础设施进行浸透测验。除了一些惯例的WAF测验办法之外,我预备运用SSL Cypher来绕过WAF。当我第一次登录WAF时,体系弹出了一个“Unsupported SSL Ciphers”正告信息,这就十分有意思了,查看了具体的产品文档之后,我获取到了该设备支撑的一切SSL Cypher,但是在开端之前我想跟我们简略介绍一下SSL衔接的作业机制。
SSL握手由下面三个首要进程组成:
ClientHello/ServerHello阶段
握手进程由客户端发送的ClientHello音讯开端,这条音讯包含了服务器端需求的悉数信息。服务器端遭到衔接音讯之后会呼应一条ServerHello音讯,其间包含了客户端所需求的信息。除此之外,服务器还会回来需求运用到的相关Cypher套件版别以及SSL版别。
证书交流
衔接初始化完结之后,服务器需求向客户端供给身份验证信息,服务器会给客户端发送SSL证书,客户端会验证证书的实在性,并确认是否能够信赖该证书,然后持续完结衔接。
密钥交流
此刻安全信道以树立成功,服务器和客户端会交流用于加密和解密数据的密钥。
进犯思路
我的进犯思路如下:假如我运用一个“不被WAF支撑”的SSL Cypher来跟方针Web服务器进行初始化衔接,而这个Web服务器实际上是支撑这个Cypher版别的,那么WAF就无法辨认我所进行的进犯了,由于它无法查看到实在的恳求数据。
因而,在查看了防火墙厂商所供给的具体技能文档之后,我提取出了一切支撑的SSL Cypher,相关内容如下所示。
SSLv3
SSL_RSA_WITH_NULL_MD5
SSL_RSA_WITH_NULL_SHA
SSL_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_DES_CBC_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSL_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
TLS/1.0-1.2
TLS_RSA_WITH_NULL_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_EXPORT1024_WITH_RC4_56_MD5
TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_RC4_128_MD5= { 0x000x04 }
TLS_RSA_WITH_RC4_128_SHA= { 0x000x05 }
TLS_RSA_WITH_DES_CBC_SHA= { 0x000x09 }
接下来要做的便是辨认方针Web服务器所支撑的SSL Cypher了,这一步有许多种办法能够完成,但我挑选运用sslscan这款东西,由于它装置起来比较简略,并且还能够供给十分多的具体数据。
pwn@thinkpad:~$sudo apt install sslscan
Readingpackage lists... Done
Buildingdependency tree      
Readingstate information... Done
Thefollowing NEW packages will be installed:
  sslscan
0upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Needto get 26,7 kB of archives.
Afterthis operation, 81,9 kB of additional disk space will be used.
Get:1http://al.archive.ubuntu.com/ubuntu bionic/universe amd64 sslscan amd641.11.5-rbsec-1.1 [26,7 kB]
Fetched26,7 kB in 0s (73,8 kB/s) 
Selectingpreviously unselected package sslscan.
(Readingdatabase ... 177002 files and directories currently installed.)
Preparingto unpack .../sslscan_1.11.5-rbsec-1.1_amd64.deb ...
Unpackingsslscan (1.11.5-rbsec-1.1) ...
Processingtriggers for man-db (2.8.3-2) ...
Settingup sslscan (1.11.5-rbsec-1.1) ...
pwn@thinkpad:~$sslscan http://target/ | grep Accept
上述指令能够列举出方针Web服务器支撑的一切SSL/TLS版别以及Cypher。经过将sslscan的扫描结果与产品文档数据进行比照之后,我发现了Web运用防火墙不支撑但Web服务器支撑的Cypher:
Accepted TLSv1 256 bits ECDHE-RSA-AES256-SHA
为了测验我的进犯思路是否正确,我创建了一条WAF规矩,它会屏蔽恳求途径为/ssl-cipher-test的网络恳求。
拜访这条途径之后,衔接便会被成功屏蔽:

运用这种绕过技能的最快办法便是指定客户端所运用的Cypher,只留下一个就能够了。你能够运用curl的“—ciphers”指令来指定需求运用的Cypher,这儿我指定运用ECDHE-RSA-AES256-SHA:

[1] [2]  黑客接单网

  • 发表于 2021-04-08 12:19
  • 阅读 ( 200 )
  • 分类:互联网

0 条评论

请先 登录 后评论
扣1416
扣1416

723 篇文章

你可能感兴趣的文章

相关问题