TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务

本文主要是介绍TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 针对华硕路由器
    • Faceless代理服务
    • 预防措施

一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。

"TheMoon"与“Faceless”代理服务有关联,该服务利用部分被感染设备充当代理服务器,为想要匿名进行恶意活动的网络犯罪分子转发流量。

黑莲花实验室的研究人员一直在监测始于2024年3月初的最新一轮TheMoon攻击活动,并在72小时内观察到至少6000台华硕(ASUS)路由器成为攻击目标。

威胁分析专家报告指出,目前诸如IcedID和SolarMarker等恶意软件行动正利用该代理僵尸网络混淆其在线活动以掩盖踪迹。
在这里插入图片描述

针对华硕路由器

"TheMoon"早在2014年就被研究人员首次发现,当时警告称该恶意软件正在利用漏洞感染LinkSys设备。

最近的一轮恶意软件攻击活动中,在短短一周内就有近7000台设备被感染,黑莲花实验室表示其主要
目标是华硕路由器。

通过Lumen公司的全球网络监控能力,黑莲花实验室已经识别出“Faceless”代理服务的逻辑结构图,其中一场始于2024年3月第一周的攻击活动,在不到72小时的时间里就瞄准并成功感染了超过6000台华硕路由器。

尽管研究人员并未明确说明用于突破华硕路由器的确切方法,但鉴于这些遭攻击的设备型号已达到生命周期末期,攻击者很可能利用的是固件中存在的已知漏洞。
攻击者可能还会采用暴力破解手段尝试获取管理员密码,或是测试默认及弱口令凭据。

一旦恶意软件成功进入设备,它会检查是否存在特定的shell环境(例如"/bin/bash"、“/bin/ash"或”/bin/sh"),如果不存在,则停止执行。

若检测到兼容的shell环境,加载器将解密、释放并执行一个名为".nttpd"的payload,这个payload会在运行时创建一个带有版本号(目前为26)的PID文件。

接下来,恶意软件设置iptables规则,拒绝所有进来的TCP端口8080和80的流量,同时允许特定IP范围内的流量通过。这一策略确保了被控制的设备免受外部干扰。

随后,恶意软件尝试连接一系列合法的NTP服务器,以检测沙箱环境并验证互联网连接状况。

最后,恶意软件通过循环遍历一组硬编码的IP地址来连接命令与控制(C2)服务器,C2服务器则回应相应的指令。

在某些情况下,C2服务器可能会指示恶意软件获取额外组件,比如蠕虫模块,该模块用于扫描端口80和8080上的易受攻击的Web服务器,或者“.sox”文件,它们在被感染设备上进行流量代理。
在这里插入图片描述

Faceless代理服务

“Faceless”是一个网络犯罪代理服务,专门为那些仅使用加密货币支付的客户提供服务,通过利用受损设备路由网络流量。该服务并不执行“了解你的客户”(KYC)身份验证流程,因此对任何人开放使用。
在这里插入图片描述
为了防止其基础设施被研究人员追踪,“Faceless”运营者确保每个被感染的设备在整个感染期间仅与一台服务器通信。

黑莲花实验室报告显示,三分之一的感染持续时间超过50天,而有15%的感染在48小时内即被清除。这意味着后者的监控更加到位,且能够快速检测到设备被入侵的情况。
在这里插入图片描述
虽然"TheMoon"与"Faceless"之间存在明显的关联,但这两种操作似乎是独立的网络犯罪生态系统,因为并非所有恶意软件感染都会成为“Faceless”代理僵尸网络的一部分。

预防措施

为了防御此类僵尸网络,建议:

  1. 使用强密码作为管理员账户。
  2. 将设备固件升级至最新版本以修复已知漏洞。
  3. 若设备已达到使用寿命终点(EoL),应更换为仍在提供支持的新型号。ASUS 路由器EOL查询链接:https://www.asus.com/event/network/EOL-product/

路由器和物联网设备遭受恶意软件感染的一些常见迹象包括网络连接问题、设备过热以及设置出现异常更改。

这篇关于TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/858319

相关文章

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

计算机网络基础概念 交换机、路由器、网关、TBOX

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、VLAN是什么?二 、交换机三、路由器四、网关五、TBOXTelematics BOX,简称车载T-BOX,车联网系统包含四部分,主机、车载T-BOX、手机APP及后台系统。主机主要用于车内的影音娱乐,以及车辆信息显示;车载T-BOX主要用于和后台系统/手机APP通信,实现手机APP的车辆信息显示与控

vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” ) import osdef find_directories_with_subdirs(root_dir):# 构建根目录下的 "packages" 文件夹路径root_packages_dir = os.path.join(root_dir, "packages")# 如果 "packages"

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

android两种日志获取log4j

android   log4j 加载日志使用方法; 先上图: 有两种方式: 1:直接使用架包 加载(两个都要使用); 架包:android-logging-log4j-1.0.3.jar 、log4j-1.2.15.jar  (说明:也可以使用架包:log4j-1.2.17.jar)  2:对架包输入日志的二次封装使用; 1:直接使用 log4j 日志框架获取日志信息: A:配置 日志 文

17 通过ref代替DOM用来获取元素和组件的引用

重点 ref :官网给出的解释是: ref: 用于注册对元素或子组件的引用。引用将在父组件的$refs 对象下注册。如果在普通DOM元素上使用,则引用将是该元素;如果在子组件上使用,则引用将是组件实例: <!-- vm.$refs.p will be the DOM node --><p ref="p">hello</p><!-- vm.$refs.child will be the c

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

react笔记 8-18 事件 方法 定义方法 获取/改变数据 传值

1、定义方法并绑定 class News extends React.Component {constructor(props) {super(props)this.state = {msg:'home组件'}}run(){alert("我是一个run") //方法写在类中}render() {return (<div><h2>{this.state.msg}</h2><button onCli