19.04.2023

Shell Verbindungen

HTTP Server
Verbindung zum HTTPS Server
SMTP Server
POP3 Server
NNTP Server
IMAP Server
IRC Server
Client Verbindung zum Internet testen
sonstiges

Linux

Telnet Verbindung unter Linux beenden, durch gleichzeitiges drücken der Tasten STRG + ALTGR + 9.

Windows

Telnet Einstellungen für Putty
Connection | Telnet
RFC 1408 aktivieren
Telnet negration mode: Passive

!! nach Eingabe der Befehle zwei mal Enter drücken !!

Seitenanfang

Telnet Verbindung zum HTTP Server

Telnet mit einem HTTP Server

HTTP - Hypertext Transfer Protocol

Kommando Übersicht
HEAD Response-Header anfordern
GET Datei anfordern
POST wie GET nur für Formulare und Scripte
PUT Erstellen und Ändern von Dateien auf dem Server
DELETE Löschen von Daten auf dem Server
TRACE Routenverfolgung
OPTIONS Ermittlung von Kommunikationsoptionen
CONNECT Tunnelaufbau eines Proxy-Servers zu einem Host
Befehle: HTTP/1.0
OPTIONS / HTTP/1.0 möglichen Befehle anzeigen
GET /index.html HTTP/1.0 Daten vom Server holen (Datei anzeigen)
GET /index.html Daten ohne HEADER anzeigen
HEAD / HTTP/1.0 nur Header einer Datei anzeigen (Webserverinfos)
POST /form.cgi HTTP/1.0 Daten an den Server Senden
   
Befehle: HTTP/1.1
HEAD / HTTP/1.1
Host: www.domain.tld
User-Agent: Mozilla/5.0
Header der Seite ausgeben
OPTIONS / HTTP/1.1
Host: www.domain.tld
User-Agent: Mozilla/5.0
Optionen die der WebServer unterstützt anzeigen, z.B. GET, HEAD, POST, OPTIONS
OPTIONS * HTTP/1.1
Host: www.domain.tld
User-Agent: Mozilla/5.0
Optionen die der WebServer unterstützt anzeigen, z.B. GET, HEAD, POST, OPTIONS. Dabei wird * nicht von allen WebServern unterstützt z.B. Apache. nginx
GET / HTTP/1.1
Host: www.domain.tld
User-Agent: Mozilla/5.0
GET Abfrage einer Seite, dabei wird die Seite als HTML Text ausgegeben.
GET /index.html HTTP/1.1
Host: www.domain.tld
User-Agent: Mozilla/5.0
GET Abfrage der angegebenen Seite /index.html
TRACE / HTTP/1.1
HOST: www.domain.tld
muss vom Server unterstüzt werden
JEFF / HTTP/1.1
HOST: www.domain.tld
 
   

Bei HTTP/1.1 muss der HOST immer mit angegeben werden, wie in dem Beispiel zu sehen ist

  # telnet localhost www
  Trying ::1...
  Connected to ip6-localhost.
  Escape character is '^]'.
  OPTIONS / HTTP/1.1
  HOST: localhost

  HTTP/1.1 200 OK
  Date: Thu, 07 Aug 2003 14:01:05 GMT
  Server: Apache/2.0.47 (Debian GNU/Linux) DAV/2
  Vary: accept-language,accept-charset
  Allow: GET,HEAD,POST,OPTIONS,TRACE
  Content-Length: 0
  Content-Type: text/html; charset=ISO-8859-1
  Content-Language: en

  Connection closed by foreign host.

HTTP Abfrage mit NetCat

Datei mit der Abfrage anlegen, !! am Ende der Datei muß zwei mal Enter eingefügt werden.

GET /index.html HTTP/1.1
Host: www.domain.tld
User-Agent: Mozilla/5.0

Abfrage an HTTP Server übergeben

nc -w 1 www.domain.tld 80 < $file

nur die ersten 7 Zeilen der Serverantwort anzeigen

nc -w 1 www.domain.tld 80 < http.txt | head -n 7

Abfrage direkt von der Kommandozeile

printf 'GET / HTTP/1.1\r\nHost: www.domain.tld\r\n\r\n' | nc -w 1 www.domain.tld 80

HTTP Abfrage mit cURL

HTTP-Header anzeigen

curl -I http://www.domain.tld

- HTTP/2 Abfrage, kommen keine Daten, kann der Server nur HTTP/1.0 oder HTTP/1.1

curl --http2 https://www.domain.tld

- GET Abfrage, Header mit übergeben

curl http://www.domain.tld -H "User-Agent: Mozilla/5.0"

- POST Abfrage

curl -X POST http://www.domain.tld
Seitenanfang

Verbindung zum HTTPS Server

SSL Verbindung zu einem Server herstellen.

# openssl s_client -connect server.domain.tld:443
CONNECTED(00000003)
...
Server certificate
-----BEGIN CERTIFICATE-----
MIIC7zCCApmgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBiTELMAkGA1UEBhMCREUx
EDAOBgNVBAgTB0dFUk1BTlkxFTATBgNVBAcTDENJVFkgb2YgREVBRDESMBAGA1UE
ChMJTE9DQUwuSU5DMQ4wDAYDVQQLEwVMT0NBTDESMBAGA1UEAxMJc3NsLmxvY2Fs
MRkwFwYJKoZIhvcNAQkBFgppbmZvLmxvY2FsMB4XDTA0MDQwNjIxNDY1N1oXDTA0
MDUwNjIxNDY1N1owgYkxCzAJBgNVBAYTAkRFMRAwDgYDVQQIEwdHRVJNQU5ZMRUw
EwYDVQQHEwxDSVRZIG9mIERFQUQxEjAQBgNVBAoTCUxPQ0FMLklOQzEOMAwGA1UE
CxMFTE9DQUwxEjAQBgNVBAMTCXNzbC5sb2NhbDEZMBcGCSqGSIb3DQEJARYKaW5m
by5sb2NhbDBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC7JCTZlk4PXkFilUTsIk8w
3Viqqy1D7r8pGbWO65sM8hwaeVJbkGKVFh0/y0fziqL1vXBsEYVwuGBJ7gc8aIED
AgMBAAGjgekwgeYwHQYDVR0OBBYEFLt2LI1BtQKGgIRbocEpZprbKz20MIG2BgNV
HSMEga4wgauAFLt2LI1BtQKGgIRbocEpZprbKz20oYGPpIGMMIGJMQswCQYDVQQG
EwJERTEQMA4GA1UECBMHR0VSTUFOWTEVMBMGA1UEBxMMQ0lUWSBvZiBERUFEMRIw
EAYDVQQKEwlMT0NBTC5JTkMxDjAMBgNVBAsTBUxPQ0FMMRIwEAYDVQQDEwlzc2wu
bG9jYWwxGTAXBgkqhkiG9w0BCQEWCmluZm8ubG9jYWyCAQAwDAYDVR0TBAUwAwEB
/zANBgkqhkiG9w0BAQQFAANBALikvKBLH62sXA21y/NYu4xVr3+d77+8RpZDHnWL
Lr7/81uve+69fnBHQIspdrLtNxq9VL4IjS9Mif8QOXLlLVI=
-----END CERTIFICATE-----
...
# OPTIONS / HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 01 Oct 2004 14:16:59 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Connection: close
Content-Type: text/html; charset=ISO-8859-1

closed
Seitenanfang

Telnet Verbindung zum SMTP Server

# telnet localhost smtp  
HELO mail.domain.tld Verbindung herstellen und Hostname mitteilen
EHLO mail.domain.tld eine Enhanced-SMTP Verbindung herstellen und Hostname mitteilen
AUTH LOGIN Optional, wenn der Server eine Authentifizierung vorraussetzt. Die Eingabe muss BASE64 Codiert sein
perl -MMIME::Base64 -e 'print encode_base64("user\@domain\.tld")'
perl -MMIME::Base64 -e 'print encode_base64("passwort")'
MAIL FROM:<user@domain.tld> Spezifiziert den Absender und leitet das Absenden von Mail ein.
RCPT TO:<user2@domain.tld> Spezifizieren des Empfängers.
DATA Nachrichteninhalt eingeben und übertragen.
FROM:<user@domain.tld> Absender für den MailHeader
TO:<user@domain.tld Empfänger für den MailHeader
SUBJECT:Eine Mail Betreff der Mail
. Texteingabe abschliessen
RSET Abbruch einer laufenden übertragung und Reset der Verbindung.
QUIT beenden der Verbindung zum Server
Enhanced SMTP (Optional)
HELP fordert Hilfeinstruktionen an
SEND FROM:<user@domain.tld> Übertragung der Nachricht an ein Terminal.
SOML FROM:user@domain.tld Übertragung der Nachricht an ein Postfach oder ein Terminal.SEND OR MAIL
SAML FROM:user@domain.tld Übertragung der Nachricht an ein Terminal und ein Postfach.SEND AND MAIL
VRFY user@domain.tld Fragt nach, ob ein bestimmtes Postfach verfügbar ist. (Sicherheitsbedenklich)
EXPN user@domain.tld Fragt nach den Mitgliedern einer Maillingliste.
NOOP No Operation, gibt einen positiven Wert zurück, falls der Server noch lebt.
TURN Dreht das Verhältnis zwischen Server und Client um.
ETURN Server soll veranlasst werden, alle Mails an eine bestimmte Maildomain sofort zuzustellen. (Sicherheitsbedenklich)

Beispiel für ein AUTH Login, 334 VXNlcm5hbWU6 (Username eingeben), 334 UGFzc3dvcmQ6 (Passwort eingeben)

AUTH LOGIN
334 VXNlcm5hbWU6
dXNlckBkb21haW4udGxk
334 UGFzc3dvcmQ6
cGFzc3dvcnQ=

235 Authentication succeeded
Seitenanfang

Telnet Verbindung zum POP3 Server

Befehl Bedeutung
USER mustermann Übermittelt den Usernamen für die Mailbox (maildrop)
PASS passwort Übermittelt das Passwort für USER
STAT Ermittelt die Anzahl der vorhandenen Nachrichten und die Größe der Mailbox.
LIST Gibt die Größe der Nachricht(en) zurück.
LAST Gibt die höchste bisher bearbeitete Nachrichtennummer zurück.
RETR [ID der Mail] holt eine komplette Nachricht (Head und Body).
DELE [ID der Mail] Markiert eine Nachricht als gelöscht.
NOOP No Operation, gibt einen positiven Wert zurück, falls der Server noch lebt.
RSET Setzt die Markierung aller als gelöscht markierten Nachrichten zurück.
QUIT Beendet die Verbindung. Löscht alle als gelöscht markierten Mails.
weitere Kommandos die nicht von allen POP3 Server unterstützt werden
CAPA POP3 Erweiterung des Servers abfragen
AUTH Methode Authentifizierungsmethode vorschlagen
APOP Verschlüsseltes Einloggen (Optional)
TOP Holt den Header und die angegebenen Zeilen der Nachricht.TOP 10 5 holt den Header und die ersten 5 Zeilen von Nachricht 10. (Optional)
STLS Verschlüsselung aktivieren, STARTTLS
UIDL (Unique ID Listing) Fragt nach der eindeutigen Kennung der Nachricht.(Optional)
Seitenanfang

Telnet Verbindung zum NNTP Server

# telnet localhost nntp  
ARTICLE Liefert einen gewünschten Beitrag (Header und Body).
AUTHINFO [USER] [PASS] Bietet dem Client die Möglichkeit, sich beim Server über einen Benutzernamen und ein Passwort anzumelden. (Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
BODY Liefert den Nachrichtenkörper eines Beitrags.
DATE Gibt das Datum, das der Newsserver verwendet zurück. (Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
GROUP [newsgroup] Wählt die aktuelle newsgroup aus.
HEAD Liefert den Nachrichtenkopf eines bestimmten Artikels zurück (ohne Body).
HELP Liefert eine Aufzählung aller verfügbaren Befehle zurück.
IHAVE Teilt dem Server mit, dass ein bestimmter Artikel beim Client vorliegt und gibt dem Server die Möglichkeit diesen Artikel zu holen. IHAVE ist für den Abgleich einer Newsgroup zwischen verschiedenen Servern gedacht, nicht zum posten.
LAST Setzt den Artikel-Zeiger auf den vorhergehenden Artikel innerhalb der aktuellen Newsgruppe.
LIST Ermittelt alle aktiven (verfügbaren) Newsgruppen des Newsservers.
LISTGROUP Listet die Nummern der verfügbaren Nachrichten innerhalb einer Newsgroup auf. (Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
MODE READER Teilt dem Server mit, dass er es nicht mit einem Server zu tun hat, sondern mit einem Newsreader.(Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
NEWGROUPS [Datum] Listet die neu hinzugekommenen Newsgroupen seit 'Datum' auf.
NEWNEWS [Newsgroup] [DATUM] Listet die neu hinzugekommenen Artikel in einer Newsgroup seit 'Datum' auf.
NEXT Setzt den Artikel-Zeiger auf den nächsten Artikel innerhalb der aktuellen Newsgruppe.
POST Fügt einen neuen Beitrag zu aktuellen Newsgroup hinzu.
QUIT Ordnungsgemässes Abmelden beim Server und Schliessen der Verbindung.
SLAVE Signalisiert dem Server, dass er es nicht mit einem Reader, sondern einem weiteren Server zu tun hat. SLAVE ist für den Abgleich der Newsgroups zwischen verschiedenen Servern gedacht.
STAT [NR] Setzt den Artikel-Zeiger auf den angegebenen Artikel innerhalb der aktuellen Newsgruppe.
XGTITLE [PATTERN] Liefert eine Beschreibung der mit PATTERN angegebenen Newsgruppen. Häufig entspricht dieses Kommando einfach LIST. (Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
XHDR [PATTERN] Liefert den mit PATTERN spezifizierten Teil des Headers zurück (z.B. Subject). (Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
XOVER Fordert eine Übersichtsdatei für die aktuelle Nachricht oder eine Gruppe von Nachrichten an. (Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
XINDEX [newsgroup] Fordert die Indexdatei für die angegebene Newsgruppe an. (Dieses Kommando ist nicht Bestandteil des RFC und nicht bei allen Servern implementiert.)
Seitenanfang

Telnet Verbindung zum IMAP Server

Befehl Bedeutung
Befehle die jederzeit ausgeführt werden können
CAPABILITY Funtionsumfang des Servers abfragen
NOOP Verbindung offenhalten
LOGOUT Sitzung beenden
Befehle im nicht Authentifizierten Zustand
AUTHENTICATE CRAM-MD5 Authentifizierung des Clients einleiten
LOGIN "user" "passwort" Login auf dem Server
STARTTLS SSL/TLS Verschlüsselung wählen
Befehle im Authentifizierten Zustand
SELECT INBOX Ordner auswählen hier die "INBOX"
LIST "" "*" zeigt alle Verzeichnisse an
EXAMINE INBOX wie SELECT aber im nur lese Status
CREATE ABLAGE einen Ordner ABLAGE erstellen
DELETE ABLAGE Ordner löschen
RENAME ABLAGE ARCHIV Ordner ABLAGE in ARCHIV umbenennen
SUBSCRIBE Verzeichnis abonnieren
UNSUBSCRIBE Verzeichnis nicht mehr abonnieren
LSUB nur abonnierte Ordner auflisten
STATUS Statusinfos ausgeben
APPEND neue Nachricht in den aktuellen Ordner einfügen
   
FETCH 1 RFC822 anzeige der Mail nach RFC822
FETCH 1 ENVELOPE SMTP-ENVELOPE anzeigen
FETCH 1 BODY.PEEK Mail-Header anzeigen
FETCH 1 RFC822.HEADER nur SMTP-Header der Mail
STORE 1 +FLAGS (\Seen \Deleted) Flag zum löschen der Mail setzen
CLOSE Entfernt alle zum Löschen gekennzeichneten Mails und setzt die Verbindung in den Authenticated State zurück.
EXPUNGE Entfernt alle zum Löschen gekennzeichneten Mails, die Verbindung bleibt im Selected State.
SEARCH Erlaubt die Suche nach bestimmten Nachrichten in der aktuellen Mailbox. Das Kommando unterstützt logische Verknüpfungen.
# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK mail.domain.tld Cyrus IMAP4 v2.9.99-Debian server ready
a01 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID
 NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT THREAD=ORDEREDSUBJECT
 THREAD=REFERENCES ANNOTATEMORE IDLE AUTH=NTLM AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR
a01 OK Completed
a02 login "user@domain.tld "geheim"
a02 OK User logged in
a03 noop
a03 OK Completed
a04 select inbox
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1207435895]
* OK [UIDNEXT 610]
a04 OK [READ-WRITE] Completed
a05 list "" *
* LIST (\HasChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "INBOX.Ablage"
* LIST (\HasNoChildren) "." "INBOX.Cron"
* LIST (\HasNoChildren) "." "INBOX.Entw&APw-rfe"
* LIST (\HasNoChildren) "." "INBOX.Gesendet"
* LIST (\HasNoChildren) "." "INBOX.Trash"
a05 OK Completed (0.000 secs 7 calls)
a06 logout
* BYE LOGOUT received
a06 OK Completed
Connection closed by foreign host.

Mit den Befehlen a01...a07 kann man eine Befehle gleichzeitig an den Server absetzen, die dann der Reihe nach abgearbeitet werden. Wenn das nicht benötigt wird recht es auch, einen Punkt mit Leerzeichen vor den Befehl zu setzen z.B.

. login user passwort
. logout
Seitenanfang

Telnet Verbindung zum IRC Server

# telnet localhost 6667  
NICK <Nickname> Nickname definieren
USER <Nickname Host Server Name> es reicht wenn man als user <nick . . nick> angibt.
HELP zeigt verfügbare Befehle an
LIST verfügbare Channel anzeigen
JOIN <channel> Channel betreten
PRIVMSG nick Text der Nachricht den User "nick" eine Privat Message schicken
PRIVMSG #channel :Text der Nachricht eine Nachricht an den Channel schicken
KICK #channel :nick User "nick" aus den Channel werfen
QUIT Verbindung zum Server trennen
Seitenanfang

Client Verbindung zum Internet testen

Testet ob der Port (im Beispiel) 666 vom Client zum Internet offen ist und nicht durch eine Firewall geblockt wird.

$ telnet portquiz.net 666
Trying ...
Connected to portquiz.net.
Escape character is '^]'.
$ nc -v portquiz.net 666
Connection to portquiz.net 666 port [tcp/daytime] succeeded!
$ curl portquiz.net:666
Port 666 test successful!
Your IP: 1.2.3.4
$ wget -qO- portquiz.net:666
Port 666 test successful!
Your IP: 1.2.3.4
# Windows PowerShell
PS C:\> Test-NetConnection -InformationLevel detailed -ComputerName portquiz.net -Port 666

 

 

 

 

 

Seitenanfang

sonstiges