{"id":13840171,"url":"https://github.com/synacktiv/ica2tcp","last_synced_at":"2026-02-08T14:34:48.722Z","repository":{"id":134668708,"uuid":"500875891","full_name":"synacktiv/ica2tcp","owner":"synacktiv","description":"A SOCKS proxy for Citrix.","archived":false,"fork":false,"pushed_at":"2022-12-08T16:33:14.000Z","size":295,"stargazers_count":87,"open_issues_count":1,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-05T17:24:51.485Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/synacktiv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-06-07T14:29:51.000Z","updated_at":"2024-08-01T09:16:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa085038-0fef-452e-b86c-cf8d667e8905","html_url":"https://github.com/synacktiv/ica2tcp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synacktiv%2Fica2tcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synacktiv%2Fica2tcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synacktiv%2Fica2tcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/synacktiv%2Fica2tcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/synacktiv","download_url":"https://codeload.github.com/synacktiv/ica2tcp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225705259,"owners_count":17511255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:00:43.099Z","updated_at":"2026-02-08T14:34:48.693Z","avatar_url":"https://github.com/synacktiv.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# About Ica2Tcp\n\nIca2Tcp is a tool developed in C allowing to proxy any TCP connection inside a Citrix ICA connection. It is to Citrix what `ssh -D` is to SSH.\nAdditional information can be found here: https://www.sstic.org/2022/presentation/ica2tcp/\n\n# Disclaimer\n\nThis tool was developped as an internship project and is still under development. It is published \"as is\", so some parts of the code are still a bit dirty. Thus, you may experience some occasional crashes. A cleaner version is in progress and will be released soon.\nHowever, any remark concerning this version is welcome!\n\n# Build the tool\n\nBoth the server side standalone binary and the client side shared library must be built.\nPlease refer to the corresponding README for more details:\n- [Server binary](./server/)\n- [Client shared library](./client_dll_linux/) \n\nFor convenience, all the required Citrix headers and libraries (for the Linux64 client et Win32 server) have been included in this repository (in [citrix_sdk_files/](/citrix_sdk_files/)). They all originate from the Virtual Channel SDK and WFAPI SDK that are publicly available: \n- https://www.citrix.com/downloads/workspace-app/virtual-channel-sdks/virtual-channel-sdk.html\n- https://developer.cloud.com/archived-sdks/docs/archived-sdks#winframe-api-sdk \n  \nThe `CMakeLists.txt` files in this repository allow building the server and client binaries with those included files. If you want to use the latest SDK files or build for another target architecture, feel free to manually download and install the SDK's, however you might have to change the corresponding `CMakeLists.txt`.\n\n# Install \n\nOnce everything is built, you have to install the client shared library.\n\nFirst, copy the build output file `DRIVER.DLL` to `\u003cCITRIX_INSTALL_FOLER\u003e/ICAClient/\u003cDRIVER_NAME\u003e.DLL`\n\nThen, modify the `\u003cCITRIX_INSTALL_FOLER\u003e/ICAClient/config/module.ini` configuration file as follows: \n- Add `\u003cVIRTUAL_DRIVER_NAME\u003e` in the `VirtualDriver` list in `[ICA 3.0]` section (replace `\u003cVIRTUAL_DRIVER_NAME\u003e` with anything you want).\n- Still in `[ICA 3.0]` section, add the line `\u003cVIRTUAL_DRIVER_NAME\u003e=On`\n- Add a `[\u003cVIRTUAL_DRIVER_NAME\u003e]` section containing:\n```\nDriverName = \u003cDRIVER_NAME\u003e.DLL\nLogPath = /path/to/logs/folder/\nPort = \u003cPORT_NUMBER_FOR_SOCKS\u003e  //default: 33556\nAddress = \u003cLISTENING_IP_ADDRESS\u003e  //default: 127.0.0.1, use 0.0.0.0 to open the socks for non local clients\n```\n\nThat's all!\n\n# Usage\n\nOnce the client side driver is correctly installed, you just need to copy the server binary on the server and execute it from an active ICA session.\nIt opens a SOCKS service on the client side on the address and port specified in the `module.ini` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynacktiv%2Fica2tcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynacktiv%2Fica2tcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynacktiv%2Fica2tcp/lists"}