我有一台运行固件 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
答案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文件)。
工作原理如下。
基于堆的缓冲区溢出:
消息:
因此,使用简单的溢出消息可以提供很多有趣的细节:
然而,这可能会导致配置重置,所以不要在家里这样做。
以下是路由器通过此端口执行的一些反向命令。
nvram
- 转储配置。get var
- 获取配置变量可能存在基于堆栈的缓冲区溢出(如果变量由用户控制)
set var
- 设置配置变量基于堆栈的缓冲区溢出,输出缓冲区(大小≈0x10000)位于堆栈上。
commit nvram
- 从 /tmp/nvram 读取 nvram /dev/mtdblock/3 并检查 CRC从 /tmp/nvram 设置 nvram (/dev/mtdblock/3);检查 CRC
将桥接模式设置为 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&”)
显示测量的互联网速度(下载/上传)
cmd (是的,它是一个 shell……)
特殊命令:
- 退出,再见,退出 -> 退出...(存活 = 0)
- cd :更改目录(有点 WTF)
其他命令:
- 标准输出处理中的整数溢出(?)不可利用但仍然......
- cmd 输出上的缓冲区溢出(又是同一个缓冲区)…
写入文件
- 有效载荷中的文件名
- 根目录 = /tmp
- 目录遍历可能是可能的(未经测试但它是一个开放(sprintf(“/tmp/%s”,payload))...)
返回版本
返回调制解调器路由器 ip
- nvram_get(“lan_ipaddr”)
恢复默认设置
- nvram_set(“恢复默认”,1)
- nvram_提交
读取/dev/mtdblock/0 [-4:-2]
- 不知道它是什么,我没有时间测试它
将 nvram 转储到磁盘 (/tmp/nvram) 并提交
通常情况下,这种端口应该由互联网号码分配机构。
这是什么取消生成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 -anp
。lsof -w -n -i protocol:portnumber
这fuser -n protocol portnumber
是最准确的方法,否则,如果您无法访问主机,您可以通过 telnet 等方式对其进行询问。这不是一个准确的方法,如果主机被攻陷,您可能会警告入侵者您正在调查此案。
也可以看看:
- (GitHub)Linksys WAG200G (TCP/32764) 的后门。
- (GitHub)路由器后门蜜罐(TCP-32764)
- (幻灯片)Linksys 如何拯救了我的圣诞节!
- WAG200G (法国) 固件升级在 Linksys 论坛
- wikidevi 上的 TCP-32764
- 我想了解有关“SerComm 设备远程代码执行”漏洞的信息在 Rapid7
- 谷歌:“0x53634d4d”了解更多详细信息。