Jump to content
malsploit

program server-client pentru parole

Recommended Posts

Posted (edited)

Stiu ca pare o prostie, dar poate iesi ceva frumos:

programatorii din toate epocile rst sa-si bata capurile(impropriu spus) si sa dea viata digitala unui program capabil de a ne face tuturor viata(digitala) mai usoara.Acest program trebuie sa aiba 2 parti: o parte de tip server detinuta de un admin dupa forum ,sau de begood.A doua parte de tip client instalata pe pc-urile noastre.Ar trebui scris intr-un limbaj independent de sistemul de operare(python sau java).Programul trebuie sa decripteze parolele introduse la server(comandat prin http)folosindu-se de puterea calculatoarelor userilor pe care sunt instalate clienti serverului.

Partea grea este impartirea sarcinilor intre pc-uri.

Edited by hate.me
Posted (edited)

@nullbyte In lini mari da.Daca instalam 1000 de useri programul,puterea de procesare va fi maricica.

@ripoff daca programul este scris bine nici nu o sa se simta.

Edited by hate.me
Posted (edited)

Eu spun ca ar fi posibil ceva de genul. Eu nu am un calculator foarte stralucit, 1 gb ram, p4 d805 stock, si rulam john the ripper si ma jucam diferite chestii fara probleme. Se poate face altfel insa. Se poate face o astfel de aplicatie pe post de screen saver, cand calculatorul nu este folosit screen saverul face treaba asta. Asa ceva s-a facut acum vreo 8-9 ani intr-o incercare de a creea un vaccin pentru hiv.

Le: Daca e vorba de facut ceva in c++ poate pot ajuta si eu, desii cunostiintele mele sunt limitate cel mult, chestiile simplute cred ca le pot face si eu :D

Edited by nedo
Posted

Se poate rezolva problema cu "marlania" folosind un sistem de rationare. Spargi o parola, trebuie sa tii 10 ore programul deschis. Daca nu, nu o poti sparge pe a doua.

Imi place ideea, insa din pacate eu sunt incepator in domeniul software development. Daca pot ajuta cu ceva, in partea de Linux, unde am ceva cunostinte (am auzit de el :)) ) o sa ajut cu mare placere comunitatea, mai ales daca e ceva care sa ma puna sa-mi storc creierul. :D

Posted

Dap, cam la asta s-a gandit, cred eu. Poate fi folosita sursa de la john the ripper nu? Problema la un astfel de program este cum ai grija ca nici unul din clienti sa nu incerce acelasi hash pentru aceeasi parola.

Posted

Da, e interesanta ideea. Dar proiectul in sine ar fi destul de complicat. Trebuie selectate elegant calculatoarele care vor crackui md5-urile (initial ar fi de ajuns), trebuie luate in considerare toate posibilitatile: daca un calculator trebuie sa faca 1.000.000 de incercari si face decat una? Daca se intrerupe conexiunea apoi revine? Ar fi ceva de munca.

Posted

E ceva de genu Boinc...Nu e ceva extrem de complicat dar necesita experienta...Mai este problema unui sistem care sa foloseasca cu cap resursele , nu sa iesi din screen si sa trebuiasca sa dai restart la pc ca nu mai merge sau chestii de genu pe care le intampini in mare parte la boinc...

Posted

Pai ar fi indicat ca fiecare client, dupa 100 de combinatii nereusite, sa trimita un raspuns la server, apoi sa treaca la urmatoarele 100. Serverul sa distribuie combinatiile intre clienti, in asa fel incat, daca un client nu raspunde in intervalul X, serverul il considera "picat" si atribuie sarcina unui alt client.

Ar fi o metoda misto sa si stocam toate hash-urile in baza de date, astfel la urmatoarea spargere, avem deja o parte "traduse". Dar aici intervine problema cu traficul prea mare dintre server si client. Plus si load mare atat pe server, cat si pe client.

Posted

In priviinta controlului aplicatiei cred ca e o idee mai buna sa generam codul secvential. Nu avem cum sa tinem toate hash-urile pe care le genereaza clientii, ar fi nevoie de zeci sau chiar sute de gb de spatiu. Este mult mai simplu sa secventiem codurile. Sa zicem ca avem un hash doar din cifre si litere lower case. Serverul doar noteaza ce secventa de cod v-a verifica fiecare client. Sa zicem primul client incepe cu aaaaaa pana la aaazzz, clientul trecand prin secvente de genul: aaaaaa, aaaaab, aaaaac, aaaaad... aaaaaz, aaaaa0 ... aaaaa9, aaaaba, si asa mai departe, urmatorul client are de la aabaaa pana la urmatoarea secventa. In felul acesta e mai usor sa tine cont care client face ce anume. In plus in felul acesta avem un trafic mai mic, deoarece clientii nu se conecteaza la server decat pentru a recupera urmatoarea secventa sau pentru a incarca rezultatul daca unul din clienti a reusit sa nimereasca hash-ul. Din cate imi aduc aminte john the ripper ia codurile la intamplare, nu le ia secvential.

Posted

Eu m-am referit in felul urmator... Putem face un script care in foarte scurt timp, ar genera toate variantele de combinatii md5. Un script, care sa ia fiecare combinatie, de la 00000000000000000000000000000000 pana la ffffffffffffffffffffffffffffffff si sa o stocheze intr-o baza de date. Apoi, pe baza clientilor ce decripteaza hash-urile, introducem in baza de date: 'abc' intra la 900150983cd24fb0d6963f7d28e17f72. Apoi, cand ai o parola criptata cu md5 si are forma 900150983cd24fb0d6963f7d28e17f72, vei sti ca este vorba despre 'abc'. Nu o vei sparge si a doua oara.

De exemplu luam parola "qwerty" care se cripteaza in "d8578edf8458ce06fbc5bb76a58c5ca4". Clientii trec prin toate combinatiile, pana ajung la "qwerty", combinatia valida, care e salvata in baza de date. Apoi, luam codul "4b52c4432016b039d50db27fe4c727b2" care este criptarea lui "qwerta", cod prin care tocmai am trecut, dar nu l-am salvat pentru ca nu era cel pe care-l cautam.

Poate ocupam mult spatiu si facem mult trafic, dar salvand fiecare combinatie md5 si valorile ei posibile, nu vom fi nevoiti sa decriptam de doua sau mai multe ori parole similare.

Eu nu ma pricep foarte bine la baze de date, deci nu stiu ce sistem ar trebui folosit, pentru a fi cat mai usor si rapid de accesat de catre clienti, deci cu un load cat mai mic. Ca limbaj de programare, cred ca C++ ar fi cel mai indicat. Corectati-ma daca gresesc.

Posted (edited)

Din pacate ceea ce sugerezi tu hammerfall nu este practic. Uita-te la Rainbow Tables de la ophcrack si ai sa vezi cat de mari sunt unele, alea deja contin ceea ce spui tu. Problema e ca asa ceva ocupa foarte mult loc. Uita-te la cat ocupa pentru ntlm cu charset 0-9, a-z, A-Z, si "!@#$%^&*()" . Chestia asta ocupa aproximativ 30 gb. Si nu contine absolut toate posibilitatile. De aia am propus acea parte secventiala, deoarece este impractic sa creezi toate hasurile posibile. Poti face treaba asta cu cain sau cu john the ripper, si iti v-a genera toate hash-urile cu un anumit char set, dar sper sa ai un hdd ce 1 tb ca sa poti stoca toate hashurile.

Totusi poate ceva intermediar se poate face. Poate putem genera un wordlist mai mare care sa fie tinut pe server, un fisier de cel mult 3-5 gb.

Edited by nedo
Posted

la ce iti trebuie sa generezi toate hashurile posibile "de la 00000000000000000000000000000000 pana la ffffffffffffffffffffffffffffffff " eu nu inteleg.Majoritatea parolelor sunt de cel mult 15 caractere si contin cuvinte sau nume uzuale ,sunt multe baze de date pentru hashuri ,trebuie doar sa venim fiecare cu ce are sa le combinam.Inceputul e greu la noi :D

Posted

Nu numai ca nu ai cum sa generezi toate hash-urile posibile(ar dura zeci de ani sa le generezi pe toate, nu ai unde sa le stochezi, este nevoie de TB, sau chiar PB de spatiu, nu cred ca se gasesc destui oameni sa puna atat de mult spatiu la dispozitie 24/7.

Posted

Avand in vedere ca parolele nu pot fi mai scurte de 4 caractere (in general chiar 6 sau 8) si mai lungi de 32 majoritatea, cred ca ne usureaza mult munca.

Eu unul tind sa cred ca metoda perfecta ramane social engineering. Nu exista nici un firewall pentru prostia umana :P

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...