mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
update docs
This commit is contained in:
@@ -2191,7 +2191,7 @@ delta - это положительная или отрицательная ра
|
||||
|
||||
* parse_autottl переводит строку вида `<delta>,<min>-<max>` в таблицу с идентичными полями. Вызывается error, если формат s неверен.
|
||||
* autottl производит эвристическую догадку о длине в хопах на базе TTL входящих пакетов и вычисляет TTL , учитывая дельту и допустимый диапазон.
|
||||
Готовый incoming_ttl можно взять из desync. attl имеет формат таблицы, получаемой через parse_autottl.
|
||||
Готовый incoming_ttl можно взять из desync. attl имеют формат таблицы, получаемой через parse_autottl.
|
||||
|
||||
## Операции с диссектами
|
||||
|
||||
@@ -2269,6 +2269,26 @@ function apply_fooling(desync, dis, fooling_options)
|
||||
Если dis = nil, берется desync.dis.
|
||||
Если fooling_options = nil, берется desync.arg
|
||||
|
||||
```
|
||||
function ipfrag2(dis, ipfrag_options)
|
||||
```
|
||||
|
||||
Стандартная функция фрагментатор. Возвращает массив из двух диссектов-фрагментов исходного диссекта dis.
|
||||
Задействуется через rawsend_dissect_ipfrag, если отсутствует поле ipfrag в ipfrag_options.
|
||||
Отдельно вызывать эту функцию вряд ли понадобится.
|
||||
Если вам нужно резать IP пакет как-то иначе, вы можете по аналогии создать свой фрагментатор и указать его в ipfrag_options.
|
||||
|
||||
В случае ipv6 fragment header вставляется после всех hopbyhop, routing и первого destopt. Это unfragmentable part.
|
||||
Дальше идет fragment header, а все остальное после него является fragmentable part.
|
||||
Unfragmentable part передается в каждом фрагменте с измененными полями fragment header, остальное режется поверх
|
||||
всего блока данных за fragment header согласно смещению фрагмента.
|
||||
|
||||
По стандарту в случае ipv6 фрагментации next протокол берется только из первого фрагмента с offset=0.
|
||||
В остальных фрагментах он не обязан совпадать и игнорируется. Манипуляция полем "next protocol" последующих фрагментов -
|
||||
известная и описанная в статьях penetration атака, позволяющая пробить некоторые фаерволы.
|
||||
ipfrag2 реализует эту возможность на двух фрагментах через указание параметра ipfrag_next.
|
||||
Некоторые фаерволы пробиваются только большим количество фрагментов - для этого потребуется своя функция фрагментатор.
|
||||
|
||||
## Отсылка
|
||||
|
||||
Следующие функции могут брать несколько блоков описанных выше опций, каждый из которых представлен полем параметра options.
|
||||
@@ -2302,23 +2322,3 @@ mss берется из desync.tcp_mss.
|
||||
* rawsend : repeats берется из desync.arg.repeats, ifout и fwmark берутся из desync.arg, если они там есть, либо из desync (то, что пришло в desync функцию)
|
||||
* reconstruct : берется только desync.arg.badsum, остальные опции не используются
|
||||
|
||||
```
|
||||
function ipfrag2(dis, ipfrag_options)
|
||||
```
|
||||
|
||||
Стандартная функция фрагментатор. Возвращает массив из двух диссектов-фрагментов исходного диссекта dis.
|
||||
Задействуется через rawsend_dissect_ipfrag, если отсутствует поле ipfrag в ipfrag_options.
|
||||
Отдельно вызывать эту функцию вряд ли понадобится.
|
||||
Если вам нужно резать IP пакет как-то иначе, вы можете по аналогии создать свой фрагментатор и указать его в ipfrag_options.
|
||||
|
||||
В случае ipv6 fragment header вставляется после всех hopbyhop, routing и первого destopt. Это unfragmentable part.
|
||||
Дальше идет fragment header, а все остальное после него является fragmentable part.
|
||||
Unfragmentable part передается в каждом фрагменте с измененными полями fragment header, остальное режется поверх
|
||||
всего блока данных за fragment header согласно смещению фрагмента.
|
||||
|
||||
По стандарту в случае ipv6 фрагментации next протокол берется только из первого фрагмента с offset=0.
|
||||
В остальных фрагментах он не обязан совпадать и игнорируется. Манипуляция полем "next protocol" последующих фрагментов -
|
||||
известная и описанная в статьях penetration атака, позволяющая пробить некоторые фаерволы.
|
||||
ipfrag2 реализует эту возможность на двух фрагментах через указание параметра ipfrag_next.
|
||||
Некоторые фаерволы пробиваются только большим количество фрагментов - для этого потребуется своя функция фрагментатор.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user