Tema destacado: Últimos eventos sobre seguridad/inseguridad
Autor
|
Tema: [Gdi.dll, Heap Overflow] POC -> gente del tema Needed (Leído 2,694 veces)
|
leos_79
Desconectado
Mensajes: 189
Anyway, Anyhow, Anywhere
|
http://www.securityfocus.com/bid/28571 Apr/08/2008 como veran , se trata de un heap overflow en la funcion CreateDibPatternBrushPt que es una funcion que sirve para crear un pincel , pasandole como parametro , un puntero a un Packed DIB , se puede usar tanto en wmf , como en emf , lo que se me ocurre seria pasandole un dib especial , como se carga en memoria , se pueda llegar a lograr este heap overflow si alguien esta interesado (y sabe de estructuras y funciones wmf) para hacer Pruebas de concepto conmigo , solo avise por aca , yo estuve hoy todo el dia peleando , con esta funcion gdi , y el Dib , pero hay muy poca info para c / c++ , Funcion vulnerable: http://msdn2.microsoft.com/en-us/library/aa931561.aspxEstructura wmf: http://www.geocad.ru/new/site/Formats/Graphics/wmf/wmf.txtmuchas gracias 
|
|
|
|
« Última modificación: 19 Abril 2008, 02:51 por leos_79 »
|
En línea
|
|
|
|
Rozor
Desconectado
Mensajes: 269
As I Walk Through The Valley Of The Shadow Of Dead
|
Y no sabes dentro de la estructura donde esta el heap overflow?. Ahora me voy a poner a hacer pruebas aver si acabo una cosilla que empeze anoche, que tambien me estuve mirando el txt de la estructura que pusiste thank por cierto  . Es nuevo el bug? de cuando es?. No he visto el adversorie aunque tampoco he mirado en securityfocus xDDDDDDD bue sigo liado con lo mio cuando puedas pega la contestacion por cierto en milw0rm si vi un video para hacer metafiles haciendo av evasion. igual te puede interesar aunque lo primero es explotar  bue ya me comentaras.
|
|
|
|
|
En línea
|
out in the streets they call it murder....
|
|
|
leos_79
Desconectado
Mensajes: 189
Anyway, Anyhow, Anywhere
|
antes de saber eso quiero saber como se usa la funcion , para poder experimentar con la misma , o si es un parametro para otra funcion porq la busque en el <windows.h> en el wingdi.h y esta definida como un parametro.
lo de la evacion de AV no sirve , dado que cualquier av competente , te detecta la funcion escape con el parametro setabortdoc , osea el 0626 0009 el 0626 es la funcion escape , y el 0009 es el parametro Setabortdoc pero quiero ver si se puede implementar algo paracido con CreateDibPatternBrushPt
saludos!
PD: el bug ahi te puse la fecha , es nuevisimo , del 8 de abril.
|
|
|
|
« Última modificación: 21 Abril 2008, 01:37 por leos_79 »
|
En línea
|
|
|
|
Rozor
Desconectado
Mensajes: 269
As I Walk Through The Valley Of The Shadow Of Dead
|
Si tio sorry no vi el link estaba fumado xDDDDDD Hay info nueva: http://www.argeniss.com/research/TokenKidnapping.pdf esta en el update del 21/04/08 en securityfocus. Aver si esta noche conseguimos explotar algo 
|
|
|
|
|
En línea
|
out in the streets they call it murder....
|
|
|
leos_79
Desconectado
Mensajes: 189
Anyway, Anyhow, Anywhere
|
conseguiste informacion sobre la funcion / parametro vulnerable en el wmf?
|
|
|
|
|
En línea
|
|
|
|
Rozor
Desconectado
Mensajes: 269
As I Walk Through The Valley Of The Shadow Of Dead
|
No, esta noche me pondre a fuzzear. Aver si sacamos la explotación. En el caso de conseguir explotar pero no conseguir injectar shellcode de forma afirmativa, paso el bug para que se lo pueda mirar mas peña, y si consigo el exploit tonces publico exploit.
Has leido el pdf? yo no he podido, antes de hacer el fuzzer mirare como va aver si me da pistas de algo.
TAOF - The Art Of Fuzzing.
|
|
|
|
|
En línea
|
out in the streets they call it murder....
|
|
|
leos_79
Desconectado
Mensajes: 189
Anyway, Anyhow, Anywhere
|
en el pdf no hay nada acerca de esto jeje , yo lo unico que necesito saber es como funciona la funcion valga la redundancia mmm publicar el exploit? yo publicaria nomas el DoS si existe y el q realmente le interese pasarle el exploit , para evitar script kiddies mas q nada , dado q si se consigue vamos a tener muchos jpg malignos dando vueltas como ya paso una vez jeje saludos!! tengo q estudiar cosas de la facu , algebra :S , pero mas tarde me conecto y lo vemos , leos_79@hotmail.com agregame saludoss !
|
|
|
|
|
En línea
|
|
|
|
leos_79
Desconectado
Mensajes: 189
Anyway, Anyhow, Anywhere
|
META_DIBCREATEPATTERNBRUSH = 0x142 const BS_DIBPATTERNPT=6; DIB_RGB_COLORS=0;
FUNCIONCreatepatternbrush { DWORD tamañodelrecord WORD funcion WORD parametros }
PARAMETROS { 1 = BS_DIBPATTERNPT=6; 2 =DIB_RGB_COLORS=0; 3 = bmi BITMAPINFO structure 4 = bits Actual device-independent bitmap bits. }
En Resumen0004 0000 0142 60ff TAMAÑO FUNCION PARAMETROS bien como veran eh avanzado bastante en cuanto a este tema vi que CreateDibPatternBrush (0x142) , es la funcion y q con el parametro 6, seria la famosa funcion CreateDibPatternBrushPt (de pointer) lo que nose es que son esos 2 ultimos parametros , y como se implementan el BITMAPINFO es una estructura de informacion acerca de un mapa de bits. supongo que hay q meterlo en un wmf record , pero como :S y el ultimo que dice bits (4) no tengo idea que es :S si alguien se le ocurre algo , obviamente sera bienvenido. PD : no estoy muy seguro de el WORD de los parametros , creo q deberia ser mas grande
|
|
|
|
« Última modificación: 23 Abril 2008, 03:05 por leos_79 »
|
En línea
|
|
|
|
leos_79
Desconectado
Mensajes: 189
Anyway, Anyhow, Anywhere
|
de las 500 personas que miraron el tema , alguien consiguio algo , al menos algun DoS ? yo consegui un DoS , pero con un exe llamanado a la funcion esa y pasandole cualquiero puntero, pero desde el archivo, no consegui nada nada nada
|
|
|
|
|
En línea
|
|
|
|
|
|