|
|
@ -424,29 +424,10 @@ DPI может отстать от потока, если ClientHello его у |
|
|
|
|
|
|
|
В документации по geneva это называется "TCB turnaround". Попытка ввести DPI в заблуждение относительно |
|
|
|
ролей клиента и сервера. |
|
|
|
!!! Поскольку режим нарушает работу NAT, техника может сработать только если между атакующим устройством |
|
|
|
и DPI нет NAT. Атака не сработает через NAT роутер, но может сработать с него. |
|
|
|
Для реализации атаки в linux обязательно требуется отключить стандартное правило firewall, |
|
|
|
дропающее инвалидные пакеты в цепочке OUTPUT. Например : `-A OUTPUT -m state --state INVALID -j DROP` |
|
|
|
В openwrt можно отключить drop INVALID в OUTPUT и FORWARD через опцию в /etc/config/firewall: |
|
|
|
|
|
|
|
``` |
|
|
|
config zone |
|
|
|
option name 'wan' |
|
|
|
......... |
|
|
|
option masq_allow_invalid '1' |
|
|
|
``` |
|
|
|
|
|
|
|
К сожалению, отключить только в OUTPUT таким образом нельзя. Но можно сделать иначе. Вписать в `/etc/firewall.user`: |
|
|
|
|
|
|
|
``` |
|
|
|
iptables -D zone_wan_output -m comment --comment '!fw3' -j zone_wan_dest_ACCEPT |
|
|
|
ip6tables -D zone_wan_output -m comment --comment '!fw3' -j zone_wan_dest_ACCEPT |
|
|
|
``` |
|
|
|
|
|
|
|
Лучше делать так, потому что отсутствие дропа INVALID в FORWARD может привести к нежелательным утечкам пакетов из LAN. |
|
|
|
Если не принять эти меры, отсылка SYN,ACK сегмента вызовет ошибку и операция будет прервана. |
|
|
|
Остальные режимы тоже не сработают. Если поймете, что вам synack не нужен, обязательно верните правило дропа INVALID. |
|
|
|
Поскольку режим нарушает работу NAT, техника может сработать только если между атакующим устройством |
|
|
|
и DPI нет NAT. Атака не сработает через NAT роутер, но может сработать с него. |
|
|
|
Для реализации атаки на проходящий трафик требуются nftables и схема [POSTNAT](#nftables-для-nfqws). |
|
|
|
|
|
|
|
### РЕЖИМ SYNDATA |
|
|
|
|
|
|
@ -480,7 +461,7 @@ conntrack - простенький, он не писался с учетом в |
|
|
|
|
|
|
|
`--wssize` позволяет изменить с клиента размер tcp window для сервера, чтобы он послал следующие ответы разбитыми на части. |
|
|
|
Чтобы это подействовало на все серверные ОС, необходимо менять window size в каждом исходящем с клиента пакете до отсылки сообщения, |
|
|
|
ответ на который должен быть разбит (например, TLS ClientHello). Именно поэтому и необходим conntrack, чтобы |
|
|
|
ответ на которое должен быть разбит (например, TLS ClientHello). Именно поэтому и необходим conntrack, чтобы |
|
|
|
знать когда надо остановиться. Если не остановиться и все время устанавливать низкий wssize, скорость упадет катастрофически. |
|
|
|
В linux это может быть купировано через connbytes, но в BSD системах такой возможности нет. |
|
|
|
В случае http(s) останавливаемся сразу после отсылки первого http запроса или TLS ClientHello. |
|
|
|