Template
1
0
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:
bol-van
2025-12-17 15:45:08 +03:00
parent e7e175dd82
commit 76acf483f9

View File

@@ -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**](#операции-с-диссектами)