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:
@@ -763,6 +763,7 @@ Windows :
|
||||
поэтому ничто не предотвращает чтение большинства файлов, если на них есть доступ для Administrators. LUA не имеет встроенных средств
|
||||
чтения содержимого каталогов, поэтому обнаружение интересующих файлов для злоумышленника затруднено.
|
||||
* Безвозвратно убираются все Se* привилегии из токена, кроме SeChangeNotifyPrivilege.
|
||||
* С помощью Job запрещается создание дочерних процессов и ограничивается взаимодействие с десктопом - clipboard, change desktop, change dispay settings и тд
|
||||
|
||||
Есть простой способ передать LUA коду каталог, доступный на запись - параметр `--writeable[=<dirname>]`.
|
||||
nfqws2 создает каталог, назначает на него такие права, чтобы LUA код смог писать туда файлы, передает имя директории в переменной env `WRITEABLE`.
|
||||
@@ -1802,7 +1803,7 @@ function execution_plan_cancel(ctx)
|
||||
Инстанс, выполняющий отмену, берет на себя координацию дальнейших действий и называется оркестратором.
|
||||
|
||||
|
||||
# Базовая библиотека функций zapret-lib.lua
|
||||
# Библиотека базовых функций zapret-lib.lua
|
||||
|
||||
Почти каждая функция имеет подробные комментарии о своем предназначении и параметрах.
|
||||
Чтение LUA кода и комментариев позволит лучше понять для чего нужна конкретная функция и как ее вызывать.
|
||||
@@ -2322,3 +2323,81 @@ mss берется из desync.tcp_mss.
|
||||
* rawsend : repeats берется из desync.arg.repeats, ifout и fwmark берутся из desync.arg, если они там есть, либо из desync (то, что пришло в desync функцию)
|
||||
* reconstruct : берется только desync.arg.badsum, остальные опции не используются
|
||||
|
||||
|
||||
# Библиотека программ атаки на DPI zapret-antidpi.lua
|
||||
|
||||
## Стандартные наборы параметров
|
||||
|
||||
Многие функции берут стандартные наборы аргументов, классифицируемые по их назначанию.
|
||||
|
||||
Дополнительные фильтры по направлению и пейлоаду внутри функций anti-dpi сделаны в основном на случай не слишком грамотного написания опций командной строки как дополнительный предохранитель и защита от дурака, чтобы сделать флуд как это было в winws1 с `--dpi-desync-any-protocol` непреднамеренно было непросто.
|
||||
|
||||
В nfqws2 по умолчанию стоит запрет на передачу входящих (`--in-range=x`), неограниченная передача исходящих (`--out-range=a` ) и пропуск любых пейлоадов (`--payload=all`), что соответствуют поведению nfqws1 с опцией `--dpi-desync-any-protocol`. В nfqws1 все атаки были зашиты в C код, поэтому было известно какие техники работают с какими пейлоадами. Каким-то нужны были любые пакеты, в том числе пустые, а другим - только tls hello или http request.
|
||||
|
||||
nfqws2 ничего не знает о том, что нужно `--lua-desync` функциям. Поэтому фильтрация направления и типа пейлоадов ложится целиком на вас. По умолчанию стоит запрет только на входящие, потому что они используются редко, а пользователь может не написать ограничение, и все это пойдет на LUA функции и будет напрасно грузить процессор гигабайтами скачиваемого трафика.
|
||||
|
||||
Фильтр по направлению. В большинстве функций, использующих фильтр по направлению, значение по умолчанию - "out", но есть и те, где по умолчанию "any". Фильтр по направлению можно реализовать и средствами C кода `--in-range` и `--out-range`.
|
||||
|
||||
**standard direction**
|
||||
| Поле | Описание |
|
||||
|:------|:---------|
|
||||
| dir | in - входящее направление<br> out - исходящее направление<br>any - любое направление |
|
||||
|
||||
Фильтр по пейлоаду берет список типов пейлоада. Список известных типов пейлоада можно получить из help текста nfqws2. Все пустые пакеты имеют пейлоад empty, неизвестные - unknown. Особые значения - all и known. all означает любой пейлоад, known - не unknown и не empty.
|
||||
|
||||
**standard payload**
|
||||
| Поле | Описание |
|
||||
|:------|:---------|
|
||||
| payload | список допустимых пейлоадов через запятую. ~ в начале означает инверсию |
|
||||
|
||||
|
||||
Применяются так же наборы опций
|
||||
|
||||
* [**standard ipfrag**](#операции-с-диссектами)
|
||||
* [**standard ipid**](#операции-с-диссектами)
|
||||
* [**standard_fooling**](#операции-с-диссектами)
|
||||
* [**standard_reconstruct**](#опции-по-работе-с-пакетами)
|
||||
* [**standard rawsend**](#опции-по-работе-с-пакетами)
|
||||
|
||||
|
||||
## Базовые функции
|
||||
|
||||
```
|
||||
function drop(ctx, desync)
|
||||
```
|
||||
|
||||
Выносит VERDICT_DROP при выполнении условий фильтра.
|
||||
* [**standard direction**](#станадртные-наборы-параметров)
|
||||
* [**standard payload**](#станадртные-наборы-параметров)
|
||||
* По умолчанию payload=all, direction=any, то есть drop всего.
|
||||
|
||||
```
|
||||
function send(ctx, desync)
|
||||
```
|
||||
|
||||
Отсылает текущий диссект c опциональным применением модификаций.
|
||||
|
||||
* [**standard direction**](#станадртные-наборы-параметров)
|
||||
* [**standard_fooling**](#операции-с-диссектами)
|
||||
* [**standard ipid**](#операции-с-диссектами)
|
||||
* [**standard ipfrag**](#операции-с-диссектами)
|
||||
* [**standard_reconstruct**](#опции-по-работе-с-пакетами)
|
||||
* [**standard rawsend**](#опции-по-работе-с-пакетами)
|
||||
|
||||
```
|
||||
function send(ctx, desync)
|
||||
```
|
||||
|
||||
Применить модификации к текущему диссекту без отправки и вынесения вердикта.
|
||||
|
||||
```
|
||||
function pktmod(ctx, desync)
|
||||
```
|
||||
|
||||
Отсылает текущий диссект c опциональным применением модификаций.
|
||||
|
||||
* [**standard direction**](#станадртные-наборы-параметров)
|
||||
* [**standard_fooling**](#операции-с-диссектами)
|
||||
* [**standard ipid**](#операции-с-диссектами)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user