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

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

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

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

工具目录

分类

查看所有分类
Loading categories
dinkleberry — 修补受 CVE-2024-3272 影响的 D-Link 设备 | Kitploit
工具/GitHubGitHub/aliask/dinkleberry
嵌入式系统安全物联网安全漏洞分析漏洞利用渗透测试硬件与物联网安全二进制分析
GitHubaliask/dinkleberry

dinkleberry

修补受 CVE-2024-3272 影响的 D-Link 设备

查看仓库
31年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Dinkleberry 🫐

你是否是 92,000+ 名受困于存在 CVE-2024-3272 漏洞却迟迟没有补丁的 D-Link NAS 用户之一?

此工具借助该漏洞利用代码本身来为易受攻击的设备打补丁。

1: 请参阅参考文献中的原始披露

功能简介

Dinkleberry 将执行一条命令,用修补后的版本替换存在漏洞的 nas_sharing.cgi 文件——用 NOP 指令覆盖 system() 调用。

/usr/local/modules 目录(该文件所在位置)是只读的,因此改为在 /usr/local/config 中创建副本,并更新 /var/www/cgi-bin 中的符号链接,使其指向更安全的版本。

我选择仅将 system 调用 NOP 掉,这样命令仍能照常响应,只是实际上不会执行任何操作。

[!NOTE] 文件系统在启动时会从闪存重新加载。应用此补丁只在你重启设备之前有效。 如果你想要更永久的修复,你需要重新刷写固件——或许可以使用 Debian

使用方法

root@kitploit:~
aliask:~/git/dinkleberry$ python3 ./src/main.py -h                                                                                                                   10:01:02
usage: dinkleberry [-h] [--telnet] [--kill-telnet] [--test] [--verbose] target

positional arguments:
  target         Target NAS to patch

options:
  -h, --help     show this help message and exit
  --telnet       Start telnet server
  --kill-telnet  Stop telnet server
  --test         Test if device is vulnerable
  --verbose, -v  Set this to print debug messages

如果未应用任何可选标志,脚本将执行修补操作。

Telnet

如果你只是想在设备上四处看看,请使用 --telnet 命令,它会在 23 端口启动一个 telnet 会话。

这简直不安全到了可笑的地步,但你的设备本来就已经不安全得可笑了,所以不妨使用这个方便的 shell。

免责声明

[!CAUTION] 使用此工具风险自负。它正在修改实际设备软件。

我不对以下情况负责:

  • 你的设备无法工作
  • NAS 上存储的数据丢失
  • 引发火灾
  • 让那个正愉快地利用着你的设备的 TA 感到不爽

结语

在分析 nas_sharing.cgi 和 libsmbif.so 二进制文件的过程中,很快就清楚地看到此设备上的软件_极其_脆弱。脆弱到无法维护、需要从头重写的程度。

仅在 nas_sharing.cgi 中就有大约 80 处 system() 调用——其中许多为用户输入提供了路径。我没有费心去逐一分析它们以寻找更多需要修补的漏洞,但这里有一个 S 级示例:

root@kitploit:~
/*  Why use system() instead of libc fopen/fwrite?
    What if you want to write a long string or your filename is long?
    Painfully obvious command injection playground 🤦 */
void append_to_file(const char* string, const char* file) {
  char s_cmd[1024];
  sprintf(s_cmd, "echo %s >> %s", string, file);
  system(s_cmd);
  return;
}

除了这些_疯狂_的 system 调用之外,缓冲区溢出多到你用棍子都戳不过来——而我能戳很多棍子。

这个 CVE 在 CISA 的 KEV 列表 上——如果你有这样的设备暴露在互联网上,请将其下线。就是现在。

也许甚至应该采纳 D-Link 的建议,更换这个 EOL 设备。但我绝对不会购买 D-Link 的产品,这一点是肯定的。

参考

  • 原始披露:https://github.com/netsecfish/dlink
  • NVD 页面:https://nvd.nist.gov/vuln/detail/CVE-2024-3272
下载工具