С ksh93:
{ head -c "$n"; } < file <#((n = EOF - 25 - 2 , 25))
Или сделать это на месте:
{ head -c "$n"; } < file <#((n = EOF - 25 - 2 , 25)) 1<>; file
Если у вас есть /opt/ast/bin
перед $PATH
, вы получите встроенный head
.
<#((...))
— это оператор lseek()
. ...
интерпретируется как арифметическое выражение, где EOF
— длина файла. Итак, выше мы присваиваем длину отображаемой части $n
и ищем 25 байтов в файле. <>;
— это оператор перенаправления «открыть-в-чтении+записи-и-обрезать-если-команда-успешна». Мне помогли решить эту проблему. В файле / etc / crontab
была запись, как показано ниже, и именно сценарий вызвал проблему.
*/3 * * * * root /etc/cron.hourly/gcc.sh
Он выполнял некоторый двоичный (зашифрованный) файл, который был ответственен за создание двоичных файлов в / usr / bin
с зашитыми именами, такими как ipjihmyzuh, fdmhhxthxy, fojoouuupy, fgqzvgtjan, bsitumzdkforc, cugwdsxyem. .
Позвольте мне вкратце объяснить, как мы это достигли.
Из netstat мне удалось получить PID
для этого (в предыдущем случае это было 1126 / sh , но имя и PID
остаются меняется).
С помощью lsof
я смог увидеть двоичные файлы с указанными выше именами.
lsof -p 1126
Мы удалили созданные двоичные файлы, и после этого они продолжают создавать с другими именами. Итак, в качестве слепого выстрела мы затем проверили файлы, связанные с cron, и в качестве попытки остановили cron, убили все подозрительные процессы и снова удалили двоичные файлы. Создание двоичного файла остановлено, и сейчас ничего не происходит.
Снова запустил cron, и все вернулось. Эта запись была удалена из / etc / crontab
, удалены все вновь созданные двоичные файлы, уничтожены все подозрительные процессы, и теперь все в порядке.
Я не уверен, как / etc / crontab
был отредактирован или /etc/cron.hourly/gcc.sh
был помещен туда. Парень, который мне помог, сказал, что, скорее всего, это произошло из-за того, что пользователь root мог быть как-то взломан. Я отключил аутентификацию root ssh
и сейчас использую только пользователя sudo
.
В своем ответе вы описываете известные сигнатуры вредоносных программ.
Ваш сервер был взломан либо человеком, либо ботом. Это вредоносное ПО осталось позади.
У них наверняка есть руткиты, с которыми вы можете даже не видеть, что они запускают, если не считать странной команды ps
команды who
. рутики умеют скрывать открытые процессы и порты при исследовании скомпрометированной системы в командной строке.
Переустановите с нуля, у вас нет никаких гарантий того, что было изменено. Меняйте любые пароли пользователей, которые находятся на этом сервере, по крайней мере, их хэши паролей были скомпрометированы, на работе у парочки из них уже были скомпрометированы их простые пароли.