Недавно ко мне обратились грамотные люди с просьбой проконсультировать по теме временного изменения маршрутизации трафика в сети одного очень крупного провайдера интернет Восточной Европы. Парни очень хотели перенаправить трафик ASIC аппаратов на их кастомный майнинговый пул. Кроме этого им ещё очень хотелось временно перенаправить весь трафик по теме крипты на свою площадку. Давайте посмотрим, какие варианты возможны для этого кейса.
По моему предыдущему опыту перво-наперво стоит провести анализ транзитного сетевого трафика с помощью любого сетевого анализатора в «неразборчивом» режиме работы сетевой карты (promiscuous mode). В качестве сетевого анализатора для подобных целей замечательно подходит WireShark или CommView. Чтобы выполнить этот первоначальный этап, мне обычно хватает и пары часов работы. По прошествии этого времени у меня как правило накапливается достаточно много данных для проведения анализа перехваченного трафика. И в первую очередь при его анализе я обращаю внимание на следующие протоколы:
- протоколы коммутации (STP, PVST+, CDP, DTP, VTP, и им подобные)
- протоколы маршрутизации (LDP, BGP, EIGRP, OSPF, IS-IS и другие)
- протоколы динамической конфигурации узла (DHCP, BOOTP)
- открытые протоколы (telnet, rlogin и им подобные)
Что касается открытых протоколов, – вероятность того, что они попадутся мне во время сбора пакетов проходящего мимо трафика в коммутируемой сети, достаточно мала. Однако, если такого трафика много, то в обследуемой сети явно наблюдаются проблемы в настройках сетевого оборудования.
Во всех остальных случаях у меня присутствует возможность проведения красивых сценариев:
- классическая MITM (Man in the middle) в случае, когда используется ARP, DHCP, RIP или LSP
- получение роли корневого узла STP (Root Bridge), что позволяет перехватывать трафик соседних сегментов
- перевод порта в магистральный режим с помощью DTP (enable trunking), позволяет перехватывать весь трафик своего сегмента сети
Для реализации этих сценариев взаимодействия с сетевыми протоколами коммутации я обычно использую такой замечательный инструмент как Yersinia.
В процессе анализа трафика я часто выявляю пролетающие мимо DTP-пакеты (смотри скриншот). Тогда отправка пакета DTP ACCESS/DESIRABLE может позволить мне перевести порт коммутатора в магистральный режим. Дальнейшее развитие этого сценария позволяет мне прослушивать весь Ethernet сегмент этой сети.

После тестирования канального уровня я обычно переключаю внимание на третий уровень модели OSI. Дошла очередь и до проведения сценария взаимодействия через ARP-poisoning. Тут все просто, я очень люблю инструмент Ettercap NG, но всё дело в том, что в случае успешной реализации сценария ARP-poisoning в отношении всего доступного сегмента сети может наступить ситуация, когда MiTM компьютер по середине не справится с потоком поступающих данных и, в конечном счете, это может стать причиной отказа в обслуживании целого сегмента сети, что обязательно заметят. Поэтому наиболее правильным будет выбрать единичные цели, например, рабочие места администраторов и/или разработчиков, какие-либо определенные серверы (возможно контроллер домена, СУБД, терминальный сервер, bgp маршрутизатор и другие важные элементы сети).
Успешно проведенная мною ARP-poisoning позволяет получить в открытом виде пароли к различным информационным ресурсам – СУБД, каталогу домена (при понижении проверки подлинности NTLM), SNMP-community string, bgp пакеты UPDATE, пароли для сетевого оборудования с уровнем доступа level 15 и другие приятные вещи. В менее удачном случае я могу получить хеш-значения от паролей к различным системам, которые нужно будет постараться восстановить по радужным таблицам (rainbow tables), по словарю или методом «в лоб». Перехваченные пароли могут использоваться где-то ещё на других сайтах в сети интернет, но впоследствии это также необходимо мне подтвердить или опровергнуть.
Кроме того, мне стоит проанализировать весь перехваченный трафик на присутствие CAV2/CVC2/CVV2/CID/PIN, передаваемых в открытом виде. Для этого обычно пропускаю сохраненный .pcap файл с дампом трафика через NetResident и/или 0x4553-Intercepter. Второй, кстати, замечательно подходит для анализа накопленного трафика в целом.
Встраивание в уже созданную BGP сессию и реализация bgp hijacking
Сразу стоит обозначить результат — поменять маршруты движения трафика, но не управлять каким-то bgp роутером через консоль, то есть не проникая в его систему управления от слов совсем и никак, просто модифицировать данные его таблиц маршрутизации.
Для этого я использую обычная реализацию IP Spoofing + TCP hijacking = BGP Spoofing сценария для того, чтобы перенаправить все общение между двумя bgp роутерами через свой хост, то есть осуществление полного перехвата и фильтрации BGP сессий этих роутеров. Об инструментах, которые позволяют сделать это внутри транзитной сети поговорим немного позже.
Реализация BGP spoofing сценария через консоль роутера
После того, как был получен доступ к bgp роутеру, конечный результат реализации сценария bgp hijacking будет зависеть от настроек его bgp соседей. Есть вероятность, что этому bgp роутеру доверяют все его bgp соседи, а им — их bgp соседи и так далее, так можно незаметно поменять пути маршрутизации и сделать bgp обход целых сетевых сегментов, манипулируя при этом огромными объемами сетевого трафика в Интернет.
А возможно, что через этот bgp роутер можно будет изменить пути только в сети, в которой он сам и находиться или в автономной системе этого bgp роутера, но и это на самом деле не такой уж и плохой результат, даже если сеть или Автономная Система небольшие.
Для начала надо определить, из каких AS у нас наиболее вероятен перехват трафика, а это, как правило, соседние AS относительно той, в которой находиться BGP-роутер. Принадлежность определенного IP к AS и соседи определенной AS могут быть получены различными сервисами, например, тот же bgp.tools либо простым выполнением команды show ip bgp neighbors на роутере.
Еще есть интересные сервисы, такие как asnmap.com или bgplay от RIPE. Интерфейс BGP роутера — консоль с ограниченными, определенными командами для управления и конфигурирования текущего BGP демона или устройства и некоторых прилагающихся сетевых сервисов. То есть попав на этот интерфейс можно в реальном времени без каких-либо перезапусков и перезагрузок менять конфигурацию bgp процесса или всего устройства, хотя если попасть в файловую систему роутера, то можно и поменять конфигурацию с его перезапуском.
Какой сценарий выбрать для понимания bgp в крипте?
Эксплуатация уязвимостей протокола BGP в контексте криптовалют и блокчейнов — это довольно специфическая область, которая требует углубленного изучения. Сейчас я расскажу о том, какие сценарии могут быть наиболее востребованы в контексте процессинга крипты.
В сети блокчейнов первого уровня маршрутизация между нодами использует протокол BGP для установления соединений между ними через Интернет, например, Bitcoin или Ethereum. Новые блоки, содержащие транзакции, также распространяются по сети Интернет при помощи BGP, и оно играет важную роль в синхронизации состояния всего блокчейна. BGP помогает поддерживать согласованность состояния блокчейна между всеми нодами.
Децентрализованные биржи (DEX) также осуществляют обмен ордерами при помощи BGP и стабильность его работы влияет на эффективность маршрутизации ордеров между различными DEX. BGP также может помочь в распределении ликвидности по различным пулам.
Так какой же сценарий выбрать?
Выбор конкретного сценария зависит от ваших целей. Если вы новичок и только начинаете изучать BGP в контексте криптовалют, то лучше начать с простых сценариев, таких как маршрутизация в сети Bitcoin и управление bgp роутером через консоль. Но для этого Вам предстоит сначала найти этот роутер и получить к нему доступ ранее озвученными методами.
Если вы уже разрабатываете блокчейн-приложения, то вам будет полезно изучить, как BGP используется для масштабирования и создания децентрализованных сетей. Тажке если вы занимаетесь администрированием блокчейн-инфраструктуры, то вам необходимо понимать, как BGP используется для обеспечения надежности и доступности сети. BGP — это сложный протокол, и его полное понимание требует времени и усилий.
Начните с простых концепций и постепенно углубляйтесь в более сложные темы. Для воздействия на таблицу маршрутизации bgp роутера без доступа в его консоль вам понадобится специализированное программное обеспечение, например ciag-bgp-tools-1.00.tar.gz или Insinuator (ex loki).

Хотите более конкретные рекомендации? Расскажите о ваших текущих знаниях и целях мне в личном сообщении, и я смогу подобрать для вас наиболее подходящий сценарий. Какие из этих сценариев вы хотели бы изучить подробнее?
Добавить комментарий