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

FAQ

Маг (icq 884888, http://snipper.ru)
Степан "Step" Ильин twitter.com/stepah


Q: Какие существуют сканеры для определения версий различных CMS на основе метода сравнения "отпечатков" (fingerprinting)?

A: Самым навороченным из таких сканеров является написанный на Ruby с применением SQLite3 DB "wafp" (Web Application Finger Printer).

Работает сканер следующим образом:

  1. С удаленного веб-сервера скачиваются определенные файлы, различные для определенных версий какой-либо CMS (например, javascript-библиотеки, картинки);
  2. Сравниваются md5-чексуммы этих файлов с чексуммами в базе;
  3. На основе этого сравнения выдается возможная версия тестируемой CMS.

Пример для phpMyAdmin (загружается файл /themes/darkblue_orange/img/b_info.png и сравнивается его чексумма):

wafp.rb --verbose -p phpmyadmin https://phpmyadmin.example.de

VERBOSE: request for "/themes/darkblue_orange/img/b_info.png" produced "Connection refused - connect(2)" for 1 times - retrying…
…
found the following matches (limited to 10):
+-------------------------------------------------------------+
phpmyadmin-2.11.9.1 296 / 299 (98.99%)
phpmyadmin-2.11.9.2 295 / 299 (98.66%)
phpmyadmin-2.11.9.4 295 / 299 (98.66%)
phpmyadmin-2.11.8.1 295 / 299 (98.66%)
phpmyadmin-2.11.9.5 295 / 299 (98.66%)
phpmyadmin-2.11.8 295 / 299 (98.66%)
phpmyadmin-2.11.9.3 295 / 299 (98.66%)
phpmyadmin-2.11.9 295 / 299 (98.66%)
phpmyadmin-2.11.4 294 / 299 (98.33%)
phpmyadmin-2.11.5.2 294 / 299 (98.33%)
+-------------------------------------------------------------+
…

Скачать программу и почитать подробности можно на официальном сайте www.mytty.org/wafp.

Также хочу посоветовать неплохую статью (на английском языке), находящуюся по адресу http://sucuri.net/?page=docs&title=webapp-version-detection. В статье описывается метод поиска различий в файлах разных версий любых CMS, а также предлагается (на основе описанного метода) узнать версию любого WordPress блога онлайн. Напоследок, обрати внимание на "Joomla Vulnerability Scanner" от проекта OWASP (www.owasp.org/index.php/Category:OWASP_Joomla_Vulnerability_Scanner_Project) и сканер уязвимостей CMS Drupal от Raz0r'а (raz0r.name/drupalscan/).

Q: Слышал, что в vBulletin найдена возможность просматривать посты под "хайдом" (доступные для просмотра после набора определенного количества сообщений). Как это сделать?

A: По информации с форума Асечки хайды на vB можно просмотреть следующим образом:

  1. Ищем пост с хайдом;
  2. Выбираем пункт "Открыть все сообщения" у автора данного поста;
  3. Во "всех сообщениях" находим этот пост и смотрим часть поста под хайдом.

Q: Как узнать, в каком формате хранится пароль в БД у определенной CMS?

A: Неплохой список таких форматов и, соответственно, способов шифрования пароля находится на itdefence.ru/dbitems. Пример:

CMS

Способ шифрования

PunBB 1.2.x

md5($pass) или SHA-1

QuickSilver Forum

Refbase (Web Reference Database)

DES(Password, $salt)
$salt = substr(email, 0, 2)

RunCMS

sha1($username.$pass)
или md5($pass)

Scripteen Free Image Hosting Script

md5($pass)

Shinobu

SilverStripe

Slaed CMS

SMF 1.1.x

sha1($username.$pass)

SmallNuke 2

md5($pass)

sNews

Snitz Forums 2000

SHA-256

TangoCMS

md5($pass)

Tiki Wiki

Tinypug

TRIBiQ

Triton CMS

UseBB

Vanilla

vBulletin 2.16

md5(md5($pass).$salt)

vBulletin 3.54

VikingBoard

md5($pass)

Voodoo chat

W-Agora

Website Baker

Wordpress <=2.3.3

Wordpress >=2.5

md5($phpbb3)

 

Также, многие форматы встроены в известный брутер PasswordsPro (www.insidepro.com/eng/passwordspro.shtml). Если формат хеша тебе неизвестен, то ты всегда сможешь попросить помощи на форуме авторов программы forum.insidepro.com.

Q: Как проще всего отлаживать php-скрипты?

A: Традиционно php-скрипты отлаживают "ручками" путем вывода всех сообщений об ошибках (директива error_reporting установлена в положение E_ALL) и расстановкой echo/print сообщений по всему коду (подробное описание ищи на http://phpfaq.ru/debug). Но эта техника пришла к нам прямиком из прошлого века! Так что спешу представить тебе замечательный отладчик Expert Debugger (phpexperteditor.com), который создали специально для тебя авторы известного редактора PHP Expert Editor. Прога использует DBG PHP Debugger, имеет комфортный интерфейс и может интегрироваться с другими редакторами и IDE или использоваться независимо.

Особенности программы:

  • выполнение PHP скриптов в пошаговом режиме;
  • работа с breakpoints;
  • отладка по сети или на локальном компьютере;
  • отслеживание значений переменных и результата работы скрипта;
  • поддержка UTF-8;
  • profile;
  • интеграция с другими редакторами и IDE;
  • мультиязычный интерфейс;

Найти отладчик можно на официальном сайте www.ankord.com.

Q: Каким образом можно отслеживать статус ICQ-номера?

A: Тебе поможет замечательная программа ICQ Monitor (http://avtuh.ru/2009/11/27/icq-monitor.html), которая создана для мониторинга статуса ICQ-номера (Онлайн/Оффлайн/Невидимый). Прога может следить за состоянием нужного тебе уина (в том числе и в свернутом в трей состоянии ) через заданный тобой промежуток времени и записывать все это дело в лог. Также, по этой теме тебе поможет всем известный QIP с его "Всевидящим оком" :)

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

A: Насчет уязвимостей движков из "большой тройки" (WordPress, Drupal и Joomla!), я думаю, тебе уже все известно, а вот с немногим менее популярными CMS из нашего "топ 10" все обстоит несколько иначе. Копаются в их коде редкие энтузиасты, поэтому в свободном доступе присутствуют только эксплойты под старые версии. Тем не менее, данный факт открывает для нас огромные просторы для поиска багов. Например, не так давно я нашел выполнение произвольного PHP кода в последней версии TYPOlight. Уязвимость заключается в небезопасном использовании модификатора "e" (если этот модификатор указан, то итоговое выражение будет интерпретироваться как php-код, именно на этом факте была основана известнейшая бага в форуме phpBB2) в функции preg_replace():

файл ./system/libraries/Controller.php

protected function printArticleAsPdf(Database_Result $objArticle)
{
…
$strArticle = preg_replace('/\?pdf=[0-9]*/i', '', $strArticle);
…
$arrSearch = array
(
'@(<pre.*</pre>)@Use',
…
);

$arrReplace = array
(
'str_replace("\n", "<br />", "\\1")',
…
);
$strArticle = preg_replace($arrSearch, $arrReplace, $strArticle);
…
}

Чтобы добраться до нужной нам функции, необходимо оставить подготовленный специальным образом комментарий в любой новости. Почитать о том, как сформировать такой комментарий, а также найти эксплойт ты сможешь по адресу http://snipper.ru/view/6/typolight-270-php-code-execution-exploit.

Q: Как определить, какую информацию обо мне передает мой браузер при заходе на какой-либо сайт?

A: Если тебе лень писать свой парсер хидеров (а именно в хидерах из любого http-запроса содержится все самое вкусное), то в данном вопросе поможет онлайн-утилита http://exploit.in/tools/anonym.php.

Определяются следующие параметры:

  • IP;
  • User agent браузера;
  • Hostname;
  • порт;
  • JavaScript: включен или выключен;
  • браузер (через JavaScript);
  • наличие прокси-сервера;
  • ближайший прокси;
  • передаваемая информация о юзере через прокси;
  • сжатие;
  • поддерживаемые языки;
  • тип соединения (только для IE).

Также нельзя забывать о простом JavaScript. С помощью скриптов на js можно выяснить многие интересные вещи о твоем компьютере, вплоть до разрешения экрана и версии OS. Если тебе интересна такая информация, то советую потестить опенсорсную альтернативу Google Analytics – Piwik (www.piwik.org).

Q: Слышал об очень высоких ценах на 3х-символьные домены. Интересно было бы узнать об этом подробнее.

A: Существует замечательный буржуйский сайт http://3character.com, на котором выставлены на продажу множество 3х-символьных доменов, а также приведена информация о стоимости некоторых купленных ранее доменах. Приведу для примера небольшой список наиболее крупных покупок за последние годы (домен, цена, дата продажи, покупатель):

OMG.com, $80.000, 8/20/2009, Sedo.com;
AMT.com, $100.000, 4/28/2007, Sedo.com;
NHS.com, $151.300, 2/21/2006, Moniker.com;
SEX.com, $12.000.000, 1/25/2006, Private Transaction.

Как видишь, цены очень и очень впечатляют, так что тебе есть смысл заняться киберсквоттингом :)

Q: Решил заняться доменами. Очень часто на домайнерских форумах встречаю обозначения вроде LLLL, CCCC и т.д. Как их расшифровать?

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

  • L - любая буква;
  • N - любая цифра;
  • S - любой символ;
  • C - любая согласная буква;
  • V - любая гласная буква.

По ценности же различаются следующие классы букв:

  1. Супер-премиум (A, E, I, C, S, P, M, D, T);
  2. Премиум (A, B, C, D, E, F, G, H, I, L, M, N, O, P, R, S, T);
  3. Средние (J, K, U, V, W);
  4. Плохие (Q, X, Y, Z).

Q: Забыл пароль от уина, которым пользуюсь на телефоне в клиенте Jimm. Как восстановить пароль?

A: Помимо стандартного способа ретрива пароля через www.icq.com/password существуют и другие, более интересные, способы (вдруг ты забыл еще и мыло от номера или тебе необходимо подсмотреть пароль своей подружки :).

Итак, первый способ:

  1. Ищи в Гугле или на forum.asechka.ru прогу "ICQ Password Recalling" (IPR) от karas3d;
  2. Записывай в настройках подключения Jimm IP 127.0.0.1 и выключай фичу "Безопасное подключение";
  3. Подключайся. Прога сработает как сервер авторизации и выдаст тебе твой UIN и пароль.

Второй способ:

  1. Заходи на http://forum.motofan.ru/index.php?showtopic=147890 и качай прогу "Jimm ICQ Password Recovery";
  2. Запускай программу, жми "Open" и выбирай ранее слитый файл .rms от Jimm;
  3. Нажимай "Scan" и смотри, какие пароли нашла программа.

Где взять тот самый .rms файл от джимма, читай на форуме motofan.ru по приведенной выше ссылке.

Q: Раньше для брутфорса разных сервисов использовал THC-Hydra, но утилита, увы, больше не развивается (по крайней мере, в паблике). Есть ли активные проекты, которые могут составить здоровую конкуренцию?

A: Рекомендую попробовать Medusa (www.foofus.net/jmk/medusa/medusa.html), которая недавно проапгрейдилась до версии 2.0. Фишка проекта в возможности распараллелить задачу на нужное количество потоков, а также модульной структуре, благодаря которой можно подключить плагины для подбора паролей в самых разных сервисах. Сейчас доступны модули для: AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare), NNTP, PcAnywhere, POP3, PostgreSQL, rexec, rlogin, rsh, SMB, SMTP (AUTH/VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC.

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

A: DEP, напомню для всех, расшифровывается как Data Execution Prevention. Эта специальная системы защиты предотвращает исполнения кода, который находится в области данных, чем самым обламывая работу многих сплоитов. Для того чтобы изменить параметры DEP перейди в "Панели управления -> Система -> вкладка Дополнительное -> Быстродействие -> Параметры -> вкладка Предотвращения выполнения данных". Все операции доступны только при наличии аккаунта администратора. В случае необходимости, тут же можно отключить защиту для какой-то конкретной программы.

Еще один хинт того, как проще всего можно отключить DEP в системе. Все делается в одну команду через консоль: bcdedit.exe /set {current} nx AlwaysOff. Команда опять же выполняется только с правами админа.

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

A: Если провести предварительную небольшую подготовку, то разлочить компьютер можно, даже не зная пароль – просто введя любую белиберду. Для этого необходимо пропатчить процесс lsass.exe в том месте, где реализована проверка пароля. С задачей справляется скрипт для Metasploit'а (relentless-coding.blogspot.com/2010/02/windows-vista-7-targets-for-screen.html). Сплоит необходимо сохранить в директорию scripts/meterpreter в папке Metasploit'а. Запустив скрипт, можно быть уверенным, что в следующий раз, когда компьютер заблокируется скринсейвером, ты сможешь разлочить систему любым паролем.

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

A: Как раз недавно узнал способ, как реализовать это без всякого дополнительного программного обеспечения. Общий синтаксис следующий:

cmd.exe /v:on /c "for /F "delims=, tokens=1" %i in ('dsquery computer -limit 0') do set name=%i & set name=!name:~4! & Команду, которую нужно выполнить на !name!

Фишка заключается в том, что с помощью команды dsquery можно извлечь информацию обо всех рабочих станций в домене, при этом большая часть сложной команды используется для того, чтобы привести подробную инфу о хостах к банальному списку из имен станций. А далее, имея на руках права администратора и зная имена всех машин в сети, можно удаленно выполнить команду на каждом из компьютеров, что мы, собственно, и делаем.

Q: Делаю мини-лабораторию для анализа подозрительных сайтов и страниц (наподобие тех, который вы описывали в прошлом номере). Подыскиваю инструмент, который может найти, а еще лучше вырезать зловредный код из HTML-страницы?

A: Идеально подойдет написанный на Ruby скрипт iScanner (iscanner.isecur1ty.org). Тулза очень неплохо справляется с анализом скрытых iframe'ов, анализом сценариев на javascript, vbscript и объектов activex.

Q: Говорят, что если пофиксить баг, позволяющий получить в винде права системного пользователя (][ рассказывал о баге в статье "Долой Userlevel!" прошлого номера – прим. редактора), то есть шанс получить систему, которая будет постоянно вываливаться в BSOD. Как этого избежать?

A: Такая ерунда происходит, если официальный патч накладываются на систему, в которой обосновалась последняя модификация руткита TDSS (он же Tidserv, TDL3 или Alureon). Соответственно рецепт правильного апдейта простой. Перед установкой патча, обязательно нужно проверить винду на наличие заразы (она, кстати, отлично уживается и в Vista, и Windows 7). Для этого есть бесплатная тулза TDSS cleaning tool (www.norman.com/support/support_tools/77201/en).

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

A: Тут поможет механизм PAM (Pluggable Authentication Modules), предоставляющий API-интерфейс для реализации разных типов авторизации. Для каждого из типов используется свой подключаемый модуль: скажем, чтобы разрешить авторизацию по устройству Bluetooth (компьютер сам блокируется при отдалении от него), придется установить модуль pam_blue (packages.gentoo.org/package/sys-auth/pam_blue). Другие типы авторизации доступны через соответствующие модули:

Настройка каждого из типов отличается друг от друга, но подробные инструкции и даже видеомануалы легко найти на домашних страницах проектов.

Содержание