13

У меня Netgear DG834G под управлением прошивки V5.01.01. Со стороны локальной сети, если я сканирую его через порт, он прослушивает tcp порт 32764. Попытка подключиться к этому порту через telnet дает мне ответ MMcS\xff\xff\xff\xff\0\0\0\0 (очевидно, в шестнадцатеричном формате ).

У меня отключен UPnP, это не порт удаленного управления, и он не открыт на стороне глобальной сети. Я не могу найти ничего в документации Netgear, и поиск в Интернете тоже ничего не находит. Некоторые люди, кажется, заметили, но на самом деле ни у кого нет ответа. Я также создал правило брандмауэра, блокирующее исходящий доступ к этому порту, и он все еще открыт, так что на самом деле его прослушивает маршрутизатор.

Кто-нибудь знает, что это может быть?

3 ответа3

17

На самом деле, это похоже на программный бэкдор, включенный производителем, как описано здесь, и его можно использовать с помощью этого сценария.

До сих пор лица, не относящиеся к поставщикам, сообщали о наличии задних дверей в следующих маршрутизаторах: Linksys WAG200G, Linksys WAG320N (прошивка V1.00.12) и Netgear DM111P. Но, похоже, также могут присутствовать следующие устройства (включая ваше): Netgear DG834, DG834G, маршрутизатор WPNT834, DG934, WG602, WGR614, Linksys WAG160N и DGN2000, WAG120N wireless-WRVS4400N. Вероятно, эта задняя дверь присутствует и в других устройствах.

4

Хм, странно.

Hex ff = Decimal 255, поэтому логически полученный вами ответ эквивалентен

MMCS 255.255.255.255 0.0.0.0 (добавлены точки для ясности сети), который для меня является в основном широковещательным адресом в вашей сети. Можно утверждать, что любой ip в вашей сети может использовать службу MMCS, то есть 255.255.255.255 net mask 0.0.0.0.

MMCS может быть несколькими вещами, такими как MultiMedia Class Scheduler, который Vista может использовать, чтобы получить приоритет для мультимедийного трафика по сети. Это объясняет, почему порт открыт только в вашей локальной сети.

Также немного информации о пункте 5 первого поста этой страницы

Я сомневаюсь, что это будет связано с сотовой коммутацией MIP-MANET, которая, похоже, связана с сетями мобильных телефонов. Вау, есть некоторые странные вещи, которые возвращаются, когда вы используете Google для MMCS 255.255.255.255. Вот так.

Так что я бы сказал, что это, скорее всего, порт, который позволяет планировщику Windows MultiMedia Class планировать обмен данными с маршрутизатором, чтобы расставить приоритеты в трафике, но это может быть странная штука из сети мобильных телефонов.

1

Это порт MIPS, который присутствует в производимых 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 (например, wap4410n_v2.0.1.0_gpl.tgz на списанном ftp-eng.cisco.com).

Для получения актуальной информации смотрите описание elvanderb и пример кода Python.


В настоящее время он известен переполнением буфера на основе кучи, которое может дать вам полный доступ к устройству (бэкдор). Это было обнаружено Элоем Вандербекеном в Рождество 2013 года, однако, вероятно, оно было известно китайским хакерам еще в 2008 году (файл cgi).

Вот как это работает.

Переполнение буфера на основе кучи:

Переполнение буфера на основе кучи

Сообщения:

Сообщения

Поэтому использование простого переполнения сообщения может дать много интересных деталей:

снимок экрана - имя пользователя и пароль WiFi

Однако это может привести к сбросу конфигурации, поэтому не делайте этого дома.

Вот несколько обращенных команд, выполняемых маршрутизатором через этот порт.

  1. nvram - дамп конфигурации.

  2. get var - Получить конфигурацию var

    возможное переполнение буфера в стеке (если переменная контролируется пользователем)

  3. set var - установить конфигурационную переменную

    переполнение буфера в стеке, выходной буфер (размер ≈ 0x10000) находится в стеке.

  4. commit nvram - прочитайте nvram /dev /mtdblock /3 из /tmp /nvram и проверьте CRC

    установите nvram (/dev /mtdblock /3) из /tmp /nvram; проверить 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. записать файл

    • имя файла в полезной нагрузке
    • root dir = /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. выгрузить nvram на диск (/tmp /nvram) и зафиксировать

Источник: (слайд-шоу) Как Linksys спасла мое Рождество!


Обычно такие порты должны быть официально предоставлены IANA.

Вот что unSpawn ответил на LinuxQuestions в 2007 году относительно этого порта:

Если это официально назначенный IANA порт (с номером от 0 до примерно 30000), то его номер должен соответствовать службе в /etc /services ('номер службы getent services'), файлу служб сканера, такого как Nmap или онлайн База данных, как Сан-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'ting для него. Это не точный метод, и в случае скомпрометированного хоста вы можете предупредить злоумышленника о вашем случае.

Смотрите также:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .