安全播报

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
又一新型僵尸网络CatDDoS正在持续进化
2023-09-13 10:44:08 【

一个新兴的DDoS僵尸网络,该家族移植了部分Mirai代码,但是修改了上线方式与载荷结构,同时加入了OpenNIC域名作为C2。根据初始版本的C2字符串特征,我们将此家族称为CatDDoS 。

CatDDoS处在“创业初期”阶段,活跃度并不稳定,其每天的指令从几百到几千不等。不过自9月份发布了最新“2.0.4”版本,利用多个 N-Day 漏洞发起了新一轮传播,攻击指令数量随之也出现了一轮暴增,单日指令数超过 6000 条。

CatDDoS上线阶段分为明文和密文两部分.明文部分首先发送字节流”\\x00\\x00\\x00\\x04”,这种上线头来源Mirai家族,而其中第四个字节原本用来标识Bot版本,但是CatDDoS自定义了版本部分,并和Bot架构一起追加发送,至此明文部分结束。

密文部分由CPU数量、内存大小、上线参数三部分构成,加密算法同样本静态字符串的加密方式一致,使用相同Key和nonce的chacha20算法。

在攻击指令结构方面,在Mirai的载荷结构基础上交换了攻击向量与攻击持续时间字段的位置,且攻击持续时间的字段长度缩短为2字节。

对目标IP发起“flood_tcp_bypass”类型的ddos攻击,单次攻击时长为30秒。其对应的是攻击目标端口号,其中字段 “\\x38\\x30”也就是字符串“80”。


解密代码效果为:

代码如下:


import idcimport idaapiimport ida_hexraysfrom Crypto.Cipher import ChaCha20


def get_all_cfunc(eas): ref = {} for ea in eas: cfunc = idaapi.decompile(ea) if cfunc and hex(cfunc.entry_ea) not in ref: ref[hex(cfunc.entry_ea)] = cfunc.body.cblock return ref.keys(), ref.values()


def find_obj_ea(arg): arg = arg.x tp = arg.op_to_typename[arg.op] if tp == "obj": return arg.obj_ea elif tp == "cast" or tp == "ref": return find_obj_ea(arg)


def parse_arg(block): if hasattr(block, "operands"): if "a" in block.operands: for arg in block.operands["a"]: tp = arg.op_to_typename[arg.op] if tp == "num": yield {"type": tp, "value": arg.numval()} elif tp == "cast" or tp == "ref": yield {"type": tp, "value": find_obj_ea(arg)} else: yield {"type": tp, "value": arg.operands}


def parse_expr(expr): if expr.op_to_typename[expr.op] == "call": if expr.ea in eas: call_info[hex(expr.ea)] = [] for arg in parse_arg(expr): call_info[hex(expr.ea)].append(arg) else: for operands in expr.operands.values(): if type(operands) is ida_hexrays.cexpr_t: parse_expr(operands)



xor_add_func = 0x000000000403020key = 0x000000000051C0A0nonce = 0x000000000051C0C0


call_info = {}key = idc.GetManyBytes(key, 32)nonce = idc.GetManyBytes(nonce, 12)eas = list(CodeRefsTo(xor_add_func, False))xrefs, cfunc = get_all_cfunc(eas)print("found %s xrefs: %s" % (len(xrefs), list(xrefs)))for cblock in cfunc: for cinsn in cblock: op = cinsn.details if issubclass(type(op), ida_hexrays.ceinsn_t) and type(op.expr) is ida_hexrays.cexpr_t: parse_expr(op.expr) elif type(op) is ida_hexrays.cexpr_t: parse_expr(op)for k in call_info.keys(): if call_info[k][0]["type"] == "num" and call_info[k][1]["type"] in ["cast", "ref"] and call_info[k][2]["type"] == "num": ciphertext = idc.GetManyBytes(call_info[k][1]["value"], call_info[k][2]["value"]) cipher = ChaCha20.new(key=key, nonce=nonce) cipher.seek(64) text = cipher.decrypt(ciphertext) print("[%s]: %s" % (call_info[k][0]["value"], text)) else: print("%s未知参数,解析失败:%s" % (k, call_info[k]))


CatDDoS的传播模块并未集成在Bot样本中,所使用扫描器具有“python-requests”与“python-aiohttp”的user_agent,我们推测其基于Python语言编写。主要通过N-Day漏洞传播,用到的漏洞有以下几

ExifTool 任意代码执行漏洞(CVE-2021-22205)

Linksys路由器远程命令执行漏洞

Hadoop未授权命令执行漏洞

CatDDoS在9月份发布了“2.0.4”版本,利用这些漏洞大肆传播,从传播趋势和攻击指令数量来看,CatDDoS可能进入了一个新的比较成熟的阶段。

版本演进

我们追溯到的早期CatDDoS的版本号是从“2.0.0”开始,目前的最新版本为“2.0.4”,相比初始版本主要在C2的选择、攻击向量方面进行了改动。

在早期的版本“2.0.0”中,样本对于C2的选择分为两种模式,包括硬编码的IP地址与OpenNIC域名。

而“2.0.4”版本仅保留了一个OpenNIC域名作为C2


在“2.0.4”版本中,版本号后还连着“socks5”字符串,实际上表示的是在此版本新增加了针对socks5服务的DDoS 攻击模式。与初始版本对比,此版本新增了两种攻击模式,攻击向量从14个提升到了16个。

CatDDoS目前虽位于起步初期,但从攻击指令数量来看并不像一个刚入行的初学者,样本的加密手法、C2服务器的设置都较为老道,其团队可能在此前就有较稳定的DDoS 业务,目前该家族正在持续升级与扩张,后续我们也将继续进行监控。

IOC

扫描源(Loader)

45.89.127.173

193.34.212.110

194.180.48.50

Download Server

194.153.216.164:80

62.113.113.168:80


C2

catddos.pirate

i-like-dicks.pirate

chinks-eat-dogs.africa


139.177.196.154:35342

212.118.43.167:35342

77.105.138.202:35342

84.54.47.93:35342

88.218.62.221:35342


Md5

v2.0.0

2ab78374d7ab2fb3c5dddcbe6d714856


V2.0.4

2ab78374d7ab2fb3c5dddcbe6d714856

0f434c3b72e275d05ab302c40469e018


】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇美国金融机构遭遇史上最大规模DDo.. 下一篇浅谈数据中心DDos防护与实践

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:010-56157787 ,010-56159998
企业QQ:4000043998
技术支持:010-56159998
E-Mail:800@fangyuba.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:4000043998 01056155355
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800