文章总结: 文档详细分析了名为DKnife的网关监控与中间人攻击框架,该工具利用深度报文检测技术劫持流量、投递恶意软件并监控用户活动,覆盖微信、Signal等应用。框架由七个LinuxELF组件构成,核心模块包括流量劫持引擎dknife.bin、TLS中间人代理sslmm.bin及隐蔽投递载荷的yitiji.bin等。其通过干扰杀软通信、伪造证书解密HTTPS流量,并结合DarkNimbus后门实现对国内用户的全面监控,揭示了高级持续性威胁在边缘设备上的攻击能力。 综合评分: 89 文章分类: 恶意软件,威胁情报,逆向分析,二进制安全,网络安全
可监控用户一切信息,包括微信加密信息!针对国内用户的网关幽灵-DKnife
利刃信安
2026年2月15日 18:15 河北
以下文章来源于二进制空间安全 ,作者suntiger
二进制空间安全 .
主要专注于安全技术研究,领域包括但不限于:渗透测试、安全工具分享、软件逆向分析技术、编程技术、威胁情报。
将二进制空间安全设为”星标⭐️”
第一时间收到文章更新
DKnife架构与组件
#
DKnife是一款网关监控与中间人攻击框架,该框架由七个Linux ELF二进制组件组成,该框架基于深度报文检测(DPI)技术,可在路由器与边缘设备上实现流量劫持、恶意软件投递与用户活动监控。与DKnife框架进行配合的,还有一个名为DarkNimbus的后门,当DKnife在网关做TLS中间人时,需要终端信任伪造证书,而DarkNimbus等终端恶意软件可以在受害设备上预先安装或篡改证书,为DKnife的HTTPS解密创造条件。
基于以上特性,DKnife几乎可以监控用户的任何信息,已知的监控范围包括:Signal和微信活动,如:语音/视频通话、发送文字、接收图片、在应用内浏览文章、购物、新闻、地图搜索、视频流、游戏、约会、出租车与网约车、邮件查阅以及其它用户行为。
DKnife采用模块化涉及,核心由七个64位x86-64 Linux ELF组件构成。配置项支持PPPoE、VLAN 标签、桥接接口(br0)及 MTU、MAC 参数调整,显示出其针对边缘或路由器设备的适配。其组件和对应功能如下表:
| | | | — | — | | 组件 | 功能 | | dknife.bin | DPI与攻击引擎,负责流量检测、活动上报、二进制下载劫持、DNS 劫持 | | postapi.bin | 数据中继,接收流量并上报至远程 C2 | | sslmm.bin | 基于 HAProxy 的反向代理,执行 TLS 终结、邮件解密、URL 重定向 | | mmdown.bin | 恶意APK下载/更新组件 | | yitiji.bin | 流量转发,在设备上创建桥接 TAP 接口,托管并路由攻击流量 | | remote.bin | N2N P2P VPN客户端,建立与远程C2的隧道 | | dkupdate.bin | 更新与看门狗,负责组件存活与升级 |
#
其中,“yitiji”为“一体机”的拼音。yitiji.bin 创建名为 “yitiji” 的 TAP 接口,使用 IP 10.3.3.3 和 MAC 1E:17:8E:C6:56:40,并桥接到物理网络。当用户请求 http://10.3.3.3:81/app/xxx.apk 时,dknife.bin 将流量转发至 UDP 555 端口,yitiji.bin 重建以太网/IP/TCP 帧并注入 TAP,以本地 LAN 形式投递恶意载荷,避免 IP 冲突并降低检测风险。
#
dknife.bin功能
#
dknife.bin是DKnife的核心组件,负责全部数据包检测和攻击逻辑,启动时,该组件会完成框架的初始配置:读取/dksoft/conf/wxha.conf,获取嗅探接口(INPUT_ETH)和攻击接口(ATT_ETH);若该文件不存在,二者默认均为eth0。此外,还会读取攻击规则和远程C2的配置文件。在整个数据包检测过程中,dknife.bin会把收集的数据、用户活动、攻击结果和平均吞吐量等上报给本机监听7788端口的postapi.bin。上报为256字节的UDP数据包,固定前缀为DK7788(7 字节),在偏移0x40处写入标签,表示数据类型,例如:
DKnife 的流量检测模块会主动识别并干扰杀毒软件和电脑管理类产品的通信。它通过检查 HTTP 头(如 GET 请求中的 DPUname 或 POST 请求中的 x-360-ver)以及匹配已知服务域名来检测360安全卫士。一旦命中,模块会丢弃相应流量或发送伪造的TCP RST 包中断连接。对腾讯相关服务及电脑管理类端点,也会采用相同方式进行检测和干扰。
识别的腾讯相关域名:
dlied6.qq.com
pcmgr.qq.com
pc.qq.com
www.qq.com/q.cgi
用于匹配 360 相关域名的关键词:
360.cn
360safe
qihucdn
duba.net
mbdlog.iqiyi.com
postapi.bin功能
这是DKnife框架中的数据中继组件。它接收来自dknife.bin转发的UDP数据帧,进行解析、分类和打标,再上报到远程C2服务器。接收 UDP 数据帧时,会校验DK7788前缀,并解析出设备ID、MAC 地址、源 IP、目的 IP及端口。随后按ssluserid.conf中配置的规则,进一步提取关注的数据。该文件作为规则表,用于指定目标服务/平台及对应的抓取方式。
规则中定义的抓取方法包括:
| | | | — | — | | 方法 | 说明 | | get_url | 从GET请求的URL中提取 | | get_cookie | 从GET请求的Cookie头中提取 | | post_url | 从POST请求的URL中提取 | | post_cookie | 从POST请求的Cookie头中提取 | | post_content | 从POST请求的正文中提取 |
每条规则还会指定要收集的字段,如设备ID、手机号、IMEI/IMSI、MAC、UUID、IP、用户名等。DKnife 针对数十款常见中文移动端和 Web应用,部分仅在中国境内使用。下图展示了该配置文件中的部分规则示例:
#
sslmm.bin功能
#
该组件作为中间人(AitM)攻击的反向代理服务器,基于定制的 HAProxy 构建。主配置从sslmm.cfg加载,根据url.cfg 中的规则进行请求劫持与替换。劫持到的流量及执行结果会被封装成UDP数据帧,发送给 postapi.bin,行为与 dknife.bin 类似。
除常规HAProxy代理外,sslmm.bin 还包含自定义逻辑:在 TLS 终结后,对客户端 HTTP(S) 请求进行检查、记录、窃取和按条件改写。内容注入主要通过改写 HTTP请求行实现,将受害者重定向到攻击者控制的资源,通常位于 /dkay-scripts/ 目录。生成的遥测和样本会经 postapi.bin relay到远程 C2。
运行机制:
HAProxy 配置在 HTTPS 及邮件 TLS 端口(443、993、995)上终结 TLS,使用 /dksoft/conf/server.pem 中的自签名证书,并将解密后的流量转发到对应后端。管理/统计接口暴露在 0.0.0.0:10800,由静态凭据保护。命中 /dkay-scripts/ 的请求会被降级为明文 HTTP,并路由到本地 127.0.0.1:81,以便在返回给客户端前修改或注入响应。
信任前提:
这种拦截依赖一个关键假设:端点需信任网关所出示的证书链,TLS中间人才能对流量解密。一种推测是,与DarkNimbus 相关的终端恶意软件(在 Windows 与 Android 上均有出现)可能用于建立该信任或削弱证书校验,从而在拦截时展示针对目标主机的证书。不过,目前尚无样本或证据证实受害设备上确实存在这类信任建立或校验绕过。下图是部分的HAProxy代理配置内容:
#
mmdown.bin功能
#
该二进制是DKnife框架中的Android APK恶意软件下载与更新模块。它与硬编码 C2服务器(http://47.93.54.134:8005)通信,定期拉取更新清单,并下载服务器指定的文件。
启动时会先检查并创建必要的本地目录,然后从/etc/diankeuuid中生成或读取设备 UUID,用作清单文件名
下载清单后,会解析并按顺序通过明文HTTP下载每个 URL,校验文件MD5;校验通过则复制到本地Web 目录 /dksoft/html/app/。在成功拉取至少一个文件后,会将清单归档到 /dksoft/conf/
yitiji.bin功能
yitiji.bin是DKnife 的一个组件,用于在路由器上创建桥接 TAP 接口,承载并转发攻击者注入的LAN 流量。它创建名为 “yitiji” 的虚拟TAP 接口,使用IP地址 10.3.3.3、MAC 地址 1E:17:8E:C6:56:40,并将该接口桥接到真实网络。
DKnife通过指向Yitiji 接口的 URL响应二进制下载请求(例如 http://10.3.3.3:81/app/base.apk)。收到此类请求时,dknife.bin 将流量转发到 UDP 555 端口,yitiji.bin 在此监听。该组件随后确定合适的链路层封装,重建完整的以太网/IP/TCP 帧(主要是 TCP 与 ICMP),修正包长与校验和,并将其注入 TAP 接口,使内核将伪造流量视为正常 LAN 通信。通过该机制,DKnife 能接收二进制下载请求,并经由该接口投递恶意载荷。
反向路径上,Yitiji 捕获离开 TAP 的数据包,恢复其原始 VLAN/PPPoE/4G 头,重新计算 IP 与 TCP 校验和,再通过 /dksoft/conf/wxha.conf 中指定的物理网口发送。它还会构造伪造的ARP 应答,使其他主机将该接口视为LAN中的正常设备。
通过这种方式,Yitiji 在网内建立一个独立的 LAN用于投递恶意软件,使二进制下载的中间人攻击更加隐蔽,减少 IP 冲突和检测风险。
remote.bin功能
该组件作为N2N点对点VPN客户端运行。执行后,会创建名为 “edge0” 的虚拟网卡,并将其接入P2P overlay,自动加入硬编码社区 “dknife”,并连接到内置 supernode 完成注册。进入 edge0 的流量会被封装,通过UDP转发到overlay节点;同时还会在 5644 端口绑定管理用 UDP 端口。
借助该组件,网关可从 overlay 网络内被访问,并充当数据外泄的出口。若配置了 N2N_KEY 环境变量,实现支持 Twofish 加密,但在分析的代码及相关文件中未发现任何嵌入的加密密钥。
dkupdate.bin
该二进制是 DKnife 的下载、部署与更新组件,与最初发现的下载器类似,但具备额外能力。它会从C2服务器拉取更新归档update_bin.tar.gz(默认 URL 为 http://117.175.185.81:8003/),启动名为 eth5to2.bin 的独立程序(未包含在下载归档中,可能用于流量转发),并启动Nginx作为Web服务器,用于托管劫持 HTTP/HTTPS 响应的组件。
#
(全文完)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:利刃信安 《可监控用户一切信息,包括微信加密信息!针对国内用户的网关幽灵-DKnife》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。












评论