Mostrando entradas con la etiqueta visual studio. Mostrar todas las entradas
Mostrando entradas con la etiqueta visual studio. Mostrar todas las entradas

martes, 6 de noviembre de 2012

Know your WhatsApp password on Windows Phone


Everybody knows WhatsApi and derivatives thereof to use WhatsApp without a smartphone. The password which is used for Android is based on the device IMEI and the WiFi MAC address for iPhone. I wondered how it works on Windows Phone and here I expose my results.

The first was obtain the libraries WhatsApp.dll and WhatsAppCommon.dll from the phone just as I did with the database in my previous post (in spanish). 

With the DLLs in the PC I launched a .Net decompiler to take a look at the code. There are several such applications as ILSpyCCI Explorer.Net Reflector...

Inside WhatsApp.dll we find a method called CheckCode(string) of the EnterCode class in the WhatsApp.verify namespace.


We can watch that one of the WebRequest parameters (text) is the password we're looking for. We see that it's made by obtaining the DeviceUniqueId to send it later to the ToPassword method found in WhatsAppCommon.dll.


From ToPassword it calls the GetHashString method of the MD5Core class based on Silverlight MD5Core.





To go faster I decided to make an application to generate the password through importing the libraries. To use these DLLs in Visual Studio you must unblock them before. How to: Use an Assembly from the Web in Visual Studio. How to: Use an Assembly from the Web in Visual Studio.


The following code was enough to get the password and try:

txtPass.Text = ((byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId")).ToPassword();

Also I added a button that would allow me to copy the key for further testing.

And now we make a request to the Whatsapp server to verify if it's correct or not ...


¡Jackpot! status="ok"

Let's try from WhatsApi but before we must modify the encryptPassword function of the whatsprot.class.php file to avoid a password change after introduce ours in whatsapp.php.


Correct.

I hope it will be helpful.

Conoce tu contraseña de Whatsapp en Windows Phone

Todo el mundo conoce WhatsApi y derivados de éste para poder hacer uso de Whatsapp sin tener que emplear el teléfono móvil. La contraseña que se emplea para Android se basa en el IMEI del dispositivo y para iPhone la dirección MAC de la antena WiFi. Quería descubrir cómo funciona en Windows Phone y aquí os expongo mis resultados.

Lo primero fue extraer las librerías WhatsApp.dll y WhatsAppCommon.dll del teléfono del mismo modo que lo hice con la base de datos en mi anterior post

Con las DLLs en el PC empleé un decompilador de .Net para poder echar un vistazo al código. Existen varias aplicaciones de este tipo como son ILSpy, CCI Explorer, .Net Reflector...

Dentro de WhatsApp.dll encontramos un método llamado CheckCode(string) de la clase EnterCode del espacio de nombres WhatsApp.verify.


Podemos observar que uno de los parámetros (text) del WebRequest es la contraseña que estamos buscando. Vemos que la crea obteniendo el DeviceUniqueId del dispositivo para luego mandarlo al método ToPassword que se encuentra en WhatsAppCommon.dll.


Desde ToPassword llama al método GetHashString de la clase MD5Core basada en la de MD5Core de Silverlight.





Para ir más deprisa decidí hacer una aplicación que me generase la contraseña importando las librerías. Para poder hacer uso de estas DLLs en Visual Studio hay que desbloquearlas antes. How to: Use an Assembly from the Web in Visual Studio.


Con el siguiente código bastaba para obtener la contraseña y probar:

txtPass.Text = ((byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId")).ToPassword();

También le agregué un botón que me permitiese copiar la clave para su posterior prueba.

Y ahora hagamos una petición a los servidores de Whatsapp para verificar si es correcta o no...


¡Premio! status="ok"

Probemos desde WhatsApi pero antes modifiquemos la función encryptPassword del fichero whatsprot.class.php para que al introducir nuestra contraseña en whatsapp.php no le aplique ningún cambio.


Correcto.

Espero os sea útil.

martes, 11 de septiembre de 2012

SOMBRA for SQL Servers

Voy a presentaros una aplicación que empecé a desarrollar hace ya algún tiempo pero por un motivo u otro no lo terminé en su día. Ahora que el INEM ha fichado por mí, estoy más ocioso y he podido terminarla.

Su nombre es SOMBRA y sirve para probar accesos a Servidores de Microsoft SQL Server mediante fuerza bruta. Con ella podemos obtener un listado de todos los servidores que podamos ver en la red y luego realizar diferentes pruebas de acceso. Puede servirnos como herramienta de pentesting o para probar si continuamos utilizando usuarios y contraseñas que deberíamos haber cambiado, configuraciones por defecto... tan solo tendremos que elegir que credenciales emplear ya que permite varias opciones como el uso de diccionarios.

Lo he desarrollado en C# (.Net Framework 3.5) intentado diseñar una interfaz lo más sencilla y amigable posible. Es como un asistente en el que no puedes avanzar si algo no está correcto.

Algunas capturas para que veáis su funcionamiento:

Primero listamos los servidores y seleccionamos aquellos que nos interese poner a prueba.

Elegimos como nos vamos a conectar. En este caso elegimos que el usuario siempre sea "sa" y un fichero de texto con un listado de contraseñas.

SOMBRA realizará las conexiones a los servidores elegidos anteriormente empleando la configuración indicada; un usuario fijo y alternando la contraseña.

Si tenemos suerte nos aparecerán listados los servidores con los que hayamos conseguido acceso.


Agradecer desde aquí la traducción en alemán a mi amiguete RooLop.

Sin más dilación os dejo el enlace:

Descargar SOMBRA
MD5: a3371d4d4d4db8a9fa1af0ae94ab2d58
SHA1: cda8a35e44aa47c1bbd851d48c816e8ba5a8b4c2

Espero que os sea útil y me comentéis que tal os ha ido.







jueves, 2 de junio de 2011

WP7 - Debloqueo del Desarrollador


Acabo de recibir un nuevo teléfono con Windows Phone 7 y lo primero que quiero hacer es probar alguna de las aplicaciones que hice. Lo conecto al pc, sincronizo con Zune y demás rollos, abro Visual Studio 2010, elijo que se ejecute la aplicación en el dispositivo, desbloqueo la pantalla para que no haya problemas y... zasss!! Recibo el siguiente mensaje:

Error al iniciar la aplicación. Asegúrese de que la pantalla del dispositivo está desbloqueada
y que dicho dispositivo no está bloqueado por el desarrollador. Para obtener detalles sobre del
desbloqueo del desarrollador, visite la página web http://go.microso

Sí, has leído bien "http://go.microso". Bueno, ¡no pasa nada! Lo que intenta decirte el error es que vayas a C:\Program Files\Microsoft SDKs\Windows Phone\v7.0\Tools\Phone Registration y ejecutes la aplicación PhoneReg.exe con el teléfono conectado al pc.

Aparecerá una formulario donde debes introducir tu usuario y contraseña de Windows Live Id. Puede que te de un error diciéndote que desbloquees la pantalla y luego pulses reintentar, ningún problema.

Tras aceptar el registro devolverá la siguiente ventana:

¡Tan fácil como esto!

Desde este momento, en nuestra cuenta de App Hub aparecerá el nuevo dispositivo y estará listo para poder ejecutar nuestras aplicaciones a través de Visual Studio o Expression Blend.


Y si tienes dudas ya sabes que puedes consultar "http://go.microso" ;-)


sábado, 20 de noviembre de 2010

Cambiar configuración de entorno en Visual Studio

Quizás a alguno le pueda parecer una tontería, pero no encontraba el modo para volver a cambiar la configuración de entorno que te ofrece la primera vez que arrancas Visual Studio tras su instalación. No sabía ni que nombre tenía y al final en un foro (de msdn si no recuerdo mal) encontré la solución y me consoló saber que no era el único con este problema.

Por si alguien se encuentra en la misma situación que sepa que se hace rapidísimo. Pinchamos en:

Herramientas > Importar y Exportar Configuraciones...


Nos permite exportar nuestra configuración actual o importar otra guardada anteriormente. Continuo seleccionando restablecer todas las configuraciones:


Te permite guardar la actual configuración por si quisieses dar marcha atrás:


Y conseguimos llegar al menú deseado: