lunes, 8 de enero de 2024

VideoTutorial: Desbloqueando un proyecto de Microwin para S7-200

 Hola gente aca les dejo este pequeño y simple videotutorial donde muestro com obtener el password de un proyecto para el PLC s7-200 con Microwin y x64dbg.



Espero les sirva!

Saludos!

martes, 29 de diciembre de 2020

Protege tus apps hechas en .Net!


 Gente como va?

Aquí les traigo este código de ejemplo con tres técnicas básicas para proteger tus códigos hechos en C# .Net.


Las técnicas que utilizo son:

  • Detección de depuración básica.
  • Ofuscación de código básica.
  • Encriptación de código básica.


Desde aquí pueden acceder al enlace del repositorio con el ejemplo: 

     https://github.com/EmilianoFT/HMC


Espero les sea de utilidad.

Salludos!!!

sábado, 30 de mayo de 2020

VideoTutorial: Desbloqueando proyectos de WinProLadder (Fatek) protegidos por contraseña.

Hola gente, aca les traigo un videotutorial de uno de las publicaciones de como desbloquear proyectos dde los plc Fatek hechos con WinProLadder.
Va video:

Saludos!

miércoles, 13 de noviembre de 2019

Enviando Notificaciones oficiales a celulares de la empresa Claro (Argentina)

Hola gente despues de un pequeño reset, vuelvo a publicar nuevamente.

En este post les traigo una pequeña explicación de un fallo de seguridad de la empresa Claro que he encontrado, por el cual nos permite enviar SMS de notificaciones como si fueran las notificaciones oficiales de la empresa Claro.

Bien, todo comenzo con una simple búsqueda personalizada en google:

site:claro.com.ar

Esta busqueda produjo una serie de resultados entre los cuales destacó uno en particular:


Este link por lo que pude observar nos lleva a una plataforma propia de la empresa, destinada a enviar promociones, tanto de productos como servicios.

Bien primera mente nos aparece un popup que nos deja seleccionar entre dos opciones, pues eligiendo cualquiera de las dos se ingresa sin problemas, luego si seleccionamos la opción de menú "Prepago", llegaremos a la siguiente sección:



En la misma si presionamos el boton "ENVIAR PACKS DE INTERNET" aparecerá un popup en el cual debemos ingresar un número de celular con su característica respectiva.
Una vez ingresado y habiendo dado aceptar se enviará el sms al numero indicado.

Bien hasta ahí la parte facil, analizando un poco el fuente, encontré varias funciones en javascript embebidas en el mismo código html, entre esos scripts podemos encontrar la de envío del SMS, la cual realiza un request de tipo POST a una ruta específica.

Para obtener dicho request realicé tres pasos:

1 - Abrir las herramientas de desarrollador e ir a la pestaña network, luego limpiar la consola.
2 - Presionar el boton "Aceptar del popup de ingreso del celular"
3 - Copiar el request capturado como un script de powershell


Una vez copiado obtenemos un codigo como el siguiente:

Invoke-WebRequest -Uri "https://comunicadordpf5.claro.com.ar/Home/SendSMS" -Method "POST" -Headers @{"Accept"="application/json, text/javascript, */*; q=0.01"; "Origin"="https://comunicadordpf5.claro.com.ar"; "X-Requested-With"="XMLHttpRequest"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"; "Sec-Fetch-Site"="same-origin"; "Sec-Fetch-Mode"="cors"; "Referer"="https://comunicadordpf5.claro.com.ar/Home/SendPrepago?Length=4"; "Accept-Encoding"="gzip, deflate, br"; "Accept-Language"="es-419,es;q=0.9,en;q=0.8"; "Cookie"="ASP.NET_SessionId=2gyjfqugwmcfrrjkmmeypl1b"} -ContentType "application/json; charset=UTF-8" -Body "{`"cel_number`":`"000000000`",`"subject`":`"`",`"mensaje`":`"Packs de datos! La forma mas simple y rapida de estar conectado.https://comunicadordpf5.claro.com.ar/Home/GetPrepago?par=PREPAGO_ES`"}"


Bien en donde se encuentran los "000000000" es donde va el numero de celular, bien creo que está demás explicar lo que hace esa linea de código.

Basandome en esa linea generé un script de powershell que solicita numero y mensaje y ejecuta dicha linea, el cual pueden descargar del siguiente link:


Esta publicación la realizo con fines educativos, la vulnerabilidad que he encontrado si bien es un fallo simple, considero que es de gravedad media alta, debido a que el uso que puede llegar a darse de la misma puede generar problemas potencialmente graves tanto para la empresa como para los clientes.

Dicho fallo ya lo he reportado al soporte online de Claro Argentina, con lo cual en breve estimo que será solucionado.

Bien hasta aquí llegamos.

Saludos!

jueves, 4 de julio de 2019

Obtener el password de un proyecto de ZelioSoft 2 (Zelio)

Hola gente como estan?
Bien, en este post les traigo un método para obtener el password de los proyectos de  Zeliosoft 2.
Hay que tener en cuenta que este método funciona para los proyectos que tengan guardados en su pc, que estén protegidos contra modificaciones.
Bien, comencemos. Primero abrimos ZelioSoft y OllyDbg:


Una vez abiertos attachamos ZelioSoft de la siguiente manera:

Cuando presionamos "Attach..." nos saldrá el siguiente diálogo en el cual buscaremos el proceso, luego lo seleccionaremos y le daremos al boton "Attach":
Una vez cargado debemos presionar la combinación de teclas Alt + E, dicha combinación nos abre una lista de módulos ejecutables cargados, de esta lista debemos seleccionar con doble click el que tiene por nombre Zelio2 (columna Name):

Luego presionaremos la combinación de teclas Ctrl + B que nos abrirá un diálogo de búsquedas en el cual, en la textbox  HEX +00 pegaremos la cadena hexadecimal "C7 83 F8 E9 08 00 01 00 00 00 E8 E2 D2 FF FF" sin comillas y presionaremos el botón Search:
Nos posicionará en la linea que se ve seleccionada en la imagen, donde colocaremos un breackpoint 2 lineas mas abajo como está en la imagen (para poner o quitar un BP seleccionamos la linea y presionamos F2):
Luego le damos a la tecla F9 para que corra normalmente el programa y nos vamos al ZelioSoft donde seguiremos los pasos normales para abrir el proyecto en si, cuando le demos a la opcion abrir proyecto existente se nos pausará Olly debido a exepciones, es cuestion de darle a la tecla F9 hasta que continue normalmente y nos permita seleccionar el proyecto. Ni bien seleccionamos el proyecto y lo abrimos, el Olly se pausará sobre el BP que pusimos, en esta instancia veremos en el registro EAX el password del proyecto en hexadecimal, si le hacemos doble click a EAX, se nos abrirá un dialogo con detalles del registro mostrándonos el password en valor decimal con signo y sin signo:
Bien para el caso de mi proyecto de prueba el password era efectivamente 1444.

Este tutorial es a modo orientativo y sólo aplica a los proyectos que estén guardados localmente en el PC, no he probado aún intentar vulnerar un proyecto ya cargado en un Zelio.
Espero les sea de ayuda!

Saludos mi gente!

jueves, 3 de mayo de 2018

Desbloqueando un proyecto de WinProLadder (PLC Fatek)

Hola gente como estan?
Bien aquí les traigo como desbloquear un proyecto de WinProLadder protegido por contraseña, este proyecto puede ser un proyecto guardado o estar ya grabado/subido en el PLC, como ya se sabe de marca Fatek.

Bien para empezar se abre el programa, se carga el proyecto o se conecta al plc y se intenta descargar el mismo.


Una vez abierto/descargado, solicitará el password:

Aquí escribimos cualquier numero y le damos ok. 
Veremos el siguiente mensaje (No le damos a Aceptar, y abrimos OllyDbg):

Una vez abierto el Olly, attachamos el proceso, para ello vamos a la opcion File-->attach

Nos aparecerá el dialogo siguiente, donde buscamos en la lista, la instancia al proceso WinProLadder, y la atachamos:

Una vez atachado, el proceso queda pausado en la instruccion siguiente:

Aqui empezamos a darle a Ctrl+F9 hasta llegar al siguiente código:

Analizando el código anterior, llegamos a la conclusión de que esta función es la que muestra el mensaje de error de chequeo, pero no comprueba nada, por ello continuo con Ctrl+F9 para salir de la misma y llegar al siguiente código:

Una vez retornamos, nos encontramos con el código de la imagen anterior, como se puede apreciar yo recuadré tres llamadas a función, que son las que me llamaron la atención, la primera que hace referencia a "TPLCMem", la segunda a "@Controls@TControl@GetText$qqrv", y la tercera que es de la cual nosotros hemos retornado.
Bien por que las he recuadrado se preguntarán, pues porque según mis años de experiencia y mi intuición me dicen que esas dos funciones anteriores a la del mensaje son las que obtienen los datos de chequeo, y las siguientes call son de comprobaciones varias, y como se puede apreciar inmediatamente anterior a la llamada de la que retornamos, hay un pequeño trozo de código con dos saltos un JZ y un JMP como se sabe el JZ es un salto condicional en caso de ser cero y el JMP es un salto incondicional, en el caso de que el pass sea incorrecto la comparación da cero y el JZ se activa llevándonos al mensaje de error de chequeo, caso contrario va por el JMP y nos deja acceder al proyecto para edición.
An fin, prefiero hacerle caso a mi intuición (y no complicar las cosas con tanto análisis), entonces pongo dos BP uno en la primer función y otro en la segunda de las tres que resalté le doy a run al olly, acepto el mensaje de error ingreso nuevamente un pass erróneo y doy aceptar, al instante de darle aceptar el olly quiebra en el primer BP:

Una vez pase la primer call con F8 (recuadrada en la imagen anterior a la izquierda), se puede apreciar en la ventana de abajo a la derecha (Stack o Pila) una pequeña cadena de caracteres numéricos, los cuales también he resaltado con un recuadro rojo.
Sigo depurando hasta pasar el otro BP y ejecutar la segunda función misteriosa:

Al igual que en la función anterior me retorna otra cadena que guarda justo debajo de la anterior (ambas resaltadas en el recuadro rojo de abajo a la derecha), esta segunda cadena me resulta familiar, ya que es el password que he ingresado erróneamente para hacer las pruebas, con lo cual la primer cadena debería ser el password original del proyecto, realizamos la prueba y como era de esperarse, estamos en lo correcto.

Bien hemos logrado nuestro cometido, poder acceder al proyecto, así que aquí concluye este pequeño tutorial.

No duden en consultar ante cualquier duda!

En la medida que tenga tiempo y los recursos, iré realizando mas tutoriales sobre otros sistemas.

Saludos!!!