Autor
|
Tema: Necesito ayuda para poder modificar un .dll (Leído 12,041 veces)
|
Imanol015
Desconectado
Mensajes: 10
|
Primero que nada, queria saludarlos y agradecerles por su tiempo. Para ponerlos al tanto: En la empresa donde trabajo, el tecnico aterior cambio las passwords por defecto de todo sistema conocido por el hombre, y no nos las da, ya sea porque no se las acuerda o no quiere que las sepamos, el caso es el mismo. El problema en especifico que tenemos es con un DVR marca Nixzen (NX-EDVR 08/200+8A) que esta con contraseña y no podemos acceder ni hacerle reset (por que no sabemos como). El tecnico antes mencionado usaba un programa llamado CMS para centralizar los DVR y poder visualizar y controlar varios al mismo tiempo. Al abrir el programa este ya entra con la cuenta admin pero el tema es que quiero averiguar la contraseña de dicha cuenta para ver si coincide con la del DVR. Investigando por los archivos del DVR, encontre un archivo xml, donde guarda los usuiarios y contraseñas, el problema es que las contraseñas estan cifradas. D19E4D15EC7276B6 = contraseña cifrada de una cuenta que cree yo, dice "admin". C23B965583AD3AE0= aca dice "a" 669A9F22ECFFF103= aca dice "b" 2DEFBBD5087D4360= aca dice "c" Use el programa W32DSM89 para desamblar el .exe del CMS y ver como encriptaba el password, y descubri que lo hace llamando a un archivo "password.dll", abri dicho archivo con el W32DSM89 y mas o menos encontre donde exporta/importa la contraseña cifrada/descifrada que le envia el CMS. Mi idea es cambiar la parte donde exporta la contraseña cifrada por la parte donde exporta la descifrada. Y de esa forma que el archivo .dll siempre devuelva la contraseña descifrada. El problema esta que no se puede(o no se hacerlo) usar el W32DSM89 para modificar los archivos porque solamente los desambla, asi que baje el programa Olly dbg que sirve para modificar el programa, pero en este programa no logro encontrar las importaciones/exportaciones. Mientras les subo la carpeta del programa a MEGA descubri que en la carmeta XML (dentro de CMS) hay un archivo llamado "data" donde guarda los usuarios y contraseñas de cada DVR al que se conecta el programa, por lo la contrasñea que realmente me interesa averiguar esesta password="A9C63BCB604427CF". Si alguno sabe como cifra las contraseñas el archivo password.dll y me lo explica, podria descifrar manualmente esa contraseña y problema solucionado. Les dejo el link con todos los programas antes mencionados: https://mega.nz/#F!TsAXXbxK!Q2NDjxbBoQg0vNQX4ZLUawSi hay algo que no explique bien haganmelo saber por favor. Gracias por su tiempo y espero que puedan ayudarme
|
|
|
En línea
|
|
|
|
engel lex
|
si el programa está bien hecho, no hay decifrado que valga, ya que las contraseñas por standard se almacenan en su forma de hash y claramente tu onfiguración lo muestra D19E4D15EC7276B6 = contraseña cifrada de una cuenta que cree yo, dice "admin". C23B965583AD3AE0= aca dice "a" 669A9F22ECFFF103= aca dice "b" 2DEFBBD5087D4360= aca dice "c" esto es un hash de 16bytes, deconozco cual tipo puede ser pero podría ser un md4, crc16 o similar (algo poco común y viejo) el hash es un proceso de un solo camino y hecho para no conseguir información de el, no se puede obtener nada de vuelta, la unica forma de atacarlo es por fuerza bruta, es decir, intentar opciones hasta dar con la correcta que sabrás es la correcta porque da el mismo resultado... el hash no te permite saber el largo ni predecir si vas por buen camino
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Imanol015
Desconectado
Mensajes: 10
|
si el programa está bien hecho, no hay decifrado que valga, ya que las contraseñas por standard se almacenan en su forma de hash y claramente tu onfiguración lo muestra
esto es un hash de 16bytes, deconozco cual tipo puede ser pero podría ser un md4, crc16 o similar (algo poco común y viejo)
el hash es un proceso de un solo camino y hecho para no conseguir información de el, no se puede obtener nada de vuelta, la unica forma de atacarlo es por fuerza bruta, es decir, intentar opciones hasta dar con la correcta que sabrás es la correcta porque da el mismo resultado... el hash no te permite saber el largo ni predecir si vas por buen camino
Ahh gracias por la claracion entonces . Y que opinas de cambiar la parte del .dll que exporta la contraseña cifrada por la que la exporta descifrada?
|
|
|
En línea
|
|
|
|
engel lex
|
puedes intentarlo... pero si es hash, no existe un "descifrado" simplemente la contraseña a probar se pasa por el mismo filtro y al final se comprueba si es igual
más allá de la lógica en este caso, no es mi especialidad, no sabría opinar sobre dll
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Imanol015
Desconectado
Mensajes: 10
|
puedes intentarlo... pero si es hash, no existe un "descifrado" simplemente la contraseña a probar se pasa por el mismo filtro y al final se comprueba si es igual
más allá de la lógica en este caso, no es mi especialidad, no sabría opinar sobre dll
Y si hago un programita que le mande al .dll la contraseña "cifrada" para q me la devuelva "descifrada"? Lo haria en C que es el lenguaje que conozco pero no se como tendria que llamar al .dll y menos ingresarle la contraseña. Alguna idea?
|
|
|
En línea
|
|
|
|
engel lex
|
Y si hago un programita que le mande al .dll la contraseña "cifrada" para q me la devuelva "descifrada"? Lo haria en C que es el lenguaje que conozco pero no se como tendria que llamar al .dll y menos ingresarle la contraseña. Alguna idea?
si es hash, no existe un descifrado https://es.wikipedia.org/wiki/Funci%C3%B3n_hash
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Imanol015
Desconectado
Mensajes: 10
|
No quiero ser cabeza dura, pero si al programa principal (CMS) le ingresas una contraseña con tu teclado, el se la envia al .dll la procesa y devuelve el supuesto "hash" y en otra instancia del programa, el programa principal le envia el "hash" y el .dll le devuelve la contraseña original, debe haber un proceso de cifrado y descifrado. Si abris el .dll hay una parte donde exporta la pw cifrada, y otra donde la exporta descifrada..
|
|
|
En línea
|
|
|
|
engel lex
|
ok! si es así entonces si está cifrando, en tal caso sería un cifrado por bloques de 16bytes, esto puede comprobarlo creando una contraseña más larga que 16 bytes, es decir incluye esta contraseña 0123456789acbdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVUXYZ si está cifrando el resultado debería ser de unos 64 caracteres, es simplemente imposible que cifre todo eso en 16bytes sin truncar información (luego tendrás que probar cambiando las primeras o ultimas letras, si solo entra con la frase completa si es hash)
|
|
« Última modificación: 25 Enero 2018, 15:46 pm por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
MCKSys Argentina
|
Hola! Después de debuggear el programa con Olly, veo que no usa hash sinó que es un modo de cifrado. Por ej., si pones un BP en 470673, verás que llama a la función DecryptStringEX pasándole 3 parámetros: 00470661 |> 6A 01 |PUSH 1 00470663 |. 8D8424 64020000 |LEA EAX,DWORD PTR SS:[ESP+264] 0047066A |. 50 |PUSH EAX 0047066B |. 8D8C24 64040000 |LEA ECX,DWORD PTR SS:[ESP+464] 00470672 |. 51 |PUSH ECX 00470673 |. E8 02D20700 |CALL <JMP.&Password.DecryptStringEX>
Con eso ya puede hacer un proggie que use la DLL y desencripte lo que quieras... Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Imanol015
Desconectado
Mensajes: 10
|
ok! si es así entonces si está cifrando, en tal caso sería un cifrado por bloques de 16bytes, esto puede comprobarlo creando una contraseña más larga que 16 bytes, es decir incluye esta contraseña 0123456789acbdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVUXYZ si está cifrando el resultado debería ser de unos 64 caracteres, es simplemente imposible que cifre todo eso en 16bytes sin truncar información (luego tendrás que probar cambiando las primeras o ultimas letras, si solo entra con la frase completa si es hash) Solo me deja ingresarle 15 caracteres, le ingrese 15 letras "a" y el resultado fue= 2E313EB57566A2B51C273B336FC6E071
Hola! Después de debuggear el programa con Olly, veo que no usa hash sinó que es un modo de cifrado. Por ej., si pones un BP en 470673, verás que llama a la función DecryptStringEX pasándole 3 parámetros: 00470661 |> 6A 01 |PUSH 1 00470663 |. 8D8424 64020000 |LEA EAX,DWORD PTR SS:[ESP+264] 0047066A |. 50 |PUSH EAX 0047066B |. 8D8C24 64040000 |LEA ECX,DWORD PTR SS:[ESP+464] 00470672 |. 51 |PUSH ECX 00470673 |. E8 02D20700 |CALL <JMP.&Password.DecryptStringEX>
Con eso ya puede hacer un proggie que use la DLL y desencripte lo que quieras... Saludos! Perdon la ignorancia pero a que te referis con un proggie? un programa? No quiero ser abusivo y pedir que me lo hagan, pero si pueden darme cualquier informacion util para realizar el programa q use al .dll se los agradeceria. MOD: No hacer doble post. Usa el botón modificar
|
|
« Última modificación: 25 Enero 2018, 16:06 pm por MCKSys Argentina »
|
En línea
|
|
|
|
|
|