Вариантов
сокрытия шелла масса, разберем
некоторые базовые методы.
1. Маскируем расширение.
К примеру, у нас есть
директория «images», доступная
на запись, в ней хранятся
картинки с расширением .gif, у
нас есть вариант залить шелл с
расширением .gif и добавить в
директорию файл .htaccess со
следующим содержанием:
AddHandler application/x-httpd-php
.gif
Как видно, мы даем серверу
инструкцию интерпретировать
файлы *.gif как php-скрипты.
2. Маскируемся под
местность.
Допустим, у нас в директории
есть файлы:
connect.inc.php
functions.inc.php
other_function.inc.php
config.inc.php
Мы можем переименовать наш
шелл, например, в
main_functions.inc.php, и он
более-менее нормально впишется в
окружающую обстановку.
3. touch, touch, ты
могуч...
Дабы не провоцировать админа,
меняем дату изменения нашего
свежезалитого шелла. В этом нам
поможет заветный touch, будем
использовать одноименную функцию
PHP.
4. Гостеприимный tmp.
К примеру, если у нас LFI, то
можно закачать файл шелла в
директорию / tmp, она, как
известно, в 99% случаев доступна
на запись, к тому же там
зачастую хранятся файлы сессии.
Файл маскируем под сессию, далее
просто инклудим его как ни в чем
не бывало (?file=../../tmp/sess_d17d8f066
).
1f8f44dd7dc5110c8825246
5. Смена хозяина.
Допустим, мы перезалили под
рутом наш шелл в нужную
директорию, только шелл больно
палевный. т.к. у файла овнер и
группа стоят права рута:
-rwr-x--x 1 root whell
5043 2009-07-09 13:51 shell.php
Нужно под рутом сменить
владельца файла и группу на
данные владельца директории. К
примеру, chown www shell.php
сменит владельца файлу www
shell.php.