Cifrado Schneider

Iniciado por keenyirox, 4 Enero 2021, 13:33 PM

0 Miembros y 1 Visitante están viendo este tema.

keenyirox

Hola a todos!

Se programar lo básico, vbasic, viejo pascal, algo de programación web (HTML, CSS, java, etc.), pero nunca he entrado en el tema del cifrado y descifrado de código.

Trabajando cometí la novatada de programar un PLC Schneider en noviembre, y bueno ahora vuelvo para cargarle al PLC la programación corregida, y olvide la contraseña que le puse al PLC, así que está literalmente bloqueado y no lo puedo resetear de fabrica.

Por suerte aun conservo la programación que le cargue, le extraje la información al programa Ecostruxure SoMachine Expert, sólo que la contraseña está cifrada.

Si alguien que sepa de cifrado me pueda ayudar a recuperar mi clave, en su defecto como descifrarla, o un indicio de por donde intentar, le agradecería, me parece en mi humilde opinion, que esta en MD5 32bit

<Password>74ab236347c49066ce6af87a92812cb362c53cc2a24fac1f7fbb2b53db7cbb2f</Password> era algo con AgroAlianza

Si necesitan todo el código del programa, lo tengo.
Muchas gracias!

Xyzed

MD5 tiene 32 caracteres, dudo mucho que sea ese cifrado.
...

keenyirox

necesito un indicio al menos a ver como intentarlo

AlbertoBSD

Hay un espacio entre un hash y otro, o solo fue error al copiar y pegar?
Realmente hay que buscar mas información de como cifran esos dispositivos. Ya que podria ser cualquier cosas ese hash, md5, sha256, hmac de alguno de los anteriores o otros, tambien puede ser algun Key derivation iterado N cantidad de veces.

Asi como lo pintas ni idea. Busca en google que tipo de cifrado utiliza ese dispositivo.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

keenyirox

#4
Si hay un espacio, mala mia, corregido.

El PLC que tengo es un Modicon TM221CE24R

El fragmento del codigo donde esta la contraseña cifrada sería esta en concreto:

   </ProjectInformations>
   <ProjectProtection>
     <Active>false</Active>
     <Password />
     <CanView>true</CanView>
   </ProjectProtection>
   <ApplicationProtection>
     <Active>true</Active>
     <Password>74ab236347c49066ce6af87a92812cb362c53cc2a24fac1f7fbb2b53db7cbb2f</Password>
     <DownloadActive>true</DownloadActive>
     <DownloadPassword>74ab236347c49066ce6af87a92812cb362c53cc2a24fac1f7fbb2b53db7cbb2f</DownloadPassword>
   </ApplicationProtection>
   <RemoteIpAddresses>
     <IpAddresses />
   </RemoteIpAddresses>
   <ModemConfigurations>
     <ModemConfigurationEntities />
   </ModemConfigurations>
   <KeepModbusParameters>false</KeepModbusParameters>
   <UnitId>1</UnitId>
   <DownloadSettings>
     <ResetMemories>true</ResetMemories>
     

keenyirox

Hola!

Nadie que me pueda ayudar?

Serapis

Has probado al menos a cambiar los valores???, por ejemplo estos:

Citar<ApplicationProtection>
      <Active>false</Active>
      <Password></Password>
      <DownloadActive>true</DownloadActive>
      <DownloadPassword></DownloadPassword>
    </ApplicationProtection>
(guarda copia del fichero original y opera sobre una copia, renombrado y ubicado como y donde el original).

Lo más razonable es que sea un hash, y los hashes no son reversibles. Con fuerza bruta, a lo más que puedas llegar es a localizar una colisión y que por tanto funcione (aunque te llevaría mucho tiempo).
Ahora bien, si son 2 hashes (que es lo que me da la impresion) distintos aplicados a la misma cotraseña, entonces la posibilidad de localizar una colisión se eleva al cuadrado (el producto de encontrar una colisión en ambos algoritmos).
Es decir sería el resultado de esto:
    hash = AlgHash1(pwd) + AlgHash2(pwd)

Con info del fabricante podrías tal vez al menos saber que algoritmos se han usado, sin más datos es disparar a ciegas.