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

FAQ UNITED

Маг (icq 884888, http://wap-chat.ru)



Q: Как можно «одним махом» проверить md5 хеш в наиболее популярных сервисах по расшифровке MD5 хешей?

A: Справиться с поставленной задачей поможет удобный онлайн-сервис «Reverse MD5 lookup in multiple databases», расположенный по адресу http://md5.noisette.ch.
На этом сайте ты можешь вбить свой хеш в поле «String to hash» и, в результате, получить данные с соответствующих сервисов:

Также нельзя не отметить еще одну интересную особенность md5.noisette.ch - своеобразный API для поиска хеша.
Например, ты посылаешь к сервису такой запрос: http://md5.noisette.ch/md5.php?hash=2a0231531bc1a7fc29e2fa8d64352ae9, а тебе приходит xml-ответ:

<md5lookup>
<hash>2a0231531bc1a7fc29e2fa8d64352ae9</hash>
<string>noisette</string>
</md5lookup>

Этот API, конечно же, можно встраивать в любое свое кулхакерское приложение :).

Q: Занимаясь парсингом Гугла, столкнулся с вопросом бана моих поисковых запросов. Подскажи, как уменьшить вероятность бана?

A: Могу тебе дать несколько советов по сабжу:

  1. Используй прокси (причем, подойдут даже обычные прозрачные прокси, но не для запросов с использованием операторов «inurl» и «site»);
  2. Используй задержку между запросами (я обычно использую задержку в 10 секунд, эта нехитрая процедура обеспечивает долгий и беспроблемный парсинг);
  3. Используй различные датацентры гугла. «Живой» список датацентров находится тут: awt.win32utils.com/datac/;
  4. Если все-таки выскакивает капча, то обеспечь в своем парсере возможность вбивать ее вручную (китайцев, которые согласны работать по $0.01 за каждый вбив капчи, предостаточно :)).

Q: Разрабатываю эксплойты на PHP. Как упростить работу с «браузерными» функциями (отправка/прием POST, GET-пакетов, работа с кукисами и т.д.)?

A: За тебя уже все сделала известная хек-команда AcidRoot! Их php-класс «PhpSploit Class» может выполнять практически все, что позволяет протокол HTTP.
Сам класс (а также все его апдейты) находится по адресу http://mgsdl.free.fr/?2:3.

Из основных возможностей и преимуществ:

  • Совместимость с PHP 4/PHP 5;
  • Поддержка GET/POST-методов;
  • Работа с cookies и любыми хэдерами;
  • Работа с прокси и basic-аутентификацией;
  • Работа со всевозможными редиректами;
  • Работа с веб-формами (в том числе и загрузка файла на сервер через POST);
  • Легкость использования класса с другими php-скриптами.

Q: Как использовать Skype, аську и другие популярные IM на мобильном телефоне одновременно?

A: Специально для тебя существует решение «все в одном». Имя ему – «Nimbuzz Mobile». Это проект, получивший награду в категории «Лучший startup в мобильной отрасли» на саммите «Mobile 2.0 Europe». Немного из описания Nimbuzz:

  • Nimbuzz Mobile позволяет воспользоваться услугами самых популярных VoIP и IM-сетей, среди которых: ICQ, Skype, GoogleTalk, Jabber, MSN, Yahoo и AIM, практически на любом мобильном устройстве. Уже сейчас в списке поддерживающих Nimbuzz устройств числится более 1000 телефонов, КПК и смартфонов, работающих на платформах Symbian, Java и Windows Mobile.
  • Nimbuzz является полноценным мобильным VoIP (mVoIP) клиентом, так как использует существующее интернет-соединение для передачи голосового трафика.
  • Для работы Nimbuzz Mobile может использовать любое доступное подключение к интеренет: Wi-Fi, 3G или GPRS/EDGE.
  • Nimbuzz также поддерживает передачу чат-сообщений, передачу файлов и картинок, функцию presence («присутствие») и Buzz («оповещение»).

Саму программу можно найти на официальном сайте проекта http://www.nimbuzz.com/ru/mobile.

Q: Слышал об уязвимостях в php-функции parse_str()? Как их использовать?

A: Это не совсем уязвимости, скорее - неграмотное использование функции веб-разработчиками. Итак, функция parse_str(string str [, array arr]) разбирает строку str, которая должна иметь формат строки запроса URL, и присваивает значения переменным в текущем контексте, если не передан второй аргумент arr. В последнем случае значения будут сохранены в этой переменной в качестве элементов массива.

Представь, что у тебя есть скрипт script.php, в котором вписан следующий код:

<?php
$var = 'init';
parse_str($_SERVER['QUERY_STRING']);
print $var;
?>

Если ты обратишься к скрипту следующим образом: script.php?var=new, то переменная $var перезапишется новым значением «new»! Налицо уязвимость класса «arbitrary variable overwrite».

То же самое будет справедливо и для следующего кода:

<?php
//script.php?array[]=new
$array = array('init');
parse_str($_SERVER['QUERY_STRING']);
print_r($array); //теперь [0] => init, [1] => new

// script.php?array=new
$array = array('init');
parse_str($_SERVER['QUERY_STRING'],$array); //теперь [array] => new
print_r($array);
?>

Подробное адвизори по уязвимости ты можешь найти здесь: http://www.acid-root.new.fr.

Q: Я знаю некоторые команды консоли, вроде id, ls, cat. Перечисли другие основные команды никс-шелла, полезные для начинающего хакера.

A: Очень просто! Для тебя наиболее полезными командами будут:

  • 'uname -a' – выводит информацию о системе: версию, релиз ядра, сетевое имя системы, тип процессора, тип платформы и операционной системы;
  • 'cat /etc/issue' – выводит версию дистрибутива;
  • 'uptime' – показывает аптайм сервера;
  • 'chkconfig --list | more' – список запущенных/остановленных служб на всех уровнях выполнения;
  • 'last -[кол-во пользователей]' показывает список пользователей, входивших в систему в последнее время;
  • 'ps' – выводит список процессов, запущенных в данной сессии;
  • 'top' – список процессов, запущенных в системе;
  • 'df -h' – показывает объем занимаемого места на жестких дисках;
  • 'du -sh /home/username' - обьем занимаемого места для конкретной директории;
  • 'find [где] -type d -perm 0777 -ls' – выводит список директорий, доступных для записи;
  • 'egrep -v '^#|^[:blank:]*$' [файл]' - просмотр файла без комментариев и пустых строк (удобно для просмотра конфигов);
  • 'cat [файл]|grep word' – покажет только те строки файла 'файл', которые содержат слово 'word';
  • 'cat [файл]|less' – остановит вывод при достижении нижней границы экрана и продолжит построчно при нажатии клавиши Enter;
  • 'echo [текст] > out.txt' – направит вывод команды echo в файл out.txt;
  • 'echo [текст] >> out.txt' – добавит вывод команды echo в конец файла out.txt;
  • 'echo "[текст]`ls -la`"' – выведет на экран текст + вывод команды ls -la (то есть, в обратных кавычках сначала выполнится ls -la, а затем уже echo).

Q: Слил у друга свежие базы для NOD32. Как с помощью них локально обновить антивирь?

A: Для Нода обновление антивирусных баз из локального источника будет происходить следующим образом (инструкция для 3ей ветки):

  1. Извлеки все содержимое архива с базами в заранее определенную папку (например, C:\nod32-update\);
  2. В левом нижнем углу включи расширенный режим. Затем иди в меню «Настройки» -> «Ввод всего дерева расширенных параметров»;
  3. Выбирай пункт «Обновление»;
  4. «Сервер обновлений» -> «Изменить»;
  5. В открывшемся окне вводи путь ранее созданной тобой папки с обновлениями (C:\nod32-update\) и жми на кнопку «Добавить»;
  6. Подтверждай добавленный тобой сервер кнопкой «Ок» в открывшемся окне, после чего выбирай его из списка серверов;
  7. Заходи в пункт «Обновление» из главного меню антивируса и жми на «Обновить базу данных сигнатур вирусов»;
  8. Наслаждайся свежими базами :).

P.S. В некоторых версиях Нода также прокатывает простое копирование файлов с сигнатурами вирусов из C:\Program Files\ESET\ESET NOD32 Antivirus. Это все файлы с префиксом em0* и расширением .dat.

Q: Что такое веб-службы?

A: Web-сервисы (Web-службы) - это технология, позволяющая приложениям взаимодействовать друг с другом независимо от платформы, на которой они развернуты, а также от языка программирования, на котором они написаны. Web-cервис – это программный интерфейс, описывающий набор операций, которые могут быть вызваны удаленно по сети посредством стандартизированных XML-сообщений. Для описания вызываемой операции или данных используются протоколы, базирующиеся на языке XML. Так, для передачи сообщений используется простой протокол SOAP; внешний интерфейсов веб-службы, через который она отдает или принимает данные, описывается с помощью WSDL. Использование интернет-протокола HTTP обеспечивает взаимодействие программных систем через межсетевой экран. Это избавляет от геморроя писать свой собственный протокол передачи данных. Достаточно написать простой веб-сервис и развернуть его на одном из серверов приложений:

  • Java Web Services Development Pack;
  • Microsoft .NET-серверы;
  • Zend Framework;
  • Mono development platform от Novell.

Примером веб-службы, откуда ты легко можешь извлекать данные для своих приложений, например, является давно функционирующий интерфейс «Аэрофлота», располагающийся по адресу webservices.aeroflot.ru.

Q: В журнале много раз описывался синтаксис поисковых запросов Google, а как насчет такого популярного поисковика, как Yahoo?

A: Синтаксис запросов Яхи очень схож с синтаксисом Гугла! Смотри:

  • site - поиск всех документов в определенном домене + во всех сабдоменах этого домена, например: 'site:yahoo.com';
  • hostname - поиск документов только в определенном хосте, например: 'hostname:autos.yahoo.co';
  • link - поиск всех страниц, ссылающихся на данный документ, например: 'link:http://autos.yahoo.com/' (кстати, этот оператор Яхи обновляется оперативней аналогичного оператора Гугла);
  • url - поиск документа в индексе Яхи, например: 'url:http://edit.autos.yahoo.com/repair/tree/0.html';
  • inurl - поиск документа в определенной части проиндексированных адресов, например: 'inurl:bulgarian';
  • intitle - поиск кейворда в заголовках страниц, например: 'intitle:Bulgarian'.

Также для поиска используются и специфические операторы:

  • 'текст' - поиск точного совпадения с фразой «текст»;
  • 'текст +слово' - поиск фразы «текст». Также в документе обязательно должно присутствовать «слово»;
  • 'текст +слово' - поиск фразы «текст». Также в документе обязательно должно отсутствовать «слово»;
  • 'текст OR слово' - поиск документов, содержащих либо «текст», либо «слово».

Еще довольно интересная фишка – Yahoo! Shortcuts (Яху! Ярлычки). Например:

  • кейворд 'map' в поисковом запросе служит для поиска локации;
  • weather - прогноз погоды;
  • define - поиск в словаре;
  • news - мировые новости.

Ярлычков существует великое множество, так что лучше почитай более подробно о них и о синтаксисе запросов на http://help.yahoo.com/l/us/yahoo/search/basics/basics-04.html.

Q: Как сделать свое контекстное меню?

A: Для этого существует классная утилита - Open++ (www.freewebs.com/dengdun/en/openxx.htm). Меню, созданные с ее помощью, не столь примитивны, как во многих других программах. Его можно наполнить самыми разнообразными в плане функциональности элементами, используя мощную систему макросов, API-вызов и прочих инструментов.

Q: У меня ошибка профиля. Посоветовали скопировать файлы старого профиля в новую учетную запись, но тупое перемещение не помогает. Почему?

A: Потому что простого перемещения файлов недостаточно - в системе встроен специальный инструмент для копирования файлов профиля. В диалоговом окне «Свойства системы» открой «Дополнительно -> Параметры -> Профили пользователей». Вот теперь, с помощью средства «Профили пользователей», реально скопировать старый профиль в новую учетную запись. Для этого сначала выбери профиль старого пользователя «old_user» и нажму кнопку «Копировать в папку». Теперь надо указать папку новой учетной записи (она обязательно должна быть в привычном для системы месте – то есть, в Documents and Settings).

Q: Почему вдруг у всех перестает работать аська? Что же все-таки произошло c icq? Причем, мой QIP не работает, а вот приятельская Miranda летает как ни в чем не бывало.

A: Многие говорят, что произошли изменения в протоколе. Да, действительно некоторые изменения были внесены, но, во-первых, они происходят намного чаще, чем отказывают альтернативные клиенты, а, во-вторых, причиной отказа стало вовсе не это. Причина на самом деле лежит на поверхности. Недаром всем пострадавшим юзерам пришло сообщения от UIN #1 с текстом «ICQ версии 5.1 больше не поддерживается. Скачайте бесплатную авторизированную версию ICQ с официального web-сайта ICQ». Просто AOL выпустила новый клиент ICQ Lite и решила принудительно перевести на новинку всех пользователей уже старенькой ICQ 5.1. Почему при этом пострадали, скажем, пользователи QIP? Да потому, что в качестве параметра LoginID, т.е. названия клиента, который используется для подключения к сети, QIP и многие другие клиенты использовали как раз сигнатуру от аськи 5.1 (чтобы лишний раз не выдавать себя, приходится маскироваться). Сервер подумал, что это как раз пользователи ICQ 5.1 и отправил им соответствующее сообщение, заблокировав работу. Те, клиенты, которые продолжили работу, очевидно, используют другие LoginID, причем, некоторые из них – несуществующие.

Q: Приятель заморачивается с запуском PHP-проекта на Java-платформе. Стесняюсь у него спросить: зачем это нужно и как это сделать?

A: Уверен, он с радостью бы объяснил, что подобная архитектура может быть полезной для высоконагруженных проектов, в которых необходимо объединить, по сути, два мира ПО. Не так давно появилось средство Quercus PHP (http://www.caucho.com/resin-3.0/quercus), являющееся реализацией PHP-интерпретатора, полностью написанного на Java. Уже сейчас его можно запустить под разными серверами (Apache Tomcat, Jetty, Apache). А что это позволяет? Ну, например, можно работать в РНР с классами и компонентами, написанными на Java. Проще простого сделать это, воспользовавшись модулем php_java из проекта PHP/Java Bridge (php-java-bridge.sourceforge.net). Занятно, что PHP - далеко не единственный язык, который реализуют на Java-платформе. Мы не раз выкладывали на диске Jython (www.jython.org) - Java-реализацию нашего любимого Python'а. Помимо этого серьезно развивается JRuby (jruby.codehaus.org) и очень гибкий язык Groovy (jruby.codehaus.org), разработанный как альтернатива Java с возможностями Python, Руби и даже Smalltalk.

Содержание