mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-30 05:50:53 +03:00
docs update
This commit is contained in:
parent
dcf6bf8cc7
commit
a39a6226bd
@ -287,3 +287,10 @@ nfqws: --qnum is mandatory, no more default queue 0
|
|||||||
v58
|
v58
|
||||||
|
|
||||||
winws
|
winws
|
||||||
|
|
||||||
|
v59
|
||||||
|
|
||||||
|
tpws: --split-tls
|
||||||
|
tpws: --tlsrec=sniext
|
||||||
|
nfqws: --dpi-desync-split-http-req, --dpi-desync-split-tls. multi segment TLS support for split.
|
||||||
|
blockcheck: mdig dns cache
|
||||||
|
@ -178,6 +178,8 @@ nfqws takes the following parameters:
|
|||||||
--dpi-desync-repeats=<N> ; send every desync packet N times
|
--dpi-desync-repeats=<N> ; send every desync packet N times
|
||||||
--dpi-desync-skip-nosni=0|1 ; 1(default)=do not act on ClientHello without SNI (ESNI ?)
|
--dpi-desync-skip-nosni=0|1 ; 1(default)=do not act on ClientHello without SNI (ESNI ?)
|
||||||
--dpi-desync-split-pos=<1..9216> ; data payload split position
|
--dpi-desync-split-pos=<1..9216> ; data payload split position
|
||||||
|
--dpi-desync-split-http-req=method|host ; split at specified logical part of plain http request
|
||||||
|
--dpi-desync-split-tls=sni|sniext ; split at specified logical part of TLS ClientHello
|
||||||
--dpi-desync-ipfrag-pos-tcp=<8..9216> ; ip frag position starting from the transport header. multiple of 8, default 8.
|
--dpi-desync-ipfrag-pos-tcp=<8..9216> ; ip frag position starting from the transport header. multiple of 8, default 8.
|
||||||
--dpi-desync-ipfrag-pos-udp=<8..9216> ; ip frag position starting from the transport header. multiple of 8, default 32.
|
--dpi-desync-ipfrag-pos-udp=<8..9216> ; ip frag position starting from the transport header. multiple of 8, default 32.
|
||||||
--dpi-desync-badseq-increment=<int|0xHEX> ; badseq fooling seq signed increment. default -10000
|
--dpi-desync-badseq-increment=<int|0xHEX> ; badseq fooling seq signed increment. default -10000
|
||||||
@ -467,6 +469,12 @@ If nfqws receives a partial ClientHello it begins reassemble session. Packets ar
|
|||||||
Then the first packet goes through desync using fully reassembled message. Other packets are sent
|
Then the first packet goes through desync using fully reassembled message. Other packets are sent
|
||||||
without desync. On any error reassemble is cancelled and all delayed packets are sent immediately without desync.
|
without desync. On any error reassemble is cancelled and all delayed packets are sent immediately without desync.
|
||||||
|
|
||||||
|
There is special support for all tcp split options for multi segment TLS. Split position is treated
|
||||||
|
as message-oriented, not packet oriented. For example, if your client sends TLS ClientHello with size 2000
|
||||||
|
and SNI is at 1700, desync mode is fake,split2, then fake is sent first, then original first segment
|
||||||
|
and the last splitted segment. 3 segments total.
|
||||||
|
|
||||||
|
|
||||||
### UDP support
|
### UDP support
|
||||||
|
|
||||||
UDP attacks are limited. Its not possible to fragment UDP on transport level, only on network (ip) level.
|
UDP attacks are limited. Its not possible to fragment UDP on transport level, only on network (ip) level.
|
||||||
@ -587,6 +595,7 @@ tpws is transparent proxy.
|
|||||||
--hostlist-auto-debug=<logfile> ; debug auto hostlist positives
|
--hostlist-auto-debug=<logfile> ; debug auto hostlist positives
|
||||||
|
|
||||||
--split-http-req=method|host ; split http request at specified logical position.
|
--split-http-req=method|host ; split http request at specified logical position.
|
||||||
|
--split-tls=sni|sniext ; split at specified logical part of TLS ClientHello
|
||||||
--split-pos=<numeric_offset> ; split at specified pos. split-http-req takes precedence over split-pos for http reqs.
|
--split-pos=<numeric_offset> ; split at specified pos. split-http-req takes precedence over split-pos for http reqs.
|
||||||
--split-any-protocol ; split not only http and https
|
--split-any-protocol ; split not only http and https
|
||||||
--disorder[=http|tls] ; when splitting simulate sending second fragment first
|
--disorder[=http|tls] ; when splitting simulate sending second fragment first
|
||||||
@ -602,7 +611,7 @@ tpws is transparent proxy.
|
|||||||
--methodspace ; add extra space after method
|
--methodspace ; add extra space after method
|
||||||
--methodeol ; add end-of-line before method
|
--methodeol ; add end-of-line before method
|
||||||
--unixeol ; replace 0D0A to 0A
|
--unixeol ; replace 0D0A to 0A
|
||||||
--tlsrec=sni ; make 2 TLS records. split at SNI. don't split if SNI is not present.
|
--tlsrec=sni|sniext ; make 2 TLS records. split at specified logical part. don't split if SNI is not present.
|
||||||
--tlsrec-pos=<pos> ; make 2 TLS records. split at specified pos
|
--tlsrec-pos=<pos> ; make 2 TLS records. split at specified pos
|
||||||
--mss=<int> ; set client MSS. forces server to split messages but significantly decreases speed !
|
--mss=<int> ; set client MSS. forces server to split messages but significantly decreases speed !
|
||||||
--mss-pf=[~]port1[-port2] ; MSS port filter. ~ means negation
|
--mss-pf=[~]port1[-port2] ; MSS port filter. ~ means negation
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
zapret v.58
|
zapret v.59
|
||||||
|
|
||||||
English
|
English
|
||||||
-------
|
-------
|
||||||
@ -251,6 +251,8 @@ nfqws
|
|||||||
--dpi-desync-repeats=<N> ; посылать каждый генерируемый в nfqws пакет N раз (не влияет на остальные пакеты)
|
--dpi-desync-repeats=<N> ; посылать каждый генерируемый в nfqws пакет N раз (не влияет на остальные пакеты)
|
||||||
--dpi-desync-skip-nosni=0| 1 ; 1(default)=не применять dpi desync для запросов без hostname в SNI, в частности для ESNI
|
--dpi-desync-skip-nosni=0| 1 ; 1(default)=не применять dpi desync для запросов без hostname в SNI, в частности для ESNI
|
||||||
--dpi-desync-split-pos=<1..1500> ; (только для split*, disorder*) разбивать пакет на указанной позиции
|
--dpi-desync-split-pos=<1..1500> ; (только для split*, disorder*) разбивать пакет на указанной позиции
|
||||||
|
--dpi-desync-split-http-req=method|host ; разбивка http request на указанном логическом месте
|
||||||
|
--dpi-desync-split-tls=sni|sniext ; разбивка tls client hello на указанном логическом месте
|
||||||
--dpi-desync-badseq-increment=<int|0xHEX> ; инкремент sequence number для badseq. по умолчанию -10000
|
--dpi-desync-badseq-increment=<int|0xHEX> ; инкремент sequence number для badseq. по умолчанию -10000
|
||||||
--dpi-desync-badack-increment=<int|0xHEX> ; инкремент ack sequence number для badseq. по умолчанию -66000
|
--dpi-desync-badack-increment=<int|0xHEX> ; инкремент ack sequence number для badseq. по умолчанию -66000
|
||||||
--dpi-desync-any-protocol=0|1 ; 0(default)=работать только по http request и tls clienthello 1=по всем непустым пакетам данных
|
--dpi-desync-any-protocol=0|1 ; 0(default)=работать только по http request и tls clienthello 1=по всем непустым пакетам данных
|
||||||
@ -538,6 +540,13 @@ chrome рандомизирует фингерпринт TLS. SNI может о
|
|||||||
на основании полностью собранного ClientHello. Остальные пакеты отсылаются без десинхронизации.
|
на основании полностью собранного ClientHello. Остальные пакеты отсылаются без десинхронизации.
|
||||||
При любой ошибке в процессе сборки задержанные пакеты немедленно отсылаются в сеть, а десинхронизация отменяется.
|
При любой ошибке в процессе сборки задержанные пакеты немедленно отсылаются в сеть, а десинхронизация отменяется.
|
||||||
|
|
||||||
|
Есть специальная поддержка всех вариантов tcp сплита для многосегментного TLS.
|
||||||
|
Если указать позицию сплита больше длины первого пакета или использовать --dpi-desync-split-tls,
|
||||||
|
то разбивка происходит не обязательно первого пакета, а того, на который пришлась итоговая позиция.
|
||||||
|
Если, допустим, клиент послал TLS ClientHello длиной 2000, а SNI начаинается с 1700,
|
||||||
|
и заданы опции fake,split2, то перед первым пакетом идет fake, затем первый пакет в оригинале,
|
||||||
|
а последний пакет разбивается на 2 сегмента. В итоге имеем фейк в начале и 3 реальных сегмента.
|
||||||
|
|
||||||
ПОДДЕРЖКА UDP
|
ПОДДЕРЖКА UDP
|
||||||
Атаки на udp более ограничены в возможностях. udp нельзя фрагментировать иначе, чем на уровне ip.
|
Атаки на udp более ограничены в возможностях. udp нельзя фрагментировать иначе, чем на уровне ip.
|
||||||
Для UDP действуют только режимы десинхронизации fake,hopbyhop,destopt,ipfrag1,ipfrag2,udplen,tamper.
|
Для UDP действуют только режимы десинхронизации fake,hopbyhop,destopt,ipfrag1,ipfrag2,udplen,tamper.
|
||||||
@ -676,7 +685,7 @@ tpws - это transparent proxy.
|
|||||||
--methodspace ; добавить пробел после метода : "GET /" => "GET /"
|
--methodspace ; добавить пробел после метода : "GET /" => "GET /"
|
||||||
--methodeol ; добавить перевод строки перед методом : "GET /" => "\r\nGET /"
|
--methodeol ; добавить перевод строки перед методом : "GET /" => "\r\nGET /"
|
||||||
--unixeol ; конвертировать 0D0A в 0A и использовать везде 0A
|
--unixeol ; конвертировать 0D0A в 0A и использовать везде 0A
|
||||||
--tlsrec=sni ; разбивка TLS ClientHello на 2 TLS records. режем между 1 и 2 символами hostname в SNI. Если SNI нет - отмена.
|
--tlsrec=sni|sniext ; разбивка TLS ClientHello на 2 TLS records. режем между 1 и 2 символами hostname в SNI или между байтами длины SNI extension. Если SNI нет - отмена.
|
||||||
--tlsrec-pos=<pos> ; разбивка TLS ClientHello на 2 TLS records. режем на указанной позиции, если длина слишком мелкая - на позиции 1.
|
--tlsrec-pos=<pos> ; разбивка TLS ClientHello на 2 TLS records. режем на указанной позиции, если длина слишком мелкая - на позиции 1.
|
||||||
--mss=<int> ; установить MSS для клиента. может заставить сервер разбивать ответы, но существенно снижает скорость
|
--mss=<int> ; установить MSS для клиента. может заставить сервер разбивать ответы, но существенно снижает скорость
|
||||||
--mss-pf=[~]port1[-port2] ; применять MSS только к портам назначения, подпадающим под фильтр. ~ означает инверсию
|
--mss-pf=[~]port1[-port2] ; применять MSS только к портам назначения, подпадающим под фильтр. ~ означает инверсию
|
||||||
|
Loading…
Reference in New Issue
Block a user