A: На машине могут стоять утилиты, тестирующие систему на безопасность. Обращай внимания на запущенные программы tripwire, portcentry, различные IDS, а также на программу chkrootkit, которая может и не светиться в процесс-листе.
Q: В моей системе стали спонтанно пропадать файлы. Вернее, файл существует, но /bin/ls его не показывает! С чем это связано?
A: На ум сразу приходит: тебя взломали. Тестируй сервер на наличие руткитов и выявляй злоумышленника. Хакер, видимо, прописал в конфиг руткита маску, под которую попал системный файл. В результате этого файл исчез из поля зрения ls. Впрочем, такая аномалия может возникнуть, если на винте имеются бэды. На всякий случай запусти fsck и удостоверься, что файловая система в норме.
Q: Когда я просматривал таблицы MySQL на взломанном сервере, то напоролся на какие-то учетные записи. Только вот пароли там зашифрованы, и я не могу их взломать.
A: Ты наткнулся на MD5-хэши. MD5 является необратимым алгоритмом, поэтому единственный способ расшифровать пароль – воспользоваться программой-брутфорсером. Таких программ много, могу порекомендовать md5crack и md5Inside. Вторая софтина имеет графический интерфейс и поддерживает потоки, так что расшифровка займет не очень много времени.
Q: В каталоге /tmp я обнаружил странноватый файл .bugtraq. Все бы ничего, но его владелец – юзер nobody. Меня взломали?
A: Да, к сожалению, тебя взломали. Файл, который ты обнаружил, является частью системы для проведения DDoS. Иными словами, твою машину попросту зомбировали через баг в httpd. Немедленно удали этот файл и переустанови Apache на более свежий релиз. Кроме этого, проверь систему на наличие руткита – возможно, взломщик до сих пор использует ресурсы твоего сервера.
Q: Хочу для грамотной защиты организовать в сети машинку только для логов. Как заставить syslogd удаленно пересылать на нее данные?
A: Для пересылки логов syslogd открывает 514 udp-порт, который служит для приема данных. Установи сервис с открытым портом на машине для хранения журналов (запускай демон с параметром –r). Затем занеси в /etc/syslog.conf (на серверах, с отсылаемыми логами) строку вида *.* @адрес_системы, и все журналы будут передаваться на удаленный сервер.
Q: Как закачать файл на сервер через бажный WWW-скрипт, если на машине отсутствует wget?
A: Существует несколько способов заливки файлов через уязвимые скрипты. Даже если на сервере отсутствует wget, проверь наличие fetch или get. Можно использовать FTP-сценарий и вытянуть нужный файл через /usr/bin/ftp. При этом используй опцию –n, чтобы передать логин и пароль в одной строке. Сам сценарий запиши построчно в файл с помощью команды /bin/echo.
Q: Я коннекчусь к серверу через бэкдор, а затем запускаю логклинер. Процесс зачистки логов занимает около 5 минут, так как wtmp весит порядка 500 Мб. Можно ли как-нибудь ускорить очистку?
A: Ни в коем случае не удаляй /var/log/wtmp, так как администратор сразу почует неладное. Выбери другой логклинер. Дело в том, что логвайпер, который ты используешь, начинает искать записи с начала файла. Однако в сети много чистильщиков, которые ставят указатель в конец wtmp, а затем начинают поиск. Такой алгоритм используется, например, в утилите grlogwipe. Бьюсь об заклад, что ты юзаешь vanish2, так как именно он очищает wtmp с самого начала.
Q: Нашел старенький Linux в локальной сети. На сервере крутится DNS и больше ничего. У меня есть эксплоит для bind, но я не знаю его версию. Можно ли ее определить какой-нибудь утилитой?
A: Запусти утилиту dig с параметром «@адрес_сервера chaos txt version.bind», и увидишь версию сервера. Можно отфильтровать вывод по шаблону VERSION.BIND, тогда ответ займет всего одну строку. Набери man dig, и узнаешь, что еще можно сделать с помощью этой чудесной утилиты.
Q: Есть ли способ узнать, находится ли взломщик в консоли, если он установил руткит и логклинер?
A: Есть один верный способ, определяющий левых юзеров даже после зачистки логов. Выполни команду ls –la /dev/pts и сравни число открытых псевдоустройств с числом активных юзеров. Если ты обнаружишь пару лишних псевдотерминалов, знай, что на твоей машине хостится хакер :). Правда, некоторые процессы, например radius, берут для себя pts, но это исключение из правил.
Q: Посоветуй простой бэкдор, который бы удаленно открывал порт на взломанной через WWW машине.
A: Пожалуйста! Можешь воспользоваться моим любимым перловым бэкдором. Скрипт открывает порт 37900 и при подключении запускает /bin/sh в интерактивном режиме. Сценарий весит всего 317 байт, забирай его с моего сервера http://forb.convex.ru/bd.pl.
Глоссарий / Основные понятия по взлому *nix-систем
Читать дальше