Определите, откуда запускается "sh" под пользователем apache www-data, используя PF или NETSTAT

Я работаю с скомпрометированным сервером Ubuntu 8.04 Plesk 9.5.4. Кажется, что скрипт на сервере постоянно выполняет обратный поиск случайных IP-адресов в Интернете.

Я впервые заметил это во время использования top и затем заметил вспышки этого, идущие непрерывно: sh -c host -W 1 '198.204.241.10'

Я написал этот скрипт для допроса ps Каждую 1 секунду, чтобы увидеть, как часто этот сценарий происходит:

#!/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 докопаться до сути.

ОБНОВЛЕНИЕ 26 окт. 14:01

Команда grep -lr 'sh -c host' оставленный в комментариях, оставленных @ramruma, помог мне быстро найти соответствующий веб-сайт, на котором запущен скрипт. Как оказалось, сервер не скомпрометирован. Вместо этого в этом месте есть форум, созданный Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC, который выполняет обратный поиск каждый раз, когда кто-то обращается к доске.

Также оказывается, что форум не поддерживается и сильно спамит, и почему мы изначально думали, что он скомпрометирован, потому что многие обратные поиски указывали на иностранные IP-адреса, известные как спам. Боже мой знает только, как веб-сайт может выполнить эту команду, но пока я собираюсь закрыть вопрос как безвредный.

Что касается общих ответов, которые я получил о "восстановлении из резервной копии", я пришел на ServerFault, чтобы помочь локализовать проблему, и я ясно дал понять в своем первоначальном запросе. Иногда восстановление из резервной копии нецелесообразно или даже невозможно. Лучше выяснить проблему или найти компромисс на случай, если он может возникнуть в будущем.

2 ответа

Хотя, похоже, вы уже выяснили причину этой проблемы, выгрузите таблицу процессов с помощью pstree и несколько аргументов помогли бы.

Замените свой ps команда в цикле с:
pstree -apu www-data >> getyousomespam.txt

Вы хотели бы запустить это только в течение 30 секунд из-за стены текста, которую он сгенерирует. Это отобразит все процессы, принадлежащие www-данным, их процессы-предки, все переходы uid на этом пути (-u), аргументы командной строки, по которым вы можете искать (-a) и PID (-p).

Очевидно, что эта информация была бы полностью ложной, если вы были скомпрометированы, но если вы этого не сделали (как, кажется, имеет место здесь), это обеспечило бы бумажный след, который вы искали... или, по крайней мере, хорошее начало.

Редактировать:
pstree не касается самих исходящих терминалов, но если вы можете изолировать вещи от процесса постоянного предка, наличие PID позволит с легкостью завершить работу оттуда.

Стоп. Вы идете об этом неправильно. Ваш сервер скомпрометирован, вам необходимо отключить его и восстановить из заведомо исправной резервной копии. Смотрите также Как мне работать с взломанным сервером?

Другие вопросы по тегам