Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Utilità Come entrare in un computer in rete

Come entrare in un computer in rete

E-mail Stampa PDF

Entrare in un pc è una espressione un po generica...può infatti significare più cose:

  • Disporre di risorse, quali files o stampanti, condivise, rese fruibili liberamente o tramite password con i ripettivi permessi.
    • Si attua tramite condivisioni del sistema operativo usato( windows, linux,unix,mac..)
    • Tramite ftp, si ottiene installando un server ftp, in questo modo da remoto è possibile scaricare o caricare file in directory specificate.
  • Essere capaci di eseguire programmi, permettendo il controllo parziale o totale del pc remoto.
    • Può essere realizzata tramite diversi programmi, in generale comunque si tratta di server1, che rimanendo in ascolto su una determinata porta, accettano una connessione da parte di un altro pc (client) con o senza autenticazione, permettendogli di eseguire dei comandi da terminale (shell) oppure esportando direttamente la visualizzazione del sistema operativo. Nella prima categoria ricadono telnet, ssh e netcat, nella seconda VNC, desktop remoto e tanti altri, per non parlare delle tante backdoor che magari installate illegalmente offrono a un utente remoto di controllare il pc.

Ora che abbiamo chiarito una parte dell'argomento trattato vediamo di chiarirne un altra: COME FARE.

In effetti anche questo dipende da cosa si usa come server.. comunque in linea generale le modalità sono simili per tutti i software utilizzati, comunque ci si può ricondurre solitamente alle seguenti fasi della comunicazione server-client:

  1. Connessione da parte del client al server
  2. Accettazione da parte del server del client ( solitamente filtrando l'indirizzo ip)
  3. Invio dei dati per autenticazione dal server al client(opzionale)
  4. Autenticazione ( usando username e password)(opzionale)
  5. Invio richieste e comandi vari da parte del client
  6. Invio risposte ed eventualmente esecuzione dei comandi da parte del server
  7. Logout del client (opzionale)

Per procedere con la spiegazione pratica farò riferimento al più classico di questi server: TELNET

Storicamente si mette in ascolto sulla porta 23 ed usarlo è piuttosto semplice, basta aprire finestra del dos se si sta usando windows oppure un terminale su linux e digitare :

telnet 151.33.145.32 23
  • il nome telnet è il nome del programma client che uso per connettermi a
  • 151.33.145.32 che è l'ip del computer al quale desidero connettermi, cioè una stringa composta da 4 numeri(0..255) che identificano univocamente il pc nella rete
  • 23 è la porta su cui rimane in ascolto il server telnet, infatti su ogni dispositivo in rete sono presenti 65535 porte che diversi software utilizzano per comunicare con altri dispositivi in rete. Su un pc possono essere presenti diversi server che rimangono in ascolto su diverse porte, un esempio può essere un server http sulla porta 80 e un server ftp sulla porta 21. ( se mai voleste verificare lo stato delle porte e delle rispettive connessioni sul vostro pc, usate il comando : netstat -an)

Ora accade che, usando autenticazione o meno, si accede a un terminale che viene eseguito nel nostro pc locale...ma esegue i comandi nel pc remoto, questo è tutto.

Quali possono essere le difficoltà nel applicare questa semplice procedura?

La più classica è quella di voler entrare in un pc in remoto tramite internet. Infatti se l'indirizzo ip del pc remoto coincidesse con l'indirizzo pubblico su internet ( cosa che accade sicuramente,per esempio,  se si usa un modem adsl usb) non ci sarebbero problemi, purtroppo la situazione tipica è quella di avere un router adsl che fa da gateway per la lan interna.

Questo implica che il vostro pc in remoto faccia parte di una rete locale, che abbia come ip un indirizzo del tipo 192.168.1.2 e che il gateway abbia due interfacce:

  • una interna che fa parte della rete locale e il dispositivo avrà un indirizzo IP su questa interfaccia (esempio 192.168.1.1)
  • una esterna che usa il modulo adsl interno al router che potrà avere un indirizzo pubblico statico oppure uno dinamico, cioè assegnato dal vostro service provider in maniera dinamica al momento della connessione (esempio 89.45.123.44).

Questo ci porta a 2 tipici problemi:

  • Se il router ha un indirizzo dinamico, cioè che cambia ogni volta che si riconnette, io non posso conoscerlo a priori dall'esterno.

Questo non influisce se non si ha intenzione di collegarsi ad un pc determinato ma si esegue uno scan generico su tutta una sottorete. Altrimenti bisogna ricorrere ad un sistema per comunicare l'ip del pc in questione prima della connessione(siti come www.no-ip.com offrono questo servizio).

  • Se anche sapessi l'indirizzo dell'ip pubblico, questo apparterrebbe all'interfaccia esterna del gateway remoto, che non è quello del pc remoto a cui voglio collegarmi.

questo si risolve con il port forwarding o anche nat. In parole povere come il nostro pc ha delle porte su cui i vari server rimangono in ascolto, anche il router adsl ha delle porte con i suoi server.

Ora si tratta di collegare le porte sull'interfaccia esterna a quella interna, collegate ad un determinato pc della rete locale. In questo modo quando io cercherò di collegarmi alla porta 23 sull'ip pubblico 89.45.123.44, sarà come se io andassi a collegarmi alla porta 23 del mio pc remoto 192.168.1.2.

In genere ogni modello di router consente il port forwarding in particolare si può far riferimento al sito http://portforward.com/ in cui sono descritte le modalità per i vari server e i tanti modelli di router, incluse gli username e le password di default.

Questo conclude la trattazione basilare e semplificata su questo argomento argomento, eppure io spenderei due parole riguardo alla sicurezza di questi router. Infatti molti di questi dispositivi hanno la possibilià di eseguire la configurazione del router dall'interfaccia esterna, cioè da internet.... se a questo si aggiunge il fatto che il proprietario non imposta un username e password, un qualsiasi malintenzionato potrebbe eseguire uno scan su un insieme di indirizzi e provare se il router sotto attacco ha le password di default e in caso positivo prendere possesso del router, usandolo a proprio piacimento.

Quindi attenzione a configurare il proprio dispositivo in modo da renderlo sicuro in modo da evitare spiacevoli intrusioni.

 

1Con server si intende un qualsiasi software, che rimanedo in ascolto su una porta, offre i sui servizi ai vari client che ci si collegano. A volte capita di sentire parlare di server in riferimento al calcolatore che ospita questi programmi, e in effetti viene chiamato così un qualsiasi calcolatore la cui funzione è quasi esclusivamente quella di ospitare uno o più "programmi server". Tra i server più famosi, usati e conosciuti ci sono i Web-server, che normalmente usano la porta 80, e tra i client usati per connettersi a questi ultimi ci sono i vari browser ( InterntExplorer, Firefox e altri). Ora questo esempio ha ben poco a che vedere con il "possedere un pc in remoto" dato che questa architettura client server in teoria dovrebbe esclusivamente trasferire dati in formato html dal server web al browser client, ma questo non è del tutto vero, perché il web server in quanto applicazione che gira sul pc remoto può, volutamente o meno, eseguire altri comandi oltre che assemblare la pagina web e spedirla al richiedente. Infatti tramite linguaggi quali php,asp, e altri è possibile eseguire comandi sul pc remoto, ma oltre a questo tipo di funzioni con le quali possiamo usare il server adeguatamente programmato, ci sono stati molti casi nei quali il web server, ricevendo una richiesta in un formato particolare, è stato in grado di eseguire altri comandi che il programmatore non aveva previsto. E' questo il caso di molti "exploit" che sfruttando i bug dei web server riescono a prendere possesso del pc remoto facendogli eseguire i comandi che l'hacker di turno desidera.

 

Ultimo aggiornamento ( Martedì 10 Maggio 2011 17:15 )  
Loading

Login