内存马指的是无落地文件,它不像普通的文件马那样将恶意代码嵌入到文件中,而是直接注入到计算机的内存中运行,内存马通过寻找中间件或应用程序中的漏洞,在请求处理过程中修改已有的组件,如Listener、Filter或Servlet,将恶意代码shellcode加载到内存中,然后在内存中执行恶意操作,实现对服务器的控制。
- 传统Web应用型内存马
- Listener型内存马:动态注册Listener中的处理逻辑。
- Filter型内存马:动态注册Filter及映射路由。
- Listener型内存马:动态注册Listener中的处理逻辑。
- 框架型内存马
- SpringController型内存马:动态注册Controller及映射路由。
- SpringInterceptor型内存马:动态注册Interceptor及映射路由。
- Spring Webflux型内存马:动态注册WebFilter及映射路由。
- 中间件型内存马
- Tomcat Valve型内存马:动态注册Valve。
- Tomcat其他类型(如Upgrade、Executor、Poller)的内存马:这些内存马会动态替换或添加全局组件。
- 其他中间件(如Grizzly)的内存马:动态注册Filter及映射路由。
- 其他内存马
- WebSocket型内存马:动态注册WebSocket路由及处理逻辑。
- Tomcat JSP型内存马:动态注册Tomcat JSP管理逻辑并实现驻留。
- 线程型内存马:启动一个无法被杀死的线程。
- RMI型内存马:动态启动一个RMI Registry。
- Agent型内存马
- 通过Hook并修改关键方法添加恶意逻辑。Agent型内存马在现代webshell管理工具中有广泛实现。
利用方式分为:冰蝎马、哥斯拉马、蚁剑马、命令回显马、流量隧道马等
- 通过Hook并修改关键方法添加恶意逻辑。Agent型内存马在现代webshell管理工具中有广泛实现。
- 由于网络原因不能反弹shell的:内存马可以在不依赖网络连接的情况下,在目标服务器上执行恶意代码,从而绕过网络限制。
- 内部主机通过反向代理暴露Web端口的:内存马可以隐藏在Web应用程序内部,通过反向代理暴露的Web端口进行通信,而不必担心外部防火墙或安全设备的阻止。
- 服务器上有防篡改、目录监控等防御措施,禁止文件写入的:内存马不需要写入文件,因此可以绕过这些基于文件的保护机制。
- 服务器上有其他监控手段,写马后会告警监控,人工响应的:由于内存马不直接写入文件,因此可以避开许多基于文件的监控和告警系统。
- 服务使用Springboot等框架,无法解析传统Webshell的:对于使用现代框架的Web应用,传统Webshell可能无法直接运行。内存马可以通过动态注册组件等方式,在框架内部执行恶意代码。
- 对内存马技术感到不明觉厉的:内存马技术相对复杂,对于不熟悉这种技术的安全人员来说,可能更难以检测和防范。
- 服务重启后会失效:由于内存马是驻留在内存中的,一旦服务器重启或应用程序重启,内存马就会失效。因此,攻击者需要确保服务器和应用程序的稳定性,或者采取其他措施来确保内存马的持久性。
- 对于传统内存马,存在的位置相对固定,已经有相关的查杀技术可以检出:尽管内存马技术复杂,但攻击者通常需要在特定位置注册恶意组件或修改关键函数。因此,通过分析和监控这些关键位置,安全人员可以检测出内存马的存在。此外,随着安全研究的深入,越来越多的内存马查杀工具和技术被开发出来,使得内存马的检测变得更加容易。
- 进行进程分析
- 使用任务管理器、ps 命令(Linux)或 tasklist 命令(Windows)查看系统中所有进程的信息,包括进程名称、PID、所属用户、内存占用等。
- 注意查找不属于正常应用程序或服务列表的未知进程,或内存占用异常高的进程。
- 使用strace(Linux)或Process Explorer(Windows)等工具进一步分析可疑进程的行为。
- 系统日志分析
- 分析系统日志文件(如 /var/log/ 目录下的文件,Windows 的事件查看器等),了解系统启动、服务开启、网络连接等活动的日志记录。
- 查找是否有可疑的登录尝试、服务启动、文件访问或网络连接事件。
- 关注与内存操作、进程创建、文件写入等相关的日志条目。
- 使用内存分析工具
- 使用专业的内存分析工具,如 Volatility Framework、Mandiant Memoryze、Rekall 等,获取物理内存或内存镜像文件进行分析。
- 在内存中查找潜在的内存马代码或痕迹,如异常的代码段、内存中的文件内容、隐藏的进程或线程等。
- 对可疑的内存区域进行更深入的分析,如反汇编、解码等,以确定其功能和来源。
- 网络监测与分析
- 使用网络监测工具如 Wireshark、Tcpdump 等捕获网络流量,并过滤出与Web服务、远程连接等相关的数据包。
- 分析网络流量中是否有可疑的通信行为,如未知的远程连接、加密的通信数据、异常的数据包频率等。
- 关注与命令和控制中心(C&C)的通信,这可能包括固定的IP地址、域名或加密的通信协议。
- 利用安全软件扫描工具进行全面检测
- 使用知名的安全软件扫描工具,如Norton Power Eraser、Kaspersky Virus Removal Tool、Malwarebytes 等,对系统进行全面扫描和检测。
- 这些工具可以检测并清除多种类型的恶意软件,包括内存马。
- 注意更新工具的病毒库和定义文件,以确保能够检测最新的内存马变种。
- 实施额外的安全策略与监控
- 加强服务器的安全配置,如禁用不必要的服务、限制远程连接、更新操作系统和应用程序的补丁等。
- 实施文件完整性监控(FIM)和主机入侵检测系统(HIDS),以实时检测和响应系统中的任何可疑活动。
- 定期进行安全审计和漏洞扫描,确保系统的安全性和完整性
挖矿木马是一种恶意软件,攻击者通过各种手段将其植入受害者的计算机中。在受害者毫不知情的情况下,这种木马会占用其计算机的算力来进行比特币挖矿活动,从而为攻击者带来经济收益。挖矿木马通常是一种自动化的脚本,它首先通过漏洞利用脚本获取主机的控制权,然后下载并执行挖矿进程部署脚本,进行挖矿进程的部署、隐藏、持久化和痕迹清除等操作。为了确保能够在受害者的计算机中长期驻留,挖矿木马会采用多种技术手段,如修改任务计划、调整防火墙设置或篡改系统文件,这些操作有时可能导致服务器业务的中断,对受害者造成严重的损失。
服务器或PC的CPU资源利用率显著上升,逼近甚至超过其设计极限(即100%),并且这种高负载状态持续不减,导致设备性能下降、操作变得迟缓时,我们可以初步判断该设备可能正在被用于挖矿活动。
除了CPU资源占用异常外,挖矿活动通常还伴随着其他特征。首先,服务器或PC可能会访问一些不受信任的地址,这些地址可能包括特定的主机、IP或域名。这是因为许多挖矿程序需要从这些不受信任的来源下载初始化程序或更新。这些不受信任的来源可能涉及第三方情报机构,或者是企业内部长期未被察觉或管理的历史数据残留。
- 可执行文件挖矿木马
- 基于浏览器的挖矿木马
- 无文件挖矿木马
- 挖矿木马僵尸网络
常见木马有:Outlaw、Tor2Mine、H2Miner、Satan DDoS、Sysrv-hello、HolesWarm、Kworkerds、WannaMine、Mykings(隐匿者)、Bulehero、8220Miner、"匿影"挖矿木马、DDG、MinerGuard、Watchdogs等
- 利用漏洞传播
为了追求高效率,攻击者一般会通过自动化脚本扫描互联网上的所有机器,寻找漏洞,然后部署挖矿进程。因此,大部分的挖矿都是由于受害者主机上存在常见漏洞,如Windows系统漏洞、服务器组件插件漏洞、中间件漏洞、Web漏洞等,利用系统漏洞可快速获取相关服务器权限,植入挖矿木马。 - 通过弱密码暴力破解传播
挖矿木马会通过弱密码暴力破解进行传播,但这种方法攻击时间较长。 - 通过僵尸网络传播
利用僵尸网络也是挖矿木马重要的传播方法,如利用Mykings、 WannaMine、Glupteba等控制大量主机。攻击者通过任务计划、数据库存储过程、WMI等技术进行持久化攻击,很难被清除,还可随时从服务器下载最新版本的挖矿木马,控制主机挖矿。 - 采用无文件攻击方法传播
通过在PowerShell中嵌入PE文件加载的形式,达到执行“无文件”形式挖矿攻击。新的挖矿木马执行方法没有文件落地,会直接在PowerShell.exe进程中运行,这种注入“白进程”执行的方法更加难以实施检测和清除恶意代码。 - 利用网页挂马传播
在网页内嵌入挖矿JavaScript脚本,用户一旦进入此类网页,脚本就会自动执行,自动下载挖矿木马。 - 利用软件供应链攻击传播
软件供应链攻击是指利用软件供应商与最终用户之间的信任关系,在合法软件正常传播和升级过程中,利用软件供应商的各种疏忽或漏洞,对合法软件进行劫持或篡改,从而绕过传统安全产品检查,达到非法目的的攻击。例如,2018年12 月出现的DTLMiner是利用现有软件升级功能进行木马分发,属于供应链攻击传播。攻击者在后台的配置文件中插入木马下载链接,导致在软件升级时下载木马文件。 - 利用社交软件、邮件传播
攻击者将木马程序伪装成正规软件、热门文件等,通过社交软件或邮件发送给受害者,受害者一旦打开相关软件或文件就会激活木马。 - 内部人员
私自安装和运行挖矿程序机构、企业内部人员带来的安全风险往往不可忽视,需要防范内部人员私自利用内部网络和机器进行挖矿获取利益。
- 通信端口
- 挖矿木马可能会使用特定的端口进行通信。例如Monero挖矿木马常用的TCP端口3333或5555是常见的指示符。
- 通信流量
- 挖矿木马的通信流量通常具有特定的特征。例如它们可能会产生大量的高速数据传输,特别是在进行挖矿任务时。
- 周期性的通信模式也是挖矿木马的一个常见特征,因为挖矿任务可能需要定期从矿池接收新的任务或提交结果。
- 在数据包中,你可能会看到与挖矿相关的信息,如计算资源使用情况和挖矿结果。
- 进程和文件系统
- 挖矿木马通常会创建特定的进程来执行挖矿操作。例如,Monero挖矿木马可能会创建名为"xmrig"的进程。
- 在文件系统中,挖矿木马可能会创建配置文件(如"config.json")来存储挖矿设置和矿池信息。
- 系统资源
- 挖矿木马会占用大量的系统资源,特别是CPU和内存。这可能会导致系统性能下降,甚至崩溃。
- 通过监控这些资源的使用情况,你可以发现异常的消耗模式,这可能表明存在挖矿木马。
- 判断流量的数据
- 在分析网络流量时,注意查找与挖矿相关的特定数据。例如,挖矿难度、钱包地址、挖矿程序版本等信息都是挖矿木马通信中常见的元素。
- 如果流量中存在这些数据,那么很可能存在挖矿木马。
- 数据包详细信息
- 深入分析数据包的详细内容可以帮助你更准确地识别挖矿木马。查看是否有与矿池交互的信息是关键的一步。
- 特别注意"method":“login"和"method”:"job"这样的字段,它们通常用于与矿池建立连接和接收挖矿任务。
- 在载荷内容中查找"ok"、"success"等字段也是一个有用的方法,因为它们可能表示成功的交互。
- 阻断矿池地址的连接
- 为了阻止挖矿木马与矿池之间的通信,应用安全设备(如防火墙、入侵检测系统/入侵防御系统)可以配置规则来阻断与已知矿池地址的连接。这需要在网络层设置访问控制策略,确保服务器或PC不会向这些地址发送数据。
- 清除挖矿定时任务、启动项等
- 清除挖矿木马:首先,需要定位并删除所有与挖矿木马相关的文件和目录。
- 清除可疑的定时任务:使用任务计划程序(Windows)或cron(Linux)检查并删除任何可疑的定时任务。
- 清除可疑启动项:在Windows中,检查注册表和启动文件夹;在Linux中,检查/etc/init.d、/etc/cron.d、/etc/crontab等目录和文件。
- 禁用可疑用户
- 如果挖矿木马创建了新的用户账户作为攻击跳板或用于其他恶意活动,应立即禁用或删除这些账户。可以通过用户账户管理工具(如Windows的“用户账户”或Linux的usermod、userdel命令)来完成。
- 定位挖矿木马文件的位置并删除
- Windows系统
- 使用netstat -ano命令列出所有网络连接,并找到与矿池通信的PID。
- 使用tasklist命令结合PID找到对应的进程名称。
- 打开任务管理器,找到该进程并结束它。
- 导航到进程文件所在的目录,并删除相关文件。
- Linux系统
- 使用netstat -anpt命令查看与矿池通信的进程、端口及PID。
- 使用ls -alh /proc/PID命令查看进程的详细信息,特别是可执行文件的位置。
- 使用kill -9 PID命令结束进程。
- 使用rm -rf /path/to/file命令删除挖矿木马的可执行文件。
- 扫描系统文件
- 挖矿木马可能会修改系统文件以隐藏自己,可以使用杀毒软件或命令行扫描工具如 ClamAV 来扫描系统文件。
- Windows系统
- 全盘杀毒、加固
- 在完成上述步骤后,运行杀毒软件进行全盘扫描,确保没有遗漏的挖矿木马或其他恶意软件。
- 评估系统和应用的安全配置,并根据需要进行加固。这可能包括更新补丁、配置防火墙规则、限制不必要的网络访问等。
- 定期检查系统日志和安全事件,以便及时发现任何可疑活动或新的威胁。
- 考虑实施定期的安全审计和渗透测试,以评估系统的整体安全性。
勒索病毒是一种电脑病毒,其性质恶劣、危害极大,一旦感染将给用户带来无法估量的损失。这种病毒主要以邮件、程序木马、网页挂马的形式进行传播,并利用各种加密算法对文件进行加密,使得被感染者一般无法解密,必须拿到解密的私钥才有可能破解。
- 传播方式
- 勒索病毒主要通过三种途径传播,包括漏洞、邮件和广告推广。其中,通过漏洞发起的攻击占攻击总数的绝大部分,因为老旧系统(如win7、xp等)存在大量无法及时修复的漏洞,容易被病毒利用。此外,邮件和广告推广也是勒索病毒的传播途径之一。
- 大量统一后缀的文件
- 发现勒索信在Linux/home、/usr等目录,在Windows 桌面或者是被加密文件的文件夹下。
- 攻击对象
- 勒索病毒一般分两种攻击对象,一部分针对企业用户,一部分针对所有用户。
- 攻击行为
- 勒索病毒文件一旦被用户点击打开,会利用连接至黑客的C&C服务器,进而上传本机信息并下载加密公钥。然后,将加密公钥写入到注册表中,遍历本地所有磁盘中的Office文档、图片等文件,对这些文件进行格式篡改和加密。加密完成后,还会在桌面等明显位置生成勒索提示文件,指导用户去缴纳赎金。
- 隔离被感染的服务器主机
- 拔掉中毒主机的网线是物理隔离的有效方法,可以确保病毒不会通过网络传播到其他系统。
- 关闭无线网络和蓝牙连接也是重要的,因为有些勒索病毒可能会通过无线方式传播。
- 拔掉外部存储设备是为了防止病毒通过USB传播到其他设备。
- 确定被感染的范围
- 彻底检查所有存储介质是关键,确保没有遗漏任何被加密的文件。
- 确定勒索病毒家族
- 查看勒索提示信息可以初步判断勒索病毒的类型。
- 溯源分析包括检查系统日志、文件访问记录、进程监控等,以了解病毒是如何进入系统的。
- 关闭端口、打上补丁、修改密码等
- 根据溯源分析的结果,关闭可能被利用的端口。
- 安装操作系统和应用程序的更新补丁,修复已知的安全漏洞。
- 修改所有系统密码,使用强密码策略。
- 安装高强度防火墙和防病毒软件,并确保它们都是最新版本。
- 数据和业务的恢复
- 使用数据恢复工具尝试恢复被删除但未被覆盖的文件。
- 联系第三方解密服务或黑客(不推荐,因为这可能助长犯罪行为)。
- 评估数据的重要性,如果数据不是非常关键,可以考虑重建系统并恢复业务。
- 如果存在备份,则还原备份数据是最快和最安全的方法。
- 如果没有备份,可以考虑以下恢复方法
- 使用数据恢复工具尝试恢复被删除但未被覆盖的文件。
- 联系第三方解密服务或黑客(不推荐,因为这可能助长犯罪行为)。
- 评估数据的重要性,如果数据不是非常关键,可以考虑重建系统并恢复业务。