Рубрика: Без рубрики

  • Attacking MPLS Provider Edge

    Attacking MPLS Provider Edge

    The another Loki‘s usage case shows how to inject MPLS-VPN routing information (as described in RFC4364) into a MPLS Provider Edge router.

    The peer again is a Cisco 3750ME with a MPLS-VPN virtual routing and forwarding table associated with the customer ‘RED’:

    Cisco 3750 MP-BGP Routing Information

    Loki is then used to inject the MPLS-VPN routing information:

    Injecting MPLS-VPN Routing Information with Loki

    Before setting up the session we need to overwrite the default session parameters with our custom BGP capabilities. This is done by filling in the optional connection parameters.

    Next the AS number and the hold timer needs to be set. At last the target host is missing, which in this example is the host with the IP address 10.10.10.1. After clicking on “Connect” a session setup is performed.

    If loki is able to establish the connection, a background keep alive thread is started, which sends an BGP keep alive packet every hold time / 4 seconds.

    The next step is to assigns the BGP update message. 

    This message defines, which routing information to publish to the connected host. In the example case we build up a RFC4364 Multi-Protocol-BGP update packet, which says we are announcing the network 192.168.113.111/32 with the route distinguisher 100:0, which should be forwarded to the next hop 10.10.10.10. In the end we send the prepared update message by clicking on “Update”.

    After publishing the routing information, the routers virtual routing and forwarding table for the customer ‘RED’ looks like this:

    Cisco 3750 MP-BGP Routing Information after using Loki

    One can see the new route for the host 192.168.113.111 pointing to our attack host (10.10.10.10). Click here to dowload Loki.

  • Attacking MPLS VPNs

    Attacking MPLS VPNs

    Loki’s MPLS module is designed to relabel specified MPLS traffic with a given label. It can be used to manipulate the transport label and change the destination of the packet, or to redirect traffic into another MPLS-VPN. The module automatically detects all MPLS labeled traffic on the wire and let the user easily set up relabeling rules. It is possible to add a tcpdump filter to the relabeling rule, if the module should only redirect some special kind of traffic. Last but not least one can define which label in the label stack should be modified.

    It should be noted that this attack requires that the attacker has access to the traffic path of the respective packets. The setup for this example looks like this:

    Bi-Directional MPLS-VPN

    The attacker is in a Man-in-the-Middle situation inside the data path between Provider Edge 1 and Provider Edge 2 in the MPLS backbone.

    On PE1 the label association for the both MPLS-VPNs looks like this:

    Cisco 3750 Label Overview
    Cisco 3750 Label Overview

    Which means outgoing traffic for customer RED’s location 2 is tagged with the MPLS label 18. In the other direction, traffic tagged with MPLS label 20 is sent out to customers RED’s location 1. The same for customer GREEN, outgoing traffic for location 2 is tagged with label 19, incoming traffic with label 21 is sent out to location 1. Both customers use the same IP address space for the two locations, which is possible, as we got a logical separation in the routing of each customer.

    Let’s further assume we got a client with the IP address 192.168.113.100 connected to customer GREEN’s location 2. So it’s possible to ping this client from PE1 in the context of customer GREEN. We need to specify the virtual routing and forwarding context of customer GREEN to use the customer’s specific routing table. If we run the same command in the context of customer RED, no response will be visible:

    Cisco 3750 test of MPLS-VPN Connection

    Next the attacker starts to redirect traffic from PE1 to PE2 in the backbone from customer RED’s MPLSVPN to customer GREEN’s MPLS-VPN and redirect traffic from PE2 to PE1 in the backbone from customer GREEN’s MPLS-VPN to customer RED’s MPLS-VPN by loki like this:

    Redirecting MPLS-VPN Traffic with Loki

    Once the redirection is in place it is possible to ping our assumed host from both, customer RED’s and customer GREEN’s context:

    Cisco 3750 Test of MPLS-VPN Connection after using Loki

    So this actually means that with right position in the traffic path and the right tool (e.g. Loki) an attacker can easily redirect a given site’s traffic of a given customer to a different destination (provided the IP addresses are the same which presumably is a valid assumption when it comes to addresses like 10.1.1.1 or 192.168.10.1).

  • Attacking LDP

    Attacking LDP

    The Label Distribution Protocol, initially specified in the RFC 3036, is a signaling protocol for distributing labels for a label switched path in an MPLS network. In 2007 RFC 5036 was released and replaces the old specification. LDP serves a set of procedures and messages by which Label Switched Routers (LSRs) establish Label Switched Paths through a network by mapping network routing information to data-link layer switched paths. The procedures consist of four kind of functions: discovery functions, session management, advertisement and notification.

    Trust Model

    LDP uses TCP to establish sessions between two LSRs. UDP is used for basic operations like discovery mechanisms which are periodically sent over the network to a well-known discovery port for all routers of a specific subnet. As these are sent to the “all routers on this subnet” group multicast address, with regard to the discovery process all routers on the local link are regarded trustworthy.

    Security Controls Inherent to Technology

    To protect the authenticity and integrity of LDP messages, LDP supports the TCP MD5 signature options described in RFC 2385. It has to be activated at the LSRs and may protect the messages by validating the segment by calculating and comparing the MD5 digest. To use the MD5 option a preconfigured password on each LSR is necessary.

    Attacking LDP

    Loki contains a universal LDP module, written in python. It implements the most common used LDP packet and data types and can be used to participate in the LDP discovery process, as well as establish targeted LDP sessions for advanced signaling. If such a targeted session is established, the tool starts a background thread which sends keep-alive packages to hold the connection open and the signaled data valid. To create such signaling data e.g. EoMPLS virtual circuits signaling, the module provides build-in data types which can be merged to the appropriated signaling packet.

    An Example for signaling EoMPLS virtual circuits

    The peer is a Cisco 3750ME was configured, but not activated virtual circuit:

    Cisco 3750ME was configured, but not activated virtual circuit

    Loki is the used to establish an LDP session and to send the necessary signaling information:

    establishing the LDP session with Loki

    First Loki needs to take part in the LDP discovery process; this is done by activating the Hello-Thread via clicking on the “Hello” button. Next the remote host tries to connect the attacks host via TCP, so Loki needs to listen for that incoming connection; this is done by activating the Listen-Thread via clicking on the “Listen” button. Once the Connection is established, the remote Host will show up in the Host-List. The next step is to configure the LDP update message, which defines the signaling message to publish to the remote host. In this case we generate a LDP Label-Mapping-Message. In the end we send the prepared update message by selecting the designated host from the host list and clicking on the “Update” button.

    After sending the LDP Label-Mapping-message the configured virtual circuit is activated on the remote side:

    After sending the LDP Label-Mapping-message the configured virtual circuit is activated on the remote side

    So we activated the virtual circuit and mapped it to a label defined in the update message. A tool like mplstun could be used to set up a valid endpoint on the attacker’s side. Click here to download Loki.

  • О подмене маршрута в зоне bgp в процессинге фиата и крипты

    О подмене маршрута в зоне bgp в процессинге фиата и крипты

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

    Предположим, что в процессе анализа трафика были выявлены пролетающие мимо DTP-пакеты (смотри скриншот). Тогда отправка пакета DTP ACCESS/DESIRABLE может позволить перевести порт коммутатора в магистральный режим. Дальнейшее развитие этого сценария позволяет прослушивать весь свой сегмент этой сети.

    использование Yersinia для реализации mitm сценария
    После тестирования канального уровня стоит переключить внимание на третий уровень модели 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, передаваемых в открытом виде. Для этого можно пропустить сохраненный cap-файл через NetResident и/или 0x4553-Intercepter. Второй, кстати, замечательно подходит для анализа накопленного трафика в целом.

    Встраивание в уже созданную BGP сессию и реализация bgp hijacking

    Сразу стоит обозначить результат — поменять маршруты движения трафика, но не управлять каким-то bgp-роутером через консоль, то есть не проникая в его систему управления от слов совсем и никак, просто модифицировать данные его таблиц маршрутизации. Для этого используется обычная реализация IP Spoofing + TCP hijacking = BGP Spoofing сценария для того, чтобы перенаправить все общение между двумя роутерами через свой хост, то есть осуществление полного перехвата и фильтрации BGP-сесий этих роутеров. Об инструментах, которые позволяют сделать это внутри транзитной сети поговорим немного позже.

    Реализация BGP spoofing сценария через консоль роутера

    После того, как был получен доступ к bgp-роутеру, крнечный результат реализации сценария bgp-hijacking будет зависеть от настроек его bgp-соседей. Есть вероятность, что этому bgp-роутеру доверяют все его bgp-соседи, а им — их bgp-соседи и так далее, так можно незаметно поменять пути маршрутизации и сделать bgp-обход целых сетевых сегментов, манипулируя при этом огромными объемами сетевого трафика в Интернет. 
    А возможно, что через этот bgp-роутер можно будет изменить пути только в сети, в которой он сам и находиться или в автономной системе этого bgp-роутера, но и это на самом деле не такой уж и плохой результат, даже если сеть или Автономная Система небольшие.

    Для начала надо определить, из каких AS у нас наиболее вероятен перехват трафика, а это, как правило, соседние AS относительно той, в которой находиться BGP-роутер. Принадлежность определенного IP к AS и соседи определенной AS могут быть получены различными сервисами, например, тот же ipinfo.io либо простым выполнением команды 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).
    ARP сканирование с помощью loki

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

    В Москве взялись за трейдеров, нальщиков и p2p-шников

    Сегодня полицейские решили сыграть жёстко и без реверансов: в нескольких московских локациях прошли облавы на «налящихся» трейдеров. Схема до неприличия проста: ты приходишь к банкомату, вставляешь карту, а тут — бац, тебя хватают за руки и волокут в тачку. 

    Как грамотно обменять грязную крипту на фиатные деньги

    Здравствуй, полицейский квест. Схема «справедливости»

    ▪ Кому повезло (никаких лишних симок, кучки карт и налика) — отделались лёгким допросом: «фио, где живёте, зачем шатались ночью у банкомата?» Записали да отпустили.
    ▪ Кому не позавидуешь: у кого в сумке обнаружили пару-тройку симок, карты, телефон с «подозрительными» контактами, а в кошельке сотни тысяч налом. Тех аккуратно доставили в отдел.

    К чему может привести?

    Если выяснится, что у бедолаги-трейдера среди платежей мелькала «чернуха» или «грязь»  (под это попадает всякая незаконная дичь, вроде скама или нарко-трафика, то велик шанс, что ему припаяют статью 187 УК (до 7 лет). А бывает ещё сюрприз в виде 150 УК (до 9 лет). Сроки в 3–4 года лишения свободы стали уже обыденным приглядом, особенно когда находят «1 карта = 1 эпизод» — и тогда числа складываются быстро и грустно.

    Зачем такая жесть?

    Да потому, что «процессинг» давит госструктурам на мозги: обороты огромные, каждую неделю всплывают новые схемы. Власти показывают: «Ребята, мы вас видим и берём за бейца». И вот результат — стихийная чистка криптокошельков и проверка всех, кто слишком активно шуршит у банкоматов. Если ты носишь с собой пол-чемодана наличными денгами и кучу пластиков — готовься, что рано или поздно появятся люди, которые могут начать задать тебе неудобные вопросы.
    Рынок становится жёстче, и не факт, что завтра кто-то не решит провести облаву ещё масштабнее. выбрал серую дорожку, будь готов к серым последствиям.

    А если в деталях?

    «Как лучше отмыть грязь с криптокошелка? Оказывается, многие заблуждаются в элементарных вещах. Начнём.

    — Привет! А угон чужого биткойна преследуется законом?

    — Да. Назначается оценочная экспертиза и по официальному курсу, определяют ценность похищенного.

    — И реально найти похитителя?

    — Очень тяжело.

    — Если общение было через телеграмм?

    — Очень-очень тяжело!

    — Допустим гарант просто забрал себе некую сумму, а потом отмыл…

    — 95% оперов не шарят, что такое крипта. Отдел К в счет не берем, так как к ним такие материалы попадают крайне редко. Если на серьезную сумму в биткоин опрокинули, лучше обращаться сразу в управление, а не в отдел.

    — Ну да, нынче можно прийти, а тебя не поймут и не поймут что у тебя угнали биткоин, обычные полицейские. Киберполиция — еще да.

    — Её нет как таковой. Есть отдел К (больше вспомогательная функция) или УСТМ, отделы по борьбе «с высокими» в уэбе и отделы по борьбе с мошенничествами в обычных отделах или управах (в составе угрозыска).

    — Можешь еще объяснить? С одной стороны слышу, что биткоин анонимен, а с другой — что транзакции все видно.

    — Сами кошельки не привязаны к определенной личности. Вопрос только в том, откуда ты к ним подключаешься. А транзакции все видно, это изначальный принцип системы биткоин. Вообще лишь 2-3% сотрудников полиции шарят в этой теме и знают как использовать публичные данные по транзакциям.

    — Ну, допустим, я хочу отмыть деньги через биткойн. Безопасно ли это? Как лучше провернуть аферу?

    Биток->монеро->биток->кэш через обменник на карту дропу. Это если ты слил 10 миллионов у одного лица, либо по 300 тысяч евро у пятнадцати человек в одном городе. А если 100-200-300 тысяч, не переживай. Врубай американский vpn и отмывай через новосозданный биткоин кошелёк Можешь перегнать через кошелек на американской бирже (poloniex, binance, bittrex). Америка не отвечает нашим и вашим ментам даже через интерпол. А если и отвечает, очень редко и очень долго.

    — А если на какой-нибудь яндекс или озон пэй, а потом на карту дропу только? Без разницы? Можно так?

    — Любой российский банк с потрохами выдаст все данные. Будут дальше копать, где снял деньги. Обязательно придут в гости к дропу. Изымут записи с банкомата, с которого налились деньги — это часть доказухи. В основном изымают за последний месяц-два, больше не хранятся записи. По биллингу возле банкомата будут пробивать, если ты слил от 750 тыс.рублей. В каждом регионе суды решают по-разному.

    — Короче налить лучше не крупными суммами, в разных банкоматах и с закрытым лицом. Подальше от дома. А лучше если бабки отлежатся на биткоин кошельке месяц два, и потом только налить. Так?

    — В одном банкомате. В разных наследишь больше. Не обязательно подальше от дома, ты главное мобильник свой не бери с собой и не выключай, оставив его дома. Лучше сразу! Отлежаться они месяц, выведешь ты их на Сбербанк. В итоге через два месяца с 5% вероятностью менты выйдут на карту дропа и пойдут изымать свежие видеозаписи из банкомата. Плюс все видеозаписи по пути от банкомата к твоему дому. Они хранятся от 3 дней до месяца у частников. Считай, отлежав биткоин ты дашь свежий след ментам.

    — Думал, чем дольше лежат, тем больше менты на это забивают.

    — Например, снял ты в конечном счете бабки в Ноябрске, терпила в Москве. Как только выявят факт снятия, преступление будет считаться оконченным в Ноябрске и материал отправят туда. Поэтому лучше обналичивать бабки терпилы в другой стране.

    — Понял, спасибо за информацию.»

    PS. Работа «инкассатора» которого принимают у банкомата 5-7к/12 часов работы. Рисков дофига, проще поити курьером.