Как Skype обменивается данными?

madman

Резидент
225
266
2 Июл 2016
Вам никогда не становилась интересно как Skype обменивает данные между компьютерами и как это возможно что человек который сидит у компа за защитой Firewall разрешает пакетам или трафику уходить от него?

Тут есть небольшой трюк который знает не каждый. Компания Skype обходит обманом Firewall то-есть они используют простейший трюк. Попытаюсь вам его объяснить простейшим языком на примере двух Linux систем.

Peer to peer программы кошмар каждого системного администратора так как вместо нормального обмена данных они создают уязвимость в Firewall, и открывают канал для выхода пакетов. Этой идеей и пользуется знаменитая компания Skype и это как бы не самый новый концепт, но весьма рабочий даже в наши дни.

Обход Firewall Restriction в Linux?
Мы будим использовать стандартные программы на Linux системах как netcat и hping.
Для начала открываем порт UDP 14141 на Local/1 который находится под защитой Firewall.

local/1# nc -u -l -p 14141

На атакующем компьютере пытаемся подсоединится к первому(Local/1)

remote# echo "hello" | nc -p 53 -u local-fw 14141

Как и ожидали Local/1 не принимает пакетов так как находитса под защитой Firewall.
Теперь на атакующем компьютере используем hping который создаст дыру тем самым осуществит обход firewall.

local/2# hping2 -c 1 -2 -s 14141 -p 53 remote

При попытке соединения он выдаст нам что port unreachable(порт недоступен), но не стоит волноваться это нормально.
При второй попытке установится соединение

remote# echo "hello" | nc -p 53 -u local-fw 14141

Теперь мы видим что Local/1 в netcat словил UDP пакет с наружи который прошел сквозь firewall.
Как видите обход Firewall возможен на Linux дистрибутивов.

На данный момент не существует идеальной защиты в Linux от этого трюка. Будьте внимательны и используйте с умом данный гид.