Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mot de passe ws_ftp

5 réponses
Avatar
Laurent
Bonjour à tous..

Je cherche l'algorithme de cryptage (chiffrage ? codage ?) des mots de
passe stockés dans les fichiers ini de l'application ws_ftp pro version 6.
On trouve tout ce qu'on veut pour les décoder, mais je cherche à créer
ces fichiers ini.. et comme je ne suis pas très bon, j'ai du mal à
inverser l'algorithme de décodage.. :)

merci de votre aide :)

5 réponses

Avatar
Laurent
On trouve tout ce qu'on veut pour les décoder, mais je cherche à créer
ces fichiers ini.. et comme je ne suis pas très bon, j'ai du mal à
inverser l'algorithme de décodage.. :)


Euh... personne veut m'aider ?

Voilà juste (en javascript) ce qui permet de décoder..
PWD=VD019AA5F11517DB595A14834A7D5A56E69A994A97572A0 est la ligne
présente dans les fichiers ini de ws_ftp pro. (en l'occurence, il s'agit
du mot de passe "example"


--- début ---
var str='PWD=VD019AA5F11517DB595A14834A7D5A56E69A994A97572A0';
var passw=str.substring(37,str.length);

for (var i = 0; i<passw.length/2; i++) {
var caracter=passw.substring(i*2,i*2+2);
var sal=str.substring(5+i,6+i);
var claro=parseInt("0x"+caracter) -i -1
-((47+parseInt("0x"+sal))%57);
print(String.fromCharCode(claro));
}
--- fin ---


Ce que je voudrais pouvoir faire, donc, c'est génerer les lignes PWD=...
à partir des mots de passe en clair..

merci de votre aide éventuelle..

Avatar
offworld
Hello,

PWD=VD019AA5F11517DB595A14834A7D5A56E69A994A97572A0

PWD est la concaténation d'un sel et du password

Les 33 premiers caractères étant le sel

sel : VD019AA5F11517DB595A14834A7D5A56E
password : 69A994A97572A0

Pour dechiffrer tout ca, une fois le sel et le password séparé, on
récupère 1 caractère au sel en commençant par le deuxième et deux
caractères du password, et ainsi dessuite, la position des caractères à
son importance.

Donc pour la première lettre

sel1 : D
pass1 : 69

Ces deux lettres sont en hexadécimal, donc on commence a les convertire
en décimal.

sel1deci : 13
pass1deci : 105

Et ensuite la petite opération de la fin

pass1deci - Position de pass1deci -1 - ((47+sel1deci)%57)

105 - 0 - 1 - ((47+13)%57)1

Donc le caractère ascii de 101 est e

Pour la deuxième lettre (au moins je suis sur d'être clair)

sel2 : 0
pass2 : A9

sel2deci : 0
pass2deci : 169

169 - 1 - 1 - ((47+0)%57)0
Donc 120 en ascii représente le x.

Voila en espérant que tu me comprennes :)










--
http://nyx-network.com
Avatar
Laurent
Voila en espérant que tu me comprennes :)


merci beaucoup de ta réponse.. et ton explication est très claire.
Et ça me confirme bien ce que ça fait et comment le "décodage" opère :)

La où j'ai un soucis, c'est que j'ai beaucoup plus de mal à
imaginer/comprendre comment faire pour faire *l'inverse* et donc "coder"
les mots de passe wsftp..

merci encore :)

Avatar
offworld
Voila en espérant que tu me comprennes :)


merci beaucoup de ta réponse.. et ton explication est très claire.
Et ça me confirme bien ce que ça fait et comment le "décodage" opère :)

La où j'ai un soucis, c'est que j'ai beaucoup plus de mal à
imaginer/comprendre comment faire pour faire *l'inverse* et donc "coder"
les mots de passe wsftp..

merci encore :)


En ayant juste l'algo de décodage sous les yeux, je ne connais pas la
réaction avec des mots de passes supérieur a 32 caractères, peut être il
revient au début du hash, peut être il utilises le début du password
chiffré, bref aucune idée.

Ensuite les caractères qui ne font pas parti de la table ascii standard
(128-255), je sais pas trop non plus.

Sinon pour l'explication je reprend l'exemple 1 et 2 du messages précédent.

105 - 0 - 1 - ((47+13)%57)1
devient
101 + 0 + 1 + ((47+13)%57)5

et

169 - 1 - 1 - ((47+0)%57)0
devient
120 + 1 + 1 + ((47+0)%57)9

Et pour le fun, le code en php :

<?

$passwd="g_ni-e";
$passwdEnc="PWD=V";

for($i=0; $i < 32; $i++)
{
$val="0123456789ABCDEF";
$salt.=$val[rand()%strlen($val)];
}

$passwdEnc.=$salt;

for($i=0; $i < strlen($passwd); $i++)
{
$charEnc=ord($passwd[$i]) + $i + 1 + ((47+hexdec($salt[$i]))%57);
$passwdEnc.=strtoupper(dechex($charEnc));
}

echo "$passwdEncn";

?>


--
http://nyx-network.com


Avatar
Laurent
169 - 1 - 1 - ((47+0)%57)0
devient
120 + 1 + 1 + ((47+0)%57)9


oh purée :(
c'est tout ?

je me sens vaguement idiot, là ..

En tout cas, merci beaucoup, j'ai ( *tu as!* ) résolu mon problème.
merci encore :)