IIS
Internet information services(IIS,以前称做Internet information server)互联网信息服务是Microsoft公司提供的可扩展WEB服务器,支持HTTP,HTTP/2,HTTPS,FTP,FPTS,SMTP professional,windows server 2003和后续版本一起发行。IIS目前只适用于windwos操作系统,不适用于其他操作系统。
缓冲区溢出漏洞
CVE-2009-3023
Microsoft IIS内嵌的FTP服务器中存在基于栈的缓冲区溢出漏洞。如果远程攻击者对带有特制名称的目录发布了包含有通配符的FTP NLST(NAME LIST)命令的话,就可以触发这个溢出,导致执行任意代码。仅在攻击者拥有写访问权限的情况下才可以创建带有特殊名称的目录。
原因:
IIS支持的FTP命令之一是名称列表(NLST)命令。此命令用于将目录列表从服务器传输到客户端。该命令的语法NLST <SPACE> <pathname> <CRLF>
此命令中的路径名应指定目录或其他特定于系统的文件组描述符;在pathname为NULL时,使用当前目录。NLST命令可以使用诸如“*”之类的通配符来引用多个路径。
该漏洞是由于处理NLST FTP命令时边界检查不足造成的。当FTP用户请求包含通配符的路径名过长的目录列表时,易受攻击的代码会将目录路径名复制到0x9F(159)字节的基于堆栈的缓冲区中,而不进行边界验证。提供包含大于0x9F(159)字节的路径名会使堆栈缓冲区溢出,从而可能会覆盖关键进程数据(如函数返回地址)。
远程身份验证的攻击者可以通过连接到易受攻击的IIS FTP服务器并向目标服务器发送恶意NLST命令来利用此漏洞。成功利用将导致使用System权限执行代码。如果代码执行攻击不成功,可能会导致受影响的FTP会话异常终止。
信息泄露漏洞
IIS短文件名漏洞是由于HTTP请求中携带旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的。它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问)。攻击者可以找到通常无法从外部直接访问的重要文件,并获取有关应用程序基础结构的信息。
远程代码执行漏洞
漏洞源于HTTP.sys文件没有正确分析经特殊设计的HTTP请求。成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码。
IIS进程w3wp.exe接收到HTTP请求后,将数据缓存到内核中,并整合HTTP回应头,最后由http.sys组织数据包经由网络内核组件发送出去。请求中包括Range对象的指定范围,而缓存中则包含了http文件和大小信息等。
根据公开POC,构造包含“Range: bytes=0-18446744073709551615”的HTTP请求并发送到IIS 7.5-8.5服务器,如果IIS服务器返回“Requested Range Not Satisfiable”
,则存在漏洞,如果返回“The request has an invalid header name”
或者没有回应,则说明漏洞已经修补或者不存在漏洞。
PUT漏洞
WebDAV是一种HTTP1.1的扩展协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,如PUT,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。可以像在操作本地文件夹一样操作服务器上的文件夹,该扩展也存在缺陷,利用PUT方法可直接向服务器上传恶意文件,控制服务器。
小结:
IIS 远程漏洞主要包括缓冲区溢出、认证绕过、拒绝服务、代码执行和信息泄露漏洞,本地漏洞主要分布在信息泄露和权限提升漏洞分类,大部分漏洞利用难度较大,但是一旦成功被攻击者利用,影响的不仅仅只是IIS服务器,甚至可能是运行IIS的Windows主机。
Weblogic
Weblogic是美国Oracle公司出品的一个应用服务器,确切的说是一个基于Java EE架构的中间件,是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器
Weblogic将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,是商业市场上主要的Java(Java EE)应用服务器软件之一,也是世界上第一个成功商业化的Java EE应用服务器,具有可扩展性、快速开发、灵活、可靠等优势。
CVE-2017-10271
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。
CVE-2019-2618
利用任意文件读取来获取weblogic的弱口令登录进入后台,然后通过上传getshell,通过构造任意文件下载漏洞环境读取到后台用户名和密码,然后登陆进后台,上传webshell。
CVE-2020-14882
远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console,并在 WebLogic Server Console 执行任意代码。
权限绕过漏洞
远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console。权限绕过漏洞(CVE-2020-14883)。访问以下URL,未授权访问到管理后台页面(低权限的用户)
/console/images/%252E%252E%252Fconsole.portal
/console/css/%252e%252e%252fconsole.portal(小写可绕过补丁)
/console/css/%25%32%65%25%32%65%25%32%66console.portal
结合 CVE-2020-14883 漏洞,远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console ,并在 WebLogic Server Console 执行任意代码。
- 利用com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext 执行命令
- 用 com.tangosol.coherence.mvel2.sh.ShellSession 执行命令
ssrf漏洞
Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。
SSRF漏洞可以通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的资源。
weblogic的ssrf有一个比较大的特点,其虽然是一个GET请求,但是我们可以通过传入**%0a%0d**来注入换行符,而某些服务(如redis)是通过换行符来分隔每条命令,也就是说我们可以通过该SSRF攻击内网中的redis服务器。首先通过ssrf探测内网中的redis服务器,通常redis端口为6379
T3反序列化
weblogic反序列化主要有XMLDecoder和T3协议。先从T3协议开始,主要是CVE-2015-4852
这个漏洞
T3协议
RMI通信传输反序列化数据,接收数据后进行反序列化,正常RMI通信使用的是JRMP协议,而在Weblogic的RMI通信中使用的是T3协议。T3协议是Weblogic独有的一个协议,相比于JRMP协议多了一些特性。以下是T3协议的特点:
- 服务端可以持续追踪监控客户端是否存活(心跳机制),通常心跳的间隔为60秒,服务端在超过240秒未收到心跳即判定与客户端的连接丢失。
- 通过建立一次连接可以将全部数据包传输完成,优化了数据包大小和网络消耗。
T3 这个神奇的协议使得weblogic漏洞层出不穷,正因为他必须使用java反序列化,所以在不影响正常功能的情况下,只能不断的添加黑名单。
T3协议里包含请求包头和请求的主体这两部分内容。
T3协议中传输的都是序列化数据,分为七个部分

可以用jdk7u21和cc1两条链实现漏洞。
Weblogic对CVE-2015-4852的修复措施是在resloveClass里加上 ClassFilter.isBlackListed黑名单过滤
保护IIS
- 设置磁盘驱动器上的NTFS权限
Developers = Full
IUSER = Read and execute only
System and admin = Full
- 启动使用IIS的日志文件(logging)功能
- 把记录的日志(log)从预设地点移开,并确保已经进行备份。为日志档案夹建立一个备份,这样在另一个位置总是有一个可以使用的备份档。
- 确保你经常执行Windows Update,并重复检验修补程序真的已经有安装妥当。
- 管理用户账户,目录安全
- 审计web服务器
- 移除没用的站点
- 严格控制读写访问权限,设置复杂密码,禁用tcp/ip中的netbios
什么是NTFS
是Microsoft公司开发的专用文件系统,从Windows NT 3.1开始成为Windows NT家族的默认文件系统。
NTFS权限
- 通过设置NTFS权限,实现不同的用户访问不同的权限 。
- 分配了正确的访问权限后,用户才能访问其资源 。
- 设置权限防止资源被篡改、删除。
常用的文件系统:
fat:windows
ntfs:windows
ext:linux
什么是netbois
NetBIOS允许应用程序和计算机通过LAN进行通信。NetBIOS在本地网络上提供通信服务。 它使用称为NetBIOS帧(NBF)的软件协议,允许局域网(LAN)上的应用程序和计算机与网络硬件通信并通过网络传输数据。在你安装 TCP/IP协议时,NetBIOS 也被 Windows 作为默认设置载入了你的电脑,而电脑随即也具有了NetBIOS 本身的开放性。换句话讲,在不知不觉间,你的上网电脑已被打开了一个危险的“后门”。