Я работаю с взломанным сервером Ubuntu 8.04 Plesk 9.5.4. Похоже, что сценарий на сервере постоянно выполняет обратный поиск случайных IP-адресов в Интернете.
Я впервые заметил это во время использования top
а затем заметил непрерывные вспышки этого: sh -c host -W 1 '198.204.241.10'
Я написал этот скрипт для допроса ps
каждую секунду, чтобы увидеть, как часто выполняется этот сценарий:
#!/bin/bash
while :
do
ps -ef | egrep -i "sh -c host"
sleep 1
done
В результате этот сценарий запускается часто, каждые несколько секунд:
www-data 17762 8332 1 10:07 ? 00:00:00 sh -c host -W 1 '59.58.139.134'
www-data 17772 8332 1 10:07 ? 00:00:00 sh -c host -W 1 '59.58.139.134'
www-data 17879 17869 0 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
www-data 17879 17869 1 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
www-data 17879 17869 0 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
root 18031 17756 0 10:07 pts/2 00:00:00 egrep -i sh -c host
www-data 18078 16704 0 10:07 ? 00:00:00 sh -c host -W 1 '59.58.139.134'
www-data 18125 17996 0 10:07 ? 00:00:00 sh -c host -W 1 '91.124.51.65'
root 18131 17756 0 10:07 pts/2 00:00:00 egrep -i sh -c host
www-data 18137 17869 0 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
www-data 18137 17869 1 10:07 ? 00:00:00 sh -c host -W 1 '198.204.241.10'
Моя теория заключается в том, что если я вижу, кто запускает sh
процесс или форма, в которой он запущен, я могу изолировать проблему дальше.
Может ли кто-нибудь помочь мне использовать netstat
или ps
определить откуда sh
выполняется?
Я могу получить много предположений о том, что ОС и Plesk устарели, но имейте в виду, что есть несколько очень конкретных причин, по которым на этом сервере используется устаревшее программное обеспечение. Мой вопрос адресован продвинутым системным администраторам Linux, которые имеют большой опыт работы с угрозами безопасности и использования netstat
и ps
чтобы добраться до сути.
Команда grep -lr 'sh -c host'
оставленные в комментариях, оставленные @ramruma, помогли мне быстро найти соответствующий сайт, на котором запущен скрипт. Как оказывается сервер не скомпрометирован. Вместо этого происходит то, что в этом месте есть форум, созданный Работает на SMF 1.1.2 | SMF © 2006-2007, ООО «Простые машины» который выполняет обратный поиск каждый раз, когда кто-то обращается к доске.
Также выясняется, что форум не обслуживается и сильно спамен, и почему мы изначально думали, что он скомпрометирован, потому что многие из обратных поисков указывали на иностранные IP-адреса, известные как спам. Только Богу известно, как веб-сайт может выполнить эту команду, но пока я собираюсь закрыть проблему как безвредную.
Что касается общих ответов, которые я получил о «восстановлении из резервной копии», я пришел в ServerFault, чтобы помочь изолировать проблему, и ясно дал понять это в моем первоначальном запросе. Иногда восстановление из резервной копии нецелесообразно или даже невозможно. Лучше разобраться в проблеме или найти компромисс, если он может возникнуть в будущем.
Хотя похоже, что вы уже выяснили причину этой проблемы, выгрузив таблицу процессов с помощью pstree
и несколько аргументов помогли бы.
Замени свой ps
команда в цикле с:
pstree -apu www-data >> getyousomespam.txt
Вам нужно запускать это только около 30 секунд из-за стены текста, который он будет генерировать. Это отобразит все процессы, принадлежащие www-data, их процессы-предки, все переходы uid на этом пути (-u
), аргументы командной строки, по которым можно выполнять поиск (-a
) и PID (-p
).
Очевидно, эта информация была бы полной чушью если вы были скомпрометированы, но если это не так (как, кажется, здесь), это обеспечит бумажный след, который вы искали ... или, по крайней мере, хорошее начало.
Редактировать:
pstree
не заботится о исходных терминалах, но если вы можете изолировать вещи от постоянного процесса-предка, наличие PID упростит завершение работы оттуда.
Стоп. Вы идете неверным путем. Ваш сервер скомпрометирован, вам необходимо отключить его и восстановить из заведомо исправной резервной копии. Смотрите также Как мне поступить с взломанным сервером?