Netgear 路由器正在监听端口 32764?

Netgear 路由器正在监听端口 32764?

我有一台运行固件 V5.01.01 的 Netgear DG834G。从 LAN 端,如果我对其进行端口扫描,它会监听 TCP 端口 32764。尝试 telnet 到此端口会给我响应MMcS\xff\xff\xff\xff\0\0\0\0(显然是十六进制)。

我已禁用 UPnP,它不是远程管理端口,而且在 WAN 端未打开。我在 Netgear 的文档中找不到任何内容,在线搜索也找不到任何内容。似乎有几个人注意到了,但实际上没有人有答案。我还创建了一条防火墙规则来阻止对该端口的出站访问,但它仍然打开,因此实际上是路由器在监听它。

有人知道这是啥吗?

答案1

嗯,很奇怪。

十六进制 ff = 十进制 255,因此从逻辑上讲,您收到的响应相当于

MMcS 255.255.255.255 0.0.0.0(为了便于理解网络而添加了点),对我来说,这基本上是您网络上的广播地址。它可能表示任何您网络上的 ip 可以使用 MMCS 服务,即 255.255.255.255 网络掩码 0.0.0.0。

MMCS 可以有很多用途,例如多媒体课程调度程序Vista 可以使用该端口获得网络上多媒体流量的优先级。这也解释了为什么该端口也仅在您的本地网络上开放。

另外,关于第一篇文章第 5 点的一些信息这一页

我怀疑这与MIP-MANET 小区交换这似乎与移动电话网络有关。哇,当你在 Google 上搜索时,会返回一些奇怪的东西多媒体通信系统 255.255.255.255。 喜欢

因此,我认为它很可能是一个允许 Windows 多媒体类调度程序与路由器通信以优先处理流量的端口,但它也可能是一些奇怪的手机网络设备。

答案2

事实上,这似乎是制造商附带的软件后门,如所述这里并可利用这个脚本

到目前为止,非供应商相关人员已报告以下路由器中存在后门:Linksys WAG200G、Linksys WAG320N(固件 V1.00.12)和 Netgear DM111P。但似乎以下设备(包括您的设备)也可能存在后门:Netgear DG834、DG834G WPNT834 DG934、WG602、WGR614 路由器、Linksys WAG160N 和 DGN2000、WAG120N 无线-WRVS4400N。似乎其他设备中也可能存在此后门。

答案3

这是并行处理单元该端口存在于 SerComm 制造的路由器和家庭网关设备(Linksys、Netgear、Cisco)中,用于固件升级。

这是由scfgmgr监听端口 32764 的进程进行管理的。

通过 telnet 访问时,似乎会返回以ScMM或为前缀的数据MMcS(取决于系统的字节序)。

它是一种非常简单的二进制协议,带有标头(0xC 字节)和有效负载。

标头结构:

typedef struct scfgmgr_header_s {
    unsigned long   magic;
    int             cmd;
    unsigned long   len;
} scfgmgr_header;

这是基于 Cisco GPL 源(例如已退役的 ftp-eng.cisco.com 上的 wap4410n_v2.0.1.0_gpl.tgz)。

有关实际信息,请参阅elvanderb 的描述和示例 Python 代码


目前它因基于堆的缓冲区溢出而闻名,它可以让你完全访问设备(后门)这是由埃洛伊范德贝肯2013 年圣诞节,但中国黑客可能早在 2008 年就已知道了这一点(.cgi文件)。

工作原理如下。

基于堆的缓冲区溢出:

基于堆的缓冲区溢出

消息:

消息

因此,使用简单的溢出消息可以提供很多有趣的细节:

屏幕截图-WiFi用户名和密码

然而,这可能会导致配置重置,所以不要在家里这样做。

以下是路由器通过此端口执行的一些反向命令。

  1. nvram- 转储配置。

  2. get var- 获取配置变量

    可能存在基于堆栈的缓冲区溢出(如果变量由用户控制)

  3. set var- 设置配置变量

    基于堆栈的缓冲区溢出,输出缓冲区(大小≈0x10000)位于堆栈上。

  4. commit nvram- 从 /tmp/nvram 读取 nvram /dev/mtdblock/3 并检查 CRC

    从 /tmp/nvram 设置 nvram (/dev/mtdblock/3);检查 CRC

  5. 将桥接模式设置为 ON(不确定,我没有时间测试)

    nvram_set(“wan_mode”, bridgedonly)
    nvram_set(“wan_encap”, 0)
    nvram_set(“wan_vpi”, 8)
    nvram_set(“wan_vci”, 81)
    system(“/usr/bin/killall br2684ctl”)
    system(“/usr/bin/killall udhcpd”)
    system(“/usr/bin/killall -9 atm_monitor”)
    system(“/usr/sbin/rc wan stop >/dev/null 2>&1”)
    system(“/usr/sbin/atm_monitor&”)
    
  6. 显示测量的互联网速度(下载/上传)

  7. cmd (是的,它是一个 shell……)

    • 特殊命令:

      • 退出,再见,退出 -> 退出...(存活 = 0)
      • cd :更改目录(有点 WTF)
    • 其他命令:

      • 标准输出处理中的整数溢出(?)不可利用但仍然......
      • cmd 输出上的缓冲区溢出(又是同一个缓冲区)…
  8. 写入文件

    • 有效载荷中的文件名
    • 根目录 = /tmp
    • 目录遍历可能是可能的(未经测试但它是一个开放(sprintf(“/tmp/%s”,payload))...)
  9. 返回版本

  10. 返回调制解调器路由器 ip

    • nvram_get(“lan_ipaddr”)
  11. 恢复默认设置

    • nvram_set(“恢复默认”,1)
    • nvram_提交
  12. 读取/dev/mtdblock/0 [-4:-2]

    • 不知道它是什么,我没有时间测试它
  13. 将 nvram 转储到磁盘 (/tmp/nvram) 并提交

来源:(幻灯片)Linksys 如何拯救了我的圣诞节!


通常情况下,这种端口应该由互联网号码分配机构

这是什么取消生成2007 年在 LinuxQuestions 上回复了与此端口相关的内容:

如果它是官方 IANA 分配的端口(编号在 0 到大约 30000 之间),那么它的编号应该与 /etc/services(“getent services portnumber”)中的服务、Nmap 等扫描仪的服务文件或 Sans 的 ISC 等在线数据库相对应。

请注意,可以使用 本地配置临时端口的使用/proc/sys/net/ipv4/ip_local_port_range sysctl。旧的默认值为 1024-5000,对于服务器,使用的值是 32768-61000,而某些应用程序需要的值是 1025-65535。

还要注意的是,这些是静态的数字到服务的映射,例如 /etc/services 会说TCP/22匹配 SSH,但在特定情况下不一定如此,

否则,如果你不知道哪个进程绑定了该端口,那么如果你可以访问主机,你可以使用 或 来查询它netstat -anplsof -w -n -i protocol:portnumberfuser -n protocol portnumber是最准确的方法,

否则,如果您无法访问主机,您可以通过 telnet 等方式对其进行询问。这不是一个准确的方法,如果主机被攻陷,您可能会警告入侵者您正在调查此案。

也可以看看:

相关内容