Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable forwarding of unparsed Client Data Blocks in the GCC negociation. #304

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Res260
Copy link
Collaborator

@Res260 Res260 commented Mar 14, 2021

Following discussion in #233 with @obilodeau, here are my changes to allow the CLIENT (I didnt do the server part) to send other data blocks in the negociation phase. The unparsed data blocks are sent to the server, which should in turn send its extended data blocks (ex. to negociate UDP connection). Currently the unparsed Server Data Blocks will be thrown away by PyRDP.

Bonus: Parse the client Monitor Data block and forward it to the server. This enables PyRDP to allow multiple monitors (like in a normal RDP connection) instead of forcing it to one. This information could be logged as it could be helpful to fingerprint the client.
Not included: PyRDP-player changes to see the other monitors.

I will leave this as a draft PR if you ever want to continue/test/get inspiration from those changes, but I don't plan to further work on this (it was for a CTF challenge), so feel free to close the PR if you don't need this!

The list of data blocks that can be sent is here: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/8a36630c-9c8e-4864-9382-2ec9d6f368ca

@Res260 Res260 changed the title Enable forwarding of unparsed Client Data Blocks in the GCC negociation. [WIP] Enable forwarding of unparsed Client Data Blocks in the GCC negociation. Mar 14, 2021
@Res260 Res260 marked this pull request as draft March 14, 2021 16:33
@Res260 Res260 changed the title [WIP] Enable forwarding of unparsed Client Data Blocks in the GCC negociation. Enable forwarding of unparsed Client Data Blocks in the GCC negociation. Mar 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant