Linux Bedienung über Telnet [Erledigt]
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
Linux Bedienung über Telnet [Erledigt]
Hallo
Da ich noch neu im Forum hier bin und bis jetzt auch nur sporadisch mit Qbasic,VB und nun Purebasic zu tun hatte, möchte ich mal die Erfahrenen um einen Rat bitten.
Also ich beabsichtige eine Applikation zu schreiben mit der ich aus verschieden Optionen einen Satz Files erstelle und über das Netzwerk auf einen Linux Rechner kopiere.
Soweit kein Problem.
Danach möchte ich mich per Telnet auf diesen Rechner einloggen und die Files dort auf die über das Netzwerk gesperrten Verzeichnisse verteilen.
Momentan sehe ich zwei Möglichkeiten.
A: Telnet über RunProgramm starten und bedienen.
Da ich aber nicht immer über den gleichen PC starten werde (Verschiedene Anwender) kann es zu Konflikten bei den Versionen von Telnet kommen. Hab ich hier im Forum zumindest sowas gelesen.
B: Über Open Network Befehle.
Ich habe dazu aber noch nichts passendes gefunden.
Ein Vorschlag für den Zugriff auf eine Internetseite funktionierte solange bis ich die XYZ.Com durch die IPAdresse des PC's ersetzte. Es kamen lediglich irgendwelche Zeichen, aber nicht die Meldung die normal bei Telnet erscheint.
Ich hoffe ihr könnt mir helfen.
Ich bin für alles Dankbar, egal ob Tips, Codeschnipsl oder Links
Tschau Andre
Da ich noch neu im Forum hier bin und bis jetzt auch nur sporadisch mit Qbasic,VB und nun Purebasic zu tun hatte, möchte ich mal die Erfahrenen um einen Rat bitten.
Also ich beabsichtige eine Applikation zu schreiben mit der ich aus verschieden Optionen einen Satz Files erstelle und über das Netzwerk auf einen Linux Rechner kopiere.
Soweit kein Problem.
Danach möchte ich mich per Telnet auf diesen Rechner einloggen und die Files dort auf die über das Netzwerk gesperrten Verzeichnisse verteilen.
Momentan sehe ich zwei Möglichkeiten.
A: Telnet über RunProgramm starten und bedienen.
Da ich aber nicht immer über den gleichen PC starten werde (Verschiedene Anwender) kann es zu Konflikten bei den Versionen von Telnet kommen. Hab ich hier im Forum zumindest sowas gelesen.
B: Über Open Network Befehle.
Ich habe dazu aber noch nichts passendes gefunden.
Ein Vorschlag für den Zugriff auf eine Internetseite funktionierte solange bis ich die XYZ.Com durch die IPAdresse des PC's ersetzte. Es kamen lediglich irgendwelche Zeichen, aber nicht die Meldung die normal bei Telnet erscheint.
Ich hoffe ihr könnt mir helfen.
Ich bin für alles Dankbar, egal ob Tips, Codeschnipsl oder Links
Tschau Andre
Zuletzt geändert von Elektrolurch am 16.10.2007 22:08, insgesamt 1-mal geändert.
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
- Wohnort: Luxemburg
- Kontaktdaten:
Telnet würde ich nur nehmen, wenn es unbedingt erforderlich ist, weil es alle Daten (Login-Daten inbegriffen) im Klartext, ohne jede Verschlüsselung, überträgt... Vielleicht besser selber was Coden, zumindest ein halbwegs abhörsicherer Login sollte ja kein Problem darstellen (Client schickt dem Server ne Login-Anfrage, Server schickt einen String aus zufälligen Zeichen zurück, und der Client packt den Zufallsstring vom Server und das Passwort in einen String, und schickt den MD5-Hash dieses Strings an den Server. Da der Server sowohl das Passwort als auch den String mit den Zufälligen Werten kennt, kann er selber ja den MD5-Hash auch errechnen, und so den Hash, den ihm der Client gesendet hat, prüfen. Um es noch komplizierter zu machen, könntest du zu dem String aus Zufallsdaten und Passwort noch ein Zeichen hinzufügen, das der Server nicht kennt. Dann muss der Server bis zu 256 MD5-Hashes berechnen, ehe er den richtigen gefunden hat. Dies würde es dem Angreifer im Falle einer Bruteforce-Attacke auf die MD5-Hashes nochmal wesentlich (theoretisch bis zu 256 Mal) schwieriger machen, den Hash zu knacken...).
„Warum siehst du den Splitter im Auge deines Bruders, aber den dicken fetten schwarzen Zensurbalken vor deinem Auge bemerkst du nicht?“
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
Hi mal der erste Versuch
Und hier was zurückkommt
Irgendwelche Anregungen ?
Code-Tags gesetzt - Kaeru fecit
nächstmal bitte selber machen.
Code: Alles auswählen
DatenBuffer.s = Space(100)
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
Hallo$ = Chr(13)+Chr(10)
Port = 23
ConnectionID = OpenNetworkConnection("192.168.178.24", Port)
If ConnectionID
SendNetworkString(ConnectionID, Hallo$) ;Einfach ein Return um die Meldung auszulösen
ReceiveNetworkData(ConnectionID, @DatenBuffer, Len(DatenBuffer))
A$= DatenBuffer ; mal sehen was zurückkommt
Debug A$
CloseNetworkConnection(ConnectionID)
Else
MessageRequester("PureBasic - Client", "Can't find the server (Is it launched ?).", 0)
EndIf
End
Code: Alles auswählen
ÿýÿý ý#ÿý'
Irgendwelche Anregungen ?
Code-Tags gesetzt - Kaeru fecit
nächstmal bitte selber machen.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
HI
Ich bin doch hier als Anfänger, also gaaanz langsam.
Ich hatte eigentlich erwartet, daß so etwas wie beim Telnet zurückkommt.
Sorry, was ist parsen?
Finde ich da was in der Linux Beschreibung ?
Tschau Andre
Ich bin doch hier als Anfänger, also gaaanz langsam.
Ich hatte eigentlich erwartet, daß so etwas wie beim Telnet zurückkommt.
Code: Alles auswählen
Linux 2.4.26 (jukebox) (21:07 on Thursday, 11 October 2007)
login:
Finde ich da was in der Linux Beschreibung ?
Tschau Andre
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
also, ich dachte jetzt anhand des empfangenen strings, dass es eine commandosequenz sein könnte.
viele geräte kommunizieren auf die art, dass sie keinen klartext schicken und empfangen,
sondern eine folge von direkten befehlen im ASCII-format.
die muss man "parsen", also auseinandernehmen und in für menschen lesbare befehle aufschlüsseln.
welche befehle das gerät erwartet und zurückgibt, sollte in der anleitung des gerätes stehen.
mein erster gedanke bei dem string den du da hast, war, dass er fälschlich in Unicode ausgegeben wurde.
also, einfach mal beim compilieren in den compileroptionen das "create Unicode exe" deaktivieren.
viele geräte kommunizieren auf die art, dass sie keinen klartext schicken und empfangen,
sondern eine folge von direkten befehlen im ASCII-format.
die muss man "parsen", also auseinandernehmen und in für menschen lesbare befehle aufschlüsseln.
welche befehle das gerät erwartet und zurückgibt, sollte in der anleitung des gerätes stehen.
mein erster gedanke bei dem string den du da hast, war, dass er fälschlich in Unicode ausgegeben wurde.
also, einfach mal beim compilieren in den compileroptionen das "create Unicode exe" deaktivieren.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Ich habe im englischen Forum schon einmal einen einfachen Basis-Telnetclient veröffentlicht, der beispielhaft den Verbindungsaufbau über einen Telnet-Server eines Großrechners mit anschließendem Logon durchführt:
http://www.purebasic.fr/english/viewtop ... 77&start=5
Die wirren Zeichen sind Codes, die durch die Aushandlung von Protokoll-Eigenschaften zwischen Telnet-Server und Telnet-Client entstehen. Klartexte (zusammen mit Kontroll-Codes) erscheinen erst später bei der eigentlichen Anmeldung.
Mein Beispiel-Programm gibt beim Verbindungsaufbau zu meinem Großrechner-Telnetserver folgendes Protokoll aus:
Natürlich müssen die Abfragen in der Prozedur ParseServerMsg() wie z.B. nach "ENTER USERID" entsprechend an anderslautende Texte anderer Telnet-Server angepaßt werden...
Außerdem sollte man auch einmal einen Blick in die Telnet-Dokumentation werfen:
RFC764 - Telnet protocol specification (http://www.ietf.org/rfc/rfc764.txt)
RFC860 - Telnet timing mark option (http://www.faqs.org/ftp/rfc/pdf/rfc860.txt.pdf)
http://www.purebasic.fr/english/viewtop ... 77&start=5
Die wirren Zeichen sind Codes, die durch die Aushandlung von Protokoll-Eigenschaften zwischen Telnet-Server und Telnet-Client entstehen. Klartexte (zusammen mit Kontroll-Codes) erscheinen erst später bei der eigentlichen Anmeldung.
Mein Beispiel-Programm gibt beim Verbindungsaufbau zu meinem Großrechner-Telnetserver folgendes Protokoll aus:
'C' steht immer für eine Client-Meldung, 'S' für eine Server-Meldung. Wie man sieht, meldet sich nach erfolgreicher Verbindung über OpenNetworkConnection() direkt der Server und bittet den Client, eine 3270-Session aufzubauen. Um keine langwierigen Protokoll-Verhandlungen durchführen zu müssen und den Code einfach zu halten, lehnt der Client grundsätzlich alle Bitten des Servers mit 'WONT' ab. Der Logon klappt aber natürlich trotzdem...Telnet-Protokoll hat geschrieben: S: DO 'TN3270E'
C: WONT 'TN3270E'
S: DO 'Terminal Type'
C: WONT 'Terminal Type'
S: DO 'Suppress Go Ahead'
C: WONT 'Suppress Go Ahead'
S: WILL 'Suppress Go Ahead'
S: IKJ56700A ENTER USERID -
C: TESTUSER
S: IKJ56714A ENTER CURRENT PASSWORD FOR TESTUSER-
C: ******
S: WILL 'Echo'
S: WONT 'Echo'
S: ICH70001I TESTUSER LAST ACCESS AT 08:33:37 ON FRIDAY, OCTOBER 12, 2007
S: IKJ56496I DEFAULT ACCOUNT NUMBERS COULD NOT BE OBTAINED - ENTER ACCOUNT NUMBER
C: 12345678
S: IKJ56497I DEFAULT PROCEDURE NAMES COULD NOT BE OBTAINED - ENTER PROCEDURE NAME
C: TESTPROC
S: TESTUSER LOGON IN PROGRESS AT 08:46:12 ON OCTOBER 12, 2007
S: NO BROADCAST MESSAGES
S: READY
Natürlich müssen die Abfragen in der Prozedur ParseServerMsg() wie z.B. nach "ENTER USERID" entsprechend an anderslautende Texte anderer Telnet-Server angepaßt werden...
Außerdem sollte man auch einmal einen Blick in die Telnet-Dokumentation werfen:
RFC764 - Telnet protocol specification (http://www.ietf.org/rfc/rfc764.txt)
RFC860 - Telnet timing mark option (http://www.faqs.org/ftp/rfc/pdf/rfc860.txt.pdf)
- Elektrolurch
- Beiträge: 168
- Registriert: 11.10.2007 16:48
- Wohnort: 49°26'51.46"N - 8°59'49.06"E
- Kontaktdaten:
Hi Kaeru Gaman
create unicode executable war deaktiviert.
Aktivert sieht es so aus
Ein bißchen besser aber nicht viel.
Hi Shardik
Dein Programm ist sicher toll, aber bis ich dass verstehe, muß ich es wohl noch ein bißchen studieren.
Vieleicht gehts ja auch einfacher?
create unicode executable war deaktiviert.
Aktivert sieht es so aus
Code: Alles auswählen
?8??C?
Hi Shardik
Dein Programm ist sicher toll, aber bis ich dass verstehe, muß ich es wohl noch ein bißchen studieren.
Vieleicht gehts ja auch einfacher?
Tut mir leid, aber ich befürchte, daß es leider nicht eínfacher geht...Elektrolurch hat geschrieben: Vieleicht gehts ja auch einfacher?
Wie ich schon zu erklären versuchte, sind die "wirren" Zeichen im Telnet-Protokoll definierte "unleserliche" Byte-Codes, die von meinem Programm in für Menschen "lesbare" Telnet-Befehle umgesetzt werden. Vielleicht solltest Du mein Programm wirklich einmal ausprobieren und schauen, welche Telnet-Codes Dein Telnet-Server an Deinen PC schickt und welche Protokoll-Eigenschaften der Telnet-Server aushandeln will. Mit etwas Glück solltest Du bis an die Stelle gelangen, wo der Telnet-Server Deine Benutzerkennung anfordert. Dann solltest Du mein Programm entsprechend anpassen und auf die Telnet-Anfrage Deine Benutzerkennung schicken. Du kannst auch gerne das Debug-Protokoll in ein Posting schreiben, sodaß ich das Programm für Dich anpassen kann...