Syrus: Alle möglichen Kombinationen erstellen???

Hi,

wie bereits ein paar Threads weiter unten zu lesen, programmiere ich gerade einen UNIX PasswdCracker. Der Dictonary vergleich funktioniert mittlerweile. Nun würde ich aber gerne eine BruteForce Methode einbauen (heißt, das Script soll aus einem gegebenen Zeichensatz, sagen wir mal [a-z] und später auch Zahlen und Sonderzeichen)alle möglichen Kombinationen bilden. Diese werden dann je in eine Variable gespeichert, gecryptet und mit dem Account verglichen.
Das einzige was ich da nicht ganz verstehe, ist wie ich Perl nun sage, dass es alle möglichen Kombinationen ausprobieren soll (und sich natürlich nicht wiederholen darf)
Jemand Ahnung auf diesem Gebiet?

Bin für jede Hilfe dankbar!
mfg
Syrus

  1. Hallo Syrus,

    hier ist die Lösung ;-)

    #!/usr/bin/perl
    print "Content-type: text/html\n\n";

    foreach ( @allebefehle )
    {
      $antwort=ask( "selfaktuell" );
      if ( $antwort eq "" ) { $feel="Schlecht"; }
    }

    while ($loesung eq "")
    {
      $versuch=makecryptedword("dontrepeatyourself");
      if ( $versuch eq "PaSsWoRd" ) { $loesung=$versuch; }
    }

    Diese Meldung erscheint dann 3 Monate später:

    print "password-cracker v1.0  (c) by syrus (the best)";
    print "Das Passwort vor 3 Monaten lautete: $loesung";
    print "Es ist aber wahrscheinlich schon wieder anders";
    print "Der Nutzen meiner Software ist mir selbst nicht klar.";
    print "Ich habe jetzt aber 'Ahnung auf diesem Gebiet'";

    Sourcecode Ende

    Die Funktion ask() kennst Du ja bereits. Du möchtest jetzt makecryptedword() haben.
    Hier soll Dir jetzt nur jemand zeigen, wie der Kern Deiner "Lösung" aussieht.

    Dann kann ich ja gleich mein Problem mitposten:
    Ich möchte einen ONLINE-Shop aufbauen und habe bereits die Bilder eingescannt, kann mir bitte jemand nur den Warenkorb und die Bildschirmdarstellung programmieren ?
    ;-)

    Nix für ungut, aber nicht auszudenken was Du mit einem gecrackten Passwort alles anstellen wirst...
    Vielleicht kommt dann als nächstes ein Posting mit dem Titel: "Was kann man alles mit root-Rechten machen?"
    oder "Der Befehl 'win' funktioniert nicht, obwohl ich als root eingeloggt bin".

    Viele Grüße

    dersichvorflamefürchtende

    Christian

    1. Hier soll Dir jetzt nur jemand zeigen, wie der Kern »»Deiner "Lösung" aussieht.

      Hmmm... nun nicht ganz. Ich wollte nur die ungefähre vorgehensweise (nimmt man srand(), oder, oder...).

      Nix für ungut, aber nicht auszudenken was Du mit >

      »»einem gecrackten Passwort alles anstellen wirst...

      Sagen wir mal so, wenn ich es darauf angelegt hätte ein Passwort zu knacken anstatt die Technik dahinter zu verstehen, hätte ich mir dann nicht einfach einen Cracker (die es ja zu hauf gibt) aus dem Netz holen können?

      Aber, danke für deine Hilfe.

      PS: Wozu flamen? Magst ja sogar recht haben.

      mfg
      Syrus

    2. Hallo Christian,

      hey - dageblieben! Wir brauchen Leute, die Fragen _auch mal_ so beantworten koennen! Ich habe mich koeniglich amuesiert und mich in der ganzen herrischrassigen Schlechtigkeit der FA's gesuhlt ... ;-)

      viele Gruesse
        Stefan Muenz

      1. Ich habe mich koeniglich amuesiert und mich in der >ganzen herrischrassigen Schlechtigkeit der FA's >gesuhlt ... ;-)

        *lol*

        Freut mich mitgeholfen zu haben dich oh großer Meister zu amuesieren...

        Könntet ihr mir jetzt nachdem ihr mir klargemacht habt das das wohl der "lamer Thread der Woche" war wenigstens einen Tip geben?

        *schmoll* Syrus

        1. Hallo Syrus,

          da fehlt wohl noch der Eintrag

          if ( $antwort eq "lustig" ) { &schmoll; }

          aber mal im ERNST:

          Ich glaube, daß es zuviele mögliche Kombinationen gibt. Man kann ja crypt() auch noch parametrisieren. Außerdem kann das Passwort eine variable Länge haben.

          Wenn Du es wirklich versuchen möchtest, dann brauchst Du eine Funktion, die sich selbst (rekursiv) aufruft und Deinen gewünschten Zeichensatz (Schleife machen) prüft. Der Übergabeparameter ($_[0]) wird dadurch immer länger.

          Rein logisch könnte es so aussehen:

          Funktion check:

          ist crypt($_[0] ) gleich dem gecrypteten passwort? wenn ja -> print, exit

          schleife von a-z anfang
             check($_[].$einbuchstabe)  
          schleife ende

          Bei der Schleife kannst du entweder ein array ( $buchstabe[0] bis $buchstabe[n] ) durchlaufen lassen (foreach-Befehl) oder mit substr($buchstaben,n,1) arbeiten und nur einen String ($buchstaben="abcdeABCDE") durchsuchen (for-Befehl)

          Es kann zu einem Überlauf des Stack kommen, da ich mir nicht sicher bin, wieviele rekursive Ebenen verwaltet werden können. Du solltest auch noch eine Abbruchbedingung einbauen (wenn z.B. die Stringlänge (length) 9 erreicht hat.

          Viel Spaß

          dersichnichtmehrganzsofürchtende Christian

          PS: Stefan: Danke für die Blumen. Ich bin und bleibe hier - auch wenn ich nicht so häufig poste.... <schleim> Wo sonst gibts diese Qualität der Besucher? </schleim>

          1. if ( $antwort eq "lustig" ) { &schmoll; }

            *lol*

            Danke dir, übrigens nettes Gespräch was wir da ausgelöst haben...

            mfg
            Syrus

      2. Hallo Stefan,

        ... und mich in der ganzen herrischrassigen Schlechtigkeit der FA's gesuhlt ... ;-)

        Meinereiner hat nicht vier Tage lang auf Fragen zu diesem Thema geantwortet damit Euereiner das Thema jetzt ins Laecherliche zieht.

        Viele Gruesse

        Beate Mielke

        1. Occcchhh  Beate,
          nun ziehe doch nicht so tiefe Gräben zwischen Dir und dem Rest der Welt.  :-(
          Weißt Du nicht, was Selbstironie ist ? Stefan hat dieses Thema in keiner Weise lächerlich gemacht.

          Gruß
          Kess

        2. <stefan wrote>

          ... und mich in der ganzen herrischrassigen Schlechtigkeit der FA's gesuhlt ... ;-)

          <beate wrote>

          Meinereiner hat nicht vier Tage lang auf Fragen zu diesem Thema geantwortet damit Euereiner das Thema jetzt ins Laecherliche zieht.

          Schoen langsam koennte man   d i e s e s   Thema mal beenden. Es wirkt langsam laecherlich!!!!

          In Deinem Thread habe ich mir wirklich die Finger zusammengebunden, meine Tastatur verraeumt und den Prozessor aus meinem Rechner gebuddelt - und das ganze nur, um nicht die Beherrschung zu verlieren.
          Aber jetzt gehst Du IMHO langsam zu weit.

          Gruesse
          Wilhelm

          PS: der sich bei Dir persoenlich dafuer entschuldigt, dass er etliche Leute aus dieser "Horde" privat kennt.
          Und der sich nicht als FA und nicht als FI sieht!!

        3. Hallo Beate!

          Meinereiner hat nicht vier Tage lang auf Fragen zu diesem Thema geantwortet damit Euereiner das Thema jetzt ins Laecherliche zieht.

          Jetzt muss ich mich aber wirklich fragen:

          W a s   i s t   d e i n   P r o b l e m ?

          1. Du hast etwas gepostet. Also muss du wohl damit rechnen, daß es zu deinem Posting sowohl antworten als auch Fragen kommen werden. Wenn dir das nicht passt, dann poste nichts!
            Lese nochmal <../../sfarchiv/1999_4/t08488.htm#a43046> durch. Werden dir also "unangenehme" Fragen gestellt, hast du Grippe. Da dachte ich mir noch: ok, sie hat jetzt wirklich viel bewegt und jetzt braucht sie auch mal eine Nachdenkpause, wie auch die anderen.
            Aber mittelweile bin ich an der Meinung; du hast nur gepostet um zu raunzen.

          2. Seit Tagen spielst du hier ein beleidigtes:"ich bin so arm und alle hacken nur an mir herum" Theater.
            Jedes Posting ist eine Beleidigung für dich, jede Bemerkung zielt nur darauf ab dich zu pikieren. Was soll das?

          3. Was ist das was du nicht verkrafen kannst? Daß sich manche jetzt über die bösen FAs sich amüsieren? Ja und???
            Wenn dich man nicht ernstgenommen hätte, würde sich niemand mehr an diene Einteilung erinner. Ist dir schon überhaupt in dem Sinn gekommen, daß diese Amüsement sehr wohl mit einer kräftigen Prise Selbstironie gewürzt sein könnte?

          4. Die Haputfrage ist: was willst du?
            Dir geht es doch gar nicht um die "Kräfteverhältnisse" und um die "armen" FIs.
            Also nochmal: was ist dein Problem?

          Grüße
          Thomas

          PS: Es ist mir absolut gleichgültig und vollkommen egal wenn du mein Posting als "Da heben wir es! Die bösen Verschwörer! Einer deckt den Anderen!" auffaßt.
          Entweder bist du bereit und/oder fähig es zu verstehen wie es ist, oder eben nicht.

          1. Hallo Thomas,

            also nochmal extra fuer Dich, weil ich Dir noch nicht geantwortet habe.

            W a s   i s t   d e i n   P r o b l e m ?

            Mein Problem und das einiger anderer (weiss ich aus Emails) ist genau das Problem, das ich gepostet habe.

            Werden dir also "unangenehme" Fragen gestellt, hast du Grippe. Da dachte ich mir noch: ok, sie hat jetzt wirklich viel bewegt und jetzt braucht sie auch mal eine Nachdenkpause, wie auch die anderen.

            Ich hatte (habe) uebrigens die ganze Zeit Grippe, also keine Maerchenstunde, ok?

            Aber mittelweile bin ich an der Meinung; du hast nur gepostet um zu raunzen. Seit Tagen spielst du hier ein beleidigtes:"ich bin so arm und alle hacken nur an mir herum" Theater. Jedes Posting ist eine Beleidigung für dich, jede Bemerkung zielt nur darauf ab dich zu pikieren. Was soll das?

            Wenn's so waere, waere es wirklich schlimm. Aber Du verdrehst leider so ziemlich alles, was ich geschrieben habe.
            Also nochmal. Ich habe seit langem wahrgenommen, dass es hier im Forum Angst gibt, und zwar nicht nur meine, diese Angst habe ich versucht zu beschreiben, um darauf aufmerksam zu machen.

            Was ich mir erhofft habe, ist eine Diskussion darueber, was man dagegen tun koennte. Aber leider ist es eine geworden, die sich nur noch um FI's und FA's dreht. Das war NICHT mein Hauptanliegen, sondern, wie kann man etwas dagegen unternehmen, dass sich hier einige beim Posten so unwohl fuehlen, dass man es schon als Angst bezeichnen kann.

            Wenn dich man nicht ernstgenommen hätte, würde sich niemand mehr an diene Einteilung erinner. Ist dir schon überhaupt in dem Sinn gekommen, daß diese Amüsement sehr wohl mit einer kräftigen Prise Selbstironie gewürzt sein könnte?

            Das ist ja eben das schlimme, dass man sich nur noch an die Einteilung erinnert, dabei waren andere Sachen doch viel wichtiger.

            PS: Es ist mir absolut gleichgültig und vollkommen egal wenn du mein Posting als "Da heben wir es! Die bösen Verschwörer! Einer deckt den Anderen!" auffaßt.

            Da kannst Du mal was anderes sehen. Naemlich, dass ich nie auf die Idee gekommen waere, sowas zu denken. Nach Deinem ersten Posting zu dem Thema habe ich Deine Einstellung naemlich schon ganz gut verstanden, und die Antwort waere so aehnlich aussgefallen wie diese hier.

            Das Thema lag und liegt mir sehr am Herzen, und deshalb schreibe ich halt etwas dazu, wenn ich das Gefuehl habe, dass das zum Witzeln benutzt wird.

            Viele Gruesse

            Beate Mielke

            1. Moin Beate,

              Also nochmal. Ich habe seit langem wahrgenommen, dass es hier im Forum Angst gibt, und zwar nicht nur meine, diese Angst habe ich versucht zu beschreiben, um darauf aufmerksam zu machen.

              Hier ist jede/r nur Sprecher/in für sich selbst. Du hast über _deine_ Wahrnehmung, _deine_ Eingruppierungen und _deine_ Ängste geschrieben. Und nur darüber und davon handelte dein posting.

              Was ich mir erhofft habe, ist eine Diskussion darueber, was man dagegen tun koennte.

              streiche "man", setze "ich" , denn "man" kann nichts gegen Ängste tun

              Aber leider ist es eine geworden, die sich nur noch um FI's und FA's dreht. Das war NICHT mein Hauptanliegen, sondern, wie kann man etwas dagegen unternehmen, dass sich hier einige beim Posten so unwohl fuehlen, dass man es schon als Angst bezeichnen kann.

              Beate, streich mal aus deinem posting das FI-FA Bild weg: Dann geben alle deine anderen Argumente keinen Sinn mehr. Der von dir behauptete Gegensatz war Dreh- und Angelpunkt deines posting.

              Swen

        4. Moin Beate,

          ich wette mittlerweile darauf, dass dir klar war, was auf dein posting passierte: Nämlich noch mehr Antworten zu erhalten, die dich in dem Vorurteil stärken, die FA könnten dich nicht leiden und die FI würden dich allein lassen. Echt, ich werde manchmal das Gefühl nicht los, du bastelst dir da gerade eine Welt zusammen, die nicht existiert. Es kann doch nicht sein, dass du den ";-)" in Stefan posting einfach so überlesen hast.

          Mach doch einfach bei der schwersten Turnübung die es gibt: sich selbst auf den Arm nehmen.

          Swen
          Humor ist der Knopf, der verhindert, dass und der Kragen platzt. (Joachim Ringelnatz)

  2. Das einzige was ich da nicht ganz verstehe, ist wie ich Perl nun sage, dass es alle möglichen Kombinationen ausprobieren soll (und sich natürlich nicht wiederholen darf)
    Jemand Ahnung auf diesem Gebiet?

    Beginne damit, das Problem in der Komplexität zu reduzieren: Generiere erst mal alle Passworte einer festen Länge.

    (Keine Garantie für korrekte Syntax -

    Hauptsache, der Algorithmus stimmt in etwa)

    my @password;

    my $chars = <Zeichenkette aller erlaubten Zeichen>;

    sub try ($)
    {
      # Parameter übernehmen
      my $level = $_;

    # n-tes Zeichen durchprobieren
      for (my $i=0; $i < len($chars; $t++)
          {
            # setze nächstes Zeichen in Passwort
            @password[$level] = substr ($chars, $i, 1);
            # Rekursion
            if ($level < $maxlen)
               { try ($level+1) }
            else
               { # crypt aufrufen und ... tun }
          }
    }

    for (my $i=1; $i < $maxlen; $i++)
        {
          # Probiere alle Passworte genau dieser Länge
          try ($i);
        }

  3. wie bereits ein paar Threads weiter unten zu lesen, programmiere ich gerade einen UNIX PasswdCracker. Der Dictonary

    a.) Soetwas gibt es schon.
    b.) Perl ist allenfalls zur Erstellung des Wörterbuchs geneigt. Das gibt's aber auch schon.

    cu,
    Peter