介绍
近些年来,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] 黑客接单网
DC0x03 修复建议cd cWindows Embedded Standard 7 for x64你好,网堵输钱了有好的建议追回吗?谢谢!, CVE-2019-3971: DoS (CmdVirth...
FuzzVul.java里边有两个函数,checkGet和checkPost函数,我依照http协议类型分的,这里边又分为几种,按不同的编码方法,咱们不仅仅满足于检测sql注入,像xss啊,乃至于im...
print 'response code: ' + str(r.status_code)在完成操控脚本的进程中,HackRF存在的两个严峻约束:一方面HackRF运用USB通讯接口决议了它的通讯推迟巨...
在《内存办理技能的详细完结介绍》一文中,我解说了像JavaScript这样的内存办理言语是怎么作业的,我还解说了手动内存办理怎么在C言语中作业。 例如,当你在JS中创立变量时,引擎有必要判别这是什么样...
代码剖析Proxy——是一个阻拦HTTP/S的署理服务器,作为一个在阅读器和方针运用程序之间的中间人,答应你阻拦,检查,修改在两个方向上的原始数据流。 对应代码从缝隙剖析和运用的进程来看,大疆在规划无...
要利用此漏洞,攻击者需要通过RDP向目标系统远程桌面服务发送送一个经过特殊设计请求。 1. 在Windows操作系统启用了Remote Desktop Services远程桌面服务,且未及时安装更新...