Visualizzazione dei risultati da 1 a 9 su 9

Discussione: HTTP tunnelling

  1. #1

    HTTP tunnelling

    Ciao a tutti.
    Volevo sapere se qualcuno aveva gia avuto esperienze con l'HTTP tunnelling e poteva dissipare un mio dubbio riguardante un aspetto meramente "pratico" di tale tecnica.

    Poniamo uno scenario:

    - Client stante all'interno di una rete LAN firewallata.

    - Firewall settato di modo che tutto il traffico in uscita proveniente dalla LAN venga sistematicamente droppato eccetto che quello destinato alla porta 80 (http).

    - Il client vorrebbe utilizzare un protocollo differente da http (esempio: ICQ protocol, 5190 TCP) e tunnellarlo su quest'ultimo.


    Per fare questo cosa dovrà fare il client?
    Gli sarà sufficiente utilizzare un comune socks server remoto in listening su una porta non standard (in questo caso 80) oppure dovrà utilizzare un software di terze parti (per intederci un'applicativo "http-tunnel client" che si connetterà ad un altro applicativo "http-tunnel server")?

    Questo dubbio mi è sorto dopo una ricerca su google che mi ha portato a questo prodotto:
    http://www.http-tunnel.com/html/solu...nel/client.asp
    Come si legge dalla descrizione nella pagina l'ipotetico protocollo "non previsto" verrebbe prima convolgiato nell'applicativo "HTTP-Tunnel Client" che si occuperebbe di mandare il traffico ad un secondo applicativo "HTTP-Tunnel server" che routerebbe il tutto:

    Your Internet application sends data to the HTTP-Tunnel Client, which in turn tunnels the data over HTTP (port 80) to the HTTP-Tunnel servers. The servers then send the data to the intended destination and forward the responses back to the HTTP-Tunnel client
    A questo punto ripropongo la domanda:
    per fare questo non è sufficiente utilizzare un normalissimo socks server posto preventivamente sulla porta 80 TCP?


    Ringraziamenti anticipati.

    PS - se la sezione "sicurezza" non è la più adatta spostatemi pure.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  2. #2
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    con un sock server non puoi redirigere una porta 80 su una diversa porta.

    Ergo, un sock server lo puoi considerare un proxy di basso livello che funziona su tutte le porte (in linea teorica) e non solo sulla classica 80. Per esempio lo puoi usare come proxy smtp, proxy pop3 etc semplicemente collegandoti sulla relativa porta del sock.
    Insomma entri per esempio sul sock sulla 25 ed esci dal sock sempre sulla 25.
    Se il sock server è dietro il tuo firewall aziendale non puoi fare nulla perchè questo fa passare la sola 80.

    Un HTTP tunnel server posto dietro il firewall invece (ad esempio il tuo pc di casa...) riceve connessioni solo sulla 80 (quella non filtrata dal firewall) e in base ai dati incapsulati come payload dal client decide su che porta/protocollo i dati devono uscire dal server per raggiungere la destinazione.
    In questo caso entreresti nel server sulla 80 (i dati smtp sono stati incapsulati dal client in una richiesta http) che analizza i dati estrae la comunicazione originale e contatta la destinazione sulla porta 25.
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  3. #3
    Ecco dove stava l'inghippo.
    Sul computer client dovrà quindi essere presente un applicativo "http-tunnel client" che comunica ad "http-tunnel sever" la reale porta di destinazione del traffico o è sufficiente il solo applicativo server?
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  4. #4
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    necessari entrambi, il client deve incapsulare appositamente i dati non HTTP in una richiesta HTTP. Non è solo questione di porta... se il filewall fosse un proxy a livello applicazione analizzarebbe sulla porta 80 la richiesta HTTP, che deve essere valida... HTTP tunnel deve cercare di imbrogliare anche lui!
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  5. #5
    Ok. Mi hai anticipato sollevando la questione firewall che avrei sicuramente introdotto.
    Cambiando sponda e mettendosi nei panni dell'amministratore di rete, avendo un firewall su una macchina separata e che quindi non può effettuare un controllo application layer ma solamente network layer, come si potrebbe evitare che un client tunnellizzi una connessione?

    PS - Ipotizzo/immagino che un firewall non risiedente sulla macchina client non possa effettuare un controllo a livello applicazione. O sbaglio?
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  6. #6
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    a network layer direi che è impossibile, ad application layer è difficile. In quest'ultimo caso servirebbe una macchina proxy http o IDS nella rete interna attraverso la quale passi tutto il traffico internet. Per quanto riguarda poi le regole è veramente difficile...

    Leggiti questo e tutte le risposte:
    http://www.sikurezza.org/ml/04_02/msg00040.html
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  7. #7
    a network layer direi che è impossibile
    Sorry, intendevo transport layer.
    ad application layer è difficile. In quest'ultimo caso servirebbe una macchina proxy http o IDS nella rete interna attraverso la quale passi tutto il traffico
    Non ho mai avuto modo di mettere mani su un IDS e sinceramente non ho nemmeno ben chiaro il suo funzionamento.
    A livello teorico non si potrebbe utilizzare un applicativo fornito di un "database" interno che, analizzando ogni singolo pacchetto, riconosca e blocchi le richieste "standard"/"conosciute" dei protocolli estranei ad HTTP?
    Esempio: sempre per rimanere in tema (bada che mi sto addentrando in un campo che non conosco. Il pericolo di autentiche ca**ate è moderatamente alto :-)), dando una rapida occhiata al protocollo di ICQ:
    http://www.ihse.net/icq/spec/v2/icq091.txt
    si può prendere come esempio il comando:

    RECEIVE_MESSAGE

    ...tipico del protcollo di ICQ, appunto, ma non di HTTP.
    Un sistema di questo tipo potrebbe bloccare preventivamente qualunque pacchetto contenente tale valore ed evitare il tunnelling, il tutto ovviamente estendibile ai principali altri protocolli conosciuti.
    Non si avrebbe una totale sicurezza (l'attacker potrebbe ad esempio tunnellare con successo un protocollo proprietario creato ad hoc da lui stesso) ma sarebbe cmq decisamente un buon compromesso.

    Ottimo. Come al solito sikurezza.org è superlativa.
    Si possono addirittura implementare assurdità come IP over DNS oppure IP over MIME! Davvero impressionante:
    http://slashdot.org/articles/00/09/10/2230242.shtml
    http://www.rnp.br/ietf/internet-draf...ip-mime-06.txt

    O_O:
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  8. #8
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    si livello network o trasporto è uguale... è comunque un livello tipico da firewall "classico".

    Basterebbe un proxy server interno con impostate delle regole per riconoscere il payload incapsulato.. un po' come dici tu. In realtà è semplice confondere le acque criptando il contenuto... possibilità ce ne sono tante. All'atto pratico non so come questi programmi incapsulino i protocolli all'intenro di HTTP.

    Immagina però di incapsulare il tutto dentro https....
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  9. #9
    ciao,
    per esperienza personale vi posso dire che esistono degli IDS che rilevano il tunnel Http.
    Non so se analizzano il traffico e vedono gli incapsulamenti oppure se sono agenti presenti sui pc che monitorizzano il software installato e rilevano la presenza (nel caso in questione) di http client.

    Cmq questo tipo di software viene rilevato (nel caso che ho visto io) come GoToMyPc o qualcosa del genere -> è il tipo di alert che genera l'ids..

    cmq indagherò meglio e vi farò sapere..

    ...la manipolazione del "fattore umano", la capacità di "ricostruire" le intenzioni, la mentalità e il modo di pensare del nemico diventa lo strumento più micidiale ed efficace...

    Kevin D. Mitnick

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.