Десять роковых ошибок хакера. Познание секретов маскировки
Докучаев Дмитрий aka Forb
Xakep, номер #056, стр. 056-054-2
Если с чисткой текстовых логов не возникает особого геморроя, то обрабатывать бинарные файлы несколько сложнее. Тут не обойтись без специальных логвайперов, понимающих структуру следующих файлов: /var/log/wtmp, /var/log/lastlog и /var/run/utmp.
Часто хакеры решают проблему простой командой rm. Но если админ увидит, что за последний месяц в его системе не было пользователей, взломщику от этого лучше не станет. Удалять можно лишь utmp-файл, отображающий пользователей в системе в данный момент времени. После удаления должна последовать команда touch, создающая файл заново. Если этого не сделать, бинарник /usr/bin/w ругнется на отсутствие utmp, а запись онлайн юзеров производиться не будет.
2. Изменение даты на файлах
Дата на файлах - уязвимое место хакера. Именно по дате программы-следилки за системой определяют установку руткита, либо изменение системных файлов. Сменить дату на файле позволяет команда touch с параметром -t, после которого идет дата в формате: МесяцДеньЧасМинутаГод. Взломщики очень часто забывают менять дату обратно на старую после правки конфа либо перезаписи бинарника. Админские утилиты быстро определяют изменения в системе и посылают подробный отчет администратору на мыло.
3. История команд
Незаменимый атрибут любого шелла - хранение истории команд, набранных пользователем. Это сделано, чтобы иметь возможность повтора набранной когда-то команды. Файл с историей команд в первую очередь изучается хакером при удачном взломе системы, чтобы получить первоначальную информацию о деятельности админа, либо вытянуть пароли из консольных программ.
Но если посмотреть с другой стороны, то и админ может быть параноиком, регулярно изучающим свой собственный history-файл. И если хакер порядочно наследил в системе, оставив таким образом историю установки руткитов или DoS'еров, реакция администратора непредсказуема. Поэтому каждый взломщик должен своевременно заметать свои следы.
Местонахождение history-файла можно узнать через переменную среды HISTFILE, просмотрев ее консольной командой echo $HISTFILE. Соответственно после команды export HISTFILE=/dev/null запись команд в файл прекратится. Внимание! Данный прием работает только на время текущей сессии, поэтому хакеру придется выполнять команду каждый раз при появлении в системе.
4. Заражение системы руткитами
Как это ни парадоксально, но установка руткитов может запросто выдать хакера. Во-первых, заменяя системные файлы, он, как правило, совершает ошибку №2, так как устанавливать первоначальную дату на туеву хучу бинарников мягко говоря долго и неспортивно. Во-вторых, если админ установил новую версию пакета (binutils, например), то установка старой поверх системной ни к чему хорошему не приведет. Более того, нарушителя могут выдать ключи к командам, задаваемые alias'ом. К примеру, старая версия /bin/ls не понимает ключа --colors, а многие руткиты содержат именно старые версии. Иными словами, установив старый руткит на новую систему, хакер автоматически подписывает себе смертный приговор.