脚本头
定义变量
#user 、pass 、gilimea 、sshkey变量
使用awk或者直接cat查看/etc/passwd 文件内容, awk -F “:” ‘$3==0{print$1}’ /etc/passwd 查看管理员用户,发现上述脚本中出现的用户
# facuser()
在木马脚本中找到创建sclipicibosu的代码段
判断/etc/passwd中是否存在sclipicibosu用户,如果不存在,则创建用户和密码并添加sudo权限,sclipicibosu为超级用户
locationperfection()和getingmineru()
locationperfection()
# tinlex=$(pwd) 将当前目录记录到变量tinlex中
# mkdir /var/tmp/.ladyg0g0/ >/dev/null 2>&1 创建目录隐藏.ladyg0g0
# echo $tinlex > “/var/tmp/.ladyg0g0/.pr1nc35” 将变量tinlex写入.pr1nc35文件中
# if 判断是否存在/usr/bin/.locationesclipiciu,如果不存在创建并写入变量tinlex
此木马文件在/home/zyr下,所以pwd结果为/home/zyr
查看/var/tmp/.ladyg0g0/.pr1nc35文件
查看/usr/bin/.locationesclipiciu 文件
getingmineru()
# locatie=”$(cat /var/tmp/.ladyg0g0/.pr1nc35)” 所以locatie变量值为/home/zyr
后面的if 语句就是判断在/home/zyr下是否存在ethminer,如果没有就下载
微步判定下载地址为恶意
sshkiller()
# if 创建目录
# 第一个echo 将双引号中的内容写入到/usr/bin/.SQL-Unix/.SQL/.db文件中
查看/usr/bin/.SQL-Unix/.SQL/.db文件内容
# alias kill=’printf “”’ 这样执行kill就会输出为空,可以使用unalias 命令 删除
# 第二个echo 将单引号中的内容写入~/.bashrc文件中,查看文件内容
向~/.bash_profile写入if语句判断~/.bashrc文件是否存在
如果存在
# chattr -i 使目录.ssh和文件authorized_keys解锁,进入可编辑的状态,将变量sshkey的内容写入到文件authorized_keys中,chmod设置权限,最后上锁。
如果不存在
#执行红框内容(tips:不止图片上的内容,太长了截不全,内容跟之前写入内容大致一样)
#minerinio()
# 定义变量locatie,值为/home/zyr
# 判断/home/zyr存在或不存在.b4nd1d0文件,并写入单引号中的内容
查看b4nd1d0文件内容
# pgrep -x ethminer 判断是否存在ethminer进程,如果不存在则启用。
#crontablegend()
# 定义变量locatie,值为/home/zyr
# if语句判断是否存在.placi定时任务,不存在则创建
# rm -rf 最后删除了这个文件。
# 可以通过#crontab -l 查看定时任务
下图是命令调用顺序以及,终端输出内容
checkingpid()、killingstrangers()、pisamsystemu()
# killingstrangers()和pisamsystemu()感觉写的有问题,或者可能我自己没理解,就不记录了。
# 后面这三个自定义函数和最后的if内容大概就是对前面运行进程所产生的文件做一个检查。
#checkingpid()
# if语句判断是否存在/usr/bin/.pidsclip文件,并向其写入内容
# $! :Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
# 判断是否存在ethminer,不存在则运行.b4nd1d0
最后判断是否需要执行killingstrangers()、pisamsystemu()、checkingpid
所以,根据上述内容和函数运行顺序,可做出判断如下:
#locationperfection()
产生目录/var/tmp/.ladyg0g0
产生文件/var/tmp/.ladyg0g0/.pr1nc35
产生文件/usr/bin/.locationesclipiciu
#getingmineru()
下载了ethminer挖矿程序
#facuser()
创建了超级用户
#sshkiller()
产生了目录/usr/.SQL-Unix
产生了目录/usr/.SQL-Unix/.SQL
产生了文件/usr/.SQL-Unix/.SQL/.db,并重写了.bashrc文件
Tips:~/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
#crontablegend()
创建了定时任务
#minerinio()
产生了文件/home/zyr/.b4nd1d0
1、删除上述产生的文件、目录和程序
2、删除定时任务
3、通过unalias解决常用命令执行为空的问题(.db文件中allias)
4、恢复.bashrc文件 cp /etc/skel/.bash* /root/
5、删除木马文件创建的超级用户和写入的公钥
6、恢复被更改的文件