Ini adalah port MIPS yang hadir di SerComm yang diproduksi, router dan perangkat gateway rumah (Linksys, Netgear, Cisco) yang digunakan untuk peningkatan firmware.
Ini dikelola oleh scfgmgr
proses yang mendengarkan pada port 32764.
Ketika diakses melalui telnet, data diawali oleh ScMM
atau MMcS
(tergantung pada endianess sistem) tampaknya dikembalikan.
Ini protokol biner yang sangat sederhana dengan header (0xC byte) diikuti oleh payload.
Struktur header:
typedef struct scfgmgr_header_s {
unsigned long magic;
int cmd;
unsigned long len;
} scfgmgr_header;
Ini didasarkan pada sumber-sumber Cisco GPL (mis. Wap4410n_v2.0.1.0_gpl.tgz di decommissioned ftp-eng.cisco.com).
Untuk info aktual, lihat deskripsi elvanderb dan contoh kode Python .
Saat ini terkenal dengan buffer overflow berbasis tumpukan yang dapat memberi Anda akses penuh ke perangkat ( pintu belakang ). Ini ditemukan oleh Eloi Vanderbeken pada Natal 2013, namun mungkin diketahui oleh peretas Cina pada 2008 ( file cgi ).
Inilah cara kerjanya.
Heap buffer overflow berbasis:
Pesan:
Jadi, menggunakan pesan luapan sederhana dapat memberikan banyak detail menarik:
Namun ini dapat menyebabkan konfigurasi diatur ulang, jadi jangan lakukan di rumah.
Berikut adalah beberapa perintah terbalik yang dilakukan oleh router yang dieksekusi melalui port ini.
nvram
- Konfigurasi Dump.
get var
- Dapatkan konfigurasi var
kemungkinan stack overflow buffer overflow (jika variabel dikontrol oleh pengguna)
set var
- Atur konfigurasi var
stack berdasarkan buffer overflow, buffer output (ukuran ≈ 0x10000) ada di stack.
commit nvram
- Baca nvram / dev / mtdblock / 3 dari / tmp / nvram dan periksa CRC
atur nvram (/ dev / mtdblock / 3) dari / tmp / nvram; periksa CRC
Setel mode jembatan AKTIF (tidak yakin, saya tidak punya waktu untuk mengujinya)
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&”)
Tampilkan kecepatan internet terukur (unduh / unggah)
cmd (ya, itu shell ...)
perintah khusus:
- keluar, selamat tinggal, keluar -> keluar ... (hidup = 0)
- cd: ubah direktori (sedikit WTF)
perintah lain:
- integer overflow dalam penanganan stdout (?) tidak dapat dieksploitasi tetapi masih ...
- buffer overflow pada output cmd (buffer yang sama lagi) ...
menulis file
- nama file dalam payload
- dir root = / tmp
- direktori traversal mungkin dilakukan (tidak diuji tetapi terbuka (sprintf ("/ tmp /% s", payload)) ...)
versi kembali
mengembalikan ip router modem
mengembalikan pengaturan default
- nvram_set ("restore_default", 1)
- nvram_commit
baca / dev / mtdblock / 0 [-4: -2]
- Entah apa itu, saya tidak punya waktu untuk mengujinya
dump nvram pada disk (/ tmp / nvram) dan komit
Sumber: (tayangan slide) Bagaimana Linksys menyelamatkan Natal saya!
Biasanya port semacam itu harus secara resmi oleh IANA .
Inilah yang dibalas unSpawn di LinuxQuestions pada 2007 terkait dengan port ini:
Jika ini adalah port yang ditugaskan secara resmi IANA (dengan angka antara 0 dan sekitar 30000) maka jumlahnya harus sesuai dengan layanan di / etc / services ('getent services portnumber'), file layanan pemindai seperti Nmap atau online database seperti Sans 'ISC.
Perhatikan bahwa penggunaan port sesaat dapat dikonfigurasi secara lokal menggunakan /proc/sys/net/ipv4/ip_local_port_range
sysctl
. Default lama adalah 1024-5000, untuk server nilai 32768-61000 digunakan dan beberapa aplikasi menginginkan sesuatu seperti 1025-65535.
Juga perhatikan ini adalah pemetaan angka-ke-layanan statis dan sementara misalnya / etc / services akan mengatakan TCP/22
cocok dengan SSH yang tidak harus menjadi kasus dalam situasi tertentu,
Lain jika itu adalah port yang Anda tidak tahu proses mana yang mengikatnya maka jika Anda memiliki akses ke host Anda dapat menginterogasinya menggunakan netstat -anp
, lsof -w -n -i protocol:portnumber
atau fuser -n protocol portnumber
. Ini adalah metode yang paling akurat,
Jika Anda tidak memiliki akses ke host, Anda dapat menginterogasinya misalnya dengan telnet'ting. Ini bukan metode yang akurat dan dalam kasus tuan rumah yang dikompromikan, Anda dapat memberi tahu pengganggu yang berada dalam kasusnya.
Lihat juga: