Đây là cổng MIPS hiện diện trong các thiết bị, bộ định tuyến và cổng thiết bị gia đình (Linksys, Netgear, Cisco) được sử dụng để nâng cấp firmware.
Điều này được quản lý bởi scfgmgr
quá trình đang lắng nghe trên cổng 32764.
Khi được truy cập qua telnet, dữ liệu có tiền tố bởi ScMM
hoặc MMcS
(tùy thuộc vào endianess của hệ thống) dường như được trả về.
Đó là giao thức nhị phân rất đơn giản với tiêu đề (0xC byte) theo sau là một tải trọng.
Cấu trúc tiêu đề:
typedef struct scfgmgr_header_s {
unsigned long magic;
int cmd;
unsigned long len;
} scfgmgr_header;
Điều này dựa trên các nguồn GPL của Cisco (ví dụ wap4410n_v2.0.1.0_gpl.tgz tại ftp-eng.cisco.com đã ngừng hoạt động).
Để biết thông tin thực tế, xem mô tả của elvanderb và mã Python mẫu .
Hiện tại nó nổi tiếng với lỗi tràn bộ đệm dựa trên heap có thể cung cấp cho bạn toàn quyền truy cập vào thiết bị ( một cửa hậu ). Điều này đã được phát hiện bởi Eloi Vanderbeken vào Giáng sinh 2013, tuy nhiên có lẽ nó đã được tin tặc Trung Quốc biết đến vào năm 2008 ( tập tin cgi ).
Đây là cách làm việc.
Tràn bộ đệm dựa trên Heap:
Tin nhắn:
Vì vậy, sử dụng tin nhắn tràn đơn giản có thể cung cấp rất nhiều chi tiết thú vị:
Tuy nhiên, điều này có thể khiến cấu hình được đặt lại, vì vậy đừng làm điều đó ở nhà.
Dưới đây là một số lệnh đảo ngược được thực hiện bởi bộ định tuyến được thực hiện thông qua cổng này.
nvram
- Cấu hình kết xuất.
get var
- Nhận cấu hình var
tràn bộ đệm dựa trên ngăn xếp có thể (nếu biến được kiểm soát bởi người dùng)
set var
- Đặt cấu hình var
tràn bộ đệm dựa trên ngăn xếp, bộ đệm đầu ra (kích thước ≈ 0x10000) nằm trên ngăn xếp.
commit nvram
- Đọc nvram / dev / mtdblock / 3 từ / tmp / nvram và kiểm tra CRC
đặt nvram (/ dev / mtdblock / 3) từ / tmp / nvram; kiểm tra CRC
Đặt chế độ cầu BẬT (không chắc chắn, tôi không có thời gian để kiểm tra)
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&”)
Hiển thị tốc độ internet được đo (tải xuống / tải lên)
cmd (vâng, đó là một vỏ Shell)
lệnh đặc biệt:
- thoát, tạm biệt, thoát -> thoát ... (còn sống = 0)
- cd: thay đổi thư mục (một chút WTF)
các lệnh khác:
- tràn số nguyên trong xử lý xuất chuẩn (?) không thể khai thác nhưng vẫn ...
- tràn bộ đệm trên đầu ra cmd (lại cùng bộ đệm)
viết tập tin
- tên tệp trong tải trọng
- thư mục gốc = / tmp
- truyền tải thư mục có thể có thể (không được kiểm tra nhưng đó là một mở (sprintf (khác / tmp /% s tựa, tải trọng))
phiên bản trở lại
trả lại modem bộ định tuyến ip
- nvram_get (Hồi lan_ipaddr ')
khôi phục lại các thiết lập mặc định
- nvram_set (Phục hồi lại_default, 1)
- nvram_commit
đọc / dev / mtdblock / 0 [-4: -2]
- dunno nó là gì, tôi không có thời gian để kiểm tra nó
đổ nvram trên đĩa (/ tmp / nvram) và cam kết
Nguồn: (trình chiếu) Làm thế nào Linksys đã cứu Giáng sinh của tôi!
Thông thường loại cổng đó phải được chính thức bởi IANA .
Đây là những gì unSpawn đã trả lời tại LinuxQuestions năm 2007 liên quan đến cổng này:
Nếu đó là một cổng được gán chính thức của IANA (có số từ 0 đến khoảng 30000) thì số của nó sẽ tương ứng với một dịch vụ trong / etc / services ('dịch vụ nhận được portnumber'), tệp dịch vụ của máy quét như Nmap hoặc trực tuyến cơ sở dữ liệu như Sans 'ISC.
Lưu ý rằng việc sử dụng cổng phù du có thể được cấu hình cục bộ bằng cách sử dụng /proc/sys/net/ipv4/ip_local_port_range
sysctl
. Một mặc định cũ là 1024-5000, đối với các máy chủ, giá trị 32768-61000 được sử dụng và một số ứng dụng muốn một cái gì đó như 1025-65535.
Cũng lưu ý đây là các ánh xạ số-dịch vụ tĩnh và trong khi, ví dụ / etc / services sẽ nói TCP/22
khớp với SSH mà không phải là trường hợp cụ thể trong một tình huống cụ thể,
Khác nếu đó là một cổng mà bạn không biết quá trình nào đã liên kết với nó thì nếu bạn có quyền truy cập vào máy chủ, bạn có thể thẩm vấn nó bằng cách sử dụng netstat -anp
, lsof -w -n -i protocol:portnumber
hoặc fuser -n protocol portnumber
. Đây là phương pháp chính xác nhất,
Khác nếu bạn không có quyền truy cập vào máy chủ, bạn có thể thẩm vấn nó bằng cách ví dụ như telnet không đến nó. Đây không phải là một phương pháp chính xác và trong trường hợp máy chủ bị xâm nhập, bạn có thể cảnh báo kẻ xâm nhập vào trường hợp của cô ấy.
Xem thêm: