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

  • Перечень недокументированных команд Cisco IOS для bgp-перехвата

    Перечень недокументированных команд Cisco IOS для bgp-перехвата

    «Я считаю, что должен сделать то, что необходимо — для страны в целом и национальной инфраструктуры, в частности. У меня есть информация, что подрывные элементы уже активно занимаются диверсионной деятельностью против Cisco IOS. Я считаю необходимым рассказать всем, что да, Cisco IOS уязвима»
    Майкл Линн

    Дыра, обнаруженная в маршрутизаторах Cisco и обнародованная на хакерской конференции Black Hat 2005 USA, наделала столько шуму, что попала на страницы некомпьютерных газет. О ней много пишут, но все как-то в общих словах никакой конкретики. Говорят о скором конце интернета, пугают захватом управления над магистральными каналами связи, но исходных кодов эксплоита не показывают…

    Все началось с того, что 26 января 2005 года, телекоммуникационный гигант Cisco Systems, Inc. обнародовал сообщение о дыре в своей новой операционной системе Cisco IOS, установленной на миллионах маршрутизаторах ( Cisco Security Advisory: Multiple Crafted IPv6 Packets Cause Reload ). Однако, информация была неполной, технические детали отсутствовали и добыть их легальным путем не удавалось. Cisco явно что-то скрывала, прячась за туманными фразами, которые можно было трактовать и так, и эдак. Компания ISS (Internet Security Systems), специализирующаяся на информационной безопасности, решилась на собственное расследование. Провести его поручили молодому 24 летнему, но довольно продвинутому хакеру Майклу Линну (Michael Lynn). Шеф вызвал его к себе на ковер и спросил:
    «Can you reverse-engineer… can you disassemble Cisco IOS… to find out what their vulnerability is?»
    /* Можешь ли ты дизассемблировать Cisco IOS и разобраться с этой уязвимостью?» */.
    Ну какой бы хакер ответил нет?

    Майкл Линн против Cisco

    Всю ночь Майкл пил кофе изучая Cisco IOS, но все-таки нашел… совсем другую дыру, намного более коварную и могучую. К в общем-то безобидной перезагрузке (reload) добавился захват управления, а это уже серьезно. Представитель ISS немедленно позвонил в Cisco Systems, Inc. и сказал:
    «OK, we aren’t 100 percent sure that we found the same bug that you’re talking about, but it’s important we find out because the one we found has much, much greater impact. You said there’s (the possibility) of a denial-of-service attack. But the one we found is fully exploitable»
    /* Хорошо, мы на 100% не уверены, что мы нашли тот же самый баг, о котором вы говорили, но наш баг, гораздо более серьезен. Вы говорили, что возможен только отказ в обслуживании, но баг, найденный нами, допускает захват управления» */,
    но там не поверили: «You guys are lying. It is impossible to execute shell code on Cisco IOS» /* Ваш парень лжет. Это невозможно выполнить shell-код на Cisco IOS */.

    Майкла снова вызвали на ковер, приказав написать экплоит: «Mike, your new research project is Cisco IOS. Go find out how to exploit bugs on Cisco IOS so we can prove these people wrong» /*Майкл, твой новый исследовательский проект есть Cisco IOS. Вынь да положь рабочий эксплоит для Cisco IOS, чтобы мы могли доказать, что те редиски не
    правы */

    Весь следующий месяц Майкл провел в ожесточенных исследованиях. Но даже имея
    работоспособный эксплоит на руках, ISS так и не смогла убедить телекоммуникационного гиганта, что его марштутизаторы дырявы как старый галош. Только 14 июня (т. е. спустя три месяца!) они выслали инженера, который охарактеризовал себя как «архитектор Cisco IOS«, чтобы закрыть этот вопрос раз и навсегда. Майкл в присутствии адвоката продемонстрировал работу эксплоита, натянув маршутизатор по самые помидоры. Это повергло инженера в глубокий шок, но вместе с тем и развеселило: «Wow, that’s cool» /* Вау! Это круто! */. Инженер ознакомился с черновой версией презентации, которую Майкл планировал продемонстрировать на конференции Black Hat и укатил назад в свою компанию…

    Руководство ISS отнеслось к презентации с большим одобрением: «Hey, you want to go to Black Hat? We’d like you to do it» /* Эй, ты хочешь выступить на Black Hat’е? Это нам нравится! */ и порекомендовало распространить эксплоит среди всех тестеров компании: «Give this to all the sales engineers and to all the pen testers» /* Раздай его всем инженерам по продажам и всем бумажным тестерам */, но Майкл опасался за последствия: «You do realize if you do that, it’s going to leak?» /* Неужели вы не понимаете, что если вы это сделаете, то произойдет утечка? */. Руководство, недоуменно пожав плечами, возразило: «That’s Cisco’s problem» /* Это проблема Cisco */. Короче все шло своим чередом. Презентация готовилась, а конференция приближалась.

    Неожиданно Майкла вздернули на ковер и под угрозой увольнения запретили упоминать факт дизассемблирования Cisco IOS. Затем его пригласил на пиво большой босс из Cisco Systems, Inc. и предложил отложить презентацию… на год. До тех пор пока не будет выпущена новая версия операционной системы. Телекоммуникационный гигант осознавал угрозу, но отчаянно не хотел, чтобы ее осознали другие. Сошлись на том, что вместе с Майклом на сцену поднимается парень из Cisco Systems, Inc., который скажет «пару слов», очевидно, обозвав докладчика лжецом, но Майкла это не беспокоило. Чтобы развязать себе руки он уволился из ISS, решив прочитать доклад во чтобы то ни стало. Кто-то же должен предупредить народ об опасности! И доклад «The Holy Grail: Cisco IOS Shellcode and Remote Execution» был действительно прочитан! Эффект разодрал аудиторию взрывом атомной бомбы. Майклом заинтересовались Военно-воздушные силы, Booz Allen Hamilton, Агентство Национальной Безопасности и конечно же, небезызвестный CERT. Они предложили ему подключиться к проекту по разработке анти-хакерской стратегии выхода из ситуации, но это уже другая история. Вернемся к Cisco Systems, Inc., чья реакция оказалась весьма неоднозначной. Во-первых, при содействии организаторов Black Hat 2005 USA она изъяла текст презентации из материалов конференции и конфисковала сопроводительные компакт-диски, заменив их точно такими же, но без доклада. Во-вторых, она обвинила Майкла во всех смертных грехах и в краже интеллектуальной собственности в том числе.

    Сейчас Майкла ожидает куча судебных исков и разбирательств, а Cisco System, Inc. ведет охоту на всех тех, кто осмелился выложить копию доклада в Интернет. К счастью, всемирная сеть живет по своим законам и любые попытки взять ее под контроль имеют обратный результат. Копии плодятся как кролики.

    Неверно считать, что до презентации оборудование под управлением Cisco IOS считалось неуязвимым. Так думать мог либо некомпетентный специалист, либо коммерсант. Это не первая и не последняя уязвимость в Cisco IOS. Дыры в маршрутизаторах обнаруживались и раньше. За последние пять лет их накопилось около двух сотен, в чем легко убедиться, посетив сайт cisco.com, а ведь это только официально подтвержденные уязвимости! Неподтвержденных, естественно больше.

    Существует множество эксплоитов, в том числе и с переполнением буфера, через который засылается shell-код, берущий маршрутизатор под свой контроль. Их можно найти практически на любом хакерском сайте. В частности, еще три года назад в Cisco IOS обнаружилось переполнение буфера, приводящее к захвату управления и был написан демонстрационный эксплоит продемонстрированный на конференции Black Hat 2002 Asia «Attacking Networked Embedded Systems», детально описанный в 60 номере журнала Phrack «Burning the bridge: Cisco IOS exploits«.

    Так что заслуги Майкла и масштабы угрозы сильно преувеличены. Он не был первопроходцем. Обнаруженная им уязвимость применима только к IPv6, и только к IP-пакетам, пришедшим с локального интерфейса. То есть, взломать свой собственный маршрутизатор можно, а вот чей-то чужой, взятый наугад, уже нет. Вот тебе и власть над магистральными каналами, вот тебе и Интернет, поставленный на колени.

    Вопреки распространенному мнению, рабочий код эксплоита ни на конференции, ни в сопроводительных материалах, так и не был продемонстрирован. Майкл не оставил никаких намеков в каком направлении рыть, но это не помешало остальным хакерам повторить его подвиг, и дыра была открыта заново, однако, о каком бы то ни было практическом использовании говорить слишком рано. IPv6 полностью войдет в нашу жизнь не через год, и не через два, а к тому времени Cisco IOS будет повсеместно или практически повсеместно обновлена. Впрочем, кое-где IPv6 все-таки используется (особенно у аплинков или в Швейцарии, недавно ставшей на первое место по применению IPv6), так что подходящую «дичь» можно найти всегда.

    Дыры в маршрутизаторах — вполне закономерное явление, которого следовало ожидать 

    Еще ни одному разработчику не удалось реализовать TCP/IP без ошибок. Обнаруженные уязвимости — симптом тяжелой болезни. До сих пор маршрутизаторы работали лишь потому, что выпадали из поля зрения хакеров, которым намного более выгодно ковырять Windows/Java/AdobeFlashPlayer, чем возиться с Cisco IOS. Оно и понятно. Традиционные операционные системы у каждого стоят на столе, а вот до маршрутизатора еще дотянуться нужно! Завладеть такой штукой может далеко не каждый, к тому же дизассемблирование Cisco IOS требует высокой квалификации и специальной подготовки. Готовой информации нет никакой и каждый шаг требует кучи исследований. Вместо наезженной дороги перед нами расстилается сумеречная тьма непроходимой местности, усеянной множеством ловушек. Впрочем, не все так сложно, потому как не боги горшки обжигают, и что сделано одним человеком, может быть понято другим. И главное тут  даже не знания.

    Главное — это желание и настойчивость

    В Cisco Systems, Inc. наступила на грабли. И скоро получит в лоб. Они выиграли тактическое сражение, но проиграли стратегическую войну. Попытка удержать информацию под спудом, породила скандал, а скандал породил интерес. Хакеры всколыхнулись и бросились штурмовать Cisco IOS. «Причина, по которой мы это делаем, заключается в том, что кто-то сказал: вы не сделаете этого» — сказал один из них. «Линн не ограничился только идеями, хотя и не сообщил всех деталей. Но он сказал достаточно, чтобы люди могли понять, как им действовать, и они сделали это» — добавил другой.

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

    Архитектурно маршрутизатор под управлением Cisco IOS состоит из материнской платы, процессора, памяти, шины и интерфейса ввода/вывода. Процессоры довольно разнообразны. В зависимости от модели маршрутизатора в них может быть установлен и традиционный Intel, и Motorola, и MIPS. В частности, на дизассемблерных фрагментах, приведенные в презентации Майкла, легко узнаются PowerPC, так что поклонники x86 отдыхают или в срочном порядке изучают ассемблеры для остальных платформ. Вот перечень используемых процессоров в маршрутизаторах Cisco:

    700 — x86 (Intel)
    100x, 160x — MC68360 (Motorola)
    2500 — MC68030 (Motorola)
    2600 — PowerPC MPC860 (Motorola)
    3810 — PowerPC MPC860 (Motorola)
    3600 — MIPS R4700 (IDT)
    4000 — MC68040 (Motorola)
    4500, 4700 — MIPS R4700 (IDT)
    7200 — MIPS R4700 (IDT)
    7200 NPE 200 и выше — MIPS R5000 (IDT и QED)

    Полностью укомплектованный маршрутизатор несёт на своём борту четыре вида памяти:

    а) энергонезависимую перезаписываемую FLASH, содержащую сжатый образ операционной системы (для сжатия используется библиотека zlib);
    б) энергонезависимую перезаписываемую NVRAM со стартовой конфигурацией (startup-config);
    в) энергозависимую перезаписываемую DRAM/SRAM (обычная оперативная память);
    г) энергонезависимую не перезаписываемую постоянную память типа BootROM, содержащую ROMMON код, включающий себя процедуру начального тестирования POST, первичный загрузчик IOS, короче говоря, ПЗУ в обычном его понимании. В усеченных конфигурациях NVRAM может отсутствовать. Подробности можно найти в материале «Cisco Router Forensics».

    Схематичное устройство марштутизатора CISCO

    Если процессор — сердце маршрутизатора, то операционная система — его душа. В оборудовании Cisco Systems, Inc. главным образом используются две операционных системы: CatOS и Cisco IOS (Internet Operation System), причем последняя намного более популярна. Это операционная система реального времени, скомпилированная gcc и подозрительно похожая на BSD. Она основана на монолитной архитектуре ядра, то есть загружаемых модулей нет, во всяком случае пока. По соображениям быстродействия в ранних версиях операционной системы все процессы работали с одним и тем же образом (image) и разделяли единое адресное пространство (share memory space).

    Никакой защиты от воздействий со стороны одного процесса на код/данные, обрабатываемые другим процессом, не предусматривалось, что существенно облегчало написание shell-кода. Так же имелся псевдомногозадачный планировщик не вытесняющего типа «run to completion» (выполнение до завершения). То есть, если в Windows NT операционная система сама переключает потоки без участия со стороны программиста, то в Cisco IOS поток должен явно вызвать системную функцию для передачи управления. А это значит, что shell-код может легко захватить власть над системой (например, используемый Агентством Национальной безопасности бэкдор JETPLOW, о котором нам любезно рассказал Эдвард Сноуден в прошлом году) и не давать себя удалять, впрочем, радоваться по этому поводу слишком рано.

    Начиная с IOS-XR поддерживается и защита памяти между процессами, и вытесняющая многозадачность. (Подробности о структуре Cisco IOS можно почерпнуть из книжки «Inside Cisco IOS software architecture» издательства Cisco Press, которую легко найти в любом книжном магазине или скачать с торрента). Поверх ядра накидано множество программного обеспечения, занимающегося самыми разнообразными задачами — от маршрутизации до «чистки» конюшен, причем, в различных «железках» это программное обеспечение сильно неодинаково. И приложения, и ядро работает с одинаковым уровнем привилегий и имеют доступ ко всем системным ресурсам. Программные файлы представляют собой обыкновенные 32-битные статически слинкованные ELF‘ы с покоцанной отладочной инфой (ELF 32-bit MSB executable, statically linked, stripped).

    Cisco IOS architecture

    Управление маршрутизатором осуществляется через любой внешний порт — от COM-шнурка, до telnet-терминала, работающего на TCP/IP. Интерфейс — командная строка. Среди команд есть как документированные, так и нет (подробнее о недокументированных командах можно узнать у старика Гугла; запрос «undocumented Cisco IOS command» выдает тысячи ссылок, среди которых встречается немало полезных.

    Настоящим подарком для хакеров стала команда «gdb«, вызывающая встроенный отладчик и поддерживающая следующие подкоманды:

    gdb
        debug     PID /* не реализовано */
        examine  PID /* отладка процесса с указанным PID */
        kernel            /* отладка ядра, работает только с консоли */

    Однако, прежде чем использовать отладчик его необходимо скомпилировать. Идем на http://www.gnu.org/software/gdb/download/, берем копию посвежее или, наоборот, по старее (предпочтительно использовать gdb-4.18 как наиболее протестированную) и говорим:

    mkdir m68k-cisco
    ../configure —target m68k-cisco
    make

    В результате мы получим двоичный файл для платформы m68k. Для остальных платформ компиляция осуществляется аналогичным образом. Теперь можно начинать отладку! Консоль в это время будет нефункциональна, а весь обмен с отладчиком пойдет через его собственный отладочный протокол, описанный в исходном файле remote.c

    На маршрутизаторе устанавливается серверная часть отладчика, а на терминале — клиентская. Причем отладка ядра (подкоманда kernel) возможна только с консоли.

    Дадим команду «gdb examine 18«, где «18» – идентификатор отлаживаемого процесса (в данном случае «logger«). Подробнее обо всем этом можно прочитать на сайте команды XFocus: http://www.xfocus.net/articles/200307/583.html) Основные отладочные команды перечислены ниже:

    команды, поддерживаемые серверной частью отладчика gdb

    Для отладки желательно иметь символьную информацию, однако, Cisco IOS — это закрытая система с закрытыми спецификациями (ну, не такими уж и закрытыми учитывая, что это порт BSD, унаследовавший родимые пятна багов в zlib, ssh и SNMP) и символьной информации не достать (во всяком случае через легальные каналы), тем не менее корпеть над дизассемблированием дампа не придется.

    В мае 2004 года корпоративная сеть Cisco Systems, Inc. была взломана и исходные тексты операционной системы Cisco IOS 12.3, 12.3t попали в руки хакера по кличке franz, который распространил через IRC небольшую часть исходников ~2.5 Мб в качестве доказательства (самое интересное, что именно в этой месте Майкл обнаружил баг, подозрение усиливается тем фактом, что за ночь дизассемблировать Cisco IOS совершенно невозможно, а именно столько потребовалось ему на анализ).

    К настоящему времени исходные тексты просочились в сеть и теперь их можно найти на торрентах, полный объем архива составляет 800 Мб. Впрочем, отсутствие исходных текстов — это еще не преграда. IDA Pro в руки и айда.

    Прогружаем JETPLOW или где и как искать дыры в Cisco IOS

    Приемы поиска переполняющихся буферов в Cisco IOS мало чем отличается от других операционных систем, но есть в ней и свои особенности. Стек используется крайне редко, в основном она налегает на кучу. По сообщениям Cisco Systems, Inc., разрушение кучи — наиболее распространенный баг её маршрутизаторов. Но вот о том, что причиной разрушения являются переполнения динамических буферов она предпочитает умолчать. Так что дыры есть!

    Методика переполнения кучи подробно описана в книге «hacker shellcoding uncovered» и в статье «Once upon a free()» из 57 номера Phrack’а. В Cisco IOS все блоки памяти объединены в двунаправленный список следующего типа:

    foo->prev->next = foo->next;
    foo->next->prev = foo->prev;

    организация кучи в Cisco IOS

    При освобождении памяти выполняется следующий код, исключающий текущий блок из цепочки занятых блоков:

    *prev=*next;
    *(next+20) = *prev;

    Результатом этой операции становится запись в ячейки *prev и *(next+20) значений *next и *prev. Если в результате переполнения нам удастся подменить поля prev и next мы соврем банк, получив возможность писать произвольные данные/код в любое выбранное место.

    Эта техника (кстати говоря, разработанная хакерами FX и KIMO), получила название «Uncontrolled pointer exchange«, но прежде чем ей воспользоваться необходимо познакомится со структурой кучи. Она довольно проста:

    структура кучи Cisco IOS

    В начале идет так называемый магический номер (MAGIC), равный AB1234BCh, а в
    самом конце — Красная Зона (REDZONE), равная FD1001DFh. Обе выполняют охранную функцию и затирать их нельзя. Значение указателя prev проверяется перед освобождением и потому должно быть валидно.

    В упрощенном виде проверка выглядит так:

    if (next_block->prev!=this_block+20) abort();

    Еще проверяется значение поля Size + Usage, старший бит которого определяет занятость блока (0 — свободен, 1 — занят), что создает проблемы при строковом переполнении, поскольку мы не можем располагать здесь нули и минимальное значение, которое мы можем получить получается слишком большим (7F010101h), однако, тут есть обходной путь. Поскольку, переполнение разрядной сетки никем не контролируется, использование значений типа 7FFFFFFFh дадут ожидаемый результат.

    Остальные поля никак не контролируются и могут содержать любые значения. Короче говоря, написание shell-кода вполне возможно. Операционная система Cisco IOS использует статические адреса (что есть хорошо), но они меняются от одного билда к другому, а это уже плохо. Поэтому, прежде чем атаковать свою жертву, необходимо тем или иным способом определить версию Cisco IOS, иначе JETPLOW сдохнет ещё даже не прогрузившись в устройство. Это можно сделать через CDP или SNMP.

    Ещё хуже, что Cisco IOS контролирует целостность кучи и автоматически перезагружает маршрутизатор, если цепочка ссылок (chunk linkage) оказывается разрушенной. За это отвечает специальный фоновой процесс, в зависимости от загрузки маршрутизатора пробуждающиеся каждые 30 или 60 секунд. Именно он проверяет магический номер и красную зону. Так что shell-коду отпущено совсем немного времени. Конечно, 30 секунд – это целая вечность для процессора, за которую можно не только внедриться в целевое железо, но и заразить множество соседних маршрутизаторов. Хакеры FX и KIMO предложили несколько решений этой проблемы, но все они оказались нежизнеспособными. Майкл был первым, кому удалось нащупать правильный путь, простой как всё гениальное.

    Оказалось, процедура abort(), выполняющая перезагрузку, использует специальный флаг-семафор, предотвращающий повторное вхождение (по такому же принципу устроена защита от многократного нажатия Alt-Ctrl-Del в Windows NT). Если мы установим его в единицу, функция abort() тут же выполнит return без всякий перезагрузки. Ниже приведен ее ключевой фрагмент (впрочем, маршрутизатор всё равно будет перезагружен через некоторое время, ведь
    куча разрушена, так что shell-коду надо спешить).

    stwu    sp, var_18(sp)
    mflr     r0
    stmw   r29, 0x18+var_C(sp)
    stw      r0, 0x18+arg_4(sp)
    lis        r9, (crashing_already_ >> 16)
    lwz      r0, (crashing_already_ & 0xFFFF)(r9)
    cmpwi r0, 0
    bne     loc_80493D18       # return

    Ни одна из версий Cisco IOS, работающих на платформе M68K, не использует аппаратные механизмы контроля за памятью, предоставляемые MMU (Memory Management Unit – Блок Управления Памятью), поэтому запись в кодовый сегмент проходит вполне беспрепятственно. Для защиты от непреднамеренного разрушения используются контрольные суммы. Каждые 30 или 60 секунд специальный процесс сканирует кодовый сегмент на предмет проверки его валидности и перезагружает маршрутизатор, если контрольные суммы не совпадают с расчетными. Однако, против преднамеренной модификации эта «защита» уже не срабатывает, поскольку контрольные суммы легко пересчитать и подправить.

    Это можно сделать, например, так:

    // (c) freedemon
    #include <stdio.h>
    unsigned char const hexchars[] = «0123456789abcdef»;
    char tohexchar (unsigned char c)
     {
        c &= 0x0f; return(hexchars[c]);
     }
    int main(int argc, char **argv)
     {
         unsigned char checksum; int count; char *command; char ch;
         if (argc <= 1) exit(1); printf(«gdb protocol command: «);
         command = argv[1]; putchar (‘$’); checksum = count = 0;
         while ((ch = command[count]))
          {
            putchar(ch); checksum += ch; count++;
          }
      putchar(‘#’); putchar(tohexchar(checksum >> 4));
      putchar(tohexchar(checksum)); putchar(‘n’);
    }

    На платформе MIPS операционная система Cisco IOS ведет себя иначе. На стадии инициализации она перепрограммирует MMU, запрещая модификацию кодового сегмента. Любая попытка записи в эту область вызывает крах системы и последующую перезагрузку маршрутизатора. Против непреднамеренной модификации этот механизм действует очень хорошо, но здравомыслящий хакер, после пятого пива, сможет легко его обойти. Идея заключается в отображении одной из физических кодовых страниц на область данных в записываемый регион. Аналогичный трюк, кстати говоря, используется и для модификации ядра Windows NT. В частности, он применяется во многих брандмауэрах и утилитах Марка Руссиновича.

    Сноуден отдыхает

    Вот три основных источника данных для поиска переполняющихся буферов: исходные тексты, обновления firmware и дамп памяти. Исходные тексты хороши тем, что их легко читать, но они не дают никакой информации о реализации системы на конкретном маршрутизаторе, к тому же их добыча вообще говоря не совсем законна.

    Firmware как правило упакован и перед дизассемблированием его необходимо распаковать, причем сделать это не так-то просто, поскольку Cisco Systems, Inc. слегка покалечила заголовок. Майкл использовал WinRAR, другие хакеры используют zlib и пишут свой распаковщик самостоятельно.

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

    Outro

    Операционная система Cisco IOS чрезвычайно широко распространена: она встречается и в коммутаторах, и в маршрутизаторах, и в точках доступа, однако, не стоит думать, что обнаружив новую дыру мы сможем взять все эти устройства под свой контроль, ведь в них используется различные процессоры и различные версии Cisco IOS, а потому с каждой железкой приходится воевать индивидуально. Хорошая новость — в отличии от серверов и персональных компьютеров, далеко не весь парк оборудования под управлением Cisco IOS позволяет обновлять прошивку, а даже если и позволяет, далеко не каждый администратор об этом задумывается всерьез.

  • Бэкдоры в маршрутизаторах и коммутаторах Cisco, Huawei и Juniper для bgp-перехвата

    Бэкдоры в маршрутизаторах и коммутаторах Cisco, Huawei и Juniper для bgp-перехвата

    Каталог включает жучки для межсетевых экранов Cisco, Huawei и Juniper, серверов Dell PowerEdge, SIM-карт, кабелей USB, LAN и VGA, прототип жучка для iPhone и т. д. Помимо жучков, в каталог входит оборудование, предназначенное для прослушки.

    маршрутизаторы Cisco по прежнему уязвимы

    Германское издание Spiegel опубликовало 48 страниц каталога «жучков» АНБ, предназначенных для внедрения и перехвата данных в оборудовании известных американских и азиатских производителей.

    Каталог датирован 2008-2009 г.г. Каталог включает программные жучки для межсетевых экранов Cisco (линейка PIX 500, модели ASA 5505, 5510, 5520, 5540 и 5550), Huawei (линейки Eudemon 200, 500 и 1000) и Juniper (Netscreen ns5xt, ns25, ns50, ns200, isg1000, nsg5t, SSG 320M, 350M, 520, 520M и 550M).

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

    В каталоге также представлены аппаратные жучки для USB- и LAN-кабелей (перехватывают данные), VGA-кабелей (позволяют перехватывать видеосигнал, идущий с ПК на монитор), жучки для компьютеров и прочих вычислительных систем на базе Windows, Linux, FreeBSD и Solaris, мобильных устройств на Windows Mobile, а также для серверов Dell PowerEdge (1950, 2950) и HP ProLiant 380DL G5, системы имитации базовых станций сотовой связи и модифицированные телефоны Samsung и других производителей с интегрированной системой прослушки.

    Разработкой всех жучков занимается подразделение ANT. Сотрудники АНБ могут заказывать у него жучки, которые им необходимы для слежки. Большинство жучков бесплатны, однако есть и платные — стоимость варьируется до $250 тыс. (столько стоит решение для развертывания готовых мобильных сетей).

    Некоторые жучки находятся в разработке: например, программный жучок для Apple iPhone. Он должен позволить удаленно записывать и извлекать файлы со смартфона, получать список SMS-сообщений, список контактов, доступ к голосовой почте, микрофону, камере и информации о текущих координатах абонента. Управление жучком предлагается осуществлять с помощью SMS-команд или посредством GPRS-соединения.

    Список жучков и оборудования

    RAGEMASTER — жучок для перехвата видеосигнала на монитор
    JETPLOW — жучок для межсетевых экранов Cisco
    HALLUXWATER — жучок для межсетевых экранов Huawei
    FEEDTROUGH — жучок для межсетевых экранов Juniper
    GOURMETTROUGH — жучок для межсетевых экранов Juniper
    SOUFFLETROUGH — жучок для межсетевых экранов Juniper
    DROPOUTJEEP — жучок для Apple iPhone (разрабатывается)
    GOPHERSET — жучок для SIM-карт
    MONKEYCALENDAR — жучок для SIM-карт
    TOTECHASER — жучок для мобильного телефона Thuraya 2520
    TOTEGHOSTLY 2.0 — жучок для устройств на базе Windows Mobile
    PICASSO — комплект модифицированных мобильных телефонов Samsung и Eastcom
    CROSSBEAM — GSM-модуль
    CANDYGRAM — имитатор базовой станции сети GSM
    CYCLONE Hx9 — решение для развертывания сети сотовой сети
    EBSR — оборудование для сотовой связи
    ENTOURAGE — оборудование для сотовой связи
    GENESIS — модифицированный мобильный телефон
    NEBULA — решение для развертывания сети сотовой сети
    TYPHON HX — оборудование для сотовой связи
    WATERWITCH — устройство для выявления координат мобильных телефонов
    CTX4000 — портативный радар
    LOUDAUTO — передатчик звука
    NIGHTWATCH — портативный компьютер для сканирования сигналов
    PHOTOANGLO — система радаров
    TAWDRYYARD — передатчик
    GINSU — жучок для вычислительных систем на базе Windows
    IRATEMONK — жучок для персональных компьютеров
    SWAP — жучок для персональных компьютеров
    WISTFULTOLL — жучок для персональных компьютеров
    HOWLERMONKEY — передатчик
    JUNIORMINT — мини-ПК
    MAESTRO-II — мини-ПК
    SOMBERKNAVE — жучок для локальных сетей
    TRINITY — мини-ПК
    HEADWATER — жучок для роутеров Huawei
    SCHOOLMONTANA — жучок для роутеров Juniper
    SIERRAMONTANA — жучок для роутеров Juniper
    STUCCOMONTANA — жучок для роутеров Juniper
    DEITYBOUNCE — жучок для серверов Dell
    GODSURGE — жучок для серверов Dell
    IRONCHEF — жучок для серверов HP
    SURLYSPAWN — передатчик
    COTTONMOUTH-I — жучок для соединений USB
    COTTONMOUTH-II — жучок для соединений USB
    COTTONMOUTH-III — жучок для соединений USB
    FIREWALK — жучок для соединений LAN
    NIGHTSTAND — оборудование связи

    Жучки АНБ созданы таким образом, чтобы они могли продолжать работать после перезагрузки и даже обновления прошивки оборудования. Внедрение осуществляется с помощью различных уязвимостей, технических интерфейсов, BIOS, загрузочных секторов и т. п.

    Вендоры отреагировали на публикацию Spiegel, отрицая наличие любых форм сотрудничества со спецслужбами. Старший вице-президент, глава по безопасности Cisco Джон Стюарт (John Stewart) заявил, что компания не сотрудничает с государственными органами и не помещает в свое оборудование бэкдоры. Он также сказал, что в настоящее время экспертам Cisco неизвестны какие-либо уязвимости в решениях компании, которые могли быть использованы для внедрения бэкдоров.

    Российский офис Cisco на вопросы не ответил.

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

  • Celer Bridge процессинг или Amazon опять теряет контроль над своим IP-пространством из-за перехвата сессии BGP

    Celer Bridge процессинг или Amazon опять теряет контроль над своим IP-пространством из-за перехвата сессии BGP

    Поговорим о том, как три часа бездействия сетевых инженеров Amazon стоили держателям криптовалюты в $235 000.

    Amazon недавно потерял контроль над своими IP-адресами, которые он использует для предоставления облачных сервисов, и потребовалось более трех часов инженерам электросвязи, чтобы восстановить контроль над сетью. Эта ошибка позволила похитить 235 000 долларов США в криптовалюте у пользователей одного из партнёров Amazon.

    Неизвестные захватили контроль примерно над 256 IP-адресами посредством перехвата сессии BGP, используя известные уязвимости основного интернет-протокола междоменной маршрутизации в глобальной сети Интернет. BGP — это протокол, который организации, маршрутизирующие трафик, известные в сети как автономные системы, используют для взаимодействия с другими такими же сетями или системами ASN. Несмотря на свою решающую функцию по маршрутизации больших объемов данных по всему миру в режиме реального времени, BGP по-прежнему в значительной степени полагается на доверие, что позволяет сетям и системам отслеживать, какие IP-адреса по праву принадлежат каким ASN.

    Случай ошибочной идентификации

    В прошлом месяце автономная система 209243, принадлежащая британскому сетевому оператору Quickhost.uk, внезапно начала объявлять через bgp, что ее инфраструктура является подходящим и наилучшим путём для других ASN для доступа к так называемому блоку IP-адресов /24, принадлежащему AS16509, одному из как минимум трёх ASN, которыми управляет Amazon. Захваченный блок включал 44.235.216.69 IP-адрес, на котором размещен cbridge-prod2.celer.network, поддомен, отвечающий за обслуживание критического пользовательского интерфейса смарт-контрактов криптовалютной биржи Celer Bridge.
    17 августа неизвестные использовали bgp-перехват, чтобы сначала получить сертификат TLS для cbridge-prod2.celer.network, поскольку им удалось продемонстрировать центру сертификации GoGetSSL в Латвии, что они контролируют этот субдомен. Имея сертификат, неизвестные затем разместили свой собственный смарт-контракт в том же домене и ждали посещений от людей, пытающихся получить доступ к реальной странице Celer Bridge cbridge-prod2.celer.network.
    В общей сложности подставной контракт унес с 32 учетных записей биржи в общей сложности 234 866,65 долларов США, согласно отчету охранной фирмы SlowMist и отчету группы анализа угроз Coinbase.
    потери криптобиржы Celer Bridge из-за перехвата сессии BGP
    потери криптобиржы Celer Bridge из-за перехвата сессии BGP

    Что думает по этому поводу команда Coinbase

    Фишинговый контракт очень похож на официальный контракт Celer Bridge, поскольку имитирует многие его атрибуты. Для любого метода, явно не определенного в фишинговом контракте, он реализует структуру прокси, которая перенаправляет вызовы на легальный контракт Celer Bridge. Прокси-контракт уникален для каждой цепочки и настраивается при инициализации. Команда ниже иллюстрирует содержимое слота хранилища, отвечающего за конфигурацию прокси-контракта фишингового контракта:
    Хранение прокси-контракта для фишинговых смарт-контрактов
    Фишинговый контракт крадет средства пользователей двумя способами:
    • Любые токены, одобренные жертвами фишинга, удаляются с помощью специального метода с 4-байтовым значением 0x9c307de6().
    • Фишинговый контракт отменяет следующие методы, предназначенные для немедленной кражи токенов жертвы:
    • send() — используется для кражи токенов (например, USDC)
    • sendNative() — используется для кражи собственных активов (например, ETH)
    • addLiquidity() — используется для кражи токенов (например, USDC)
    • addNativeLiquidity() — используется для кражи собственных активов (например, ETH)
    Ниже приведен пример фрагмента кода, полученного методом реверс-инжиниринга, который перенаправляет активы в кошелек человека, осуществившего BGP-перехват:
    Фрагмент фишингового смарт-контракта

    Привет, Amazon? Где ваш сетевой инженер?

    Как показано в зеленых секциях в верхней части этого графика, подготовленного Дугом Мэдори из компании по мониторингу сети Kentik, мошенническое объявление BGP началось 17 августа около 19:39 UTC времени и за считанные секунды префикс распространился глобально. По неизвестным причинам объявление префикса было отозвано в 20:22 только для того, чтобы вернуться и быть отозвано еще три раза в течение следующих двух часов.
    BGP-перехват Celer Bridge
    В объявлении маршрута по BGP утверждалось, что адрес 44.235.216.0/24 исходит от AS14618, одного из других ASN Amazon, и должен быть маршрутизирован через AS20943 Quickhostuk. Новое объявление BGP, подобное этому, которое за считанные секунды заставляет весь Интернет маршрутизировать IP-адреса Amazon через Quickhostuk ASN, — это событие, которое должно было вызвать немедленное расследование со стороны облачного провайдера. По причинам, которые остаются неизвестными, Amazon не начал объявлять правильный путь для своего блока /24 до 23:07 (как указано фиолетовым цветом на графике выше), более чем через три часа после начала мошеннических объявлений маршрутной информации BGP.
    «Ключевой деталью, которая отличала бы это предупреждение от появления просто еще одного узла Amazon, было бы то, что новый восходящий поток был виден 100% точек обзора BGP», — написал Мадори в четверг. «Другими словами, этот новый префикс Amazon эксклюзивно передавался этим относительно неизвестным хостинг-провайдером. Это должно было вызвать удивление у команды Amazon NetOps».
    Представители Amazon не ответили ни на одно из трех электронных писем с просьбой прокомментировать этот пост, отправленных за последние девять дней. После публикации этого сообщения представитель Amazon заявил, что все несколько адресов назначения в запросе на комментарий были отключены, и что компания не игнорирует электронные письма.
    Представители Quickhostuk не ответили на два электронных письма с вопросом, как и откуда появились мошеннические объявления маршрутной информации BGP. 

    Подобное уже случалось ранее

    Это не первый случай, когда BGP-атака с целью перехвата IP-адресов Amazon заканчивается огромными потерями криптовалюты. В 2018 году невероятно похожее событие произошло с сервисом системы доменных имен Amazon Route 53. В результате атаки у владельцев счетов MyEtherWallet.com было украдено около 150 000 долларов США в криптовалюте. Украденная сумма, вероятно, была бы выше, если бы неизвестные получили бы доверенный браузеру TLS-сертификат вместо самописного сертификата, который требовал от жертв нажатия на предупреждение.

    После атаки 2018 года Amazon добавила более 5000 своих IP-префиксов к так называемым ROA (разрешения на происхождение маршрута), которые представляют собой общедоступные документы, в которых указывается, какие ASN имеют право объявлять какие IP-адреса. Этот шаг обеспечил некоторую защиту от RPKI (инфраструктуры открытых ключей ресурсов), которая использует цифровые сертификаты для подключения ASN к их законным IP-адресам.
    Этот анализ показывает, что для обхода защиты неизвестные в прошлом месяце добавили AS16509 и более конкретный маршрут /24 в так называемый AS-SET, индексированный в ALTDB, бесплатном реестре для автономных систем, в котором можно публиковать свои политики маршрутизации BGP.

    irrd.log-20220817.gz:31106270-ADD 96126
    irrd.log-20220817.gz:31106280-
    irrd.log-20220817.gz:31106281-as-set: AS-SET209243
    irrd.log-20220817.gz:31106306-descr: quickhost set
    irrd.log-20220817.gz:31106332-members: AS209243, AS16509
    irrd.log-20220817.gz:31106362:mnt-by: MAINT-QUICKHOSTUK
    irrd.log-20220817.gz:31106392-changed: crussell()quickhostuk net 20220816
    irrd.log-20220817.gz:31106438-source: ALTDB

    irrd.log-20220817.gz:31147549-ADD 96127
    irrd.log-20220817.gz:31147559-
    irrd.log-20220817.gz:31147560-route: 44.235.216.0/24
    irrd.log-20220817.gz:31147588-descr: route
    irrd.log-20220817.gz:31147606-origin: AS16509
    irrd.log-20220817.gz:31147626:mnt-by: MAINT-QUICKHOSTUK
    irrd.log-20220817.gz:31147656-changed: crussell()quickhostuk net 20220816
    irrd.log-20220817.gz:31147702-source: ALTDB

    AS-SET — это регистрационная запись, определяющая допустимый набор номеров ASN, с которыми провайдер может взаимодействовать в глобальной сети.
    Анализируя, почему этот приём не смог предотвратить угон bgp-сессии в прошлом месяце, Мадори осторожно отметил, что RPKI предназначен для ограничения воздействия непреднамеренных или случайных перехватов bgp из-за утечек маршрутизации или неправильных конфигураций, а не в качестве механизма безопасности для предотвращения мошенничества и угона bgp-сессии со стороны мотивированных нарушителей.
    Он написал: «Тем не менее, это все равно могло бы помочь, если бы ROA было настроено по-другому. В нынешнем виде ROA для рассматриваемого адресного пространства довольно либерален. По сути, три разных ASN Amazon (16509, 8987 и 14618) могут объявлять части этого адресного пространства с префиксами размером от /10 до /24. Посмотрите выходные данные веб-интерфейса Routinator:…»

    Альтернативным подходом к созданию ROA было бы сделать то, что сделали другие сети, такие как Cloudflare и Comcast: установить источник и максимальную длину префикса, чтобы они были идентичны тому, как маршрутизируется префикс. Хотя этот подход влечет за собой накладные расходы, связанные с необходимостью обновлять ROA каждый раз при изменении маршрута, он также оставляет мало места для ввода в обращение альтернативных версий маршрута.
    Честно говоря, Amazon — далеко не единственный облачный оператор, потерявший контроль над своими IP-адресами в результате атаки BGP. Уязвимость BGP к неуклюжим ошибкам в настройке и откровенному мошенничеству очевидна уже более двух десятилетий. Отсутствие безопасности в конечном итоге является общеотраслевой проблемой, которую Amazon не в состоянии решить в одиночку.
    Но как облачный провайдер первого уровня, который в настоящее время пострадал как минимум от двух перехватов BGP, которые стоили денег нижестоящим пользователям, Amazon следует ожидать, что он признает это событие, объяснит, почему он ждал более трех часов, чтобы принять корректирующие меры, и наметит план. для предотвращения подобных случаев в будущем. Вместо того, чтобы хранить молчание по радио, как это делалось в течение последних пяти недель, Quickhostuk также должен объяснить этот инцидент и объяснить, почему его ASN опубликовал такое проблемное объявление.
  • Бэкдоры в маршрутизаторах Cisco позволяют перехватить сессию BGP

    Бэкдоры в маршрутизаторах Cisco позволяют перехватить сессию BGP

    Бэкдоры, которые Cisco и другие компании, занимающиеся сетевым оборудованием, оставляют для полиции и спецслужб в своих маршрутизаторах и коммутаторах, в очередной раз стали темой обсуждения на конференции по компьютерной безопасности Positive Hack Days.
    bgp hijack against cisco ios

    На этот раз эксперт IBM Престон Трипп рассказал собравшимся, что такие бэкдоры все еще могут выдавать информацию о пользователях дроповодам и помогать им отслеживать криптовалютную или банковскую сетевую активность. Согласно американским законам, наличие “черных ходов”, которыми могут воспользоваться полицейские при наблюдении за подозреваемыми, является обязательным требованием при производстве сетевых устройств и их продаже поставщикам услуг Интернета.


    Престон продемонстрировал, насколько легко “законные” бэкдоры в Cisco IOS могут быть использованы финансовыми воротилами на рынке криптовалют. По словам эксперта, при получении доступа к маршрутизатору попытки входа не блокируются даже после многократных неудач, а администратор сети не получает о них никакой информации. Получив доступ к устройству таким образом можно также управлять всеми текущими BGP-сессиями этого устройства, а также использовать GRE-сниффинг.

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

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

    В ответ на выступление Престона компания Cisco заявила о том, что она в курсе его исследований и принимает описанные экспертом возможности во внимание. К чести Cisco, эта фирма на данный момент является единственным производителем сетевого оборудования, который не скрывает от общественности принципов работы системы “полицейских бэкдоров” в своих устройствах.

  • Как перехватить BGP-сессию за 60 секунд

    Как перехватить BGP-сессию за 60 секунд

    Сегодня маршрутизаторы Cisco Systems лежат в основе всемирной паутины. Они достаточно часто встречаются в ходе проникновения в системы телекоммуникационных компаний, причем с привилегированным доступом level 15, что позволяет использовать эти роутеры в качестве сервера обхода bgp с подменой маршрута для дальнейшего развития событий по сценарию bgp spoofing с реализацией bgp hijacking на сервисы криптовалют. Да, слабые места в Cisco IOS присутствуют, как и в любом другом ПО, но лишь немногие специалисты умеют пользоваться недостатками самого IOS, используя Remote Buffer Overflow…

    Как идентифицировать маршрутизатор в Сети

    Для начала проанализируем общее состояние дел с безопасностью Cisco IOS. Сканеры уязвимостей делают большую работу по выявлению устаревших версий IOS. Это хорошо работает для определения, пропатчено устройство или нет, но нисколько не помогает ливщику на банковские счета, который не имеет за плечами большого опыта исследований Cisco IOS. За редкими исключениями, остается небольшое количество служб, которые обычно используются во внутрибанковской сети, и доступ к ним из общей Сети интернет, как правило, запрещен. Например, это могут быть SNMP, Telnet, SSH, HTTP и HTTPS. Но на практике найти маршрутизатор Cisco в мутной воде всемирной паутины с открытыми портами во внешний мир на сегодняшний день достаточно легко. Ты также можешь найти запущенную службу Finger, обеспечивающую взаимодействие служб мультимедиа протоколов, таких как SIP и H.323, но для получения удаленного доступа к маршрутизатору и последующего перевода денежных средств клиентов банка на счета своих дропов следует тестировать преимущественно первые пять служб.

    Первая служба, которую я хочу обсудить, это SNMP. Как ни странно, SNMP часто оставляют без присмотра на большом числе маршрутизаторов. Причиной этого может быть общее непонимание того, чем SNMP является на самом деле. Simple Network Management Protocol предоставляет широкий спектр информации в большом наборе систем в стандартном формате. Независимо от того, кто производитель вашего коммутатора или маршрутизатора, почти любой клиент SNMP-мониторинга программного обеспечения будет работать с этим устройством, при условии, что SNMP включен и настроен.

    Многие банковские админы не понимают, что SNMP предоставляет слишком широкий спектр информации о работающем устройстве, а записи сообществ SNMP могут быть использованы для получения полного контроля над этим устройством. В случае с Cisco IOS записываемые сообщества SNMP могут быть использованы для выгрузки или загрузки и запуска альтернативной конфигурации устройства, либо изменения его текущей конфигурации.

    Маршрутизатор с включенной службой Telnet и с тривиальным паролем может быть угнан почти мгновенно через записи сообщества SNMP. Я обычно ищу маршрутизаторы при помощи SNMP и старого доброго сканера nmap. Да-да, именно с помощью него Тринити взломала во второй серии Матрицы сеть электростанции, и именно его так любят использовать в АНБ, о чем на неоднократно рассказывал бывший сотрудник Booz Allen Hamilton Эдвард Сноуден. В дистрибутив nmap включены два интересных сценария для работы с SNMP — это SNMP-sysdescr.nse и snmp-brute.nse.
    Для удобства использования я немного изменил первый таким образом, чтобы полученный отклик с описанием устройства сразу сохранялся в файле ip_with_snmp.txt Итак, а что же мы будем сканировать? Например, можно просканировать своего провайдера, предварительно узнав все принадлежащие ему IP-префиксы, просто зайдя по адресу bgp.he.net и скопировав все циферки из раздела Prefixes v4 в файл my_telecom.txt. Командная строка для запуска nmap будет выглядеть следующим образом:

    nmap -sU -n -P0 -v -p 161 --script=snmp-sys.nse -iL my_telecom.txt

    • -sU — ведь правда, что служба SNMP работает по UDP протоколу, поэтому мы и задействуем только UDP-сканирование;
    • –р 161 — через 161-й порт;
    • -v — это я хочу видеть ход процесса на экране;
    • -n — не определять имена DNS для найденных хостов (и вправду, сейчас они мне совершенно ни к чему);
    • -P0 — не пинговать хосты в процессе сканирования.
    Я обычно пользуюсь консольной версией, потому как GUI к ней нещадно зависает при таких объемах сканирования. Просто создай .bat-файл в каталоге, где лежит nmap с этой командной строкой, и запусти его.

    Все эти опции заметно убыстряют процесс предварительного сканирования. Итак, в результате мы получим что-то вроде этого:


    172.154.10.34 Cisco IOS Software, c7600rsp72043_rp Software (c7600rsp72043_rp-ADVIPSERVICESK9-M), Version 12.2(33)SRD2, RELEASE SOFTWARE (fc2)
    Technical Support: http://www.cisco.com/techsupport
    Copyright (c) 1986-2009 by Cisco Systems, Inc.
    Compiled Wed 20-May-09 2 System uptime: 117 days, 7:11:43.12 (1013470312 timeticks)

    Кинуть лоха

    И спрашивается, что нам с этой байдой делать дальше? А вот что — натравливаем на найденную Cisco наш старый добрый Metasploit. В принципе, есть два варианта использования: можно пользоваться Metasploit Framework, а можно использовать автоматический анализатор Metasploit Pro или Community версии. Для старых версий операционной системы Cisco IOS известно несколько уязвимостей HTTP. Две из них, о которых сейчас пойдет речь, относятся к уязвимостям типа «Обход аутентификации». Первая уязвимость CVE-20000945 относится к отсутствию проверки подлинности в Interface Manager Cisco IOS устройств. Этот баг позволяет не прошедшим проверку подлинности получить привилегированный доступ к устройству с Cisco IOS через веб-интерфейс.

    Вторая уязвимость CVE-02001-0537 позволяет обойти проверку подлинности, указав уровень проверки подлинности выше, чем «15» в запросе HTTP. Это также предоставляет привилегированный доступ к устройству через веб-интерфейс. С открытым исходным кодом Metasploit Framework в настоящее время обеспечивает оба модуля для эксплуатации этих уязвимостей:
    1. /auxiliary/scanner/http/cisco_device_manager
    2. /auxiliary/scanner/http/cisco_ios_auth_bypass
    Metasploit Express и Metasploit Pro автоматически распознают Cisco IOS HTTP-службу во время сканирования. Проверь эти два недостатка и используй их для получения доступа к рабочей конфигурации устройства.
    В дополнение к этим двум известным уязвимостям, пароли устройства также могут быть найдены путем перебора с использованием службы HTTP. Протокол HTTP является довольно быстрым по подбору пароля по сравнению с медленными терминальными службами Telnet и SSH. Metasploit Express и Metasploit Pro автоматически скопируют рабочую конфигурацию устройства после успешного подбора пароля к службе HTTP устройства Cisco IOS. Metasploit Pro и Metasploit Framework (равно как и сканер nmap в комплекте со сценарием snmpbrute.nse) включают в себя модуль SNMP brute force tool, написанный в качестве вспомогательного модуля, который может использовать словарь общих паролей для идентификации действительных сообществ маршрутизатора и определяет, являются ли они только для чтения, или для чтения и записи. В дополнение к основному модулю подбора пароля к SNMP, Metasploit теперь содержит модуль, который использует сообщества SNMP, доступные для записи, выгрузки/загрузки и запуска альтернативной конфигурации устройства. Вот на этом и остановимся подробнее. Запускаем наш любимый Metasploit Framework:

    msf > msfrpcd –S –U msf –P 123

    Сначала находим с помощью SNMP Community Scanner имя readwrite сообщества. Далее для выгрузки конфигурации из горячей киски выбираем конфиг. Далее настраиваем TFTP-сервер. Никакого NAT — сообщенный киске IP-адрес, куда выгружать конфиг, должен быть белым.

    И, собственно, получаем сам файл конфигурации.

    То же самое можно проделать с использованием Metasploit Express и Metasploit Pro — они используют оба эти модуля для автоматического захвата файла конфигурации уязвимых устройств с Cisco IOS. Во время сканирования подбор паролей к SNMP-сообществам запускается в фоновом режиме с небольшим списком слов из общего словаря. Если любой из этих паролей работает, и если хотя бы одно сообщество обнаружено как записываемое, тогда Metasploit Pro настроит локальную службу TFTP и скачает файл конфигурации этого устройства.

    Протокол SNMP теперь также интегрирован в средства интеллектуального подбора паролей, компонент которых использует список наиболее популярных имен сообществ в дополнение к динамически генерируемым паролям. Этот список получен в результате исследовательского проекта по изучению паролей веб-форм и встроенных файлов конфигурации. Так, проанализировав результаты, мы определили, какие пароли чаще всего используются, в том числе для SNMP-сообществ. Результаты этого проекта были удивительны: наиболее широко используются пароли «public@ES0» и «private@ES0», как это описано в примере конфигурации в документации Cisco.

    Последние два протокола, которые хотелось бы обсудить, это Telnet и SSH. Эти протоколы и обеспечивают доступ к удаленной командной оболочке на целевом устройстве под управлением Cisco IOS (как правило, для непривилегированных пользователей). Наиболее заметным отличием одного протокола от другого является то, что SSH часто требует знания удаленного имени пользователя и пароля, в то время как Telnet обычно запрашивает только пароль для проверки подлинности пользователя. Metasploit Framework содержит модули подбора паролей с использованием этих протоколов и будет автоматически создавать интерактивные сессии до тех пор, пока подходящий пароль не будет найден.

    В целом Metasploit Express и Metasploit Pro всегда имели на борту готовые модули тестирования сетевых устройств через Telnet- и SSH-протоколы, но в последней версии стало возможным использовать список наиболее часто используемых паролей, составленный нашими аналитиками. В самом начале списка слов приведены необычные пароли. В целом подбор по словарю очень эффективен, если в качестве пароля для доступа к устройству было использовано реально существующее слово. Не углубляясь слишком далеко, я могу сказать, что некоторые провайдеры часто используют один и тот же пароль для настройки абонентского оборудования.

    После того, как был подобран пароль и установлена рабочая сессия через Telnet- или SSH-протоколы устройства Cisco IOS, функция автоматического сбора информации, включенная в Metasploit Express и Metasploit Pro, автоматически считает информацию о версии IOS и список активных пользователей, а затем попытается получить пароль к доступу «enable» путем перебора по списку наиболее распространенных паролей. Если попытка подобрать пароль «enable» увенчается успехом, то автоматически ты получишь дополнительную информацию о системе, в том числе о текущей конфигурации устройства.

    В исследованиях, перечисленных выше, нет ничего нового. Новым является лишь простота использования продуктов Metasploit и их способность по цепочке автоматически скомпрометировать уязвимые устройства банковского учреждения. По большому счету, модули Metasploit являются лишь ориентиром для дальнейшего проникновения в сеть финансового учреждения. И есть еще одна вещь, о которой я не упомянул до сих пор. Что же мы будем делать с полученными файлами конфигурации Cisco IOS после того, как мы их получим в процессе тестирования сетевых устройств? Эти файлы содержат рабочие конфигурации устройств, включающие в себя VTY-пароли, пароли «enable», ключи VPN, SSL-сертификаты и параметры доступа к Wi-Fi. Metasploit будет автоматически обрабатывать эти файлы конфигурации, чтобы выбрать из них конфиденциальные данные и сохранить их как данные аутентификации.

    личный кабинет Laiki bank
    Metasploit Express и Metasploit Pro могут автоматически использовать пароли, полученные из файлов конфигурации, чтобы пробовать получить доступ к другим устройствам этой же сети, используя их. Если доступ был получен к одному из устройств Cisco через слабые сообщества SNMP, и было обнаружено, что VTY-пароль — «ciscorules!», то ты можешь использовать профиль подбора паролей «knownonly » для того, чтобы с помощью любого протокола автоматически попробовать этот пароль в отношении любого другого устройства в той же самой сети.

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

    Переполнение буфера в маршрутизаторе Cisco на основе процессора Motorola

    Исследовательская группа по проблемам безопасности Phenoelit когда-то давно создала программу с кодом командного интерпретатора для проведения удаленной атаки на маршрутизатор Cisco 1600 на основе процессора Motorola 68360 QUICC (программа была представлена на азиатской конференции Blackhat аж в 2002 году).

    Для этой атаки в векторе вторжения используется переполнение буфера в операционной системе IOS от Cisco и несколько новых методов использования структур управления кучей в IOS. Изменяя структуры кучи, можно внедрить и исполнить вредоносный код. В опубликованном варианте атаки код командного интерпретатора представляет собой созданный вручную код в виде машинных команд Motorola, который открывает потайной ход на маршрутизаторе.

    Этим кодом можно воспользоваться при наличии любого переполнения буфера в устройствах Cisco (более подробная информация об этой атаке доступна по адресу phenoelit.de). И теперь ты, как настоящий гуру устройств Cisco, можешь смело поместить этот шелл-код в свою коллекцию Metasploit Framework для последующих экспериментов по удаленному переполнению буфера и его запуска на удаленном устройстве. Но это уже будет совсем другая история…