АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Атакуем роутеры через NAT-PMP

Читайте также:
  1. Q.1.1. Прохождение света через кристаллы.
  2. XI. Чему научил меня Бог через Зулу
  3. XI. Чему научил меня Бог через зулу
  4. XI. ЧЕМУ НАУЧИЛ МЕНЯ БОГ ЧЕРЕЗ ЗУЛУ
  5. А Андрей хотел жить, как его «батя»: быть веселым и беспечным, уметь легко шагать через свои годы, обманывать житуху, уметь выкручиваться и не терять бодрость духа и молодость.
  6. А утром вся казарма ахнула: Фархада и еще одного азербайджанца в кочегарке засыпало углем... А еще через день...
  7. Апеляційна скарга на ухвалу слідчого судді розглядається не пізніш як через три дні після її надходження до суду апеляційної інстанції.
  8. В 1965г. ввёл новую схему - «Крымские связки». Однако через 13 лет от этой схемы пришлось
  9. В вытяжных системах удаляемый воздух возмещается в помещении за счет притока через воздухопроницаемые конструкции, неплотности притвора окон, форточки и фрамуги.
  10. В експерименті у жаби було зруйновано гіпофіз. Внаслідок цього через деякий час її шкіра посвітлішала. Відсутність якого гормону викликала таку реакцію шкірного покриву?
  11. В ОБРАТНЫЙ ПУТЬ ЧЕРЕЗ ОКЕАН

И еще одна задачка про сети и сетевые атаки. Да-да! А то все веб да веб.

Относительно недавно появилась (стандартом стала вроде в 2013 году) новая технология — NAT PMP (NAT Port Mapping Protocol). Если в общем, то она используется для автоматического проброса портов, в основном на SOHO-роутерах. Казалось бы, кто ей будет пользоваться? Ан нет, продвигает ее компания Apple, и это как бы говорит нам о том, что поддержка будет только расти. А потому умение «ломать» такие девайсы представляет приличный интерес, особенно оттого, что уязвимости, связанные с NAT-PMP, в основном конфигурационные (а значит, вряд ли будут «пропатчены»).

Но что-то я разошелся. Давай по порядку и с начала.

Вот есть весь диапазон IPv4-адресов. Он меньше, чем общее количество всех сетевых устройств. Да даже если бы и выдать каждому по одному — это была бы неуправляемая каша. Поэтому достаточно давно выделили ряд диапазонов приватных/«серых» IP-адресов. Обычные же адреса называются публичными/«белыми».

Теперь представим себе, что ты сидишь дома с ноутом и смартфоном, у тебя есть Wi-Fi-роутер, все подключено к интернету. Представим, что у Wi-Fi-роутера есть «белый» IP (66.55.44.33), который ему назначил твой провайдер. Твой же ноут имеет IP-адрес из приватной сети, 192.168.0.123 например, а смартфон — 192.168.0.56. И ты хочешь подключиться к хосту 8.8.8.8 (белый IP). Но подключиться «напрямую» со своего серого IP не получится, 8.8.8.8 не сумеет отправить тебе ответ. Но ты же можешь отправить пакет через свой роутер (у него-то есть белый IP, и пакет вернется от 8.8.8.8 к нему). Но как же сделать, чтобы мы отправили пакет через роутер от IP роутера и при этом ответ бы пришел через роутер к нам? И здесь нам поможет NAT (Network Address Translation). Вообще, есть несколько видов NAT’а, но мы коснемся только конфигурации many-to-one (самой распространенной).

Итак, когда ты с ноута отправляешь запрос на 8.8.8.8, роутер получает Наш пакет (так как он стоит шлюзом по умолчанию у тебя на ноуте), видит, что запрос идет во внешнюю сеть, после через начинается процесс NAT’а:

1. Роутер запоминает, с какого IP-адреса (192.168.0.123) и порта (1234) пришел запрос от тебя.

2. Меняет в твоем пакете IP-адрес отправителя на свой публичный (66.55.44.33) и порт отправителя на свой незанятый внешний порт (5678).

3. Запоминает это соотношение: 192.168.0.123:1234 = 66.55.44.33:5678

4. Получив ответ от 8.8.8.8, роутер проверяет порт (5678), на который пришел запрос, и видит, что это соотношение сохранено у него.

5. Роутер проводит обратное изменение: в IP-адрес назначения указывает 192.168.0.123, а в порт — 1234 и отправляет пакет на ноут.

Таким образом, для твоего ноута эти преобразования остаются незамеченными.

При этом твой смартфон также может ходить в интернет, и последовательность преобразований будет такой же. Разница лишь в том, что роутер выделит другой внешний порт для подключения со смартфона. То есть NAT-таблица будет выглядеть примерно так:

192.168.0.56:5555 = 66.55.44.33:5677

192.168.0.123:1234 = 66.55.44.33:5678

В зависимости от порта, куда придет пакет с ответом, он будет переслан на тот или иной хост. Кстати, именно поэтому такой вид NAT’а называется еще Port Address Translation. Все вполне просто.

Но NAT решает одну проблему — подключение из серого диапазона в белый. Снаружи (из интернета) практически нет возможности подключиться к какому-то сервису на твоем ноутбуке. Решение этой задачи — проброс портов. Мы можем указать на роутере, что все подключения, приходящие на 66.55.44.33 на порт 7777, должны быть перекинуты на веб-сервер на ноуте 192.168.0.123:80. При этом роутер выполняет почти аналогичную операцию: подменяет в пакете IP назначения со своего внешнего на 192.168.0.123 и порт назначения с 7777 на 80. Ответные пакеты от нашего веб-сервера подвергаются обратному изменению.

Окей. Проброс портов — отличное решение. И я думаю, все современные роутеры позволяют настраивать его ручками через админку. Но полагаю, среднестатистический пользователь вряд ли знает, что такое порт или где у роутера админка. С другой стороны, многие сервисы, типа файлообмена или игр, требуют возможности внешних подключений.

Решением будет автоматический проброс портов, когда приложение на твоем ноуте само попросит роутер пробросить для него такой-то порт и роутер выполнит его желание. Для этого может быть использован протокол (точнее, набор протоколов) UPnP. Там есть расширение Internet Gateway Device (IGD), которое создано специально для управления пробросом портов.

Не знаю, с чем точно были связаны потребности Apple в новом протоколе для замены UPnP IGD. Возможно, дело в том, что он был чересчур универсальный, а потому очень толстый (настройка происходит через три подключения к различным портам). К тому же в нем были найдены пучки уязвимостей (переполняшки), о чем тут некогда писалось. Но в любом случае Apple создала новый протокол и поддерживает его в большинстве своих современных продуктов (насколько мне известно).

Главная его черта — простота. Используется UPD-порт 5351 для общения. Протокол бинарный. Никакой аутентификации не предусмотрено. И содержит, по сути, две команды (на деле чуть больше): пробрасывай данные с такого-то порта на такой-то хост и порт, скажи свой внешний IP-адрес.

Примерный, упрощенный алгоритм такой:

1. Приложение ноута отправляет запрос на роутер «Пробрасывай TCP-порт 80 с внешнего интерфейса на 192.168.0.123 на 80».

2. Если внешний порт 80 не занят, то роутер ответит, что данные будут пересылаться с 80-го порта на 192.168.0.123 на 80.

3. Если внешний порт 80 занят, то роутер подставит какой-то свободный порт и ответит, что данные будут пересылаться с 4444-го порта на 192.168.0.123 на 80.

4. Приложение с ноута запрашивает, какой внешний IP у роутера.

5. Роутер отвечает со своим внешним IP-адресом 66.55.44.33.

6. Приложение с ноута теперь знает, что коннекты на 66.55.44.33: 4444 будут приходить именно ему, и может «опубликовать» эти данные где-то в сети.

Казалось бы, что тут такого может случиться? Что тут вообще ломать, в особенности если ты находишься во внешней сети (интернете) и хочешь атаковать пользователей, находящихся за роутером?

Ребятки из Rapid7 провели goo.gl/xnEMWb на эту тему и выявили ряд проблем. Основная была связана с некорректной настройкой конечных девайсов (роутеров). По стандарту, запросы NAT-PMP должны обрабатываться, когда они приходят с внутреннего диапазона, но на многих девайсах разрешена конфигурация и с WAN-интерфейса (то есть из сети Интернет). Данная и некоторые другие тонкости дают возможность для атак. Причем тут важно знать, что во многом это не проблемы конечных пользователей, а некорректная настройка из коробки, от вендоров роутеров. В итоге Rapid7 обнаружила в интернете порядка миллиона по-разному уязвимых устройств. Заметь, это было сканирование интернета, а если вспомнить, что очень многие пользователи находятся за NAT’ом от провайдеров, то число может возрасти в разы (правда, для атаки на них необходимо быть подключенными к данному провайдеру).

Самое же вкусное здесь — потенциальные векторы атак через эту технологию, а они тут, должен признаться, выглядят впечатляюще.


1 | 2 | 3 | 4 | 5 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)