Среди всех эксплоитов, доступных для информационных систем, некоторые более ценны чем другие. Обнаружение дырки в сервере, допустим, более важно, а в клиенте - более функционально. В то же время когда мы способный найти уязвимость в самом софте, отвечающем за безопасность, это и важно и функционально. Например, написание эксплоита для антивируса или системы обнаружения вторжения дает исследователю особое чувство превосходства, поскольку он поборол систему, которая, собственно говоря, и должна бороться с ним сами. В этой статье мы рассмотрим аналогичную концепцию. Мы попробуем разными путями атаковать нападающего на нашу системы. Мы попробуем взломать эксплоиты, червей, вирусы, людей которые стоят за нападением на подконтрольную нам систему. Вместо классической парадигмы ИТ безопасности "Защищать, Обнаруживать, Реагировать" мы применим принцип нападения на нападающего. В классическом виде, если мы только защищаем сеть, обнаруживаем изменения (при помощи IDS или антивируса) и лишь за тем реагируем на эти изменения, атакующий всегда будет на шаг впереди нас. Он сможет спланировать свои шаги и предвидеть нашу реакцию, опережая нас в ней. Техника, обсуждаемая в этой статье сходна с концепцией hack back, в которой описывается нападение на атакующего - ответное сканирование его машины или даже эксплуатация уязвимостей, которые могут быть обнаружены на машине хакера. Однако, hack back это все та же реактивная концепция, делая шаг вперед нам перед атакой нужно понять уязвимые места атакующего. В статье мы временами будем брать инициативу в свои руки и смотреть как можно обратить инстинкты нападения хакера против него самого. Желание причинить нам вред это первая уязвимость нападающего, первая которая может дать нам преимущество. Можно сказать, что компьютеры для того и созданы, что бы автоматизировать процессы, разгружая оператора от ненужной работы: зачем нам что-либо делать если что-то или кто-то может это делать за нас? Имея это ввиду мы отметим второй инстинкт и вторую уязвимость нападающего - его леность. И наконец, третья характеристика, обычно встречающаяся у нападающих - любопытство. Как эта система работает? Какие другие системы в окружении я могу атаковать? Что будет если я запущу этот файл? Мы так же рассмотрим как мы можем использовать эту черту в своих интересах. Во всей статье мы будем отмечать как эти три составляющих эксплуатировались в прошлом. Прежде чем начать давайте определим четыре стратегические цели, которые мы ставим перед собой при атаке системы: 1. Сбор информации - трояны и spyware. 2. Закрытие доступа к определенным ресурсам системы, DoS. 3. Контроль над системой, для дальнейшей DoS или DDoS атаки. 4. Контроль над системой для атаки соседних компьютеров. Держа в уме эти цели нам нужно обращать внимание на любые инструменты, которые используются нападающим для их достижения, изучая их и отслеживая их воздействие. В прошлом мы могли наблюдать поддельные эксплоиты, протроянненые бинарники и прочий вредоносный софт, который содержал скрытые бэкдоры. Гениальность такого подхода очевидна, а трудность обнаружения достаточно велика. Невинно выглядящий код может привести к полной компрометации системы, а выявить его присутствие возможно только высоко квалифицированному профессионалу. К примеру проводился даже конкурс на создание невинно выглядящего, но чрезвычайно вредоносного кода, найти его можно по такому адресу: www.brainhz.com/underhanded/ Глядя на поставленные цели мы можем применить их и к своей деятельности, обнаружив атакующего мы должны собрать информацию, заDoSить его, получить контроль или на основании захваченной системы получить доступ к другим компьютерам. В дальнейшем мы на реальных примерах покажем взлом атакующего или их инструментов. Сбор информации В данном разделе наша цель - собрать максимум информации о нападающем взломщике. Мы применим два подходи - обман хакера и его свержение, подрывная деятельность против него. Обман Мы знакомы с обманом взломщика на примерах Honeypot-a, где взломщик попадает в закрытую среду, где и подвергается изучению. Мы заставляем хакера поверить в то, чего на самом деле не существует. Это предполагает от него произведения некоторых действий, которые помогают нам собрать информацию о его работе и более подробно изучить. Мы можем так же отвлечь нападающего от действительно интересных целей к тому что мы контролируем или просто менее интересно. Это может использоваться не только в ловушках, но и для программ. Предоставление ложной информации для атакующего это самый простой путь для достижения цели. Более того, мы можем использовать обман для заманивания. Например, разрешив только незащищенные протоколы типа HTTP, SMTP или FTP, даже если хакер установит ssh демон для захода через безопасный бекдор, мы всегда сможем перехватить остальной трафик и вычислить план действий хакера. В следующем примере ssh демон "скрывается" на 50 порту: Однако лучше чем смотреть на версию ssh обратим внимание на нескольких следующих пакетах не относящихся к 50 порту: Это яркий пример лености взломщика. Действительно, не слишком же хорошая идея заходить на систему по зашифрованному каналу, а затем качать утилиты через незащищенное соединение. Но такова человеческая натура... Добавление шифрования потребовало бы дополнительных усилий от хакера и на предыдущем примере явно видно, что он не слишком озаботился возможной уязвимостью в своих действиях. Более полезный прием можно использовать в локальной сети. Предположим, что вы хотите обнаружить пользователя, который шныряет вокруг сети. Можно создать ложную запись в DNS сервере и поставить старый компьютер или сконфигурировать виртуальную систему (например honeyd). Вы можете создать аккаунт с легко угадываемым паролем, так что исследователь легко бы вошел в систему и рассказал бы вам о себе все возможное. Можно расширить такой подход и предпринять "контр-ssh" нападение. Сейчас в Интернете часто работают брутфорссеры ssh, перебирающие простые пароли для демонов. Если X11Forwarding включено на клиентской машине, то это открывает массу возможностей для исследования нападающего. Можно сделать скриншот нападающего /* smile for the screenshot */ $ xwd -display localhost:10.0 -root -out test.xwd /* display it */ $ xwud -in test.xwd Кроме того можно вывести список всех X клиентов у нападающего командой xlsckients, проследить за Х событиями при помощи xev или даже использовать Х как кейлоггер: $ DISPLAY=localhost:10.0 xmacrorec2 -k 0 Это можно автоматизировать через .bash_profile или через ограничения среды ssh. Именно поэтому последние версии ssh имею опцию ForwardX11Trusted и ограничивают доступ к некоторым функциям в /etc/X11/xserver/SecurityPolicy. (Продолжение следует)
Источник: http://www.securityfocus.com |