В поисках эксплоитов Дмитрий Докучаев aka Forb Xakep, номер #052, стр. 052-060-3 Через несколько минут все результаты find'а упадут тебе в /tmp/locate_perl.log. Остается только его пропарсить и перейти к стягиванию сплоитов. 4. Inaccessible Find Предположим, что в целях безопасности админ снял атрибуты с find. Все. Такое бывает, и я не раз с этим сталкивался. Но это не означает, что ты не можешь юзать команду find. Если ты перенесешь бинарник с похожей платформы на сервер хостинга, то, возможно, он у тебя заработает не хуже прежнего. Теперь поправь в скрипте переменную $find, чтобы она ссылалась на принесенный извне бинарник, и смело запускай утилиту поиска. 5. Inaccessible /home Допустим, тебе попался хостинг, в котором закрыт весь каталог /home. То есть взять список пользователей становится невозможным. Но если посмотреть с другой стороны, то пользователи всегда будут прописаны в конфиге апачи, который, как правило, доступен для чтения и находится в /etc/httpd/conf/httpd.conf (на самом деле он может лежать где угодно, а этот путь указан для предустановленного apache - прим. ред.). Из него нам интересны только опции DocumentRoot, значениями которой будут каталоги с файлами, видными из web'а. Задача опять аналогична предыдущей, но придется чуть-чуть поменять процедуру init() в скрипте: sub init { my (@files); open(CONF,"/etc/httpd/conf/httpd.conf") || die "cant access to conf\n"; ## Открываем конфиг апачи для чтения, либо завершаем скрипт while(<CONF>) { ## Читаем его построчно if ($_=~/DocumentRoot/) { ## Если встречается DocumentRoot (undef,$file)=split ' '; ## Выдираем из опции значение $file=~s/^\/home//g; ## Удаляем из него /home push(@files,$file); ## И помещаем в @files как элемент массива } } close(CONF); ## Закрываем конф return @files; ## И возвращаем @files } Таким образом, меняя лишь способ добычи @files, мы оставили прежним главный модуль скрипта и выполнили поиск, что говорит о решении поставленной задачи. 6. Истина где-то... в логах Оригинальный способ поиска - просмотр логов доступа web-сервера. Как это ни парадоксально, но они также доступны для чтения, и в них можно найти на редкость интересные обращения, совпадающие с шаблоном. Пропарси httpd.conf и отыщи там общий лог apache. Если такой есть, то, копаясь в нем простым grep'ом, можно отыскать интересные запросы и по ним определить местонахождение эксплоитов: $ grep hack access_log >> /tmp/logs.log Если же логи пишутся по каждому виртуалхосту и находятся, например, в /home/user/public_html/logs/access_log, то, сменив шаблон поиска на access_log и заюзав locate.pl, ты можешь обработать каждый лог по следующему шаблону: $ grep 7350 `cat /tmp/locate.log` >> /tmp/logs.log 7. Search in strange dirs Возможно, кто-то уже порутал хостинг до тебя. Взломщики иногда забывают затирать за собой ценные сплоиты и оставляют их в первозданном виде. Обычно они лежат в левых папках. Чтобы найти такие, посмотри директорию /tmp с флагом -la, может быть там будет папочка, похожая на "...". Почти наверняка в ней будут лежать эксплоиты. Также прочеши /dev и /lib на предмет схожих директорий: |