2007/05/09

MoAxB #09: BarCodeWiz ActiveX Control 2.0 (BarcodeWiz.dll) Remote Buffer Overflow Exploit

Questo controllo consente di creare, visualizzare e stampare codici a barre. Il metodo "verify" di questo controllo è vulnerabile a buffer overflow grazie al quale il registro EIP viene sovrascritto dando la possibilità di eseguire codice arbitrario.

Dimostrazione online

Formato txt

Ecco la situazione dei registri al momento del crash:

14:39:21.000 pid=1244 tid=1534 EXCEPTION (first-chance)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION reading [61616239])
----------------------------------------------------------------
EAX=61616161: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EBX=03558474: 41 00 41 00 41 00 41 00-41 00 41 00 41 00 41 00
ECX=01D1E375: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
EDX=01D1F020: 41 41 41 41 41 41 41 41-41 41 41 41 41 41 41 41
ESP=01D1F014: 00 00 00 00 1C 0A 57 03-70 1B EB 03 41 41 41 41
EBP=01D1F420: 41 41 41 41 41 41 41 41-61 61 61 61 41 41 41 41
ESI=770F4C3B: 8B FF 55 8B EC 8B 45 08-85 C0 74 05 8B 40 FC D1
EDI=01D1F010: 7C 9E 55 03 00 00 00 00-1C 0A 57 03 70 1B EB 03
EIP=03E9F9C6: 8B 88 D8 00 00 00 52 8B-01 FF 50 0C 85 C0 8B 45
--> MOV ECX,[EAX+000000D8]
----------------------------------------------------------------

14:39:21.000 pid=1244 tid=1534 EXCEPTION (first-chance)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION reading [62626262])
----------------------------------------------------------------
EAX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EBX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ECX=62626262: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=7C9137D8: 8B 4C 24 04 F7 41 04 06-00 00 00 B8 01 00 00 00
ESP=01D1EC44: BF 37 91 7C 2C ED D1 01-94 F8 D1 01 48 ED D1 01
EBP=01D1EC64: 14 ED D1 01 8B 37 91 7C-2C ED D1 01 94 F8 D1 01
ESI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EIP=62626262: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
--> N/A
----------------------------------------------------------------

2007/05/08

MoAxB #08: SmartCode VNC Manager 3.6 (scvncctrl.dll) Denial of service

-----------------------------------------------------------------------------
SmartCode VNC Manager 3.6 (scvncctrl.dll) Denial of service
url: http://www.s-code.com/
price: from $98.94 to $2,500

author: shinnai
mail: shinnai[at]autistici[dot]org
site: http://shinnai.altervista.org

Tested on Windows XP Professional SP2 all patched, with Internet Explorer 7
-----------------------------------------------------------------------------

La maggior parte dei metodi di questo activex sono vulnerabili a DoS. L'exploit che riporto consente di controllare il contenuto di EAX e ECX ma lo scenario varia a seconda della lunghezza della stringa passata.
Lo propongo come DoS ma non escludo la possibilità di trovare il modo di eseguire codice arbitrario.

Dimostrazione online

Formato txt

Ecco il contenuto dei registri al momento del crash:

EAX 61616161
ECX 62626262
EDX 02DFECA0 ASCII "aaaabbbbBBB..."
EBX 02DF0000
ESP 0173F068
EBP 0173F288
ESI 02DFEC98 ASCII "AAAAAAAAaaaabbbbBBB..."
EDI 00000221

EIP 7C92142E ntdll.7C92142E

7C92142E 8B39 MOV EDI,DWORD PTR DS:[ECX] <-- CRASH

2007/05/07

MoAxB #07: Versalsoft HTTP File Uploader (UFileUploaderD.dll) 'AddFile' method Buffer Overflow

Riporto, in questo exploit, solo il contenuto dei registri visto che credo sia chiaro che l'esecuzione di codice arbitrario è possibile.

Dimostrazione online

Formato txt

11:40:51.172 pid=08E4 tid=0AB0 EXCEPTION (first-chance)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION reading [41414141])
----------------------------------------------------------------
EAX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EBX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ECX=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=7C9137D8: 8B 4C 24 04 F7 41 04 06-00 00 00 B8 01 00 00 00
ESP=0173E26C: BF 37 91 7C 54 E3 73 01-84 F2 73 01 70 E3 73 01
EBP=0173E28C: 3C E3 73 01 8B 37 91 7C-54 E3 73 01 84 F2 73 01
ESI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EIP=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
--> N/A
----------------------------------------------------------------

2007/05/06

MoAxB #06: Sienzo Digital Music Mentor (DMM) 2.6.0.4 (DSKernel2.dll) multiple method local Stack Overflow Exploit

DSKernel2.dll, distribuita con l'ultima versione del software in oggetto, contiene due metodi che sono vulnerabili ad uno stack-based overflow che consente l'esecuzione di codice arbitrario sul pc dell'utente.
I metodi sono "LockModules" e "UnlockModule" ai quali, passando una stringa rispettivamente di 263 e 296 caratteri, causano lo stack overflow.

Formato txt

Il contenuto dei registri al momento del crash è:
per "Lockmodules:

EAX 00000000
ECX 7C92056D ntdll.7C92056D
EDX 03CF0000
EBX 00000000
ESP 0173E554 ASCII "BBB..."
EBP 41414141
ESI 0173E560 ASCII "BBBB..."
EDI 00000600

EIP 62626262

-----------------------------------------------------

per "UnlockModule":

EAX 80070057
ECX 02D56F1A UNICODE " ((((( H"
EDX 0173EC48
EBX 02D3D250 DSKernel.02D3D250
ESP 0173ED80 ASCII "BBB..."
EBP 41414141
ESI 0173F064
EDI 00000000

EIP 62626262

Il resto è storia...

2007/05/05

MoAxB #05: East Wind Software (advdaudio.ocx v. 1.5.1.1) 'OpenDVD' method Stack Buffer Overflow

Bene, volevo lasciare i bug più interessanti per la seconda metà del mese ma, siccome sta nascendo un putiferio (sul mio modo di parlare in inglese e sulle mie capacità tecniche), posto un exploit che sfrutta uno stack overflow causato dall'ocx per eseguire codice arbitrario su un pc.

Dimostrazione online

Formato txt

Analizziamo meglio lo scenario: al momento del crash la situazione dei registri è la seguente:

14:51:52.171 pid=0A90 tid=0E40 EXCEPTION (first-chance)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION reading [616165E5])
----------------------------------------------------------------
EAX=61616161: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EBX=0174EDE0: 42 42 42 42 42 42 42 42-42 42 42 42 42 42 42 42
ECX=000035D1: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=01750110: 6F 00 F2 00 ED F2 F2 00-ED F2 F2 00 ED F2 F2 00
ESP=0174EA40: 10 EB FF 02 1C EB 74 01-61 1E 94 7C 1C EB 74 01
EBP=0174EDB8: 42 42 42 42 42 42 42 42-42 42 42 42 42 42 42 42
ESI=00000008: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=02FE056E: 20 20 20 20 3C 2F 70 3E-0D 0A 20 20 20 20 20 20
EIP=03D2187D: 8B 90 84 04 00 00 8D 88-7C 04 00 00 85 D2 7E 09
--> MOV EDX,[EAX+00000484]
----------------------------------------------------------------

14:51:52.171 pid=0A90 tid=0E40 EXCEPTION (first-chance)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION reading [42424242])
----------------------------------------------------------------
EAX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EBX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ECX=42424242: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=7C9137D8: 8B 4C 24 04 F7 41 04 06-00 00 00 B8 01 00 00 00
ESP=0174E670: BF 37 91 7C 58 E7 74 01-AC ED 74 01 74 E7 74 01
EBP=0174E690: 40 E7 74 01 8B 37 91 7C-58 E7 74 01 AC ED 74 01
ESI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EIP=42424242: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
--> N/A
----------------------------------------------------------------

Come potete notare, l'errore avviene nel momento in cui si cerca di leggere il contenuto di EAX mentre, nel passo successivo, vediamo EIP sovrascritto con dati arbitrari.
Bene, la prima cosa da fare è passare ad EAX un "readable" address, così da superare la prima limitazione.
Passiamo allora 0x77D7AAEB call ESP (from user32.dll) e vediamo cosa succede ai registri:

15:03:32.855 pid=0A98 tid=06E0 EXCEPTION (first-chance)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION reading [63636363])
----------------------------------------------------------------
EAX=73E186D4: 00 00 00 00 84 6A DF 73-00 00 00 00 2E 3F 41 56
EBX=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ECX=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=7608F260: 10 05 46 03 FF FF FF FF-00 00 00 00 00 00 00 00
ESP=0174EDEC: 90 EB 03 59 EB 05 E8 F8-FF FF FF 4F 49 49 49 49
EBP=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ESI=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EIP=42424242: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
--> N/A
----------------------------------------------------------------

15:03:32.855 pid=0A98 tid=06E0 EXCEPTION (unhandled)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION reading [63636363])
----------------------------------------------------------------
EAX=73E186D4: 00 00 00 00 84 6A DF 73-00 00 00 00 2E 3F 41 56
EBX=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ECX=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=7608F260: 10 05 46 03 FF FF FF FF-00 00 00 00 00 00 00 00
ESP=0174EDEC: 90 EB 03 59 EB 05 E8 F8-FF FF FF 4F 49 49 49 49
EBP=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ESI=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=41414141: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EIP=42424242: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
--> N/A
----------------------------------------------------------------

Bingo! Ora controlliamo EIP e abbiamo in ESP il contenuto della shellcode, il resto è storia...

That's all folks!

2007/05/04

MoAxB #04 bonus: ActSoft DVD-Tools (dvdtools.ocx v. 3.8.5.0) Stack Overflow Exploit

Questo è semplicemente un bonus. Gli advisories originale sono questi:
http://www.shinnai.altervista.org/viewtopic.php?id=41&t_id=30
http://www.milw0rm.com/exploits/3307
poi ne è stato pubblicato uno da Umesh Wanve per Windows 2000 SP4 Server English e Windows 2000 SP4 Professional English qui:
http://www.milw0rm.com/exploits/3610
e ora ne rilascio una versione per Windows XP Professional SP2.

Dimostrazione online

Formato txt

MoAxB #04: Office Viewer (OA.ocx v. 3.2) multiple methods DoS

Questo bug si commenta da solo e non ho molto da aggiungere se non che, vista la quantità di critiche mosse al mio inglese, che come avevo preannunciato e sottolineato era meno che scolastico (e vi assicuro che avrei sopportato molto di più critiche ai bug che non al mio modo di parlare in inglese), da ora scriverò gli advisories in italiano, mia madrelingua, così che, chi ne avrà voglia, se li tradurrà da sè.

Dimostrazione online

Formato txt

Ecco il contenuto dei registri al momento del crash dell'applicazione.

EAX 000EC484
ECX 01642A44
EDX 00000000
EBX 0173EA68
ESP 0173EA3C
EBP 0173EC74
ESI 000F4241
EDI 039F0024 UNICODE "AAA..."

EIP 77527420 ole32.77527420

77527420 8501 TEST DWORD PTR DS:[ECX],EAX <-- CRASH

Devo doverosamente ringraziare The Wanderer al quale ho rotto i cosiddetti per le traduzioni e che ora vede reso inutile il proprio lavoro. Mi spiace e cercherò di farmi perdonare ma, che diavolo, talvolta bisogna essere nazionalisti: sono Italiano, sono fiero di esserlo e chi vuol leggere quello che scrivo se lo traduca da sè o vada a farsi benedire.