mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-19 05:22:58 +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-fwmark=<int|0xHEX> ; бит fwmark для пометки десинхронизирующих пакетов, чтобы они повторно не падали в очередь. default = 0x40000000
|
||||
--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-skip-nosni=0|1 ; 1(default)=не применять dpi desync для запросов без hostname в SNI, в частности для ESNI
|
||||
--dpi-desync-split-pos=<1..1500> ; (только для disorder) разбивать пакет на указанной позиции
|
||||
@ -194,7 +194,7 @@ nfqws
|
||||
В литературе такие атаки еще называют TCB desynchronization и TCB teardown.
|
||||
Надо, чтобы фейковые пакеты дошли до DPI, но не дошли до сервера.
|
||||
На вооружении есть следующие возможности : установить низкий TTL, посылать пакет с инвалидной чексуммой,
|
||||
добавлять tcp option "MD5 signature". Все они не лишены недостатков.
|
||||
добавлять tcp option "MD5 signature", испортить sequence numbers. Все они не лишены недостатков.
|
||||
|
||||
* md5sig работает не на всех серверах. Пакеты с md5 обычно отбрасывают только linux.
|
||||
* badsum не сработает, если ваше устройство за NAT, который не пропускает пакеты с инвалидной суммой.
|
||||
@ -202,12 +202,15 @@ nfqws
|
||||
В openwrt она сделана из коробки, в других роутерах как правило нет, и не всегда это можно изменить.
|
||||
Если nfqws работает на роутере, то не обязательно выключать nf_conntrack_checksum. Фейковый пакет не проходит FORWARD, он идет через OUTPUT.
|
||||
Но если роутер за другим NAT, например провайдерским, и он не пропускает invalid packets, вы ничего не сможете с этим сделать.
|
||||
* пакеты с badseq будут наверняка отброшены принимающим узлом, но так же и DPI, если он ориентируется на sequence numbers
|
||||
* TTL казалось бы - лучший вариант, но он требует индивидуальной настройки под каждого провайдера. Если DPI находится дальше локальных
|
||||
сайтов провайдера, то вы можете отрезать себе доступ к ним. Необходим ip exclude list, заполняемый вручную.
|
||||
Вместе с ttl можно применять md5sig. Это ничего не испортит, зато дает неплохой шанс работы сайтов, до которых "плохой" пакет дойдет по TTL.
|
||||
Если не удается найти автоматическое решение, воспользуйтесь файлом zapret-hosts-user-exclude.txt.
|
||||
КАКИМ СТОИТ ВЫБИРАТЬ TTL : найдите минимальное значение, при котором обход еще работает. Это и будет номер хопа вашего DPI.
|
||||
|
||||
Режимы дурения могут сочетаться в любых комбинациях. --dpi-desync-fooling берет множество значений через запятую.
|
||||
|
||||
Для режимов fake, rst, rstack после фейка отправляем оригинальный пакет. Можно его отправить сразу следом за фейком, а можно его просто дропнуть.
|
||||
Если его дропнуть, ОС выполнит ретрансмиссию. Первая ретрансмиссия случается через 0.2 сек, потом задержка увеличивается экспоненциально.
|
||||
Задержка может дать надежную гарантию, что пакеты пойдут именно в нужном порядке и будут именно в нем обработаны на DPI.
|
||||
@ -1034,6 +1037,34 @@ supersu : /system/su.d
|
||||
Если кто готов такую програмулину написать - все скажут спасибо.
|
||||
Тогда любой желающий с рутом сможет парой кликов настроить себе 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