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


13

我有一个运行固件V5.01.01的Netgear DG834G。从LAN端看,如果我进行端口扫描,则它正在侦听tcp端口32764。尝试通过telnet进入此端口将给我响应MMcS\xff\xff\xff\xff\0\0\0\0(很明显是十六进制)。

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

有谁知道这可能是什么?


您正在使用什么telnet客户端?当我使用Putty时,我通过netgear路由器获得的所有内容都是“MMcSÿÿ” ...
Mokubai

1
带有双点的y是十六进制0xff,您和我一样。
Dentrasi 2010年

补充一下,因为我最近遇到了这个问题,现在是输出:SF-Port32764-TCP:V = 5.61TEST4%I = 7%D = 5/8%Time = 4FA9A45B%P = i686-pc-linux- gnu%r SF:(GenericLines,C,“ MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0”)%r(Help,C,“ MMcS \ xff \ xff \ SF:xff \ xff \ 0 \ 0 \ 0 \ 0“)%r(X11Probe,C,” MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0“)%r(LPDStr SF:ing,C,” MMcS \ xff \ xff \ xff \ xff \ 0 \ 0 \ 0 \ 0“)%r(TerminalServer,C,” MMcS \ xff \ xff \ SF:xff \ xff \ 0 \ 0 \ 0 \ 0“); 关于为什么默认打开此端口的任何更多见解将是不错的。


由于此设备属于您,并且您位于LAN上,因此可以尝试nmap -sV --version-all the_device_hostname
user2284570 2014年

Answers:


4

嗯,很奇怪。

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

MMcS 255.255.255.255 0.0.0.0(为清晰起见,添加了点)对我来说基本上是网络上的广播地址。可能表明您网络上的任何 IP都可以使用MMCS服务,即255.255.255.255网络掩码0.0.0.0。

MMCS可能有很多功能,例如Vista可以用来通过网络获取多媒体流量优先级的MultiMedia Class Scheduler。它将解释为什么端口也仅在本地网络上开放。

另外有关此页第一篇文章的 5点的信息

我怀疑这可能与MIP-MANET小区切换有关,后者似乎与手机网络有关。哇,当您使用MMCS 255.255.255.255的 Google时,会返回一些奇怪的东西。像这样

因此,我想说这很可能是允许Windows MultiMedia Class Scheduler与路由器通信以优先处理流量的端口,但是它可能是一些奇怪的时髦手机网络内容。


您的帖子位于backdoor_description.pptx :)
kenorb 2015年

@kenorb我不确定是要感到骄傲,羞愧还是受到轻微侵犯……
Mokubai

我为您帮助某些人没有破坏圣诞节而感到自豪:)
kenorb 2015年

17

事实上,这似乎是描述由制造商包括软件后门这里使用和利用的这个脚本

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



@ D3C4FF:最有趣的是,当服务正常工作时,它将知道该服务的目标ip_address是什么。我很好奇,知道哪个人会自动收集数据。
user2284570 2014年

实际上,这个问题是在原始幻灯片中创建后门的主要结果:backdoor_description.pptx :)
kenorb 2015年

1

这是SerComm制造的路由器和家庭网关设备(Linksys,Netgear,Cisco)中存在的MIPS端口,用于固件升级。

这由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代码


当前,它以基于堆的缓冲区溢出而闻名,可以使您完全访问设备(后门)。这是由Eloi Vanderbeken在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. 将桥接模式设置为“开”(不确定,我没有时间对其进行测试)

    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(是的,是一个外壳……)

    • 特殊命令:

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

      • stdout处理中的整数溢出(?)无法利用,但仍然...
      • cmd输出上的缓冲区溢出(再次相同的缓冲区)…
  8. 写文件

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

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

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

    • nvram_set(“ restore_default”,1)
    • nvram_commit
  12. 读取/ dev / mtdblock / 0 [-4:-2]

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

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


通常,此类端口应由IANA正式授权。

这是unSpawn说在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。这是最准确的方法,

否则,如果您无权访问主机,则可以通过远程登录来查询它。这不是一种准确的方法,如果主机受到感染,您可能会警告入侵者您的情况。

也可以看看:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.