Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 138, ИЮНЬ 2010 г.

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

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

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

Fingerprinting'а в Firefox'е

Любой пентест страницы начинается с анализа: с чем,собственно, имеешь дело. Самописный, криво написанный движок для сайта, которыйможно оформить как учебник «Ошибки программиста» – настоящий подарок дляхакера. Хотя и готовые движки CMS/форумов/блогов, которые все активноиспользуют, но редко когда вовремя обновляют, предоставляют огромный простордля деятельности. А если знать, с каким решением имеешь дело, то можно быстропопробовать найти сплойт или запись в багтраке. Распознать тот или иной движокможно по ряду характерных признаков. Например, тег <metaname="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-запрос так, как будто он выполняется с мобильногоустройства. Впрочем, если часто приходится подделывать именно информацию обиспользуемом браузере, но лучше задействовать специализированный аддон – UserAgent 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), а, во-вторых, скрывают саму технику эксплуатированияуязвимости в браузере. Если прочитаешь статью «Операция Аврора», то разберешься,как справится с простейшим приемом шифрования сплойта. Существенно упроститьзадачу, а во многих случаях даже все сделать за тебя может плагин JavaScriptDeobfuscator. После установки у тебя всегда будет возможность посмотреть, какой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.

Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001