Ottenere un TTY in un Connettore Shell

Sono spesso chiesto agli amici di aiutarmi con i piccoli problemi di Linux e, più spesso, non mi impone di accedere al sistema remoto. Di solito ci sono molti problemi con la creazione di un account e l'accesso (a volte la casella è dietro a un dispositivo NAT, a volte SSHD non è installato, ecc.) Quindi di solito chiedo loro di fare una shell di connessione con netcat ( nc -e / bin / bash). Se non hanno netcat posso solo chiedere loro di afferrare una copia di un binario staticamente compilato che non è così difficile o che richiede tempo per scaricare e eseguire.

Anche se questo funziona abbastanza bene per me per inserire semplici comandi, non posso eseguire alcuna applicazione che richiede un tty (vi, per esempio) e non può utilizzare alcuna function di controllo del lavoro. Sono riuscito a bypassare questo problema eseguendo in.telnetd con alcuni argomenti all'interno della shell di connessione che mi assegnerebbe un terminal e mi avrebbe lasciato una shell. Purtroppo in.telnetd non è di solito installato per impostazione predefinita nella maggior parte dei sisthemes.

Qual è il modo più semplice per get una shell completamente terminal di connessione senza richiedere pacchetti non standard?

(Un piccolo programma C che funziona anche bene, non riesco a trovare una grande documentazione su come è assegnato / assegnato un TTY. Una soluzione che non richiede di spingere il codice sorgente per SSHD e TELNETD sarebbe bello :))

  • "Imansible impostare gruppo di processi di terminali" durante la session su un altro utente come shell di login
  • Convertire i nomi dei file di slash in directory
  • Problemi di width di terminal con Linux Screen
  • Console Cisco, USB e RJ45?
  • Come aumentare la dimensione di Terminal su Linux?
  • ps ax | grep java senza avvolgimento nel terminal?
  • personalizzazione terminal shell ssh
  • Come posso modificare automaticamente i colors del terminal quando ssh un server?
  • 2 Solutions collect form web for “Ottenere un TTY in un Connettore Shell”

    Con il caveat che le conchiglie non crittografate su Internet sono una cosa negativa, questo post di pentestmonkey ha alcune tecniche che possono essere utilizzate per get un TTY su una session di shell esistente. Il più probabile che funziona in qualsiasi sistema utilizza Python:

    python -c 'import pty; pty.spawn("/bin/sh")' 

    Sostituite la copertina con una delle tue preferenze.

    Non è un programma standard, ma "socat tcp: your-host: 1234 exec: bash, pty" farà il lavoro.

    È anche ansible assicurare la comunicazione con OpenSSL con socat:

     # Il vostro lato:
     openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem
     socat `tty`, crudo, echo = 0 openssl-listen: 1237, reuseaddr, cert = cert.pem, verifica = 0
    
     # Il loro lato:
     socat openssl-connect: 127.0.0.1: 1237, verifica = 0 exec: bash, pty, stderr, setsid
    

    Questo fornirà un piacevole terminal di connessione con la crittografia.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.