Охота на хакера Александр Любимов aka Sashiks Хакер, номер #084, стр. 084-062-2 Забэкдорить тачку и оставить для себя доступ хакер, наверное, уже успел, и в этот раз мне предстояло вытеснить названного гостя с web-сервера и не дать испоганить ему туеву хучу сайтов и загробить доступ к такому перспективному в плане ресурсов компу. [волк в овечьем skin'е] Сложившаяся ситуация выбора мне не оставляла: на некоторое время мне придется сменить амплуа и «поработать» в качестве админа на благо безопасности :). Итак, начинаем соображать. Хакер, поломавший систему, может пойти разными путями, и, чтобы иметь к ней постоянный доступ, не обязательно устанавливать rootkit, ведь можно просто обойтись приемами, которые практиковались годами - главное, чтобы была фантазия. Именно поэтому я решил оставить поиск руткита как самый крайний вариант. Приступим к изучению скомпрометированной системы. Многие начинающие хакеры оставляют в системе обычный бэкдор (bindshell, r0nin, bindtty) и запускают его засуиженным из-под рута. Как вариант создается простой С-файл, в котором выполняется setuid(0) и setgid(0), и запускается командный интерпретатор - system("/bin/sh"). На такой бинарник ставится chmod +s, получается, чтобы такое негодяйство найти, выполняем find / -type f -perm -04000 -ls и анализируем вывод на наличие странных или левых утилит (вроде "/sbin/root_me" :)). Проделав все вышеописанное я бегло убедился, что все в норме. А не мог ли хакер оставить в системе троян, который светит наружу порт? Такой backdoor можно с легкостью обнаружить с помощью портсканера или netstat'а: # netstat -an |grep LISTEN Ничего лишнего, как казалось, здесь тоже не было - только стандартные службы. А вот в выводе ps -aux среди прочего мусора, я увидел процесс демона xinetd (я не часто видел, чтобы его применяли). Ты, наверное, про него слышал и знаешь, что xinetd (Extended Internet Daemon) - улучшенная версия суперсервера inetd. Его задача заключается в прослушивании портов для служб, указанных в конфиге. Вместо того чтобы запускать кучу всяких telnetd и sshd, мы просто активизируем xinetd и он сам определит, на какую службу к нам хотят подцепиться и что запускать - ftp или telnet сеанс. Все службы, предоставляемые xinetd, валяются в папке /etc/xinetd.d. Например, в /etc/xinetd.d/ftp лежит конфиг, описывающий параметры запуска ftpd. Я принялся тщательно изучать конфиги сервисов, которые предоставлял суперсервер. Придраться, мягко говоря, было не к чему, да и даты на файлах стояли месячной давности (хотя их тоже можно было сменить командой touch). Другими словами, маловероятно, что нарушитель использовал для удаленного доступа именно xinetd. Значит, немного изменим направление поиска. [тотальная проверка] Уже через час мне окончательно надоело ковыряться в системных файлах, выискивать какие-то подозрительные бинарники. Хотя в запасе была еще дюжина догадок, я почему-то пришел к выводу, что в системе был установлен именно руткит. Даже обладая навыками профессионального следователя, найти и вычислить кит будет не очень легко :). Вот почему на свет родился rootkithunter. Я уже когда-то читал про него и знал, что в борьбе с червями, троянами и прочей заразой в UNIX эта утилита дает администратору ощутимую помощь. С официального сайта я поспешил стянуть архив (http://downloads.rootkit.nl/rkhunter-1.2.7.tar.gz) и установить «программулину». Хорошо, что весь процесс установки ограничился запуском инсталляционного скрипта в папке с rkhunter'ом. Чтобы получить подробный отчет по всей системы, запускаем так: |