Це порт 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;
Це базується на джерелах GPL Cisco (наприклад, wap4410n_v2.0.1.0_gpl.tgz при закритті ftp-eng.cisco.com).
Дійсну інформацію див . Опис elvanderb та зразок коду Python .
В даний час він відомий переповненням буфера на основі купи, який може надати повний доступ до пристрою ( заднього кузова ). Це було відкрито Елоєм Вандербекеном у Різдво 2013 року, проте це, мабуть, було відомо китайським хакерам ще у 2008 році ( файл cgi ).
Ось як потрібно працювати.
Переповнення буфера на основі купи:
Повідомлення:
Тож використання простого переливного повідомлення може дати багато цікавих деталей:
Однак це може призвести до скидання конфігурації, тому не робіть цього вдома.
Ось декілька зворотних команд, які виконує маршрутизатор, виконаний через цей порт.
nvram
- Конфігурація дампа.
get var
- Отримати var конфігурації
можливе переповнення буфера на основі стека (якщо змінну контролює користувач)
set var
- Встановити var конфігурації
переповнення буфера на основі стека, вихідний буфер (розмір ≈ 0x10000) знаходиться на стеці.
commit nvram
- Прочитайте nvram / dev / mtdblock / 3 від / tmp / nvram і перевірте CRC
встановити nvram (/ dev / mtdblock / 3) з / tmp / nvram; перевірити CRC
Увімкніть режим моста (не впевнений, у мене не було часу його перевірити)
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 (так, це оболонка ...)
спеціальні команди:
- вийти, до побачення, кинути -> кинути ... (живий = 0)
- cd: змінити каталог (трохи WTF)
інші команди:
- переповнення цілого числа в обробці stdout (?) не можна використовувати, але все ж ...
- переповнення буфера на висновку cmd (знову ж буфер)…
записати файл
- ім'я файлу в корисному навантаженні
- root dir = / tmp
- Траверсія каталогів може бути можливою (не перевірена, але вона є відкритою (sprintf (“/ tmp /% s”, корисна навантаження)…)
повернути версію
повернути маршрутизатор модему ip
відновити настройки за замовчуванням
- nvram_set ("відновити_дефолтом", 1)
- nvram_commit
read / dev / mtdblock / 0 [-4: -2]
- не знаю, що це таке, я не мав часу перевірити його
скидайте nvram на диск (/ tmp / nvram) та здійснюйте
Джерело: (слайд-шоу) Як Linksys врятував моє Різдво!
Зазвичай IANA офіційно повинен бути офіційно таким портом .
Ось що відповів unSpawn на LinuxQuestions у 2007 році стосовно цього порту:
Якщо це офіційно призначений IANA порт (з номером від 0 до приблизно 30000), то його номер повинен відповідати службі в / etc / services ("getent services portnumber"), службовому файлу сканера типу Nmap або в Інтернеті База даних, як МСК Sans.
Зауважте, що використання ефемерного порту можна локально налаштувати за допомогою /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 до нього. Це не є точним методом, і у випадку компрометованого вузла ви можете попередити зловмисника, який ви перебуваєте в її справі.
Дивись також: