Mirai 家族僵尸网络于2016年首次被发现,该家族通过自动扫描互联网来寻找易受攻击的 IoT 设备,例如家用路由器和网络摄像头。一旦发现目标设备,Mirai 利用预设的字典或已知的安全漏洞尝试登录。成功后部署恶意代码,将设备并入其庞大的僵尸网络中。
这些被感染的设备继续扫描其他潜在目标,进一步扩大网络规模。设备在感染后通常能继续正常运行,但可能会出现网络延迟或带宽占用过高的现象。
感染设备的 Mirai 样本会与命令和控制(C&C)服务器保持连接,并根据下发的命令发起各种类型的分布式拒绝服务(DDoS)攻击,如UDP Flood、TCP Flood 等,导致服务中断。
Mirai新的变种Meow
近期捕获Mirai新的变种样本,由于该变种样本通信函数与C2域名地址都包含Meow字样,故命名为Mirai家族Meow变种。
Mirai新的变种Meow,主要通过其他傀儡主机,利用远程命令漏洞/弱口令爆破等方式,在易受攻击的 IoT 设备上执行bash脚本进行传播,该脚本从其他傀儡主机下载Meow样本,建立僵尸网络。
该变种在原本的Mirai功能的基础上,具备加壳,用户态进程隐藏,取证对抗等功能,舍弃部分原有的DoS攻击方式和传播模块,使用硬编码的动态DNS解析服务商No-IP的域名作为C2,对僵尸网络实施控制。
Mirai Meow样本分析
样本使用UPX加壳,UPX头部被替换为字符串1wom,该特征可用于样本猎捕。
首先创建进程白名单,为了后续过滤要结束的进程列表。
白名单进程名称:
sleep,sshd,dbus-daemon,ps,sh,who,head,tail,systemd,telnetd
VDH_Distributor,jbd2/sda1-8,HI_VPSS_Process,login,fsnotify_mark,HI_VENC_StreamT,flush-8:0,writeback,hidog,udevd,cloudsWatch,T2,DispProcess,IsogenyProcess,deferwq,HDMI_kthread,HI_VFMW_VideoDe,udhcpc,crypto,kpsmoused,pppd,khelper,kblockd,AoEngineTask,main,ext4-dio-unwrit,telnetd,scsi_eh_1,HI_VDEC_Task,T2uSvrDeamon,spi0,HDMI_kCEC,raysharp-hdvr-u,sh,temperature_con,log_udisk_task,khubd,kthreadd,HI_VENC_FrameTa,rsSystemServer,P2PTunnelServer,init,HI_WIN_ReleaseF,nfsiod,pppoe,HI_HDMI_kThread,kbase_job_fault,boa,HIFB_WorkQueque,ata_sff,kswapd0,scsi_tmf_0,rpciod,bioset,ksoftirqd/0,scsi_eh_0,ext4-rsv-conver,kapmd,cfinteractive,xfs_mru_cache,start_device_ru,mtdblock2,xfsdatad,kintegrityd,xfslogd,jffs2_gcd_mtd2,device_rule,mtdblock0,rcu_kthread,mtdblock6,bdi-default,device_log,start_device_lo,sync_supers,mtdblock3,device_core,cfg80211,mtdblock4,mtdblock5,xfsconvertd,mtdblock1,T2uSvr,romblock3,romblock0,romblock2,romblock1,romblock6,romblock5,romblock4,start_Broadcast,device_433handl,adsl-connect,BroadcastMsg,start_device_43,start_device_co,raysharp-dvr-ui,start_p2ptunnel,Kg_iPN_Server,mqttd,start_mqtt.sh
遍历进程,结束不在白名单列表的进程,对抗取证分析。
结束其他僵尸网络进程。
生成随机路径名称,链接到自身/proc/self/exe,混淆和掩盖真实进程来源。
fork()新的子进程,并调用setsid(),在子进程中创建新的会话以使该子进程成为新会话的父进程,从控制终端隔离进程,并且关闭了标准输入、输出和错误描述符,避免输出信息到控制台,增加其隐蔽性。
利用mount命令将自身挂载至空目录,实现用户态进程隐藏。
攻击模式初始化,支持以下DoS攻击方式和命令执行。
进行socket通信测试,如果连接成功则返回meow(变种命名根据之一)字符串至C2服务器。
如果数据选项字段值等于bwvvd21lb3c=,则提取字符串进行命令执行,将执行结果与me字符串,返回至C2服务器。
创建socket监听本地27274端口。
cnc为Mirai原生组件之一,功能为创建C2服务器连接,接收指令以及攻击命令配置。此样本使用C2地址为meowware.ddns.net(变种命名根据之一)。
如果TCP连接没有错误,则发送gayfemboy字符串与本地地址至C2服务器。
接收C2服务器返回的数据,解析攻击命令配置。
默认执行attack_start函数,开启攻击模式。
计算出攻击方式函数地址,传入参数。
从C2服务器更新下载恶意程序(推测用于更新样本中C2服务器配置)。
更新时生成新的恶意程序执行时所指定的参数,该参数标识受害设备类型。
根据多个版本的Mirai Meow样本参数分析,可知Meow支持以下架构或设备类型:
mipsel、mips、arm5、arm7、x86、bdvr7、bdvr4、fwr
IoC
-
meowware.ddns.net
-
niggaz.tech
-
lunarmoe.tech
-
ry58j8eutglu.com
-
doj1amghl1f8.com
-
vxakqf75bk0j.com
-
198.98.54.234
-
193.32.162.34
-
65.175.140.164
-
http://198.98.54.234/w
-
http://198.98.54.234/chefrvmanabat
-
http://198.32.162.34/2chefrvmanabat
-
http://198.98.54.234/farting
-
http://198.98.54.234/images
-
70d879c74497b4bb7a15ad39409e5dcd
-
342432ebc4caf520ba541c96916af5fa
-
428fca0c7a3a8f7b084ace965028956f
-
1205e3711858b30940ae5752261e7318
-
f252a667545463bd3cf938df58ba06ad
-
bd31b3150ba0530947aaa68f2c688afe
-
42067fccf43913852a8416716def505d
-
5f854fee2aab7d966beb6755879965af
-
4d483fe58d97bea3d0dd2ea46b3fbed5
-
885a1e88948cbd235d715640d1c66282
-
4f394cc31ef30482782d3b5f4167f44a
-
744f4e5d540844f5f7a03f67ba239ab1
-
10115c0cf85c43e0c5b135ea8a3da819
reference
-
https://github.com/jgamblin/Mirai-Source-Code
原文始发于微信公众号(TahirSec):Linux | Mirai家族新变种Meow僵尸网络分析