By Xakep.ру Подразумевается, что читатель в курсе того, что такое 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. Все следующие шаги не требуют непрерывного взаимодействия и непрерывно проверяют запросы и ответы с определенным временным интервалом. Атакующий находит веб-сайт с XSS уязвимостью и возможностью вызова удаленного XSS шелла, JavaScript-а. Жертва следуя линку или посещая страницу выполняет скрипт в пределах домена. Броузер жертвы начинает выполнять периодические запросы к серверу XSS шелла для получения новых команд. При получении таковых (например получить куки, выполнить JavaScript и т.п.) выполняет их и возвращает результаты к XSS шеллу. Атакующий может передавать новые команды и получать результаты через административный интерфейс. Почему это лучше классической XSS атаки? Атакующий получает более "одного выстрела". После заражения жертвы атакующий получает ответ и может построить дальнейшие свои действия основываясь на полученной информации и складывающейся ситуации.Такая атака позволяет обходить ограничения.Позволяет получитьсвоеобразный XSS ботнет. Что такое XSS туннелинг? Соответственно XSS туннелирование - пропускание HTTP трафика через открытый XSS канал. XSS туннель - стандартный HTTP прокси, сидящий на системе хакера. Любая утилита, сконфигурированная на его использование, будет передавать данные через активный XSS канал на сервере XSS шелла. XSS туннель конвертирует запросы и ответы прозрачно для соответствия требованиям HTTP запросов и XSS шелла. XSS туннель написан на .NET и конечно требует .NET Framework. Как работает XSS туннель XSS туннель соединяется с определенным XSS шеллом и получает текущий активный идентификатор (жертву, которую будет контролировать). Локальный HTTP клиент (броузер, сканер и т.д.) посылает HTTP запрос к XSS туннелю. - Он конвертирует HTTP запрос в запросы, которые может понять и обработать XSS шелл. Затем он посылается на сервер XSS шелла. - Сервер сохраняет запрос в базу (все запросы действительны только для определенной жертвы, его ID можно видеть в админке туннеля). Клиент XSS шелла делает периодические запросы к серверу для получения команд. Процесс этот требует междоменного чтения, так что XSS шелл использует загрузку удаленных JavaScript-ов для обхода политики безопасности. - Если есть какие-либо команды, клиент загружает их и обрабатывает и отправляет ответ на сервер. XSS туннель проверяет сервер XSS шелла на наличие ответа на предыдущий запрос. Если он есть, то превращает его в правильный HTTP ответ и посылает клиенту. По умолчанию XSS туннель кэширует различные файлы для ускорения процесса и выдает их из кэша если они в нем существуют. Схема атаки Установить XSS шелл сервер. Сконфигурировать XSS туннель на использование XSS шелл сервера. Подготовить XSS атаку. Запустить XSS туннель и ждать жертв. Сконфигурировать программы или броузер на использование XSS туннеля. При появлении жертвы в XSS туннеле, начать использовать сконфигурированную пунктом ранее программу. Описанные инструменты ты можешь скачать тут: http://www.portcullis-security.com/16.php
идея не новая, а вот исходники порадовали. но, к сожалению, имхо, штука не очень-то и действенная в реальной жизни. ввиду того, что каждый новый запрос добавляется в очередь, чтобы у вас страничка быстро загрузилась нужно, чтобы на зараженную страницу зашло через маленький промежуток подряд пользователей 50 для загрузки каждого отдельного элемента; в тоже время большое кол-во жертв будет использованно не эффективно... далее, тк запросы идут на уровне браузера используя ajax, то не ясно какой процент из браузеров жертв загрузит что-то удаленное вообще.
я про загрузку страницы (получение ее содержимого как значения) с удаленного доменного имени, например. практически не знаю ни аякса, ни яваскрипт, но врядли разработчики браузеров дураки и позволяют выполнять такие действия в соответствии со стандартными параметрами безопасности...
причем тут скрипт. я говорю про загрузку из браузера жертвы странички, запрашиваемой хэкером. как она загружается и ее содержимое передается шеллу?
напиши пожалуйста свои мысли на связанном русском языке или я напишу, что ты дурашка. >>AJAX позволяет делать гет-пост запросы >>в пределах домена не надо меня убеждать в собственной правоте. я кажется это предположение написал еще в первом посте. >>динамически подгружаем внешний скрипт не тупи, я же ясно написал ДВА РАЗА, что меня интересует как ЖЕРТВА подгружает страничку необходимую хэкеру о отправляет ее СОДЕРЖИМОЕ на шелл, которое потом наблюдать можно через тунель. зы у меня вопрос не по аяксу, а по логике вещей. напиши ява-скрипт код, которой подгружает страничку с произвольного домена и заносит ее содержимое в переменную soderzhimoe. вот что меня интересует.
Первоисточники http://ha.ckers.org/blog/20070710/xss-proxy-tunnelling/ http://www.securityfocus.com/archive/1/473312/30/0/threaded http://ferruh.mavituna.com/makale/http-proxy-for-xss-channels/
>>выполняет необходимые действия с помощью или без помощи ajax в пределах домена тогда я не пойму где тут тунель-то? или идея в том чтобы имея хсс на сайте организовывать ее безопасный просмотр? >>С произвольного домена я не знаю как)(в обычном случае) угу