
Un proxy SOCKS per Citrix.
Ica2Tcp è uno strumento sviluppato in C che consente di inoltrare qualsiasi connessione TCP all'interno di una connessione ICA Citrix. È per Citrix ciò che ssh -D è per SSH.
Ulteriori informazioni sono disponibili qui: https://www.sstic.org/2022/presentation/ica2tcp/
Questo strumento è stato sviluppato come progetto di tirocinio ed è ancora in fase di sviluppo. È pubblicato "così com'è", quindi alcune parti del codice sono ancora un po' sporche. Potresti quindi riscontrare qualche crash occasionale. Una versione più pulita è in lavorazione e sarà rilasciata presto. Tuttavia, qualsiasi osservazione su questa versione è benvenuta!
Devono essere compilati sia il binario standalone lato server sia la libreria condivisa lato client. Fare riferimento alla rispettiva README per maggiori dettagli:
Per comodità, tutti gli header e le librerie Citrix richiesti (per il client Linux64 e il server Win32) sono stati inclusi in questo repository (in citrix_sdk_files/). Provengono tutti dal Virtual Channel SDK e dal WFAPI SDK disponibili pubblicamente:
I file CMakeLists.txt in questo repository consentono di compilare i binari del server e del client con i file inclusi. Se vuoi usare gli ultimi file SDK o compilare per un'altra architettura di destinazione, sentiti libero di scaricare e installare manualmente gli SDK; tuttavia, potrebbe essere necessario modificare il corrispondente CMakeLists.txt.
Dopo aver compilato tutto, devi installare la libreria condivisa del client.
Prima, copia il file di output della compilazione DRIVER.DLL in <CITRIX_INSTALL_FOLER>/ICAClient/<DRIVER_NAME>.DLL
Quindi, modifica il file di configurazione <CITRIX_INSTALL_FOLER>/ICAClient/config/module.ini come segue:
<VIRTUAL_DRIVER_NAME> all'elenco VirtualDriver nella sezione [ICA 3.0] (sostituisci <VIRTUAL_DRIVER_NAME> con quello che preferisci).[ICA 3.0], aggiungi la riga <VIRTUAL_DRIVER_NAME>=On[<VIRTUAL_DRIVER_NAME>] contenente:DriverName = <DRIVER_NAME>.DLL
LogPath = /path/to/logs/folder/
Port = <PORT_NUMBER_FOR_SOCKS> //default: 33556
Address = <LISTENING_IP_ADDRESS> //default: 127.0.0.1, use 0.0.0.0 to open the socks for non local clients
Tutto qui!
Una volta installato correttamente il driver lato client, devi solo copiare il binario del server sul server ed eseguirlo da una sessione ICA attiva.
Apre un servizio SOCKS sul lato client all'indirizzo e sulla porta specificati nel file module.ini.