Mikrotik Port Knocking by ICMP

Вступление:

Данный вариант отличается от классического тем, что вместо определенных портов будем использовать ICMP-пакеты различного размера. Это проще сделать стандартными средствами ОС и труднее поддается анализу при перехвате трафика, так как не столь бросается в глаза.

Несмотря на стандартный размер MTU в 1500 байт, это значение может быть уменьшено при использовании VLAN, VPN и т.д., поэтому не стоит использовать пакеты размером более 1000 байт, также надо помнить размер заголовков ICMP-пакета в 28 байт.

Правила для Микротика:

%KEY1% - размер первого пакета + 28(заголовок)

%KEY2% - размер второго пакета + 28(заголовок)

Например ключем будет 20-40, тогда %KEY1% = 48, а %KEY2% = 68


#1 - First step rule
/ip firewall filter add action=add-src-to-address-list address-list=ICMPKNOCK-1 address-list-timeout=30s chain=input packet-size=%KEY1% protocol=icmp

#2 - Second step rule
/ip firewall filter add action=add-src-to-address-list address-list=ICMPKNOCK-ACCEPT address-list-timeout=1m chain=input packet-size=%KEY2% protocol=icmp src-address-list=ICMPKNOCK-1

#3 - Allow to connect
/ip firewall filter add action=accept chain=input dst-port=8291 protocol=tcp src-address-list=ICMPKNOCK-ACCEPT

Как постучать:

Windows


ping XXX.XXX.XXX.XXX -l 20 -n 1
ping XXX.XXX.XXX.XXX -l 40 -n 1

Linux


ping XXX.XXX.XXX.XXX -s 20 -c 1
ping XXX.XXX.XXX.XXX -s 40 -c 1

Вывод:

Если все правильно то в течении 1 минуты мы сможем прицепиться к WinBox’у с нашего IP.