nccgroup / SocksOverRDP

Socks5/4/4a Proxy support for Remote Desktop Protocol / Terminal Services / Citrix / XenApp / XenDesktop
https://research.nccgroup.com/2020/05/06/tool-release-socks-over-rdp/
MIT License
1.07k stars 168 forks source link

Declared license #4

Closed awakecoding closed 3 years ago

awakecoding commented 3 years ago

Hi!

I just found out about this project, which is inspired by the equivalent virtual channel extension in FreeRDP. Would it be possible to declare an Apache 2.0 license for this project, making it easier to potentially share some of the code with FreeRDP?

I would be interested in giving this project a try, and use it as a reference for other similar projects. I have plans for developing a similar virtual channel extension that would be meant for PowerShell remoting over RDP, porting the extension to mstsc and FreeRDP with the same code base.

earthquake commented 3 years ago

Hello,

as far as I am aware there was a merge or patch that enables similar functionality in FreeRDP. If that does not fulfil your purpose then we can look into a license change and its related issues.

awakecoding commented 3 years ago

@earthquake I am specifically interested in this project outside of FreeRDP. Is the virtual channel server implementation compatible with the corresponding virtual channel implementation in FreeRDP? I haven't looked at the virtual channel name and implementation details yet.

It still doesn't change that this project doesn't have a declared open source license, unless I missed it? Apache 2.0 or MIT would be perfectly fine (or even dual-licensed Apache 2.0 / MIT). I'm asking because if you do select a non-permissive license (which is your right) then I don't want to look at the code and get "too attached" to it, as I would have to cross it off my list.

earthquake commented 3 years ago

@awakecoding License now added as a separate file. Until now it was declared in the source code only.

Regarding the implementation in FreeRDP, I am not sure what you mean. For dynamic virtual channels there is a documentation that written by Citrix and was adopted by Microsoft that explains how to use the API exposed by the client. I believe FreeRDP used similar or if not the exact same way.

Now that you know it is MIT, you can freely use it. FreeRDP was mentioned only to save some time for you.

awakecoding commented 3 years ago

@earthquake thanks a lot! while waiting for your answer I found your other project, very similar to this one: https://github.com/earthquake/UniversalDVC

Could you declare the license for UniversalDVC as well? I am interested in both projects, but now I think I'd rather experiment with UniversalDVC to try and get a PoC done for PowerShell remoting over RDP.

I founded the FreeRDP project 10 years ago, but I haven't been active in the past few years. I know they've added some sort of SOCKS virtual channel extension and your readme mentioned it, so I wondered if both were interoperable. In theory, if the virtual channel name is the same, and the protocol matches, you could definitely use xfreerdp from Linux with the FreeRDP virtual channel client talking to your virtual channel server on Windows. I somehow assumed this was a port, but from your answer I think you've just taken inspiration from it.

If I am to push the SOCKS5 project further, one of the things I'd be interested in would be interoperability between the virtual channel server from this project and the virtual channel client implementation in FreeRDP, making it possible to use SOCKS over RDP from any platform with the same virtual channel server extension on Windows.

awakecoding commented 3 years ago

I saw you added the license to https://github.com/earthquake/UniversalDVC as well, thank you! I will close this issue now as you have resolved it.

earthquake commented 3 years ago

You are very welcome.

The protocol over RDP and DVC is different for SocksOverRDP and the module in FreeRDP, also the functionality is a bit different based on the manuals. Feel free to improve on it and send pull requests.