| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: SSH Connection C# (Brute force spielerei) mit SharpSsh im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo Leute, mir ist die letzten tage vor langer Weile in den Sinn gekommen, dass ich ja mal ein ...
![]() |
| | #1 (permalink) |
| Anzeige Hallo Leute, mir ist die letzten tage vor langer Weile in den Sinn gekommen, dass ich ja mal ein Brute-force-Tool schreiben könnte. Nachdem ich mich im WWW ein wenig belesen hatte, ist mir aufgefallen dass es für SSH und SFTP kaum "bekannte" Tools gibt. Hydra war da so das erste was mir in meine Augen sprang. Nun muss ich ja das Rad nicht neu erfinden und hab mir kurzerhand mal angeschaut was Hydra so kann. Dabei ist mir aufgefallen, das Hydra nur mit Dicts arbeitet und keinen Permutations-Algorithmus in der Hinterhand hat. Das hab ich mir also auch noch vorgenommen ![]() Die Frage die sich mir danach noch stellte war : In welcher Sprache machste das denn nun ? Da ich sonst nur in Java progge und neues lernen nie schlcht ist entschied ich mich für C# Ich bin also, von der Syntax her, C# Anfänger. Nun es läuft soweit ganz gut. Die Permutationen laufen, auch mit einer vorgegebenen länge. Files zeilenweise einlesn und die Strings zu verwenden ist auch nicht das Problem. Mein grundsätzliches Problem besteht nun darin, dass ich andauernd eine Fehlermeldung erhalte und zwar : Code: SSH_MSG_DISCONNECT : 2 Too many authentication failures for username Daraufhin wollte ich alle Keys mit dem Command Code: ssh-add -D Die Fehlermeldung: Code: Der Objektverweis wurde nicht auf eine Objectinstanz festgelegt. Code: public bool connectionStream(string host, string username, string passwd)
{
bool test = false;
try
{
SshExec exc = new SshExec(host, username, passwd);
//exc.RunCommand("ssh-add -D");
Console.WriteLine("ich verbinde mit dem Passwort "+passwd);
exc.Connect(66);
Console.WriteLine("ich bin verbunden");
test = exc.Connected;
}
catch (Exception e)
{
Console.WriteLine("Verbindung nicht erfolgt");
Console.WriteLine(e.Message);
}
return test;
} Danke schon mal im voraus ![]() LG WhiTeY | |
| | |
| | #2 (permalink) |
| Registriert seit: 26.01.11 ![]() Likes: 9 | Also zum Code kann ich dir leider nicht helfen, aber wenn der Bruteforcer später mal "professionell" eingesetzt werden soll dann wähle eine systemnahere Sprache als C# mit seiner Laufzeitumgebung, Garbage Collector und den ganzen Performance-Bremsen. Am besten geeignet wäre C, wobei dich das als Java-Coder vllt. mehr Einarbeitungszeit als C# kostet. Das soll jetzt keine Kritik an deinem Projekt sein, ich finde es sogar sehr kreativ und nützlich. ![]() Das soll lediglich ein Tipp für dich sein, aber wenn das Projekt nur um des Lernens Willen ist, ist Performance ja eher zweitrangig.
__________________ http://sourceforge.net/projects/my-connect/ |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter | Hey Ho, erstmal danke für die Anregungen. Allerdings muss ich sagen dass ich für reines C derzeit zu faul bin. Wenn ich mir die Strucktur zurecht gelegt habe und sie erstmal OO umgesetzt ist werde ich das sicherlich nochmal in Angrif nehmem. Deine Argumente sind gut und richtg bedeuten aber im gegenzug auch das ich selber aufräumen muss. Da ist wirklich mehr Einarbeitung nötig. Derzeit beschränt sich mein Denken in sachen Speicherverwaltung auf Rekursionen, Komplexitäten und unnötige Redundanzen. Ich glaube in C bedarf es ein wenig mehr ![]() LG WhiTeY |
| | |
| | #4 (permalink) |
| Themenstarter | Hallo Leute, ich schmeiß mich gerade voll wech. Zum testen und analysieren hab ich mich per console an meinen auth-Logfile gehangen. OFFTOPIC Kleiner Tipp für interessierte und noch nicht so versierte User unter Linux: Life-Logfile-Beobachtungen mach man am besten mit Code: tail -f logfilename.log Ich beobachte fleißig und schau mir den immer wiederkehrenden Fehler an und lese dann zwischendurch folgenden Abschnitt: Code: Oct 26 16:59:55 XXXX sshd[31941]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=XXXXXX user=test Oct 26 16:59:55 XXXX sshd[31941]: PAM service(sshd) ignoring max retries; 6 > 3 Oct 26 16:59:55 XXXX sshd[31943]: Accepted password for test from XXXXXXXXXX port 50537 ssh2 Ich hab die nette Zeile , "ich bin Verbunden", bei all dem Exceptiongedönse einfach nicht gesehen. Doch das resultierende Problem bei der ganzen sache mit den Exceptions: Jeder loginversuch dauert mehr als 5 Sec. Das stellt mich auch irgendwie nicht zufrieden. Ich dachte eher an was im ms bereich und nicht 25 Sec. bei 5 Permutationen... Naja ich fummel mal weiter und lass mir was einfallen. Bis dahin LG WhiTeY Geändert von WhiTeY (26.10.11 um 17:26 Uhr) |
| | |
| | #5 (permalink) |
| Senior Member Registriert seit: 26.03.06 ![]() Likes: 16 | Hi, vielleicht solltest du mit ein paar Threads arbeiten, die parallel die Lister deiner Permutationen abarbeiten. Das würde das ganze sicher etwas beschleunigen. ciao serow |
| | |
| | #6 (permalink) |
| Themenstarter | Hey Ho, ja Threads würden durch "Paralelisierung" einen Geschwindigkeitsvorteil erzeugen. Aber das eigentliche Problem wäre damit nicht gelößt. Die Permutation als solches ist im ms-Bereich, lediglich die Verbindungsversuche als solche dauern mehrere Sekunden. Daraus folgt, dass auch jeder Therad mehre Sekunden braucht um den Versuch abzuschließen. Mein Fokus liegt daher darin, meine SSH-Verbindung zu optimieren. Ich denke ich muss da eine andere Lib oder gar einen ganz anderen Ansatz wählen. Vilt. mache ich mir auch die heiden arbeit eine eigene DLL für SSH zu schreiben. Da bin ich allerdings noch nicht ganz grün mit mir selbst, denn das bedeutet wirlich Arbeit. LG WhiTeY |
| | |
| | #7 (permalink) |
| Senior Member Registriert seit: 26.03.06 ![]() Likes: 16 | Vllt ist es aber auch Prinzipbedingt bei SSH, ich hab nicht im Kopf was alles beim Verbindungsaufbau passieren muss. Evtl erlaubt die dir API irgendein Timeout runterzusetzen? ciao serow |
| | |
| | #8 (permalink) |
| Themenstarter | Hey Ho, das habe ich noch garnicht rausfinden können. Ich werd mal schauen, dass ich die Tage dazu komme mir die API-Doc mal richtig von forn bis hinten durch zulesen. Bin gerade ein wenig gestresst, weshalb meine Projekt ein wenig in den Hintergrund gedrängt wird. Dafür darf ich mich mit J2EE Datenbakanwendungen rumprügeln. Naja Gott sei dank gibt es JSF und die JPA ![]() Bis Dahin LG WhiTeY |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| MD5 Brute Force | lightf | (In)security allgemein | 11 | 30.09.11 23:19 |
| Brute Force etc. | NoJustice | Doppelte Beiträge | 0 | 30.07.11 13:16 |
| C99 & Brute Force | R619m | Webmaster-Security | 9 | 16.09.07 23:04 |
| ?(Brute Force != Brute Force) | Unicate | Virenschutz · Tools & Aggressive Software | 6 | 15.05.06 16:56 |