Firefox-убийца: Собираем хакерскую сборку плагинов для Mozilla

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

Да, в описании плагина никогда не будет написано: «Это аддон для того, чтобы ломать сайты». Зато плагинами можно заменить массу отдельных x-toolz и выполнять многие действия прямо в браузере. Для того, чтобы отследить и подделать HTTP-заголовки, поиграться с кукисами, проспуфить User-Agent, сделать fingerprinting сорцов страницы, чтобы понять с каким движком на сервере имеешь дело, достаточно установить плагин. Надо только знать какой.

Fingerprinting'а в Firefox'е

Любой пентест страницы начинается с анализа: с чем, собственно, имеешь дело. Самописный, криво написанный движок для сайта, который можно оформить как учебник «Ошибки программиста» – настоящий подарок для хакера. Хотя и готовые движки CMS/форумов/блогов, которые все активно используют, но редко когда вовремя обновляют, предоставляют огромный простор для деятельности. А если знать, с каким решением имеешь дело, то можно быстро попробовать найти сплойт или запись в багтраке. Распознать тот или иной движок можно по ряду характерных признаков. Например, тег <meta name="generator" content="WordPress 2.8.4" /> явно говорит о том, что сайт крутится на Wordpress'е. Причем ковырять сорцы  самому в поисках характерных меток необязательно, потому как это самостоятельно может сделать плагин Wappalyzer. В случае, если движок, на котором крутится сайт, успешно распознается, его логотип отображается в адресной строке браузера. Это очень удобно. Уже сейчас в базе Wappalyzer есть данные по всем самым популярным скриптам для создания порталов, блогов, форумов, хостинг-панелей, электронных магазинов. Не менее успешно можно определять используемый JS-фреймворк и аналитические средства (вроде Google Analytics). На официальном сайте плагина даже можно посмотреть статистику по популярности каждого из решений, собранного как раз с помощью плагина. Другой аддон – ShowIP – никак не поможет узнать больше о самой страничке, но зато покажет IP-адрес серверов, на которых она крутится, и позволит быстро пробить адрес по различным whois-сервисам.

Манипуляция с HTTP-данными

Когда первое представление о том, с чем имеешь дело, есть, можно приступать к более активным действиям. Чтобы проанализировать HTTP/HTTPS-трафик между браузером и веб-сервером, часто используются специализированные тулзы вроде Fiddler'а. Но посмотреть, что передается серверу, и что от него возвращается обратно, вполне реально без посторонних программ. Достаточно лишь установить плагин HttpFox или Live HTTP Headers. Обе в очень удобной форме позволяют мониторить и анализировать весь входящий и исходящий HTTP-трафик, в том числе хедеры запросов и ответов, кукисы, содержание POST-запросов и т.д. Понятно, что одним только снифингом не обойтись – часто необходимо «на лету» изменять параметры запроса или хедеров и изучать реакцию приложения. Нет проблем: Modify Headers позволит добавлять, изменять и, что важно, фильтровать различные хедеры в запросах. Ты можешь изменить значение User Agent и, например, проспуфить HTTP-запрос так, как будто он выполняется с мобильного устройства. Впрочем, если часто приходится подделывать именно информацию об используемом браузере, но лучше задействовать специализированный аддон – User Agent Switcher, позволяющий сделать это за несколько кликов мышью.

Tamper Data – это еще более продвинутое средство, которое на особом счету в копилке любого пентестера. Помимо спуфинга собственно заголовков оно позволяет изменять данные, передаваемые в POST-запросах. Напомню, что если форма для отправки использует метод GET, то передаваемые данные оформляются в виде ключей в URL, и «играться» с ними можно прямо в адресной строке браузера. В случае с методом POST данные формы оформляются в особо созданной структуре, и здесь без специальной утилиты, позволяющей с ними манипулировать, не обойтись. Сложно даже представить, сколько раз Tamper Data появлялся в наших VisualHack'ах. Но каким бы удобным ни был аддон, он не позволяет выполнять автоматические аттаки. Например, его никак нельзя использовать для брутфорса формы авторизации. Ну и ладно, для брутфорса GET- и POST-форм есть отдельный плагин – Fireforce. Понятно, что подбор паролей является главной задачей подобного плагина, и, что приятно, он позволяет как генерировать случайные пароли с учетом заданных параметров, так и использовать для атаки словари. Мало брутфорса, хочешь устроить жесткий фаззинг во всех местах ввода данных? Тогда аддон FuzzyFox – к твоим услугам.

Игры с кукисами

Важная часть данных, которыми обменивается веб-сервер и браузер – это кукисы. Каждый раз, когда форум узнает тебя, а не спрашивает имя и пароль заново, в этом участвуют кукисы и сессии. Если немного с ними помухлевать, вполне реально добиться интересного результата. Увы, все, на что способен сам Firefox – это кнопка «Удалить все cookies», да и то не всегда работает как надо (подробности чуть ниже). Чтобы иметь интерфейс для прямого доступа к кукисами, придется устанавливать плагин Add N Edit Cookies, позволяющий добавлять и редактировать параметры текущей сессии и все сохраненные кукисы. Если же тебе интересно, кто и в какой форме сохраняет «плюшки», которые скопом накапливаются у тебя на жестком диске, рекомендую установить насадку Allcookies – та в удобной форме будет логировать всю информацию в текстовый файл. Еще один занятный и полезный плагин для работы с кукисами – это CookieSwap. После установки у тебя появляется тулбар, благодаря которому ты можешь быстро переключаться между различными профайлами, в каждом из которых хранится свой набор «плюшек». Я, к примеру, активно использую его, чтобы одновременно работать с разными аккаунтами на сервисах Google и, в частности, Gmail.

Ковыряем JS-скрипты

Если взять тот же самый Gmail, Facebook да и вообще любое веб-приложение, то оно буквально изобилует кодом на JavaScript. А там, где много кода, есть много ошибок, которые мы любим искать. К счастью, одним из самых мощных плагинов для Firefox является именно отладчик Javascript – Firebug. По совместительству это еще и самый лучшей дебаггер для JS в принципе, который идеально подходит для того, чтобы разобраться с чужим JS-кодом. С помощью Firebug ты легко можешь установить брейкпоинты в нужных местах скрипта, указывая на то, что выполнение сценария нужно остановить при достижении нужной строчки кода. Поддерживаются и if-breakpoint'ы, когда точка останова срабатывает только при наступлении оговоренного условия. Как только выполнение скрипта остановилось, ты можешь продолжить его выполнения пошагово, внимательно отслеживая значение всех переменных и объектов. Причем можно даже просмотреть значение сложных выражений, состоящих из различных переменных; для этого к твоим услугам система watch'ей. Впрочем, даже если просто в коде навести курсор на какую-то переменную во время выполнения скрипта, то отладчик выдаст подсказку с его текущим значением. Firebug интегрируется в Firefox на глубоком уровне и позволяет в реальном времени изменять и отладить не только JS-сценарии, но и выполнение HTML-кода, CSS на абсолютно любой странице. Одна из моих любимых фишек – опция Inspect, когда ты кликаешь на нужный тебе элемент сайта, а Firebug мгновенно находит в сорцах код, который этот элемент реализует. Отладчик неплохо справляется с определением всех связных файлов со страницей, хотя для этой цели еще лучше подходит отдельный плагин – View Dependencies. Это особенно важно, когда имеешь дело со сложным веб-приложением, подгружающим массу отдельных файлов с JS/CSS-кодом.

Интерпретация и компиляция (да-да, часть JS-кода компилируется встроенным в браузер JS-движком с целью увеличения производительности) производится на клиентской машины, и чтобы защитить свой код от копирования, разработчикам приходится использовать важный прием – обфускацию кода. Техника на особом счету и у разработчиков сплойтов, которые, во-первых, маскируют таким образом свои детища от сигнатурных антивирусов (ведь не так сложно распознать шеллкод в JavaScript), а, во-вторых, скрывают саму технику эксплуатирования уязвимости в браузере. Если прочитаешь статью «Операция Аврора», то разберешься, как справится с простейшим приемом шифрования сплойта. Существенно упростить задачу, а во многих случаях даже все сделать за тебя может плагин JavaScript Deobfuscator. После установки у тебя всегда будет возможность посмотреть, какой JS-код выполняется на странице, причем даже в том случае, если он генерируется (в частности расшифровывается) на лету. Нужно лишь вызвать плагин из меню «Tools» и посмотреть, какие скрипты на этой странице выполняются/компилируются.

Инъекции, XSS, отсутствие авторизации

Если тебе нужен инструмент для помощи в поиске XSS-дыр, осуществления SQL-инъекции и выполнения прочих атак прямо внутри сайта, то самое время установить в Firefox'е тулбар HackBar. Фишка в том, что с его помощью ты сможешь очень быстро выполнять ряд тривиальных действий для поиска уязвимостей в скриптах, вроде подстановки зловредных значений в разные места ввода данных. К тому же в HackBar встроено несколько инструментов, позволяющих зашифровать зловредный запрос, позволяя обойти простейшие фильтрации параметров. Если дальше продолжать разговор про SQL-инъекции, то тут есть специальный плагин с незатейливым названием SQL Injection. В плагин забит ряд популярных символьных комбинаций, которые могут нарушить целостность SQL-запроса, логику выполнения скрипта и, соответственно, предоставить возможность реализовать атаку. Еще более автоматизированную атаку на БД предлагает SQL Inject Me, разработанную security-командой Seccom Labs. В те значения, которые передаются скрипту на сервере, плагин вставляет «опасные» символы (вроде кавычки) и проверяет, не вернулась ли в ответ страница с ошибкой базы данных. Поля для проверки выбираешь ты сам с помощью специального интерфейса. От тех же ребят есть серьезный инструмент для поиска XSS-уязвимостей XSS Me. Она работает аналогичным образом и сабмитит HTML-формы, подставляя в поля отправляемой формы такие значения, которые теоретически могут выявить XSS-атаку. Если результирующая HTML-страница вернет специальное JS-значение (document.vulnerable=true), тулза автоматически помечает страницу как потенциально уязвимую к XSS.

Анализ Flash-содержимого

Важная часть веба сегодня – это Flash-компоненты, с помощью которых реализуются интерактивные приложения. Анализировать SWF-ки – непростая задача, но кое-какую информацию об их работе выудить можно. В этом плане лакомым аддоном является Flashbug, который работает в связке с Firebug'ом и позволяет подробно изучать SWF-ресурсы, встроенные в сайт. В Firebug'е появляется новая вкладка, на которой отображаются все «трейсы» приложения, а также AMF-данные, передающиеся от и до сервера – это специальные сообщения, в которых сериализируются (проще говоря, упаковываются) объекты используемого во Flash языка ActionScript. Другой плагин – FireFlash – позволяет помимо всего прочего просмотреть ActionScript классы, объекты, массивы, XML и другие данные Flash-компонента, причем опять же через Firebug console. Тут надо понимать, что эти инструменты предназначены в первую очередь для разработчиков, но будут крайне полезны для изучения чужих SWF-ок, например, приложений ВКонтакте. Оба аддона не работают без установленного отладчика Firebug, который отличается от многих других надстроек для Firefox тем, что сам имеет плагины.

Анонимность и безопасноть

Если говорить о пентесте, нельзя не упомянуть аспекты своей собственной безопасности и анонимности. Возьмем обычное действие – работу через прокси. Зачастую их приходится использовать даже не для того, чтобы скрыть IP. Сейчас полно сервисов, которые банально не работают с пользователями, у которых российский IP: взять хотя бы Google Voice, Pandora Radio и т.д. А через американский сокс – все отлично. Для того, чтобы добавлять в браузер нужные прокси и быстро между ними переключаться, нет лучше плагина, чем FoxyProxy. Если задача стоит как раз обмануть фильтрацию упомянутых сервисов, можно четко забить для них индивидуальные прокси из Америки, и браузер автоматически их будет использовать. Чтобы в любой момент переключиться на нужный прокси, нужен один клик мыши. Более того, плагин предоставляет некоторые уникальные фишки, например, циклическое переключение по заданному списку соксов – вот и задачка для тех, кто будет анализировать логи.

Если для обесечения анонимности ты используешь Tor, то к Firefox'у обязательно нужно подключить Torbutton, включающий и выключающий безопасное соединение. Продолжая тему шифрования, крайне рекомендую закачать аддон FireGPG. В этом случае ты сможешь прямо из браузера шифровать, дешифровать, подписывать текст и проверять чужую цифровую подпись, в том числе в Gmail, используя открытый проект GnuPG. Большая головная боль при посещении различных ресурсов – так называемые Tracking-кукисы, которые не имеют срока годности и используются ресурсами для отслеживания твоей активности (например, возвращаешься ли ты на сайт или заходишь на него в первый раз). Это значит, что они не удаляются как обычные кукисы через некоторое время, а продолжают жить в системе. Это особенно касается Flash-cookies, которые создаются на компьютере как LSO-объекты (Local Shared Objects) флеш-плеером – их, как правило, вообще не может удалить браузер, даже не подозревая об их существовании. А зачем тебе на компьютере свидетельства посещения пикантных сайтов? Для предотвращения появления Tracking-кукисов в системе специально разработан плагин BetterPrivacy.

В обязательном порядке необходимо установить еще один плагин – NoScript. Он делает одну простую вещь – вообще отключает выполнение скриптов на сайте. Это единственный гарантированный способ серфить зараженные сайты, откуда пачками грузятся трояны, а также защитить себя от XSS и Clickjacking атак :). Тут стоит заметить, что скрипт отключит не только JS, но и Java и Flash – все технологи, которые могут выполнять код на твоем компьютере с удаленного хоста. В плане определения малвари на сайте хорошо зарекомендовал себя еще и Firekeeper, использующий правила известной IDS-системы Snort.

][-твики

Если посмотреть описание функций любого продвинутого трояна, то среди прочего обязательно заметишь опцию подмены контента. Благодаря ей злоумышленник может скрыть на сайте те элементы, которые могут вызвать подозрения пользователя (например, сообщения о неудачной авторизации) или, наоборот, подсунуть в форму для ввода новое поле, которого в изначальной форме не было. Для тестирования замен нередко используется аддон Greasemonkey, позволяющий изменять просматриваемые страницы на лету. Впрочем, его  можно использовать и для вполне мирных целей, например, чтобы избавиться от назойливых элементов на каком-то сайте. Изменения описываются с помощью скриптов – большая база уже готовых сценариев доступна на сайте userscripts.org. Еще одна хитрость – реализовать автоматизированные проверки и тестирования с помощью макросов. Один раз записав сценарий и показав браузеру последовательность действий, можно воспроизводить их сколько угодно раз в автоматическом режиме. Это возможно с помощью аддонов iMacros, TestGen4Web, а также Chickenfoot.

А какие твики и плагины знаешь ты? Присылай, и мы добавим их в нашу сборку!

Как исправить несовместимость версии плагина и браузера?

Firefox – это быстро развивающийся браузер, для которого очень часто выходят новые версии. Этого нельзя сказать о многих плагинах, которые когда-то были опубликованы авторами, попали в репозиторий и были благополучно заброшены. При этом в Firefox'е есть защита от дурака: если в плагине указано, что он совместим с версией браузера 3.5, то со свежей 3.6.3 он уже не установится. На обновление со стороны автора можно не надеяться, и как же тогда быть? Самый надежный путь – установить аддон Nightly Tester Tools. Теперь во время подключения устаревшего плагина ты получишь не отказ в установке из-за ошибки совместимости, а предложение включить аддон на свой страх и риск.

DVD

Упомянутые в статье плагины ты можешь взять с нашего DVD.

Firefox плагин


Следующие статьи
Предыдущие статьи

comments powered by Disqus

UserГость
05.12.2010 2:15:29
Ответить
Сэнкс, познавательно. Добавьте RequestPolicy и WebDeveloper (можно еще и StopAutoplay).
UserГость
17.12.2010 15:03:40
Ответить
iuiiiii
UserГость
05.01.2011 11:21:27
Ответить
Спасибо за статью! Можете еще заюзать Browser Masquerade.
UserГость
06.01.2011 5:55:54
Ответить
Спасибо, добавил пару дополнений. Для упрощения операций по принятию кук можно использовать CookieSafe. Для управления реферами можно использовать RefControl. Можно также блокировать запросы загружаемых сайтов к другим с помощью RecuestPolicy. Для разработчика может быть полезна валидация html с помощью html validator. Ну и приятно видеть флаг страны, в которой расположен сервер - flagfox.
UserГость
14.02.2014 11:07:22
Ответить
http://freehacks.ru/ - Все хакерские направления в одном месте!

Читай «Хакер» на планшетах!

Свежие материалы каждый месяц в удобном для тебя формате:



Линк рекламодателям

Читай новый номер
В продаже с 2 апреля
  • Лучшие инструменты для создания прототипа твоего первого приложения
  • Разбираемся с главными библиотеками для построения графического интерфейса в мире Java
  • Ретроспектива виртуализации в *nix
  • Тестируем фреймворк для мониторинга Sensu
  • Подбираем утилиты для бэкапа БД
  • Подборка свежих гаджетов для пентестеров
  • Физическая безопасность в ИТ: как ненадежный замок может стать самым слабым местом в системе



Социальные сети

Keywords: zPOSTz zMAGAZINEz z54152z
Для Авторов: edit Lock delete Lock

Автор: Степан "Step" Ильин
Дата: 05.12.2010 12:25:41©