mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-19 21:42:59 +03:00
huawei info, module, scripts
This commit is contained in:
parent
12c6c90d47
commit
ad5c9e8675
@ -170,7 +170,7 @@ nfqws
|
|||||||
--dpi-desync[=<mode>] ; атака по десинхронизации DPI. mode : fake rst rstack disorder disorder2
|
--dpi-desync[=<mode>] ; атака по десинхронизации DPI. mode : fake rst rstack disorder disorder2
|
||||||
--dpi-desync-fwmark=<int|0xHEX> ; бит fwmark для пометки десинхронизирующих пакетов, чтобы они повторно не падали в очередь. default = 0x40000000
|
--dpi-desync-fwmark=<int|0xHEX> ; бит fwmark для пометки десинхронизирующих пакетов, чтобы они повторно не падали в очередь. default = 0x40000000
|
||||||
--dpi-desync-ttl=<int> ; установить ttl для десинхронизирующих пакетов
|
--dpi-desync-ttl=<int> ; установить ttl для десинхронизирующих пакетов
|
||||||
--dpi-desync-fooling=none|md5sig|badsum ; дополнительные методики как сделать, чтобы десинхронизирующий пакет не дошел до сервера
|
--dpi-desync-fooling=none|md5sig|ts|badseq|badsum ; дополнительные методики как сделать, чтобы фейковый пакет не дошел до сервера
|
||||||
--dpi-desync-retrans=0|1 ; (только для fake,rst,rstack) 0(default)=отправлять оригинал следом за фейком 1=дропать оригинал, заставляя ОС выполнять ретрансмиссию через 0.2 сек
|
--dpi-desync-retrans=0|1 ; (только для fake,rst,rstack) 0(default)=отправлять оригинал следом за фейком 1=дропать оригинал, заставляя ОС выполнять ретрансмиссию через 0.2 сек
|
||||||
--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> ; (только для disorder) разбивать пакет на указанной позиции
|
--dpi-desync-split-pos=<1..1500> ; (только для disorder) разбивать пакет на указанной позиции
|
||||||
@ -194,7 +194,7 @@ nfqws
|
|||||||
В литературе такие атаки еще называют TCB desynchronization и TCB teardown.
|
В литературе такие атаки еще называют TCB desynchronization и TCB teardown.
|
||||||
Надо, чтобы фейковые пакеты дошли до DPI, но не дошли до сервера.
|
Надо, чтобы фейковые пакеты дошли до DPI, но не дошли до сервера.
|
||||||
На вооружении есть следующие возможности : установить низкий TTL, посылать пакет с инвалидной чексуммой,
|
На вооружении есть следующие возможности : установить низкий TTL, посылать пакет с инвалидной чексуммой,
|
||||||
добавлять tcp option "MD5 signature". Все они не лишены недостатков.
|
добавлять tcp option "MD5 signature", испортить sequence numbers. Все они не лишены недостатков.
|
||||||
|
|
||||||
* md5sig работает не на всех серверах. Пакеты с md5 обычно отбрасывают только linux.
|
* md5sig работает не на всех серверах. Пакеты с md5 обычно отбрасывают только linux.
|
||||||
* badsum не сработает, если ваше устройство за NAT, который не пропускает пакеты с инвалидной суммой.
|
* badsum не сработает, если ваше устройство за NAT, который не пропускает пакеты с инвалидной суммой.
|
||||||
@ -202,12 +202,15 @@ nfqws
|
|||||||
В openwrt она сделана из коробки, в других роутерах как правило нет, и не всегда это можно изменить.
|
В openwrt она сделана из коробки, в других роутерах как правило нет, и не всегда это можно изменить.
|
||||||
Если nfqws работает на роутере, то не обязательно выключать nf_conntrack_checksum. Фейковый пакет не проходит FORWARD, он идет через OUTPUT.
|
Если nfqws работает на роутере, то не обязательно выключать nf_conntrack_checksum. Фейковый пакет не проходит FORWARD, он идет через OUTPUT.
|
||||||
Но если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets, вы ничего не сможете с этим сделать.
|
Но если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets, вы ничего не сможете с этим сделать.
|
||||||
|
* пакеты с badseq будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется на sequence numbers
|
||||||
* TTL казалось бы - лучший вариант, но он требует индивидуальной настройки под каждого провайдера. Если DPI находится дальше локальных
|
* TTL казалось бы - лучший вариант, но он требует индивидуальной настройки под каждого провайдера. Если DPI находится дальше локальных
|
||||||
сайтов провайдера, то вы можете отрезать себе доступ к ним. Необходим ip exclude list, заполняемый вручную.
|
сайтов провайдера, то вы можете отрезать себе доступ к ним. Необходим ip exclude list, заполняемый вручную.
|
||||||
Вместе с ttl можно применять md5sig. Это ничего не испортит, зато дает неплохой шанс работы сайтов, до которых "плохой" пакет дойдет по TTL.
|
Вместе с ttl можно применять md5sig. Это ничего не испортит, зато дает неплохой шанс работы сайтов, до которых "плохой" пакет дойдет по TTL.
|
||||||
Если не удается найти автоматическое решение, воспользуйтесь файлом zapret-hosts-user-exclude.txt.
|
Если не удается найти автоматическое решение, воспользуйтесь файлом zapret-hosts-user-exclude.txt.
|
||||||
КАКИМ СТОИТ ВЫБИРАТЬ TTL : найдите минимальное значение, при котором обход еще работает. Это и будет номер хопа вашего DPI.
|
КАКИМ СТОИТ ВЫБИРАТЬ TTL : найдите минимальное значение, при котором обход еще работает. Это и будет номер хопа вашего DPI.
|
||||||
|
|
||||||
|
Режимы дурения могут сочетаться в любых комбинациях. --dpi-desync-fooling берет множество значений через запятую.
|
||||||
|
|
||||||
Для режимов fake, rst, rstack после фейка отправляем оригинальный пакет. Можно его отправить сразу следом за фейком, а можно его просто дропнуть.
|
Для режимов fake, rst, rstack после фейка отправляем оригинальный пакет. Можно его отправить сразу следом за фейком, а можно его просто дропнуть.
|
||||||
Если его дропнуть, ОС выполнит ретрансмиссию. Первая ретрансмиссия случается через 0.2 сек, потом задержка увеличивается экспоненциально.
|
Если его дропнуть, ОС выполнит ретрансмиссию. Первая ретрансмиссия случается через 0.2 сек, потом задержка увеличивается экспоненциально.
|
||||||
Задержка может дать надежную гарантию, что пакеты пойдут именно в нужном порядке и будут именно в нем обработаны на DPI.
|
Задержка может дать надежную гарантию, что пакеты пойдут именно в нужном порядке и будут именно в нем обработаны на DPI.
|
||||||
@ -1034,6 +1037,34 @@ supersu : /system/su.d
|
|||||||
Если кто готов такую програмулину написать - все скажут спасибо.
|
Если кто готов такую програмулину написать - все скажут спасибо.
|
||||||
Тогда любой желающий с рутом сможет парой кликов настроить себе tpws.
|
Тогда любой желающий с рутом сможет парой кликов настроить себе tpws.
|
||||||
|
|
||||||
|
Мобильные модемы и роутеры huawei
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Устройства типа E3372, E8372, E5770 разделяют общую идеологию построения системы.
|
||||||
|
Имеются 2 вычислительных ядра. Одно ядро выполняет vxworks, другое - linux.
|
||||||
|
На 4pda имеются модицифированные прошивки с telnet и adb. Их и нужно использовать.
|
||||||
|
|
||||||
|
Дальнейшие утверждения проверены на E8372. На других может быть аналогично или похоже.
|
||||||
|
Присутствуют дополнительные аппаратные блоки для offload-а сетевых функций.
|
||||||
|
Не весь трафик идет через linux. Исходящий трафик с самого модема проходит
|
||||||
|
цепочку OUTPUT нормально, на FORWARD =>wan часть пакетов выпадает из tcpdump.
|
||||||
|
|
||||||
|
tpws работает обычным образом.
|
||||||
|
|
||||||
|
nfqueue поломан. можно собрать фиксящий модуль https://github.com/im-0/unfuck-nfqueue-on-e3372h,
|
||||||
|
используя исходники с huawei open source. Исходники содержат тулчейн и полусобирающееся,
|
||||||
|
неактуальное ядро. Конфиг можно взять с рабочего модема из /proc/config.gz.
|
||||||
|
С помощью этих исходников умельцы могут собрать модуль unfuck_nfqueue.ko.
|
||||||
|
После его применения NFQUEUE и nfqws для armhf работают нормально.
|
||||||
|
|
||||||
|
Чтобы избежать проблемы с offload-ом при использвании nfqws, следует комбинировать tpws в режиме tcp proxy и nfqws.
|
||||||
|
Правила NFQUEUE пишутся для цепочки OUTPUT.
|
||||||
|
connbytes придется опускать, поскольку модуля в ядре нет. Но это не смертельно.
|
||||||
|
|
||||||
|
Скрипт автозапуска - /system/etc/autorun.sh. Создайте свой скрипт настройки zapret,
|
||||||
|
запускайте из конца autorun.sh через "&". Скрипт должен в начале делать sleep 5, чтобы дождаться
|
||||||
|
поднятия сети и iptables от huawei.
|
||||||
|
|
||||||
Другие прошивки
|
Другие прошивки
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
BIN
files/huawei/E8372/unfuck_nfqueue.ko
Normal file
BIN
files/huawei/E8372/unfuck_nfqueue.ko
Normal file
Binary file not shown.
9
files/huawei/E8372/unzapret
Executable file
9
files/huawei/E8372/unzapret
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/system/bin/busybox sh
|
||||||
|
|
||||||
|
rule="PREROUTING -t nat -i br0 ! -d 192.168.0.0/16 -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 1"
|
||||||
|
iptables -C $rule 2>/dev/null && iptables -D $rule
|
||||||
|
killall tpws
|
||||||
|
|
||||||
|
rule="OUTPUT -t mangle -o wan0 -p tcp -m multiport --dports 80,443 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass"
|
||||||
|
iptables -C $rule 2>/dev/null && iptables -D $rule
|
||||||
|
killall nfqws
|
15
files/huawei/E8372/zapret
Executable file
15
files/huawei/E8372/zapret
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/system/bin/busybox sh
|
||||||
|
|
||||||
|
# $1 - additional parameters for nfqws
|
||||||
|
|
||||||
|
insmod /online/modules/unfuck_nfqueue.ko 2>/dev/null
|
||||||
|
|
||||||
|
rule="PREROUTING -t nat -i br0 ! -d 192.168.0.0/16 -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 1"
|
||||||
|
iptables -C $rule 2>/dev/null || iptables -I $rule
|
||||||
|
|
||||||
|
tpws --uid 1:3003 --port=1 --daemon
|
||||||
|
|
||||||
|
rule="OUTPUT -t mangle -o wan0 -p tcp -m multiport --dports 80,443 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass"
|
||||||
|
iptables -C $rule 2>/dev/null || iptables -I $rule
|
||||||
|
|
||||||
|
nfqws --uid 2 --qnum=200 --dpi-desync=disorder --dpi-desync-ttl=8 --dpi-desync-fooling=md5sig --daemon $1
|
Loading…
x
Reference in New Issue
Block a user