Portál AbcLinuxu, 12. května 2025 08:22

Dotaz: proftpd - generuje ruzne hashe (pro 1 stejny text)

2.1.2008 14:47 j3nda | skóre: 14 | ostrava/brno
proftpd - generuje ruzne hashe (pro 1 stejny text)
Přečteno: 274×
Odpovědět | Admin
zdravim,

nevite nekdo nahodou, proc proftpd s utilitkou: ftpasswd generuje 2x ruzne hashe pro 1 identicky text? priklad:

/etc/proftpd/bin/ftpasswd --file=${fnpw} --name=${user} \ --passwd --change-password --stdin<${tmp}

v $tmp = je soubor, kam se zapise pouze heslo.

a pro syntax: user=test pass=123456

mi to po 1. spusteni vygeneruje hash: $1$YQ12Mcox$LJDY8YGSCjLrQfO/RR45T1

a po 2. spusteni je to zase hash: $1$sD5BxX04$rbhK1KRdrl9Gh8ZuOVYeh.

nevim, zda nedelam neco blbe. mozna to ma v case zavisly prefix anebo neco jineho ze souboru s hesly. proftpd mi overuje oproti plain-text souboru. a potrebuju vyresit overeni stareho hesla.

jinymy slovy: z www aplikace chci zmenit heslo pro ftp a potrebuju overit "uziv. jmeno" a "uziv. stare-heslo" potom az zmenit na nove-heslo.

mate nekdo nejaky napad, jak toto provest? dik.
___---==~[ uxunilcba | baclniuxu ]~==---__sevrer_pnly_liunx-lkie_hcaricku__/libGDX-rulez-the-W0R7D!___
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.1.2008 14:58 outsider
Rozbalit Rozbalit vše Re: proftpd - generuje ruzne hashe (pro 1 stejny text)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Duvod, proc je hash pokazdy jinaci, se jmenuje "salt".

Nedavno se tu resilo neco podobneho -- http://www.abclinuxu.cz/forum/show/205177
2.1.2008 15:04 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: proftpd - generuje ruzne hashe (pro 1 stejny text)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zřejmě to bude sůl, která se k heslům přidává před hashováním. Pokud by se uložil pouze hash hesla, stačí si stejným algoritmem prohnat nějaký slovník (to lze udělat jednorázově) a pak už můžete hesla uživatelů prolamovat pouhým vyhledáváním (pokud tedy mají slovníkové heslo). Ta sůl musí být uložena spolu s hashem hesla kvůli ověření hesla – ve vašem příkladu vypadá znak $ až podezřele jako oddělovač polí a pak by druhé pole mohla být sůl a třetí hash. Napadá mne jedině se podívat do zdrojáků ftpasswd, zda tmu tak opravdu je, a pak si někde implementovat funkci (pokud to žádná existující utilita neumí), která bude pouze ověřovat heslo – tj. vezme zadané heslo a zadaný salt, vytvoří hash a porovná s předchozím hashem.
2.1.2008 15:14 j3nda | skóre: 14 | ostrava/brno
Rozbalit Rozbalit vše Re: proftpd - generuje ruzne hashe (pro 1 stejny text)
samozrejme o SALT-u vim; a take vim jak se pouziva. u toho ulozeni k heslu jsem si byl jisty, jen jsem nevedel, co konkretne to je. a jiste to vsichni znate. rychlejsi se je zeptat.

zde je reseni problemu:
q: proc ftpasswd generuje v zavislosti na case 2x ruzne hashe pro 1 stejny text?
a:

    login: test
    passw: 123456

    ziskam po 2x spustenich tyto retezce jako heslo:
    $1$mnoliFFT$nxvvGaZ88IxqBizWUq15j1
    $1$tJ5rHRbh$hEyQtOEwSKLBTP27nQZT0.
    $1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0

    toto jsou uplne 3x jine hashe, ale v pripade, ze se tyto retezce pokusi ftpasswd
    zmenit, tak pozna, ze se jedna o stejne heslo. proc?

    reseni je asi zde (ftpasswd, radky: 349; pro verzi: 1.1.3):
    my ($curpasswd, @junk) = find_passwd_entry(name => $name);
    my $hash = crypt($passwd, $curpasswd);
    if ($hash eq $curpasswd) {
        ...
    }

    funkce: 'find_passwd_entry' zjisti udaje o uzivateli a vrati:
        return ($pass, $uid, $gid, $gecos, $home, $shell);

    tj. 1. argument je aktualni heslo v hash-podobe, potom je to pole v @junk

    prikazem:
    crypt zasifrujeme/hashujeme 'passwd' pomoci salt-u 'cur-passwd' a ziskame hash, ktery by
    mel byt uplne identicky jako hash curpasswd

    a ejhle ono to funguje:
    #!/usr/bin/perl

    #    my ($curpasswd, @junk) = find_passwd_entry(name => $name);
    #    my $hash = crypt($passwd, $curpasswd);
    #    if ($hash eq $curpasswd) {
    #    ...
    #    }

    $p='$1$mnoliFFT$nxvvGaZ88IxqBizWUq15j1';
    $p='$1$tJ5rHRbh$hEyQtOEwSKLBTP27nQZT0.';
    $p='$1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0';

    $h=crypt('123456', $p);

    print "\n= = =\n".$p."\n".$h."\n";

    output:
    = = =
    $1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0
    $1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0
___---==~[ uxunilcba | baclniuxu ]~==---__sevrer_pnly_liunx-lkie_hcaricku__/libGDX-rulez-the-W0R7D!___
2.1.2008 15:17 j3nda | skóre: 14 | ostrava/brno
Rozbalit Rozbalit vše Re: proftpd - generuje ruzne hashe (pro 1 stejny text)
jeste doplneni, salt je cele toto: '$1$UVPtJdhz$' pro vysledny hash: '$1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0'
___---==~[ uxunilcba | baclniuxu ]~==---__sevrer_pnly_liunx-lkie_hcaricku__/libGDX-rulez-the-W0R7D!___

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.