-
Notifications
You must be signed in to change notification settings - Fork 51
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
Disorder strategy from byeDPI #323
Conversation
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! Thanks for the contribution. I have a few notes.
Made changes to address comments, thanks! |
x/configurl/doc.go
Outdated
# Examples | ||
|
||
Packet splitting - To split outgoing streams on bytes 2 and 123, you can use: | ||
|
||
split:2|split:123 | ||
|
||
Disorder transport - Send some of the packets out of order |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Disorder transport - Send some of the packets out of order | |
Disorder transport - Send some of the packets out of order: |
x/configurl/doc.go
Outdated
|
||
disorder:0|split:123 | ||
|
||
Split at position 123, then send packet 0 of 123 bytes (from splitting) out of order. The network filter will first receive packet 1, only then packet 0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Split at position 123, then send packet 0 of 123 bytes (from splitting) out of order. The network filter will first receive packet 1, only then packet 0. | |
Split at position 123, then send packet 0 of 123 bytes (from splitting) out of order. The network filter will first receive packet 1, only then packet 0. This is done by setting the hop limit for the write to 1, and then restoring it. It will be sent with its original hop limit on retransmission. |
2d98f62
to
b6aef3d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the changes and contributions! This looks good. I made a couple of minor edits.
Allows to send TCP packets out of order
This is achieved by sending some packets with TTL=1, and then setting TTL back to normal.
Tested with the following command:
This splits the TCP request at position 123, at SNI record:
medu
is in packet 0,za.io
is in packet 1.The network filters will receive a packet containing
za.io
first, then another packet withmedu
.The receiver will then reassemble the packets in it's TCP stack.
Can be combined with
tlsfrag
as well like this: