百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

你的电脑被挖矿了吗?

bigegpt 2024-08-27 12:10 4 浏览

挖矿木马的理论基础

由于区块链技术热炒以及数字货币魔性推广运营,如比特币、以太币、门罗币、达世币等层出不穷的数字货币被各种热炒,在这些的利益驱使下,便出现各种模式的挖矿木马程序。挖矿木马主要就是通过利用各种手段,将挖矿程序植入到用户的计算机中,在用户未感知到的情况下,偷偷利用用户的计算机进行执行挖矿功能,从而获取收益。

以下情况是用户中木马的高频事件

用户往往在不注意的时候,下载并运行来历不明的破解软件或不安全软件;

用户点击运行了钓鱼邮件中的附件的文件;

用户没有做好系统及时更新,通过系统漏洞传播;

用户浏览了植入挖矿脚本的网页,浏览器就解析脚本进行挖矿。

现在的挖矿木马存在种类非常多常见的如:普通开源的挖矿程序、无文件模式的挖矿程序、网页模式的挖矿程序、驱动模式的挖矿程序、Docker模式的挖矿程序。

自查挖矿木马

1、cpu的使用率,中了挖矿木马,因为会在系统中运行挖矿程序,使得计算机在正常运行下会变得非常卡顿,并且CPU的使用率会变得非常高,甚至会达到100%。

2、通过杀毒软件进行全盘查杀,如果计算机中存在挖矿木马的样本程序,杀毒软件一般情况下是可以查杀。

3、通过抓包工具(Wireshark)进行查看分析流量,从流量中去分析排查可疑的流量数据包。

样本基本信息

通过hash工具获取都挖矿木马样本的MD5、SHA1、CRC32数据。

该挖矿样本是控制台窗口的应用程序,通过ExeInfo PE工具中的区段信息,可以看出该样本采用了UPX压缩壳进行对样本保护,并且该样本程序是64位的应用程序。

通过火绒病毒查杀软件,进行扫描查杀该样本程序,可以从下图看到,该样本是属于Coinminer团伙研发的挖矿病毒样本程序。

木马功能分析

分析样本需要工具:虚拟机VMware、IDA、X64dbg、pchunter、WireShark等工具。

脱UPX压缩壳方法:单步调试法、内存访问断点法、堆栈平衡法。

通过单步调试法进行脱UPX壳,样本加载进x64dbg工具后,就单步F8方式,一直单步运行,通过观察程序的相对地址,直到跳转到原程序的OEP位置。那么再将内存数据dump下来就可以了。

样本的主要功能:通过循环遍历创建控制台文件,写入数据到文件,启动控制台文件。通过利用系统函数CreateFileW进行创建文件名称设置为7个字母的随机名称的文件,并通过WriteFile函数,将原始样本内数据拷贝到新创建的进程文件中,最后通过调用系统函数CreateProcessW函数进行启动样本。

下图是x64dbg调试工具中执行CreateFileW进行创建文件。

通过用拼接方式,生成的随机文件名称。

执行完一次流程后,已成功在指定的目录下成功地生成了应用程序。

通过调用WriteFile将数据写入到新创建的文件。

最后在通过调用CreateProcessW进行启动创建的应用程序。

执行完样本功能后,最终的效果如下图所示(仅列出小小部分运行程序,实际同时运行的几十上百个样本)。

通过拼接json格式,并以http协议方式进行发送数据。

从上面的json格式中,可以很清晰看到 访问请求的ip地址很端口号:3.120.98.217:8080。接下来反查这个ip地址信息,可以看到这个ip地址指向的是德国的。

在通过360威胁情报中心https://ti.360.cn/#/homepage。

进行更详细的查询这个ip地址相关的信息。从下图可以看到这个ip地址是属于Coinminer家族的 挖矿样本,并且查询到的相关联的样本也并不少。

木马的清理

通过将C:\Windows\system\目录下,所有随机名称的应用程序文件进行删除。就可以清除掉这个挖矿样本所遗留的应用程序。

预防和防护中的挖矿样本

1、在计算机中安装病毒查杀软件(火绒、360杀毒),并及时更新病毒查杀软件的病毒库,还需做好定时全盘查杀病毒。

2、及时做好计算机系统补丁的更新。

3、服务器、主机、数据库等使用高强度的密码口令,切勿使用弱口令,防止被暴力破解。

4、网络上不要去随意下载、运行来历不明的程序或者破解程序,不要随意点击来历不明的链接。

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...