schnelleres bruteforce...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • schnelleres bruteforce...

    hallo geeks,

    da ich mich schon öfter mit bruteforce beschäftigt habe und auch schon sehr oft gehört habe - dass es jahre dauern kann bis bestimmte kombinationen herausgefunden werden - habe ich mir gedacht müsste es doch eigentlich möglich sein selbst mit den gegebenen rechenleistungen durch eine art komprimierung die zu einer beschleunigung der abfrage führt selbst die längsten passwörter innerhalb von sekunden zu knacken ... daher wollte ich jetz fragen - wo denn momentan diese methode auf ihre grenzen stößt um evtl. diese grenzen genauer ausloten zu können ... ^^

    ich weiss zwar das dies kein php problem ist und es auch bei vielen auf unverständnis stößt - aber da ich evtl. vorhabe es auch in php umzusetzen bitte ich euch um hilfe - thx!


    greetz subabrain!

  • #2
    Re: schnelleres bruteforce...

    Original geschrieben von subabrain
    ... müsste es doch eigentlich möglich sein ... durch eine art komprimierung die zu einer beschleunigung der abfrage führt selbst die längsten passwörter innerhalb von sekunden zu knacken
    Was willst du denn komprimieren?
    Und redest du von brute force gegen einen Server oder hast du ein verschlüsseltes Passwort und willst es in Klartext sehen?

    Btw. ist es extrem widersprüchlich, die Grenzen des Machbaren ausgerechnet mit PHP auszuloten.

    Kommentar


    • #3
      Re: schnelleres bruteforce...

      php dafür verwenden zu wollen ist antic ~_~

      Und offensichtlich hast du das Prinzip nicht verstanden ... was soll denn bitte "komprimiert" werden?
      Bruteforce auf einen Hash, nix komprimierung, solange hashen bis man den gleichen Hash hat
      Bruteforce auf Maske, nix komprimierung, die Geschwindigkeit ist vom Server/Programm/gerell den Resourcen vorgegeben

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        hi,

        nun gut .. werde mir die technik nochmal genauer anschauen - evtl. habe ich ja überstürzt reagiert ... ^^

        und zu php habt ihr ja recht mir gings nur im allgemeinen um die technik ... also ... hash/klartext ist ja nicht wirklich das problem - denn wenn ich jetz ein normales wort habe - dann kann ich es klartext aber auch verschluesselt prüfen ob es das richtige ist oder nicht (ein hash ist zwar immer länger - aber im endeffekt koennte es auch ein langer string sein) .. mir gings eher um die geschwindigkeit mit der diese technik arbeitet schließlich ist diese ja von verschiedenen faktoren abhängig - mir ging es jetz erstmal darum eine zeichenfolge - welche lokal auf meinem xampp verzeichniss liegt - alleine durch prüfen ob es das richtige ist - also nehmen wir an ich habe eine textdatei - hier ist ein string drin - nehmen wir an dieser string sieht so aus:

        Df67j89ffzUgH

        so ... und nun kann man ja mehrere abfragen nebeneinander machen um die rechenzeit zu verkürzen - dies ist bei php natuerlich schwierig - aber selbst bei c oder anderem ist es ja irgendwann schluss mit der rechenzeit ... daher koennte man ja versuchen den string irgendwie anders also ... durch eine andere art abfrage zu knacken ... ich weiss das klingt jetz vielleicht haarsträubend - aber meine intuition sagt mir das es geht ...


        nun ja ich werde mal ein paar sachen testen und bei erfolg hier reinstellen ^^


        greetz subabrain

        Kommentar


        • #5
          ok ... also ums nochmal deutlicher zu sagen .. mir geht es mehr um die geschwindigkeit des abgleichs ... d.h. wenn ich jetz einen bestimmten string an den server oder halt an das programm sende - und dieses programm gleicht nun ab ob der string mit einem bestimmten string das nur dieses programm kennt übereinstimmt - und gibt entweder ja oder nein zurueck ... dann muss es ja auch möglich sein dem programm etwas vorzugaukeln ... meinetwegen ein string der mit allen anderen strings identisch ist - sowas wie ein generalschluessel (hierbei muesste man aber im binärbereich arbeiten - mal sehen ob ich das mit php hinbekomme) .. versteht ihr was ich meine?

          mir komprimierung habe ich mich vll. etwas falsch ausgedrueckt ..

          also ehrlich gesagt weiss ich selber noch nicht so genau - aber so in diese richtung dachte ich anfangs ... nun ja ... mal sehen ... was daraus wird


          wenn ihr da andere meinungen habt - bitte nur zu


          also ... bis dahin mal - greetz vom subabrain!

          Kommentar


          • #6
            OffTopic:
            ... btw: wäre dein "BruteForce" etwas anderes als alle Kombinationen durchtesten, dann wäre es ja kein BruteForce mehr
            [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

            [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

            [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
            (from here)

            Kommentar


            • #7
              jop das stimmt natuerlich - wobei es den selben Zweck verfolgt ^^

              - also ich mache das jetz so ... :

              ich lasse einfach nur zwei werte (worte auf binär ebene) von php vergleichen mit verschiedenen php vergleichs funktionen sowie es ja ueblich ist wenn man zwei werte vergleicht - wenn nun dieser verlgeich eine unregelmäßigkeit aufweisst - wovon ich ja ausgehe (warum weiss ich auch nicht ) dann ist das der Ansatzpunkt ^^

              im prinzip gehts hier darum die funktionsweise des binären vergleichs zu durchschauen und dann diesen ausnutzen ^^

              nun ja ... werde mich wieder melden falls ich etwas herausgefunden habe ...

              greetz subabrain!

              EDIT:
              also so was wie das hier:

              EDIT:


              $wert = 0;

              if($wert == "blablub")
              {

              echo "obwohl wert null ist wird bei der überprüfung true zurueckgegeben";

              }


              Zuletzt geändert von subabrain; 12.06.2006, 00:32.

              Kommentar


              • #8
                Hier ein bisschen Kram zum lesen:

                http://de.wikipedia.org/wiki/Kollision
                http://de.wikipedia.org/wiki/Kollisionsfreiheit
                http://de.wikipedia.org/wiki/Kollisionsangriff
                http://de.wikipedia.org/wiki/Preimage-Angriff

                Das gilt natürlich nur für Hashes. Wenn du zwei (oder mehr) Wörter komplett auf binärer Ebene miteinander vergleichst, dann kann es nicht vorkommen, dass zwei unterschiedliche Wörter als gleich gemeldet werden (es sei denn es liegt irgendein Fehler vor).

                Was du natürlich machen kannst:
                PHP-Code:
                if ('1 3 3 7' == 1) {
                    echo 
                'huch?';

                hopka.net!

                Kommentar


                • #9
                  Keine Ahnung, was du daheim für Hardware hast, aber solange sie so arbeitet, wie man es von Rechentechnik erwartet, wird es keine Unregelmäßigkeiten beim Vergleich zweier Werte geben.

                  Wo sollten die auch herkommen. Deine tolle Idee von wegen binär ... jeder Wert ist nur eine Anreihung von Einsen und Nullen, alles ist binär.
                  Jeder Vergleich findet letztlich als Vergleich von Einsen und Nullen statt. Ob es ein String, eine Zahl oder ein Objekt ist.

                  Einziger Ansatzpunkt für mehr Geschwindigkeit wäre, das Hashen effizienter zu implementieren. Der meistgenutzte MD5-Algorithmus ist aber schon immer derart gut, dass du da wohl kaum noch was herausholen kannst. Selbst der Bytecode sollte - da der Algorithmus so trivial ist - nahezu optimal sein. Zumindest mit den richtigen Kompilerflags.

                  Fazit: Softwareseitig kannst du nichts mehr rausholen.

                  Es würde übrigens auch nichts bringen, den Hash-Algorithmus in Hardware zu gießen:
                  Es gibt 2^128 MD5-Hashes. Wenn du in 50 Jahren fertig sein willst, müßtest du jede Sekunde 2.16*10^29 Hashes vergleichen. Die Hardware müßte ungefähr dem 10^20-fachen eines Athlon 64 mit 2,4 GHz entsprechen.
                  Das ist heute physikalisch nicht möglich ...

                  ... und das Passwort würde in den 50 Jahre sicher auch nicht mehr benutzt werden.


                  (Wer Rechenfehler findet, kann sie behalten.)

                  Kommentar


                  • #10
                    ok ... also wie ich sehe ... ist es kaum mögliche die bruteforce methode zu beschleunigen - da es bereits software sowie hardware seitig ziemlich ausgelutscht ist - nun ja - möglich wäre bei hashes dann eine kollission oder ein fehler - und bei einem normalen vergleich eben nur ein fehler.

                    nun wollte ich ja anfänglich die bruteforce technik beschleunigen ... aber ich glaube man kann es sehr schoen an einer funktion zeigen wieso dies nicht möglich ist:

                    PHP-Code:
                    <?php


                    function passwort($passwort)
                    {

                      if(
                    $passwort == "festgelegterhashoderstring")
                      {

                       return 
                    TRUE;

                      }
                      else
                      {

                       return 
                    FALSE;   

                      }

                    }



                    ?>

                    d.h. - man kann nun entweder durch einen fehler oder eine sicherheitslücke entweder an der funktion selber oder an der programmiersprache das passwort auslesen - oder ohne das passwort ueberhaupt auslesen zu muessen die funktion mit TRUE beenden.

                    aber bruteforce selber zu beschleunigen wuerde es nicht ^^
                    da gebe ich euch natuerlich recht ...

                    also - damit is die sache vom tisch und ihr koennt den thread zumachen 8)


                    - ich wünsche noch nen erholsamen Montag


                    greetz subabrain!
                    Zuletzt geändert von subabrain; 12.06.2006, 03:12.

                    Kommentar


                    • #11
                      Der meistgenutzte MD5-Algorithmus ist aber schon immer derart gut
                      bitte das veraltete wissen ein wenig aktualisieren.
                      bereits 2004 waren ernsthafte bedenken von wegen qualität des algorithmus vorhanden, und in diesem jahr wurde das ganze endlich geknackt.
                      http://en.wikipedia.org/wiki/Md5#Collisions

                      es dauert also nicht mehr 50 jahre, sondern max. 50 sekunden, um kollisionen zu finden.

                      für alle, die etwas neues programmieren müssen oder wollen: md5 ist spätestens ab diesem jahr tabu.

                      grüße
                      axo

                      Kommentar


                      • #12
                        Original geschrieben von axo
                        für alle, die etwas neues programmieren müssen oder wollen: md5 ist spätestens ab diesem jahr tabu.
                        na dann hoffen wir mal das es bei "tiger" und konsorten noch ne weile hält

                        greetz subabrain!

                        Kommentar


                        • #13
                          Original geschrieben von subabrain
                          PHP-Code:
                          <?php


                          function passwort($passwort)
                          {

                            if(
                          $passwort == "festgelegterhashoderstring")
                            {

                             return 
                          TRUE;

                            }
                            else
                            {

                             return 
                          FALSE;   

                            }

                          }



                          ?>
                          Diese Funktion lässt sich auch deutlich kürzer schreiben:
                          PHP-Code:
                          function passwort($passwort) {
                              return 
                          $passwort == "festgelegterhashoderstring";

                          Falsch ist sie aber trotzdem noch.
                          PHP-Code:
                          var_dump(passwort(0)) 
                          Die Ausgabe ist bool(true).

                          Richtig wären 3 Gleichheitszeichen, damit auch der Typ verglichen wird:
                          PHP-Code:
                           function passwort($passwort) {
                              return 
                          $passwort === "festgelegterhashoderstring";

                          hopka.net!

                          Kommentar


                          • #14
                            hallo,


                            ja ich weiss ds es mit dem "===" verhindert werden koennte ich meinte jetz aber spezielle fehler des "==" operators ^^

                            EDIT: bzw. nicht fehler des operators sondern wo dieser operator fehlerhaft eingesetzt wird ^^

                            greetz subabrain!
                            Zuletzt geändert von subabrain; 12.06.2006, 15:06.

                            Kommentar


                            • #15
                              was für ein schwachsinn da noch zeit drauf zu verwenden.
                              geh nach russland um bruteforce zu lernen die sind da ziemlich gut.

                              das gute alte pw************ hatte vor nem jahr bei mir glaubsch schon 6 millionen möglichkeiten pro sekunde getestet (und mein pc ist net auf dem neusten stand)
                              mitlerweile ham die ein netzwerkfähiges progi, das die rechenleistung von bis zu 25 rechnern im netzwerk nutzt oder so....
                              Die Milch bleibt ranzig!

                              Kommentar

                              Lädt...
                              X