Подразумевается, что читатель в курсе
того, что такое XSS.

Для понимания того, что такое  XSS-туннель
и как он работает, прежде всего необходимо
понять, что такое XSS-канал и как он работает. 

 

Что такое XSS-канал

XSS-канал — интерактивный коммуникационный
канал между двумя системами, открытый при
помощи XSS-атаки. С технической точки зрения,
это тип AJAX-приложения, которое может
принимать команды, посылать ответ и делать
это между разными доменами.

XSS-шелл — это инструмент для установления XSS-канала между жертвой и атакующим, так что
нападающий получает контроль над броузером
жертвы и может посылать ему команды.
Соответственно, коммуникация в таком случае
двухнаправленная.

Для получения XSS-шелла необходимо
внедрить соответствующий JavaScript при помощи
XSS-атаки. После загрузки скрипта хакер и
получает контроль над броузером жертвы — он
может видеть запросы, ответы серверов и
может полностью управлять броузером.

Пример такой атаки приведен ниже:

 

Как работает XSS-шелл

Приложение такого рода имеет три основных
части.

Во-первых, серверная часть — она
координирует обмен данными между
нападающим и его жертвой. В данном случае
ему требуется ASP и IIS, база MS Access для хранения
данных.

Во-вторых — клиентская часть, написанная
на JavaScript. Она загружается в броузер жертвы и
отвечает за получение и обработку команд,
обеспечивая существование канала между
хакером и его жертвой. Код был
протестирован под Firefox, IE 6 и 7.

Ну и, наконец, заключительная часть XSS-шелла
— административный интерфейс. Атакующий
может посылать команды и получать ответы от
жертвы мгновенно через свой интерфейс.
Обратно используется ASP и IIS.

Все следующие шаги не требуют
непрерывного взаимодействия и непрерывно
проверяют запросы и ответы с определенным
временным интервалом.

  1. Атакующий находит веб-сайт с XSS-уязвимостью и возможностью вызова
    удаленного XSS-шелла, JavaScript-а.
  2. Жертва, следуя линку или посещая
    страницу, выполняет скрипт в пределах
    домена.
  3. Броузер жертвы начинает выполнять
    периодические запросы к серверу XSS-шелла
    для получения новых команд.
  4. При получении таковых (например,
    получить куки, выполнить JavaScript и т.п.)
    выполняет их и возвращает результаты к XSS-шеллу.
  5. Атакующий может передавать новые
    команды и получать результаты через
    административный интерфейс.

Почему это лучше классической XSS-атаки?

  • Атакующий получает более "одного
    выстрела". После заражения жертвы
    атакующий получает ответ и может
    построить дальнейшие свои действия,
    основываясь на полученной информации и
    складывающейся ситуации.
  • Такая атака позволяет обходить
    ограничения.
  • Позволяет получить своеобразный XSS-ботнет.
 

Что такое XSS-туннелинг?

Соответственно, XSS-туннелирование —
пропускание HTTP-трафика через открытый XSS-канал. XSS-туннель — стандартный HTTP-прокси,
сидящий на системе хакера. Любая утилита,
сконфигурированная на его использование,
будет передавать данные через активный XSS-канал на сервере XSS-шелла. XSS-туннель
конвертирует запросы и ответы прозрачно
для соответствия требованиям HTTP-запросов и
XSS-шелла.

XSS-туннель написан на .NET и, конечно, требует
.NET Framework. 

 

Как работает XSS-туннель

  1. XSS-туннель соединяется с определенным XSS-шеллом и получает текущий активный
    идентификатор (жертву, которую будет
    контролировать).
  2. Локальный HTTP-клиент (броузер, сканер и т.д.)
    посылает HTTP-запрос к XSS-туннелю.

    — Он конвертирует HTTP-запрос в запросы,
    которые может понять и обработать XSS-шелл.
    Затем он посылается на сервер XSS-шелла.
    — Сервер сохраняет запрос в базу (все
    запросы действительны только для
    определенной жертвы, его ID можно видеть в
    админке туннеля).

  3.  Клиент XSS-шелла делает периодические
    запросы к серверу для получения команд.
    Процесс этот требует междоменного чтения,
    так что XSS-шелл использует загрузку
    удаленных JavaScript-ов для обхода политики
    безопасности.

    — Если есть какие-либо команды, клиент
    загружает их и обрабатывает и отправляет
    ответ на сервер.

  4. XSS-туннель проверяет сервер XSS-шелла на
    наличие ответа на предыдущий запрос. Если
    он есть, то превращает его в правильный HTTP-ответ и посылает клиенту. По умолчанию XSS-туннель кэширует различные файлы для
    ускорения процесса и выдает их из кэша,
    если они в нем существуют.
 

Схема атаки

  1. Установить XSS-шелл сервер.
  2. Сконфигурировать XSS-туннель на
    использование XSS-шелл сервера.
  3. Подготовить XSS-атаку.
  4. Запустить XSS-туннель и ждать жертв.
  5. Сконфигурировать программы или броузер
    на использование XSS-туннеля.
  6. При появлении жертвы в XSS-туннеле, начать
    использовать сконфигурированную пунктом
    ранее программу.

Описанные инструменты ты можешь скачать
тут:

http://www.portcullis-security.com/16.php

Оставить мнение

Check Also

Вычислительная мощь. Какие чипы AMD и Nvidia лучше для расчетов на видеокарте

Этим летом мы запустили серию статей о вычислениях на видеокартах. Подробно разобрали, как…