Telnet veya netcat istemcileri SSL üzerinden iletişim kurabilir mi?


62

IMAP ile SSL, HTTPS ve diğer güvenli metin tabanlı İnternet protokollerini SSL / TLS üzerinden test etmek istiyorum, aynı şekilde güvenli bir protokol üzerinden tünellenmemişlerse telnet veya netcat kullanıyordum. Telnet veya netcat'i boru veya alternatif bir program gibi SSL / TLS'den geçirmenin bir yolu var mı?


Yanıtlar:


131

Telnet / Netcat istemcisi yok - iki ayrı program var ve en az 10 farklı Telnet istemcisi ve en az 6 farklı Netcat sürümü var (orijinal netcat, GNU netcat, OpenBSD netcat, nmap's ncat; gerisini unuttum).

Tercih edilen araçlar, TLS kütüphanelerinin kendilerinden gelir. Yine de biraz ayrıntılı olabilirler.

  • GnuTLS'in Linux'ta bir TLS istemci aracı var:

    gnutls-cli imap.gmail.com -p 993
    

    -sSTARTTLS için kullanın ; Gerekli protokol komutlarını manuel olarak girmeniz ve CtrlDhazır olduğunuzda düğmesine basmanız gerekir .

    IPv6'yı destekler, varsayılan olarak sunucu sertifikalarını doğrular.

  • OpenSSL'nin bir TLS istemci aracı var:

    openssl s_client -connect imap.gmail.com:993
    

    Bu, tüm işletim sistemlerinde kullanılabilir. STARTTLS -starttls imapveya -starttls smtpseçenekleriyle desteklenir ve program otomatik olarak pazarlık eder. (Bunu yaptıktan sonra ilk sunucu cevabını çöpe atmasına rağmen, genellikle iyidir.)

    Yalnızca sürüm ≥ 1.1 IPv6'yı destekler.

    Yalnızca sürüm .2 1.0.2 (IIRC), sunucu sertifikasını varsayılan olarak doğrular; eski sürümler manuel-yol belirtimi gerektirir.

(NSS ve SChannel'i test etmek için araçlar da istiyorum, ancak bulamadım.)

Programlar aynı kütüphaneleri de kullanır, ancak daha az yapılandırma düğmesine sahip olabilir. Hatta bazıları varsayılan olarak sertifika sertifikalarına atlarlar ...

  • socat :

    socat openssl:imap.gmail.com:993 stdio
    

    okuma satırı modu kolaylık sağlamak için kullanılabilir:

    socat ssl:imap.gmail.com:993 readline
    

    STARTTLS desteklenmiyor.

  • nmap'dan ncat TLS'yi destekliyor (ancak STARTTLS'yi değil):

    ncat --ssl imap.gmail.com 993
    
  • Debian'daki telnet-ssl paketi gibi bazı Telnet istemcileri de TLS'yi destekler:

    telnet-ssl -z ssl imap.gmail.com 993
    

    STARTTLS kullanılarak aktif hale getirilebilir starttlsdan Ctrl]kaçış menü.


4
Keşke, askerin kabul ettiği gibi işaretleme zahmetine bile uğramamış olması sorusu yerine cevabınızı en sevdiğim dilekçeyi diliyorum.
Sammitch

gnutls-cli, STARTLS'i IPv6 ile test edebileceğim tek kişi gibi görünüyor. Teşekkürler!
Karoshi

OpenSSL s_client, 1.1 sürümünde IPv6 desteğine sahiptir.
Grawity

1
OpenSSL'ler s_client, R veya Q ile başlayan satırların komut olarak değerlendirildiği "kullanışlı" bir özelliğe sahiptir ( kılavuza bakın ). -ign_eofBunu devre dışı bırakmak için kullanın . Ayrıca, s_clientdoğrulama başarısız olsa bile devam eder; "Dönüş kodunu doğrula: 0 (tamam)" yazdığını kontrol etmeniz gerekir ve sunucunun bu mesajı aldatmaya çalışmadığını umarsınız. gnutls-cliMümkünse kullanmak daha iyidir.
tom

1
Neyse ki bunun için de var -verify_return_error.
Ocak'ta 18:18

5

Openssl s_client , örneğin bakmak isteyebilirsiniz

# openssl s_client -connect dummy.com:8443

2

Evet, sersem bir program var.

bir yapılandırma dosyasına sahip

hangi limanda dinleneceğini, hangi limana yönlendirileceğini söylersin.

istemci tarafı veya sunucu tarafı veya her ikisi için de çalışır.

böylece ssl'yi desteklemeyen bir sunucuyu etkili bir şekilde dönüştürebilir.

veya etkin bir şekilde ssl'yi desteklemeyen bir müşteri.

veya hem istemci hem de sunucunun bir ssl bağlantısı kurmasını sağlayın.


1

Platformlar arası desteğe ihtiyacınız varsa (yani, Windows) da sclient ( git ) var.

Example.com'u açabilen bir yerel sunucu oluşturun

$ sclient example.com:443 localhost:3000
> [listening] example.com:443 <= localhost:3000

Telnet ile example.com'a bir istek yapın

$ telnet localhost 3000
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
> GET / HTTP/1.1
> Host: example.com
> Connection: close 
> 
> 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.