Freitag, 11. Januar 2013

Word Passwort per Bruteforce herausfinden

In den letzten Posts habe ich ja schon Grundlegendes zum Einbinden von Word in C# erklärt, eine Methode angegeben um ein Word Passwort automatisiert zu prüfen sowie einen Passwortgenerator vorgestellt.
Hier möchte ich nun diese Dinge kombinieren und ein Programm vorstellen, welches durch Ausprobieren aller Möglichkeiten Word Passwörter herausfinden kann. Die Passwörter werden mit dem Passwortgenerator erstellt und das Programm versucht dann, mit diesen das Word Dokument zu öffnen.
Der Code sollte eigentlich selbsterklärend sein in Verbindung mit den vorigen Posts. Zugegeben, das Programm ist ziemlich langsam, wer Tricks kennt um die Performance zu verbessern darf das gerne hier tun!
            Object oMissing = System.Reflection.Missing.Value;

            bool Found = false;

            PasswordGenerator Generator = new PasswordGenerator(true, true, true, 1, 2);
            Thread.Sleep(1000);
            string pw = Generator.Dequeue();

            Word.Application WordApp = new Word.Application();
            Word.Document ExistingDocument;

            while (pw != "" && !Found)
            {
                try
                {
                    ExistingDocument = WordApp.Documents.Open(Dateiname, oMissing, false, oMissing, pw);
                    Found = true;
                    WordApp.Quit();
                    MessageBox.Show("Das Passwort lautet: " + pw);
                }
                catch (System.Runtime.InteropServices.COMException ex)
                {
                }
                pw = Generator.Dequeue();
            }

            if (!Found)
                MessageBox.Show("Kein passendes Passwort gefunden.");
        }

Kommentare:

  1. Hey,

    deine Tutorials sind einsame Spitze :)
    Ich persönlich würde mich über ein Tutorial um ein Program ins System-Tray zu schreiben mit Tooltip usw :D

    AntwortenLöschen
    Antworten
    1. Hey,

      vielen Dank! :)
      Meinst du so etwas? http://csharp-tricks.blogspot.de/2010/06/symbol-in-taskleiste-trayicon-anzeigen.html
      Zu dem Thema habe ich schon ein paar Beiträge geschrieben, suche hier einfach mal "Taskleiste" auf meinem Blog!

      Löschen
    2. Ich scheine blind zu sein :)
      Genaus sowas hab ich gemeint, was mir da allerdings noch fehlt ist, dass wenn man die form schließt wird auch das notifyicon geschlossen, was ja klar ist.
      Aber ich würde gerne wie viele namenhafte Programme das haben, dass wenn man die Form über die Steuerleiste oben rechts schließt oder minimiert soll der Prozess als Trayicon erhalten bleiben :)

      Löschen
    3. @Anonym:
      Sieh dir dafür mal die Events an. Dort solltest du dann die Ansicht auf "Alphabetisch" schalten und dann solltest du die Events "FormClose" und "FormClosing" finden.
      Hier kannst du es nun so einstellen, dass die Form zwar geschlossen ist, aber der Prozess noch läuft. Für genauere Infos solltest du aber Google befragen, da ich es noch nicht für diesen Zweck benutzt habe.

      Löschen
  2. Schreibe unter FormClosing einfach folgendes:
    e.Cancel = true;
    this.Hide();
    Sollte selbsterklärend sein :)

    AntwortenLöschen
  3. Ich habe mal ne Frage: wie erstellt man sich einen neuen, ordentlich angezeigten messageBox-Button oder anders gefragt: GEHT das überhaupt?

    AntwortenLöschen
    Antworten
    1. Was ist ein messageBox-Button?
      Ich kenne MessageBoxes, das geht ja prima mit MessageBox.Show("bla").

      Löschen
  4. Wie erstellt man ein LogIn System mit MD5 Hash einer Zeichenkette?
    und wie kann man gegebenfalls weitere Nutzer anlegen?

    AntwortenLöschen
    Antworten
    1. Uf das ist ja schon ziemlich allgemein ... und je nach Anwendung wirst du dafür ja vor allem Datenbanken benutzen.

      Löschen
    2. Das weiß ich das meine Frage sehr allgemein gestellt ist aber wie kann ich zum Beispiel (die Zeichenkette der einzellen Passwörter) in eine Datenbank "einbetten" und wie kann man diese Informationen wieder abrufen?

      Löschen
  5. Hm sorry, das geht ja jetzt schon mehr in den Datenbankbereich und ist nicht mehr unbedingt C# Programmierung.

    AntwortenLöschen
    Antworten
    1. Hallo Oliver
      weißt du oder kennst du einen Blog der über Datenabken Tutorials macht?

      Löschen
  6. Hallo ich habe ein kleines Problem eine Definition ist auf der anderen Form schon enthalten auf der anderen gibt es sie nicht aber dort wird die Optionen von dem Objekt zur erstellung erstellt. Wie komm ich jetzt an diese Definition?

    AntwortenLöschen