lunes, 21 de diciembre de 2009

Felis Nabidad y Japy Niu iar!!

Hola!,

Bueno, despues de un tiempo de escribir en este blog, creo que es la primera vez que escribo unas palabras antes de la navidad y el fin de año.

No se muy bien que decir porque no estoy acostumbrado :P

Solo queria comentarles que durante estas vacaciones que ya comienzan en unos dias, voy a intentar actualizar el blog con un par de cosas interesantes y no con tantas gacetas informaticas :)

Ah, ademas, como pueden observar, el blog ha tomado otro color :P.

Por cierto, voy a seguir trabajando, junto con Matias y compañia, en la toolcita PyPEELF, que si bien ya llevamos rato trabajando en ella, todavia falta bastante para poder relesear algo "utilizable" por la comunidad.

En fin, un saludo para todos!, Feliz Navidad y un prospero Año Nuevo!.

Hasta pronto!.

martes, 15 de diciembre de 2009

Otra vez Adobe Reader, 0-day

Hola!,

Solo un pequeño post para comentarles que hoy se dio a conocer un nuevo 0-day en Adobe PDF Reader y Professional que parece se estaba explotando desde inicios de Diciembre.

Aparentemente, el bug esta en la funcion Doc.media.newPlayer() y se trata de un memory corruption. Se puede explotar embebiendo codigo javascript que ejecute la funcion antes mencionada y ademas agregando codigo javascript para generar un heap spray.

Para mas informacion:

1- extraexploit analisis 1.
2- extraexploit analisis 2.
3- F-secure analisis.
4- Metasploit exploit module.
5- CVE Mitre.

Hasta la proxima!.

viernes, 13 de noviembre de 2009

Quick Post - Exploit Writing Tutorials

Hola!,

Solo queria informarles acerca de una serie de tutoriales que Peter Van Eeckhoutte esta escribiendo desde hace un tiempo.

Hasta ahora ha publicado 7 tutoriales explicando lo basico en el arte de escribir exploits; vienen muy bien para la gente que quiera introducirse en este mundo del ninjitsu :P

Aca pueden encontrar la web de Peter y bajarse los tutoriales en formato PDF o leerlos on-line.

Para el que quiera bajarse todos los tutoriales en PDF, los puede bajar de aqui.

Ademas, aqui pueden encontrar una completa guia que muestra como hacer exploits para Metasploit y muchos aspectos mas de este framework.

Disfrutenlo!!!

jueves, 15 de octubre de 2009

Nuevo differ - TurboDiff

Hola a todos!,

hoy queria comentarles un poco acerca de un nueo differ que se ha publicado en la internet :P

Se trata de un nuevo differ (un programa para comparar .exe, .dll, etc en busca de diferencias) escrito por Nicolas Economou (CORE Security Technologies) y presentado en la Ekoparty 2009 en Argentina.

Basicamente, la mayor diferencia con el resto de los differs actuales (Bindiff, Patchdiff, DarumGrim) es que este differ esta pensado para la busqueda de vulnerabilidades, esta especialmente pensado y programado para que no se le pase el mas minimo detalle a la hora de identificar un minimo cambio como un JA por un JB, cosa que al resto de los differs suele pasarsele por alto en ocasiones, incluso detecta diferencias en funciones que no son analizadas correctamente por IDA (si, me falto decir que es un plugin de IDA :).

Yo lo he utilizado un poco y me parecio bastante mejor que bindiff, el unico punto debil son los graficos puesto que no se comparan con los de bindiff pero el punto fuerte es que es mucho mas preciso que bindiff y el resto de differs a la hora de buscar vulnerabilidades.

Un buen post al respecto lo pueden enconrar aqui.

El source code y el plugin compilado lo pueden encontrar en la web de Corelabs, aqui.

update1: para ser imparciales y no ejercer favoritismos :P debo de decir que hace unos dias estuve probando Bindiff 3.0 y he tenido los mismos resultados que con turbodiff en cuanto a funciones cambiadas, sin embargo, turbodiff sigue siendo un poco mas rapido en el analisis que bindiff pero sin duda este ultimo mejoro bastante desde la version 2.0.

Hasta la proxima!.

miércoles, 14 de octubre de 2009

CollaboREate & IPython for IDAPython

Hola!,

Queria comentarles acerca de dos plugins interesantes para IDA.

Creo que todos conocen IDAPython (el plugin para IDA que permite interactuar con la API de IDA a traves de Python y que ademas nos provee de todas las bondades de python en IDA), bueno resulta que hasta ahora, los que no contamos con las nuevas versiones de IDA (hablo de la > 5.2) a no ser que hayamos comprado una de las caras licencias o tener acceso a alguna distro en nuestro trabajo, debiamos de editar el script de IDAPython en un simple textbox y ademas utilizar el menu o algun atajo de teclado para correr el script, bueno ahora hay una posibilidad mas.

Mediante el script que se encuentra aqui, podemos utilizar el tan conocido interactive shell, IPython, en IDA.

Post original en OpenRCE aqui.

Gracias sagar por el script!.

El segundo plugin sobre el cual queria hablar un poco es CollaboREate.

Se trata de un plugin que permite realizar trabajos de ingenieria inversa con IDA sobre un IDB pero de manera comunitaria. Como es esto? pues dos personas trabajando en un mismo idb, pueden compartir, en tiempo real, todos los cambios que vayan realizando sobre el idb, como renombrar variables, nombres de funciones, parametros, structs, unions, etc etc etc. Solo hace falta montar un server que sea el que envia los datos a todos los que se conecten a el.

Esto quiere decir que el usuario X y el usuario Y que trabajan sobre el mismo idb van a poder trabajar de una manera mas coordinada e instantanea que si tuvieramos que enviar los idbs por mail o subirlos a algun lado en internet, etc. Muy bueno sin duda para trabajos en conjunto.

Homepage de CollaboREate aqui.

Aca un paper sobre el plugin.

Bueno, eso!.

Saludos!.

viernes, 9 de octubre de 2009

El colador de CA (Computer Associates)



Hola!,

Queria contarles acerca de un bug que encontre mientras hacia un exploit para un producto de la compañia CA (Computer Associates - www.ca.com).

El producto en cuestion es el archi-conocido ARCserve Backup, un software corporativo para realizar backups.

Los que trabajan en esta cuestion de buscar bugs y hacer exploits saben de sobra que la mayoria de los productos ofrecidos por esta empresa (CA) pareciera que vienen programados por chicos de 15 años que solo saben utilizar strcpy() y gets(); ARCserve esta lleno de bugs y para comprobarlo, basta con solo colocar "arcserve backup vulnerability" en Google para ver la cantidad de advisories que mencionan vulnerabilidades en este software (acá).

En fin, quiero contarles un poco como fue que di con un bug extra en la misma función que ya tenía otro bug! XD.

La historia fue mas o menos asi:

Estaba tratando de hacer un exploit para CVE-2008-4397. Dicha vulnerabilidad nos permite ejecutar comandos de manera remota, sin autenticacion e incluso lograr dropear un .exe que nos de acceso completo a la maquina victima. Por ejemplo, si enviaramos el comando "cmd /c ntsd -c calc.exe" se ejecutaria el ntsd con la calculadora attacheada.

La funcion vulnerable es accesible mediante RPC (MSRPC). La interfaz que contiene dicha funcion es:


[
uuid(506b1890-14c8-11d1-bbc3-00805fa6962e),
version(1.0)
]


Esa interfaz se encuentra en la libreria Asdbapi.dll y es accesible mediante el servicio llamado "CA Message Service" que escucha en el puerto 6504/TCP y que corre con privilegios de SYSTEM.

La funcion vulnerable es la siguiente:


/* opcode: 0x156, address: 0x28EAAAB0 */

long sub_28EAAAB0 (
[in] handle_t arg_1,
[in][ref][string] char * arg_2,
[in][ref][string] char * arg_3,
[in][ref][string] char * arg_4,
[in][ref][string] char * arg_5,
[in] long arg_6,
[in][ref][size_is(arg_1)] char * arg_7,
[in] long arg_8,
[in, out][ref] long * arg_9,
[out][ref][size_is(*arg_9)] char ** arg_10
);

}


Como podemos ver, el OPCODE que representa a la funcion es el 0x156. Si desensamblamos esta funcion con IDA, veremos que comienza de esta manera:


.text:28EAAAB0 ; int __stdcall sub_28EAAAB0(PRPC_MESSAGE Message)
.text:28EAAAB0 sub_28EAAAB0 proc near
.text:28EAAAB0
.text:28EAAAB0 Args= dword ptr -128h
.text:28EAAAB0 var_124= dword ptr -124h
.text:28EAAAB0 ppMemory= byte ptr -120h
.text:28EAAAB0 var_11C= dword ptr -11Ch
.text:28EAAAB0 var_118= dword ptr -118h
.text:28EAAAB0 var_114= dword ptr -114h
.text:28EAAAB0 pStubMsg= _MIDL_STUB_MESSAGE ptr -110h
.text:28EAAAB0 var_34= dword ptr -34h
.text:28EAAAB0 var_30= dword ptr -30h
.text:28EAAAB0 var_2C= dword ptr -2Ch
.text:28EAAAB0 var_28= dword ptr -28h
.text:28EAAAB0 lpBuffer= dword ptr -24h
.text:28EAAAB0 var_20= dword ptr -20h
.text:28EAAAB0 var_1C= dword ptr -1Ch
.text:28EAAAB0 var_18= dword ptr -18h
.text:28EAAAB0 var_10= dword ptr -10h
.text:28EAAAB0 var_4= dword ptr -4
.text:28EAAAB0 Message= dword ptr 8
.text:28EAAAB0
.text:28EAAAB0 push ebp
.text:28EAAAB1 mov ebp, esp
.text:28EAAAB3 push 0FFFFFFFFh
.text:28EAAAB5 push offset unk_28EC0BC0
.text:28EAAABA push offset _except_handler3
.text:28EAAABF mov eax, large fs:0
.text:28EAAAC5 push eax
.text:28EAAAC6 mov large fs:0, esp
.text:28EAAACD sub esp, 11Ch
.text:28EAAAD3 push ebx
.text:28EAAAD4 push esi
.text:28EAAAD5 push edi
.text:28EAAAD6 mov [ebp+var_18], esp
.text:28EAAAD9 push offset stru_28EBC410 ; pStubDescriptor
.text:28EAAADE lea eax, [ebp+pStubMsg]
.text:28EAAAE4 push eax ; pStubMsg
.text:28EAAAE5 mov esi, [ebp+Message]
.text:28EAAAE8 push esi ; pRpcMsg
.text:28EAAAE9 call ds:NdrServerInitiali


Esa parte corresponde al prologo de la funcion vulnerable. Si nos fijamos, un poco mas abajo realiza un par de comprobaciones sobre los tipos de datos enviados en el paquete, si se corresponde con los tipos esperados, entonces continuara por esta parte:


.text:28EAAC0F loc_28EAAC0F:
.text:28EAAC0F mov [ebp+var_4], ebx
.text:28EAAC12 lea edx, [ebp+ppMemory]
.text:28EAAC18 mov [ebp+var_28], edx
.text:28EAAC1B mov dword ptr [ebp+ppMemory], ebx
.text:28EAAC21 lea eax, [ebp+ppMemory]
.text:28EAAC27 push eax ; ppMemory
.text:28EAAC28 push esi ; int
.text:28EAAC29 push ecx ; int
.text:28EAAC2A mov ecx, [ebp+lpBuffer]
.text:28EAAC2D push ecx ; lpBuffer
.text:28EAAC2E push edi ; nNumberOfBytesToWrite
.text:28EAAC2F mov edx, [ebp+var_124]
.text:28EAAC35 push edx ; int
.text:28EAAC36 mov eax, [ebp+var_34]
.text:28EAAC39 push eax ; int
.text:28EAAC3A mov ecx, [ebp+var_30]
.text:28EAAC3D push ecx ; int
.text:28EAAC3E mov edx, [ebp+Args]
.text:28EAAC44 push edx ; Args
.text:28EAAC45 mov eax, [ebp+var_1C]
.text:28EAAC48 push eax ; int
.text:28EAAC49 call sub_28E19360
.text:28EAAC4E add esp, 28h
.text:28EAAC51 mov [ebp+var_11C], eax
.text:28EAAC57 mov [ebp+pStubMsg.BufferLength], 17h
.text:28EAAC61 cmp esi, ebx
.text:28EAAC63 jz short loc_28E


En la funcion sub_28E19360 es un wrapper que solo pushea los argumentos para la funcion ASDB_ReportRemoteExecuteCML:


.text:28E19360 ; int __cdecl sub_28E19360(int, char Args, int, int, int, DWORD nNumberOfBytesToWrite, LPCVOID lpBuffer, int, int, int ppMemory)
.text:28E19360 sub_28E19360 proc near
.text:28E19360
.text:28E19360 Args= byte ptr 8
.text:28E19360 arg_8= dword ptr 0Ch
.text:28E19360 arg_C= dword ptr 10h
.text:28E19360 arg_10= dword ptr 14h
.text:28E19360 nNumberOfBytesToWrite= dword ptr 18h
.text:28E19360 lpBuffer= dword ptr 1Ch
.text:28E19360 arg_1C= dword ptr 20h
.text:28E19360 arg_20= dword ptr 24h
.text:28E19360 ppMemory= dword ptr 28h
.text:28E19360
.text:28E19360 mov eax, [esp+ppMemory]
.text:28E19364 mov ecx, [esp+arg_20]
.text:28E19368 mov edx, [esp+arg_1C]
.text:28E1936C push eax ; ppMemory
.text:28E1936D mov eax, [esp+4+lpBuffer]
.text:28E19371 push ecx ; int
.text:28E19372 mov ecx, [esp+8+nNumberOfBytesToWrite]
.text:28E19376 push edx ; int
.text:28E19377 mov edx, [esp+0Ch+arg_10]
.text:28E1937B push eax ; lpBuffer
.text:28E1937C mov eax, [esp+10h+arg_C]
.text:28E19380 push ecx ; nNumberOfBytesToWrite
.text:28E19381 mov ecx, [esp+14h+arg_8]
.text:28E19385 push edx ; int
.text:28E19386 mov edx, dword ptr [esp+18h+Args]
.text:28E1938A push eax ; int
.text:28E1938B push ecx ; int
.text:28E1938C push edx ; Args
.text:28E1938D call ASDB_ReportRemoteExecuteCML
.text:28E19392 add esp, 24h
.text:28E19395 retn
.text:28E19395 sub_28E19360 endp


Esta funcion en la responsable de ejecutar los comandos enviados desde el exterior, por ejemplo, si enviamos: "..\\..\\..\\..\\..\\..\\..\\..\\..\\Windows\\system32\\cmd /c \"""\""""

Le estamos indicando el path (mas precisamente, el bug es del tipo path traversal) del cmd que sera el que nos ejecute el comando que le indiquemos con los parametros que le indiquemos.

Los "..\\" son para trigerear la primera de las vulnerabilidades, el path traversal, pero si nos fijamos un poco mas adentro, en una de las funciones (sub_28E3F6B0), tenemos un sprintf():


[...]
.text:28E3F8D9 lea edx, [esp+7C0h+Args]
.text:28E3F8E0 push offset aSSSRSOSS ; "%s\\%s -s -r %s -o %s %s"
.text:28E3F8E5 push edx ; Dest
.text:28E3F8E6 call ds:sprintf
[...]


El bug es obvio, no hay ningun tipo de chequeo sobre el tamaño del string que se va a copiar al stack, con lo cual, enviando como comando un string lo suficientemente "largo" lograriamos sobreescribir el RET de la funcion e incluso el exception handler y saltar a ejecutar codigo.

Previo a llegar a esta zona del bug, hay un chequeo(sub_28E01230) sobre uno de los argumentos que se envian, el paquete debe de contener el hostname de la maquina a la cual estamos atacando:


[...]
.text:28E01250 push eax
.text:28E01251 push offset Buffer
.text:28E01256 call ds:_mbsicmp
.text:28E0125C add esp, 8
.text:28E0125F test eax, eax
.text:28E01261 jz short loc_28
[...]


Si el salto se produce, entonces llegaremos a la zona vulnerable, en caso contrario nos hechara fuera.

Para conseguir el hostname podemos hacer un request utilizando SMB, utilizando python + impacket es sencillo.

Esto que les he comentado, lo probe en la version CA ARCserve Backup r11.5 sin ningun SP ni patch level.

El bug fue arreglado en el SP2 de 11.5 en el cual reescribieron la funcion vulnerable.

Aclaro que en realidad aca son dos bugs. Si se fijan en el PoC mas abajo, lo primero que hacemos es trigerear el path traversal y luego el overflow.


El PoC (Proof Of Concept) lo pueden encontrar aqui:

Bueno, eso es todo por el momento.

Hasta la proxima!.

sábado, 26 de septiembre de 2009

Sector Virus - Solucion a los dos primeros niveles



Hola!,

Hace ya un par de dias que vencio el plazo para el concurso 1 de Sector Virus. Como nadie envio soluciones y nunca se dijo mas nada, decidi escribir las soluciones yo.

Las dos primeras las pueden encontrar provisoriamente aqui:

Solucion Nivel 1
Solucion Nivel 2

Proximamente las soluciones a los siguientes niveles.

UPDATE1:
Solucion al Nivel 3

Saludos.

martes, 22 de septiembre de 2009

PyCon 2009 - Slides

Hola!, solo queria comentarles que la mayoria de las charlas de PyCon 2009 ya fueron subidas y estan disponibles en la web de la conferencia para que se las bajen.

Pueden conseguirlas aqui: http://ar.pycon.org/2009/conference/schedule/

Haciendo click en cada una de las charlas, pueden acceder al material.

Espero que lo disfruten!.

Hasta pronto!.

sábado, 19 de septiembre de 2009

Ekoparty 2009 - Buenos Aires, Argentina - Dia #2

Hola nuevamente!,

Bueno, les voy a contar un poco que fue lo que acontecio en las charlas del dia Vienes en la Eko.

Para comenzar, nos desayunamos con la charla de Cesar Cerrudo de Argenis, "Opening intranets to attacks by using internet explorer". En esta charla, Cesar estuvo comentando un poco sobre las diferentes configuraciones por defecto que trae Internet Explorer y como esas configuraciones por defaul pueden resultar no tan seguras y abrir la puerta a un atacante que ayudado por otro tipo de bug (xss, sqli) puede acceder anonimante desde internet a la intranet de una empresa y realizar un ataque a dicha red. No hubo nada espectacular pero fue bueno conocer un poco mas sobre las configuraciones por defecto para cada zona.

La charla de Philippe Langlois, "SCCP hacking, attacking the SS7 & sigtran applications one step further and mapping the phone system". Esta charla la verdad es que no la vi, justo en este momento estabamos con algunos de los chicos de CLS en el shopping por comprar una PC nueva para Solid :P

Luego, hubo una charla de este mismo señor, Philippe sobre algo asi como un lugar de reunion para hackers para ayudar a discutir ideas y proyectos de manera libre, independiente, etc etc etc, siguiendo un poco la filosofia del CCC (chaos computer club). Un punto de renion de hackers pero sin andar escondiendose de nada ni de nadie.

Otra de las TurboTalks del dia fue la de Lucas, que estuvo contando un poco sobre estaciones numericas que son estaciones de radio desde las cuales se transmite por todo el mundo una serie de numeros que representan ordenes o tareas para los espias de un pais que se encuentra alrededor del mundo. Lucas nos mostro un par de cosas siniestras como un par de grabaciones de una estacion numerica en cuba y algunas otras mas. Ademas, dijo que se podia simplemente con un receptor de onda corta como es una radio comun y corriente, poder captar este tipo de transmiciones sin demasiada dificultad.

Luego, vino la charla de POSIX Meterpreter de Sebastian N. Fernandez, que a mi gusto no estuvo tan entretenida. Si bien la informacion presentada parecia excelente, a la hora de explicar que es lo que se habia hecho en la investigacion, quedaban muchas cosas en el tintero y sin demasiada explicacion. Sebastian es uno de los developers que ayuda en el proyecto MSF (metasploit framework) y conto un poco acerca del meterpreter anterior con el que contaba MSF (o cuenta realmente en estos momentos) y la tarea que llevo adelante desarrollando ese mismo merterpreter con una interfaz (API) que permita ejecutarse en la mayor parte de sistemas UNIX (es lo que se llama POSIX http://www.alegsa.com.ar/Dic/posix.php).

Esta fue la charla que menos me gusto por lo que mencione, no se si se debia a la poca edad y experiencia del disertante o que, pero para mi hubiera sido mejor que estuviera en una TurboTalk y no en una charla de 40 minutos o mas, incluso sobro mucho tiempo.

En fin....

Luego, vino Charlie Miller con su charla "Iphone hacking: fuzzing and payloads". Esta charla me gusto bastante, Miller, estuvo exponiendo un poco sobre la implementacion el protocolo de SMS en iphone que fue mas o menos lo que Luis Miras presento en su charla, pero ademas mostro la estructura de un mensaje de texto en iphone y un par de tooles para poder manipular estas estructuras. Luego, ya nos mostros como fue que encontro su famoso bug de SMS y los problemas que se encontro a la hora de escribir un exploit reliable para dicho bug.

Casi al final, vinieron dos ninjas, Alfredo Ortega y Anibal Sacco, sin duda, una de las mejores charlas de la Eko. La charla "Deactivate the rootkit" es la continuacion de su charla presentada en CanSec 2009 este año ("Persisten BIOS infection"). Alfred y Anibal, nos contaron que mientras intentaban meter un rootkit en la BIOS, se encontraron con algo alli adentro, alguien les habia ganado de mano y no era ni mas ni menos que Computrace. Parece, y se demostro, que dicha empresa ha hecho algun tipo de arreglo con los vendors mas famosos de laptops del mundo y han instalado un rootkit en la BIOS que permite rastrear tu maquina desde cualquier parte del mundo, lo peor de todo es que este rootkit puede ser activado de manera remota por un atacante sin autenticacion y para colmo de males la comunicacion entre el agente y el cliente remoto se realiza sin ningun tipo de encripcion en sus primeras etapas, incluso la clave que se envia para encriptar una parte de la comunicacion, es enviada en un primer stage de manera plana cosa de que todo el mundo puede verla jeje.

Ademas de comentarnos todo esto, nos mostraron un par de tecnicas y tooles, tanto para desactivar el rootkit como para detectar este rootkit en nuestras maquinas.

La ultima charla fue la de Moxie Marlinspike, "More tricks for defeating SSL in practice", pero de esta charla no puedo hablarles porque ya me habia retirado del evento, asi que si se quieren enterar van a tener que esperar a que suban los papers :P

Eso fue todo! yo la pase muy bien, me diverti, aprendi y conoci gente nueva!.

Todo un exito la Eko 2009!.

Hasta pronto!.

Delincuentes de CLS en la Eko 2009!

Solo un post cortito para mostrarles el grupo de CracksLatinoS! que se armo en la Eko.


De izquierda a derecha: Lordf00, Ricardo Narvaja, Sick, NCR (yo je), marciano, Matias Bordese y Solid. Faltan Franco, Ulises2k y Chucky (dapaf) que andaban perdidos por ahi en ese momento que entramos, a Franco lo conocimos un rato despues, con Ulises2k nos saludamos un rato mas tarde y chucky llego tarde asi que no estaba para la foto :(

jueves, 17 de septiembre de 2009

Ekoparty 2009 - Buenos Aires, Argentina - Dia #1

Hola!!!,

Quiero contarles un poco sobre lo que vi en la 5° edicion de la conferencia sobre seguridad informatica que se realizo en Buenos Aires, Argentina, este pasado fin de semana.

Antes de comenzar con la parte de las charlas, quisiera decir que este fue el año que mas concurrencia acarreo desde todos los costados del planeta, mucha gente del interior del pais, de paises vecinos y ademas del exterior.

Las charlas tuvieron un excelente nivel tecnico y presentaron algunas cosas nuevas que ya veremos.

No quisiera dejar de comentar que mucha gente de la lista CracksLatinoS! estuvo presente en la conferencia, con esa "prole" compartimos los almuerzos y breaks que se realizaron y la verdad es que la pasamos muy bien!, fue un muy buen punto de encuentro y la mejor excusa para conocer a los CLSs que faltaban por conocer.

Bueno, vamos a pasar a comentar un poco lo que se vio (y entendi) de las charlas.

Ah, algo que quisiera criticar es que si bien el nivel de las charlas fue excelente tecnicamente hablando, el contenido era muy muy bueno pero no asi el disertante, hubo un par de cosas en que la charla se volvia densa solo por la manera de explicar del disertante, aunque claro, no somos personas que nos dediquemos a las relaciones publicas sino a la seguridad informatica jeje, asi que es entendible.

Bueno, la primera de las charlas fue: "Mostrame la Guita -Adventures in buying vulnerabilities" por Pedram Amini. Basicamente, Pedram estuvo contandonos un poco sobre como surgio la idea de servicios como Idefense y ZDI del cual el es el fundador. Pedram tambien comentaba un poco el hecho de las diferentes maneras de vender una vuln y que es lo que se hace con esa informacion, a donde va a parar, quien la utiliza, etc. Tambien comento un poco sobre los montos que se estan pagando por x tipo de vulnerabilidades y ademas un par de estadisticas sobre el tiempo en que los vendors tardan en responder y patchear cuando reciben un aviso sobre un bug en sus softwares.

Luego de la charla de Pedram, vino una de las charlas que mas me gusto, de la cual no tenia idea y la que desperto un nuevo interes en mi cabeza, la charla se titulo: "Ten things everyone should know about lockpicking & physical security" por Deviant Ollam. Esta charla basicamente fue la mas divertida puesto que ademas de ser muy practica, Deviant le puso toda la onda para darla. Conto un poco sobre el tema de la seguridad fisica, diferentes tipos de cerraduras y algunas demos sobre como abrir cerraduras, candados etc. Lo que decia Deviant es que la seguridad en tu software y/o hardware es tan buena como la seguridad del lugar fisico donde ese software/hardware se encuentra. No sirve de nada tener un server room con las maquinas con IDS/IPS, patcheadas al dia, protegidas con password, etc si le pones una cerradura que se puede abrir en dos minutos con dos ganzuas.

Luego, hubo dos TurboTalks, la primera de ellas fue la de Nicolas Waisman de Immunity Inc, "Abusando Bitmask" que trato sobre una "nueva" tecnica para explotar bugs de heap overflows en windows cuando solo se puede manejar un byte, seria un off-by-one en el heap. En realidad, en la charla mostro un ejemplo de un bug en NNTP de hace un par de años en donde el overflow se producia solo por dos bytes de los cuales solo uno era handleable por el atacante.
La segunda TurboTalk fue la de Federico Meiners de CORE, "wi-fi power safe DoS". Esta charla fue tambien muy amena y muy clara. Basicamente, Federico nos contaba de una ataque de DoS que descubrio realizando uno de sus trabajos. El ataque se basa en el power safe de la maquina que esta conectada al AP que le permite entrar en un estado de "sleep" en el cual no puede enviar ni recibir paquetes.

Otra de las charlas que mas repercusion tuvo fue la de Nicolas Economou, "Heuristicas aplicadas a la comparacion de binarios". Esta charla fue una de las mas tecnicas que hubo y sin duda valio la pena quedarse. Nico nos contaba acerca de una tool que se programo para poder diffear binarios y asi poder dar con bugs (por ejemplo en los parches de Microsoft). Hizo una comparacion entre los differs actuales que se puede conseguir (pagos y gratis) para realizar esta tarea pero todos ellos fallaban en cosas muy basicas o tardaban demasiado tiempo en realizar el analisis. Su tool daba con diferencias minimas que al resto de los differs se le escapaban y que ese tipo de diferencias son fundamentales a la hora de descubrir un bug y poder hacer el exploit.

Nico ademas nos conto sobre los diferentes problemas que se encontro al desarrollar esta nueva herramienta y como los fue solucionando. Dentro de un tiempo la tool va a estar disponible en la web junto con los slides, no se lo pierdan!.

Otra de las charlas divertidas que tuvo la Eko, fue la de Chema Alonso, "Connection String Attacks" en la cual nos contaba sobre un par de productos un poco viejo pero que todavias son muy utilizados para autenticarse contra una base de datos y que lamentablemente la seguridad es muy pobre en dichos productos y con una sola comilla todo se desmoronaba y podiamos acceder a la base de datos sin mayores problemas.

La penultima charla fue la de Luis Miras, "Attacking SMS". En esta charla, Luis, nos comento un poco los diferentes ataques que se pueden hacer sobre el protocolo de SMS, como podemos desarrollar ataques y como afecta esto a los telefonos que soportan este tipo de protocolo (todos los telefonos celulares del mundo :P)

La ultima charla del dia Jueves fue la del español Leonardo Nve, "Playing in a satellite environment 1.2". Leonardo, estuvo comentando un poco como jugar con PCs y comunicaciones via satelites, como poder sniffear el trafico de estas comunicciones y como poder enviar datos a en el sentido contrario, es decir hacia el satelite.

Ademas de todas esats charlas, paralelamente habia varias actividades como retos en los stands de Core, ZDI, el CTF de la Eko y los desafios de lockpiking.

Bueno, en un rato posteo lo que acontencio el dia Viernes.

Saludos.

viernes, 11 de septiembre de 2009

Blog acerca de PyPEELF

Hola!,

Solo queria comentarles que he decidido abrir un blog para ir posteando las novedades que se van dando con PyPEELF.

Para aquel que quiera seguirlo, aca esta el link!.

Saludos!.

miércoles, 9 de septiembre de 2009

PyDbgExt - Python para Windbg

Hola!,

Solo queria comentarles algo que yo al menos no conocia. Si bien hace un tiempo ya que esta, nunca habia escuchado de el, pero gracias a unos amigos (gracias Boken y Yibam) ahora se que existe.

Se trata de una extension para Windbg que permite utilizar Python desde Windbg. Ademas, de permitirnos tener Python en la linea de comandos de Windbg, podemos utilizar scripts ya predefinidos que ya vienen hechos.

Home del proyecto: PyDbgExt

Espero que les sea util.

Hasta pronto!.

Microsoft Windows SMB 2.0 SRV2.SYS Negotiate Request BSoD

Hola!,

Bueno, ayer se han publicado los parches para este mes de Microsoft y mas alla del parche que arregla un problema en la implementacion del protocolo TCP que varios, no solo MS, tuvieron que salir a subsanar, lo mas interesante esta semana sin duda fue el BSoD publicado el lunes que afecta a Windows Vista y Windows 7.

El advisory de MS aqui.



El bug esta en el header de SMB, v2, de la nueva implementacion que nos provee MS a partir de Windows Vista.

La funcion vulnerable es _Smb2ValidateProviderCallback() que mediante un dereferenced call nos permite controlar un short proveniente de un array. El campo problematico es el Process ID High del header de SMB en el SMB_NEGOTIATE:

SMB_Header

{

UCHAR Protocol[4];

UCHAR Command;

SMB_ERROR Status;

UCHAR Flags;

USHORT Flags2;

USHORT PIDHigh; // este es el problema cuando se le pasa "&"

UCHAR SecurityFeatures[8];

USHORT Reserved;

USHORT TID;

USHORT PIDLow;

USHORT UID;

USHORT MID;

}

Cuando en ese campo se introduce un "&", produce un BSoD. La explotacion no es trivial pero si existe una posibilidad.

Ya hay un PoC publico para demostrar el fallo aqui.

Para mas informacion pueden visitar las siguientes paginas:

1- http://blog.48bits.com/?p=510#comments
2- http://reversemode.com/
3- http://www.securityfocus.com/bid/36299/

Solo como comentario les digo que he probado el PoC en un Windows 7 Ultimate x64 RTM y no ha pasado nada, el SMB_NEGOTIATE se hace efectivamente con el "&" en el campo PIDHigh, pero no hay BSoD, el SMB_NEGOTIATE Response llega.

UPDATE1:
Metasploit acaba de sacar un exploit (no PoC) para esta vuln.

http://metasploit.com/svn/framework3/trunk/modules/exploits/windows/smb/smb2_negotiate_func_index.rb

Saludos.

sábado, 5 de septiembre de 2009

PyCon 2009 Argentina! #2

Hola!,

Bueno, voy a seguir comentandoles un poco que fue lo que vi el segundo dia de conferencia de PyCon 2009 Argentina.

Bien temprano, nos desayunamos una charla llamada: "Entendiendo Unicode" por Facundo Bastista. Basicamente, la charla hablaba de Unicode (cuac!), detallando un poco el contenido, podriamos decir que transitamos por lo problemas mas comunes que un programador encuentra a la hora de tener diferentes codificaciones y basicamente lo que recomendaba Facundo era que almacenemos siempre nuestros datos en unicode, cuando los necesitemos los decodifiquemos, trabajemos con ellos y posteriormente los volvamos a codificar antes de guardarlos, de esta manera evitamos problemas de recibir datos en una codificacion y terminemos guardandolos en otra y asi luego nos perdamos entre tantas codificaciones. Obviamente, estuvo mostrando los modulos standards que nos provee python para trabajar con Unicode.

La segunda charla del dia fue la llamada: "PyQt + wxPython + PyGTK" por Roberto Alsina y Cia. En esta charla se discutieron los diferentes aspectos de cada uno de estos paquetes para desarrollar aplicaciones basadas en GUIs. Basicamente se hablo de PyGTK y sus bondades, wxPython y su flexibilidad y PyQt y su madurez. No fue una charla en la cual cada uno intentaba de convencernos que usemos su toolkit preferido sino simplemente contarnos que es lo que cada uno trae y nos permite desarrollar, luego queda a criterio del programador cual utilizar. A mi, particularmente, me gusta mucho wxPython asi que les recomiendo ese. Por que wxPython? basicamente lo que me convencio fue la facilidad para aprender a programar con el y su completa API, posee la mayoria de los widgets modernos y permite manipularlos de una manera muy sencilla. Vale aclarar que cada uno de estos toolkits es cross platform.

La tercera charla a la que asisti fue: "from wiimote import fun" por Juan Manuel Schilliaci y Hector Sanchez, una charla dedicada a wiimote y Python.

La charla se baso en un par de scripts y experimientos que se hicieron utilizando el wiimote y Python. Los muchachos realizaron varias demos entre las que recuerdo que se utilizo el wiimote como control remoto de un media player asi como el control remoto de un auto. Tambien, se programo un script para poder utilizar el wiimote como un instrumento utilizando Oxygen, y ademas tenian un script que permitia utilizar el wiimote para juegos realizados con PyGame.

La cuarta charla tuvo que ver con "Taint Mode en Python" por Juan Jose Conti.

Esta charla se basaba en un proyecto nuevo dedicado a encontrar bugs en la etapa de desarrollo del software mediante variables manchadas. Una variable manchada basicamente es una variable que contiene un input malicioso y puede terminar generando un error en nuestro programa. Juan nos comento diferentes tecnicas para poder marcar este tipo de variables y poder informarle al usuario de estos posibles fallos y asi corregirlos antes de que el software sea puesto en produccion.

La quinta charla, "Twisted para seres humanos" por Lucio Torre, tuvo que ver, obviamente, con Twisted, es un completo engine para desarrollar aplicaciones de red, como por ejemplo, un servidor web. Basicamente, presento este proyecto como una alternativa a la hora de trabajar con multi procesos y multi threads para poder atender miles de peticiones concurrentes. La API de Twisted presenta un par de funciones mediante las cuales pueden atenderse miles de peticiones concurrentes con muy pocos recursos.

La sexta y ultima charla a la cual asisti el dia sabado fue "Behind the scenes: Python bytecode" por Matias Bordese. Fue una de las charlas que mas esperaba cuando vi el cronograma y sin duda fue la que mas me gusto y tuvo que ver con el trabajo que hago. Basicamente, Matias, nos estuvo explicando como es que funciona python desde adentro, su byte code, como la vm los interpreta, como reconstruir un programa a partir de su byte code (como obtener su codigo fuente), como escribir un programa directamente utilizando el byte code y un pequeño ejemplo de RCE sobre un crackme para resolverlo utilizando justamente solo el byte code de python.

Luego de esto, hubos una hora de charlas relampago y una plenaria dicatada por Colin Winter, llamada "Unladen Swallow", pero ya habia sido demasiado para mi por un fin de semana, casi 18 horas en la semana de Python habia agotado mi cerebro :P

En conclusion puedo decir que para ser la primera vez que se da una conferencia de Python en español, fue excelente!, solo eso!. Ademas, esta conferencia fue pure Python Argentina!, made in Argentina asi que eso me alegra mas aun!.

Hasta el proximo post!.

PyCon 2009 Argentina!


Hola!,

Acabo de volver de PyCon 2009, la primer conferencia en español sobre Python!. Es la primera que se hace en sudamérica una conferencia en español de esta índole. Si bien hay ya varias PyCon en otras partes del mundo, esta en particular es la primera hablada en español. Puden consultar el resto de las PyCon en esta página.

Bien, queria contarles un poco sobre las charlas a las cuales estuve asistiendo pero primero quisiera admitir de que mi espectativa con respecto a esta conferencia no era la mejor, mi idea fue: "voy para ver que hay", pero me lleve una sorpresa, volvì con muchas cosas nuevas en la cabeza y con un panorama completamente diferente al que esperaba. Charlas de muy buen nivel, muy bien explicadas y sobre todo, muy buen ambiente!.

Para ver el programa de las charlas pueden seguir este link.

Creo que esta de más decir que en esta conferencia, todas las charlas, contienen un contenido relacionado con el lenguaje de programación que es Python, intentando enriquecerlo con nuevas librerias, tecnologías e ideas para seguir creciendo.

La primera de las charlas a las cuales asistí fue "Python como un lenguaje de hacking" en la cual Andrés Riancho de Bonsai estuvo dando un pantallazo sobre un par de librerías utilizadas para la realizar assesmente de aplicaciones web. Estuvo hablando sobre la implementacion y la utlizacion de librerias como scapy y sobre algunos frameworks para fuzzing como Peach y w3af. En mi opinion, le falto detenerse un poco mas en algunos puntos pero a nivel contenido estuvo muy bien.

En particula lo que mas me gusto de esa charla fue scapy que hasta ahora solo la conocia de nombre pero me parecio una muy buena libreria que nos abstrae de por ejemplo, libpcap y que permite disectar paquetes de manera muy facil, asi como enviar cosas al cable sin problema, sin siquiera tener que formar un paquete valido.

Ademas, Peach que tambien lo conocia de nombre, me parecio excelente para armar fuzzers de una manera mucho mas inteligente que solo fuzzear un par de bytes de manera random. Si bien la curva de aprendizaje puede parecer algo lenta, puesto que hay que conocer un poco el procolo o formato de file que estemos fuzzeando para poder decirle a Peach que campos fuzzear y cuales no, me parece una muy buena opcion para armarse fuzzers un pequeño grado de inteligencia y poder encontrar vulns (si tenemos suerte).

La segunda charla a la cual asisti fue: "Byte Twidding: Optimizando el manejo de (muuuuuchos) bytes" por Alejandro J. Cura.

En esta charla se discutio al respecto de algunas tecnicas o mecanismos que se utilizan para programar en python cosas relacionadas con musica, imagenes y sonido que muchas veces suelen generar overhead sobre nuestra aplicacion. Alejandro, estuvo mostrando un par de libs interesantes para trabajar con imagenes como Python Imaging Library, librerias para trabajar con numeros como NumPy, y librerias para trabajar con sonido de las cuales no recuerdo el nombre pero que podran ver en la presentacion y los slides en la web de PyCon dentro de poco.

Basicamente, lo que Alejandro comentaba era no perder tiempo en escribir una libreria en C/C++ para procesar datos de maneras mas rapida y eficiente y proxearla median, por ejemplo, PyRex, sino hacer uso de algunas librerias como las mencionadas antes para poder realizar un procesamiento mucho mas eficiente de los datos y no enlentecer nuestro programa/script en python.

La tercer charla a la cual asisti fue: "¿Sueñan las serpientes electronicas?" por Fernando Russ (o Fruss para los amigos) y Alejandro David Weil (Dave o Tenuki para los amigos :P).

Esta charla la considero una de las mas interesantes de la conferencia puesto que hablaron de una "nueva" tecnologia que Python y las aplicaciones necesitaran en algun momento que sera la de detener la ejecucion de codigo en un momento dado, guardar el estado y el contexto de ese programa de alguna manera y luego poder volver a restaurarlo con el contexto que nosotros querramos. Basicamente es un desafio y los muchachos estuvieron mostrandonos conceptos, ideas, problemas y soluciones sobre dicho tema. Todo esto desemboca en una nueva libreria escrita en pure-Python llamada dreampy (la cual no es publica todavia) pero que pretende llevar a cabo esa idea, suspender ejecucion de codigo y restaurarlo esa ejecucion en un momento dado.

Otra de las charlas que mas me gusto fue: "Juegos educativos con Pygame" por Alejandro J. Cura y Hector Sanchez.

Yo pensaba que hacer un juego era realmente un trabajo tedioso, pesado y demasiado complejo (de hecho lo es para juegos en 3d y avanzados como los hay hoy) pero realizar juegos 2-d utilizando PyGame resulta muy sencillo y divertido. Los chicos nos llevaron a traves de un par de diapositvas en las cuales nos mostraban paso a paso como armar un sencillo juego en 2-d. Obviamente no es la unica lib en python para armar juegos, tambien esta COCOS 2d, pero PyGame es la mas madura de todas, hace alrededor de 10-15 años que se mantiene por lo cual es bastante estable y la mayoria de los bugs que el resto de las librerias posee, en PyGame ya fueron reparados.

Una de las ultimas charlas a las cuales asisti el dia viernes fue: "PyCasa inside: PyGTK on glade" por Natalia Beatriz Bidart y Matias Bordese.

En esta charla, Natalia nos llevo por un paseo alrededor de PyCasa, la aplicacion para administrar los albumnes de picasa web.

Ademas de mostrarnos como estaba hecho PyCasa, nos mostro como funciona y como se compone PyGTK y como desarrollar aplicaciones utilizando PyGTK + glade (un RAD para desarrollar GUIs en python). A mi particularmente, me gusto mucho puesto que yo hasta ahora habia realizado aplicaciones utiilzando Boa Constructor, VisualWx y wxPython, pero GTK + PyGTK parece una buena opcion aunque me parecio un poco mas dificil de aprender a utilizar que wxPython.

Luego de todas estas charlas, hubo un par de charlas relampago de las cuales rescate charla de Ricardo Quesada (el creador de COCOS 2d), que hablaba de PyWeek, una competencia para realizar un juego totalmente en python desde cero en tan solo 7 dias!, lo mejor es que se puede participar en la competencia desde nuestra propia casa y tanto en grupo como de manera individual.

Luego hubo una charla plenaria dicatada por Jacob Kanplan (principal interventor en el proyecto django) pero a esta charla no pude asistir asi que no puedo comentarles que fue lo que se discutio :P

Uff, ya escribi demasiado por ahora, cuando me tome un descanso vuelvo a postear sobre las charlas del segundo dia, sabado, que estuvieron igual de interesantes que el primer dia!.

Hasta dentro de un rato!.

sábado, 29 de agosto de 2009

PyPEELF - Multi-Platform & Multi-Format Binary Editor

Hola!, este post es para contarles un acerca de un proyecto Open Source en el que estamos trabajando con unos amigos. Se trata de un editor binario multi plataorma y multi formato.

Qué quiere multi-plataforma y multi-formato? Quiere decir que corre tanto en Windows / Linux, sea x86 o x64 nativamente y además soporta PE32, PE+ (PE64) y ELF y en un futuro pensamos darle soporte para Mac OS X.

Actualmente se encuentra en fase de desarrollo todavía, estamos deliverando que incluir en el primer release y que queda para los próximos. Además de lo básico de un editor binario contará con soporte para .NET, es decir que podrá visualizarse y editarse datos propios del formato .NET. Esto último es posible mediante CFF Explorer Suite de Daniel Pistelli pero la diferencia con PyPEELF es que este es Open Source, además de que es nuestra propia implementación.

Pensamos además incluir algunas herramientas extras para hacerlo lo mas completo posible. Todavia no tenemos una fecha fijada para el primer release pero esperamos que sea pronto. Cada uno de nosotros (3 por el momento) tenemos nuestros propios trabajos y esto lo hacemos como hobbie con lo cual el tiempo que le dedicamos no es suficiente pero hacemos lo posible.

Este proyecto esta realizado completamente en Python y utilizamos wxPython para la GUI.

Cuando tengamos mas noticias les informaremos!.

Hasta la próxima!.

sábado, 15 de agosto de 2009

Sector Virus - Virus Challenge #1

Hola!, Queria comentarles acerca de un nuevo grupo (actualmente se encuentra en Googlegoups) que se dedica a la enseñanza de programación de Virus. Actualmente cuenta con varios miembros de la lista Crackslatinos a los cuales les interesa, además del cracking, poder aprender y enseñar sobre programación de virus, analisis de malware, rootkits, etc.

Básicamente está orientada a gente que recién comienza en el tema y no tiene conocimientos sobre ASM y/o Virus pero también está abierta a debates sobre temas avanzados.

En un principio era ZeroPad el moderador e impulsor de la lista pero debido a su escaso tiempo para poder dedicarle a la lista, Asphixya se esta haciendo cargo y dandole un nuevo impulso proponiendo un Virus Challenge #1 que cuenta con 4 virus diseñados por el para poder realizar desde un analisis básico hasta algo mas avanzado.

Además de este VC, existe un curso sobre programación de Virus que se esta desarrollando y que actualmente va por la parte #13.

Los invito a darse una vuelta por el grupo: http://groups.google.com.ar/group/sector-virus

Además, pueden bajarse los tutoriales del curso de programación de virus desde aquí: http://ricardonarvaja.info/WEB/OTROS/PROGRAMACION%20DE%20VIRUS/

Hasta la próxima!.

viernes, 31 de julio de 2009

Papers - BlackHat 2009


Este entrada es solo para comentar que ya estan disponibles los papers, slides y videos de las presentaciones que se dieron en BlackHat 2009.

http://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html

Algunas interesantes como la que dieron Alfredo Ortega y Anibal Sacco de Core Security Technologies en la que nos dieron a conocer de un rootkit que viene preinstalado en casi todas las laptos del planeta :P

Lean!.

jueves, 23 de julio de 2009

Otra vez sopa! (nuevo 0-day en Adobe Flash)



Parece que anda circulando un nuevo worm explotando una nueva vulnerabilidad (todavia no patcheada) en Flash Player. Parece que ademas, este worm, afecta a Adobe Reader al poder embeber un .swf dentro de un .pdf.

Hasta el momento no hay mas noticias publicas. En Milw0rm se publico un supuesto PoC:

http://milw0rm.com/exploits/9233

Pero aparentemente segun Symantec este no tiene relacion con este nuevo 0day.

Para mayor informacion pueden visitar los siguientes sites:

http://twitter.com/Str0ke
http://twitter.com/hdmoore
http://blogs.adobe.com/psirt/2009/07/potential_adobe_reader_and_fla.html
http://www.kb.cert.org/vuls/id/259425

UPDATE1:
http://xorl.wordpress.com/2009/07/23/adobe-vulnerability-on-milw0rm/
http://blog.fireeye.com/research/2009/07/actionscript_heap_spray.html
http://isc.sans.org/diary.html?storyid=6847
http://extraexploit.blogspot.com/2009/07/something-about-cve-2009-1862-poc.html


Saludos.

lunes, 20 de julio de 2009

while(1), simple as that!.

Hola!,

queria contarles de un problema que tuve y como lo solucione muy facilmente.

La situacion era la siguiente: tenia un webserver corriendo y ademas otro programa que fowardeaba los requests http de determinada clase al webserver. Determinado request hacia que se cargue una dll on-demand que yo queria tracear. En principio, sospechaba del proceso responsable de cargar dicha dll pero probando con Olly varias cosas como por ejemplo, setearlo para que se detenga cuando una dll nueva es cargada, no funcionaba, ni tampoco un BPX en LoadLibraryA. La cosa se ponia dificil.

Conversando un rato con un amigo (Yibam) y comentandole el problema que tenia, ideamos un par de soluciones que podian llegar a resultar, como por ejemplo, utilizando un driver y desde kernel seteando un callback para que cuando se carguen las dlls podamos determinar que proceso era y que dll cargaba. Otra idea fue implementar eso mismo pero desde user-mode con uhooker....todas eran soluciones un tanto liosas para algo tan simple.

Luego, hablando con otro amigo (marciano) me dijo: "y si pones un INT3 en el DllMain?", la idea era buena, la probe pero resulta que el webserver parecia catchear la excepcion y tirar un error :(

Finalmente di con la solucion (gracias marciano nuevamente), por que en lugar de un INT3 no colocamos un JMP EIP (while(1))?. Pues dicho y hecho, eso fue lo que hice y pum!!!! habia un proceso que se "comia" el 99% del CPU!, attacheandome a dicho proceso pude comprobar que era el causante de cargar la dll que tanto buscaba.

Al final, un problema que parecia sencillo, para el cual habiamos diseñado soluciones algo complejas, termino solucionandose con algo super sencillo!, como era de esperar.

Bueno, eso, una estupidez pero queria contarselas!.

Hasta la proxima!.

lunes, 13 de julio de 2009

Nuevo 0day en Microsoft Office (Web Components) CVE-2009-1136

Hola!,

Parece que MS ha publicado un nuevo advisory sobre una vulnerabilidad en Web Components instalado por varias versiones de Office (XP, 2003, 2007). Aparentemente es un ActiveX cuyo CLSID es {0002E541-0000-0000-C000-000000000046}.

Aqui la lista de software afectado:

Microsoft Office XP Service Pack 3
Microsoft Office 2003 Service Pack 3
Microsoft Office XP Web Components Service Pack 3
Microsoft Office 2003 Web Components Service Pack 3
Microsoft Office 2003 Web Components for the 2007 Microsoft Office system Service Pack 1
Microsoft Internet Security and Acceleration Server 2004 Standard Edition Service Pack 3
Microsoft Internet Security and Acceleration Server 2004 Enterprise Edition Service Pack 3
Microsoft Internet Security and Acceleration Server 2006
Internet Security and Acceleration Server 2006 Supportability Update
Microsoft Internet Security and Acceleration Server 2006 Service Pack 1
Microsoft Office Small Business Accounting 2006

Aqui esta el advisory de Microsoft:

http://www.microsoft.com/technet/security/advisory/973472.mspx

Algunos links de interes mas:

http://blogs.technet.com/msrc/archive/2009/07/13/microsoft-security-advisory-973472-released.aspx

http://blogs.technet.com/srd/archive/2009/07/13/more-information-about-the-office-web-components-activex-vulnerability.aspx

PoCs:
http://downloads.securityfocus.com/vulnerabilities/exploits/35642.html
http://downloads.securityfocus.com/vulnerabilities/exploits/35642.rb

A patchear sus sistemas!.

viernes, 10 de julio de 2009

Crackinglandia ahora en twitter!

Hola!,

Si, como dice el titulo del post, ahora Crackinglandia en Twitter!:

http://twitter.com/crackinglandia

Eso, un update rapido!.

Nos vemos!.

sábado, 16 de mayo de 2009

Cracking en linux por Juan Jose

Hola manola!,

Solo queria comentarles sobre el gran trabajo que esta haciendo Juan Jose (Amigo de la lista CracksLatinoS!) para enseñarnos sobre cracking en Linux. Hasta ahora lleva publicados 4 tutoriales acerca de este tema, los dos primeros son basicos acerca del manejo de GDB y los ultimos escritos hablan acerca de un "nuevo" framework que entre muchas de las tools que trae, incluye un debugger.

Para el que quiera chusmear los tutoriales, pueden encontrarlos aqui:

Crackeando en Linux por Juan Jose

Cualquier duda o pregunta pueden escribirle directamente a Juanjo que no tendrá ningun tipo de problema en contestarles!.

Saludos.

miércoles, 6 de mayo de 2009

[CLS].Themida.desde.cero.PARTE.I











Hola!,

Aca les dejo el primer tutorial de una saga. Espero que les guste.

[CLS].Themida.desde.cero.PARTE.I.by.+NCR

NOTA: si 4shared les avisa de un virus en el paquete es solo porque viene con los programas packeados con themida y dumpeados. La heuristica del AV lo detecta como virus pero en realidad no es mas que por el polimorfismo del codigo del packer. Pueden bajarlo sin problemas.

Hasta la proxima!.

sábado, 18 de abril de 2009

Reto panda - Solucion Reto 1, 2 y 3


Hola!,

Hace unos dias cerro el reto panda. Consistia de tres desafios (crackmes) que habia que resolver. Yo no pude ver ninguno todavia por falta de tiempo pero algunos amigos si lo hicieron y ha resuelto el primero de ellos, asi que aqui les dejo los tutoriales:

Soluciones al reto1:

Solucion por Shaddy

Solucion por Thor - Parte 1
Solucion por Thor - Parte 2
Solucion por Thor - Parte 3

Solucion(nes) reto2:

Solucion por Abbsha y GUAN DE DIO

Soluciones al reto3:

Solucion por Romansoft

Hasta la proxima!.

miércoles, 1 de abril de 2009

[NCR2009] Black Crk y pydbg con VisualWx PARTE2

Hola!,

Aca les dejo la segunda parte de este tutorial.

[NCR2009] Black Crk y pydbg con VisualWx PARTE2

Hasta la proxima!.

lunes, 30 de marzo de 2009

El confite que esta de moda....

Hola!,

Parece que ultimamente el Conficker (el worm que explota la vuln MS08-67) esta mutando muy seguido, ya hay varias versiones y parece que proximamente se estara actualizando.

Aca les dejo algo de info sobre el bicho este, lectura recomendable, abalisis y hasta un scanner para el conficker:

http://mtc.sri.com/Conficker/
http://vil.nai.com/vil/content/v_153464.htm#tab1
http://www.honeynet.org/node/254
http://mtc.sri.com/Conficker/addendumC/index.html
http://it.slashdot.org/it/09/03/30/090224.shtml

Aca les dejo el scanner hecho en python con impacket: Conficker Scanner

Hasta la proxima!.

domingo, 22 de marzo de 2009

Algo mas sobre pydbg...

Hola!,

Como recibi algun mensaje sobre el ultimo tutorial sobre pydbg y VisualWx de que habia algunas cosas que no se comprendian del todo en cuanto al uso de algunas funciones de pydbg y struct, pues aca les dejo un compendio sobre ello.

Compendio funciones pydbg

Hasta la proxima!.

viernes, 20 de marzo de 2009

[NCR2009] BlackCrackme con pydbg y VisualWx PARTE1

Hola!,

Aca les dejo otro tutorial sobre como solucionar un lindo crackme con pydbg y VisualWx.

Saludos.

Unwrappers for BlackCrackme

Hola!,

solo queria postear estos dos pequeños unwrappers que escribi para el BlackCrackme.

Unwrapper1
Unwrapper2

Luego voy a mandar un tutorial de como resolver el crackme y los unwrappers.

Saludos.

jueves, 19 de marzo de 2009

La odisea Python 2.5 + PAIMEI (pydbg)

Hola!,

Muchas veces lei por ahi en la web de que siempre hay problemas a la hora de hacer funcionar a PAIMEI, en especial pydbg con Python 2.5, asi que aca les dejo un pequeño apunte de como hacerlo!.

Instalar PAIMEI con Python 2.5

De aca se pueden bajar todos los programas que menciono en el tutorial

Saludos.

miércoles, 18 de marzo de 2009

[NCR2009] White keygen en VisualWx y py2exe

Hola!,

Aca les dejo el anexo que les prometi sobre el keygen en VisualWx:

[NCR2009] White keygen en VisualWx y py2exe

Hasta el proximo post!.

Saludos.

[NCR2009] - Un crackme sencillo en .NET

Hola!,

Solo postear algo muy sencillo en .NET:

[NCR2009]Un.crackme.sencillo.en.NET

Saludos.

martes, 17 de marzo de 2009

El anexo que debia...

Hola!,

Hace ya un tiempo, publique un tutorial sobre un sencillo Keygenme y me habia quedado pendiente el keygen asi que aca esta. Es un simple script en python muy mal hecho pero que cumple con su cometido!. Proximamente voy a estar subiendo un pequeño .doc o .pdf en el cual vamos a dejarlo un poco mas bonito programando una GUI en VisualWx!.


# little keygen to White Crackme (HMX0101) by NCR/CRC! [ReVeRsEr]
# 17/03/2009

import sys
import random

username = sys.stdin.readline().strip("\n")
namevalue = 0

# generate a name based value
for i in range(len(username)):
if ord(username[i]) >= 0x30 and ord(username[i]) <= 0x39:
namevalue += 2 * ord(username[i])
if ord(username[i]) >= 0x41 and ord(username[i]) <= 0x5a:
namevalue += ord(username[i]) + ord(username[i]) * 2
if ord(username[i]) >= 0x61 and ord(username[i]) <= 0x7a:
namevalue += ord(username[i]) << 2

namevalue = namevalue & 0xFFF

# generate a random number
randvalue = random.randint(1,9999)
if randvalue < 1000:
randvalue = str(0) + str(randvalue)
else:
randvalue = str(randvalue)

sp = str(((((int(randvalue[2]) << 4)) + namevalue) + (int(randvalue[3]) << 4)))

num1 = random.randint(0,9)
num11 = random.randint(0,9)
num13 = random.randint(0,9)

while 1:
if((num1 + int(randvalue[2]) + num11 + num13) != 0x18):
num1 = random.randint(0,9)
num11 = random.randint(0,9)
num13 = random.randint(0,9)
else:
break

num12 = random.randint(0,9)
num14 = random.randint(0,9)
num2 = random.randint(0,9)

while 1:
if(2 * (int(randvalue[3]) + num2 + num12 + num14) != 0x20):
num12 = random.randint(0,9)
num14 = random.randint(0,9)
num2 = random.randint(0,9)
else:
break

num16and17 = str(((ord(username[0]) >> 1) + num1) + 0x0a)
num18and19 = str(((ord(username[len(username) - 1]) >> 1) + num2) + 0x08)

print 'serial is: %s-%s-%s-%s' % (str(num1) + str(num2) + str(int(randvalue[2])) + str(int(randvalue[3])), sp, str(num11) + str(num12) + str(num13) + str(num14), str(num16and17) + str(num18and19))

Pueden bajar el script desde aca.

Hasta la proxima!.

pd. no se rian del codigo, son las 2:41 a.m!!!, tengan piedad! :P

lunes, 16 de marzo de 2009

Web

Hola!,

Solo queria dejarles saber que un amigo me ha ayudado a colgar todos los tutoriales que he escrito aqui:

http://www.reversinglabs.com.ar/ncr/

Saludos.

viernes, 13 de marzo de 2009

Windows 7 beta 2

Hola!,

Solo quiero hacer este post para darles mi opinion sobre la beta 2 de Windows 7.

Estuve usandola un poco en una VM y y la verdad es que quede asombrado. Yo en general busco un OS que me de estabilidad, seguridad y que ademas sea agradable a la vista, no me importa si es Windows, algun derivado Unix, *BSD o lo que sea, de hecho he sido usuario de Windows por mucho tiempo y el que mas a durado en mi maquina es Windows XP desde su version inicial hasta el SP3, pero ademas he pasado por Ubuntu, Kubuntu, Debian, en incluso he llegado a usar algun *BSD como Desktop BSD. Tambien, he probado las versiones de Windows Vista y debo decir que Windows 7 en mi particular opinion es mucho mas rapido, estable y agradable que Windows Vista (hablo como usuario final). Para mi, Windows Vista fue el fracaso mas grande de la historia de los OS, tal vez con el SP 1 lo arreglaron un poco pero sigue siendo un horror. Luego probe Windows Server 2008 y andaba mucho mejor que Windows Vista con lo cual pense: "apreiendieron de los errores", y ahora con Windows 7 creo que se estan reibindicando.

Como dije, la estabilidad de la beta es increible y ademas la rapidez con la que corre en una VM (teniendo en cuenta que cuando hice la prueba con Windows Vista, este se arrastraba por decirlo de alguna manera), ademas de que la interfaz es muy fluida y vistosa, asi que extrapolando los resultados obtenidos en la VM a una maquina fisica, imagino que andara mucho mejor, incluso escuche que este Windows 7 lo estan preparando especialmente para que corra en computadoras como las EEPC y similares, asi que esperemos que cuando salga la version final ahora cerca de octubre se mantengan o mejoren los resultados. Lastima que segun lei, va a ser el ultimo OS de Microsoft con soporte para 32 bist, los proximos solo contaran con versiones de 64 bits, pero bueno, es la evolucion :P ya no nos podemos conformar con que nuestra maquina nos reconozca solo 3 GB de Ram :P

Ah, me falta agregar que las pruebas las realice en una Intel Pentium Core 2 Duo 2 Ghz, con 2 GB de Ram.

Hasta la proxima!.

jueves, 26 de febrero de 2009

Estamos sick! :P

Bueno, con un amigo que no quiero decir quien es pero esta medio Sick!, estamos armando un nuevo proyecto aqui:

reversinglabs.com.ar

Vamos a intentar postear perdiodicamente algunas cosas referentes a ingenieria inversa asi que si quieren ver de que se trata los invito a que se den una vuelta por alli.

Todavia no hay mucho movimiento puesto que estamos ultimando detalles, viendo que posteamos que no, elijiendo temas y demas cosas que un proyecto asi implica.

Si alguno quiere formar parte de ello, pues que escriba a sick@reversing.com.ar o a ncr@reversing.com.ar

En fin...agendenlo!.

Hasta pronto!.

viernes, 20 de febrero de 2009

Asuntos pendientes (White Crackme)

Hola!,

Volvi de la muerte y junto conmigo traje algunos proyectos que me habian quedado en un volumen encriptado con TrueCrypt :P, uno de ellos era la solucion al White Crackme de HMX!. Para el que quiera leerla, aca la tiene:

White Crackme PARTE II by +NCR

Hasta la proxima!,
NCR