Учетная запись пользователя была взломана на одном из моих серверов, где хакер запустил несколько бинарных файлов для спама. Прежде чем я убью процессы, хотел бы я сделать их копию, но когда я
tar czf 30333.tar.gz /proc/30333
все файлы пусты.
Вопрос
Как мне сделать копию /proc/30333
?
Вот один скрипт, который позволяет ограничить размер сохраняемых файлов (здесь 32 или 64 МБ в зависимости от оболочки):
PID=30333
ulimit -f 65536
cd /proc/$PID || exit 1
find . -type d -exec sh -c 'mkdir -p /tmp/proc/$PID/$1' sh {} \;
find . -type f -exec sh -c 'cat $1 > /tmp/proc/'$PID'/$1' sh {} \;
tar czf /tmp/$PID.tgz /tmp/proc/$PID
rm -rf /tmp/proc/$PID
Удостоверься что /proc/30333/exe
входит в то, что вы копируете. Не только символическая ссылка, но и сам исполняемый файл, на который она указывает.
Образ памяти также может быть полезен. Вы можете создать дамп ядра, набрав:
gdb
attach 30333
gcore
Решение
cp -r /proc/30333 /root
tar czf /root/30333.tar.gz /root/30333
/proc
представляет собой виртуальную файловую систему и не имеет актуальный файлы, а скорее содержит информацию о процессах, запущенных в системе.