Versi 3 dari SNMP (Simple Network Management Protocol) muncul sejak lama dalam menanggapi
lemahnya kemampuan versi 2 dalam hal keamanan. Namun, terlepas dari ketersediaan dan distribusi yang luas dari protokol versi 3 deskripsi protokol [1], ada beberapa deskripsi implementasi berdasarkan SNMP v3. Posting saat ini mencerminkan studi tentang dump dumps dari 'Element Manager GUI' (selanjutnya EM) dan Platform Transportasi Multi-Haul (selanjutnya MHTP).
Kami akan melihat serangkaian SNMP dapatkan dan tetapkan permintaan yang dikeluarkan oleh EM pada saat aplikasi diluncurkan dan diautentikasi, dan MHTP menanggapi permintaan ini. Sebelum mempelajari urutan dan isi kueri, Anda perlu memperhatikan hal-hal berikut:
1) Klien (EM), untuk otentikasi yang berhasil, harus memiliki informasi tentang parameter USM berikut (RFC 3414):
β’ Nama pengguna - mis 'Administrator',
β’ Protokol otentikasi - MD5,
β’ Kunci otentikasi - mis '12345',
β’ Protokol privasi - AES,
β’ Kunci privasi - mis '12345',
β’ Nama konteks - 'tnms'.
2) Saat membuat koneksi UDP di sisi klien, sistem operasi memilih 'port sumber' (jangan dikelirukan dengan 'port tujuan', yang merupakan 161 secara default untuk mendapatkan / mengatur SNMP). Nilai 'port sumber' dapat berubah dengan berbagai peluncuran aplikasi klien. Dalam implementasi ini, nilai 'port sumber' digunakan dalam pembentukan dinamis OID. Misalnya, jika Anda memilih 'porta sumber' = 60583, kami memiliki byte 0xEC dan 0xA7, dan akhiran dinamis sebagai bagian dari OID dari formulir '.236.167'.
3) Alamat IP sendiri diketahui oleh sisi klien dan digunakan dalam pembentukan dinamis OID. Misalnya, untuk alamat IP klien '10 .60.1.5 ', bagian dari' .10.60.1.5. 'Akan hadir dalam OID beberapa permintaan.
4) Nilai Nama pengguna yang disebutkan di atas juga digunakan dalam pembentukan OID. Misalnya, untuk 'Administrator', bagian dari '.65.100.109.105.110.105.115.116.114.97.116.111.114. (ASCII).
Kami sekarang beralih ke urutan dan isi permintaan get and set ketika memulai EM, otentikasi, dan membuat sesi (bagian dump tidak diberikan di bawah):
Permintaan 1 dan 2. Sesuai dengan RFC 5343, kami βmenemukanβ parameter EngineID, EngineBoots, dan EngineTime,
Minta:
data: dapatkan-permintaan,
msgData: plaintext,
variabel-binding: -
Jawaban:
data: laporan,
msgData: plaintext,
variabel-binding: (1 item)
1.3.6.1.6.3.15.1.1.4 ( usmStatsUnknownEngineIDs ) (Integer32) ==> 1.
Menariknya, nilai EngineBoots dan EngineTime yang diperoleh digunakan mulai dari permintaan 4, dan dalam permintaan 3 perlu menetapkan nilai nol untuknya.
Minta 3. Minta usmStatsNotInTimeWindows
Minta:
data: dapatkan-permintaan,
msgData: dienkripsiPDU,
variabel-binding: -
Jawaban:
data: laporan,
msgData: dienkripsiPDU,
variabel-binding: (1 item)
1.3.6.1.6.3.15.1.1.2.0 ( usmStatsNotInTimeWindows ) (Integer32) ==> 0.
Jumlah total paket yang diterima oleh mesin SNMP di luar jendela otoritatif.
Minta 4 . Permintaan SnmpAgentState.
Minta:data: dapatkan-permintaan,
msgData: dienkripsiPDU,
variabel-binding: (1 item)
1.3.6.1.4.1.42229.1.1.1.7.128.6.0
Jawaban:data: dapatkan respons,
msgData: dienkripsiPDU,
variabel-binding: (1 item)
1.3.6.1.4.1.42229.1.1.1.7.128.6.0 (snmpAgentState) (Integer32) ==> 3 (ENABLED).
Status agen.
Permintaan 5 . Permintaan SysDescr
Minta:data: dapatkan-permintaan,
msgData: dienkripsiPDU,
variabel-binding: (1 item)
1.3.6.1.2.1.1.1.0 (sysDescr)
Jawaban:data: dapatkan respons,
msgData: dienkripsiPDU,
variabel-binding: (1 item)
1.3.6.1.2.1.1.1.0 (sysDescr) ==> '--------- Hak cipta 2019 ******. Semua hak dilindungi. ' (OctetString)
Permintaan 6. Permintaan interfaceVersion secara struktural mirip dengan 4 dan 5.
Permintaan 7. Minta kamimXUserLastSuccessfulLogin
Minta:data: dapatkan-permintaan,
msgData: dienkripsiPDU,
variabel-binding: (1 item)
1.3.6.1.4.1.42229.1.1.1.9.2.1.13.13.65.100.109.105.110.105.115.116.114.97.116.111.114
Jawaban:data: dapatkan respons,
msgData: dienkripsiPDU,
variabel-binding: (1 item)
1.3.6.1.4.1.42229.1.1.1.9.2.1.13.13.65.100.109.105.110.105.115.116.114.97.116.111.114 (usmXUserLastSuccessfulLogin)
==> 07: e3: 09: 0a: 06: 1f: 36: 00: 2b: 00: 00 (OctetString)
==> 2019-09-10, dll.
Nama Pengguna ('Administrator') - '. 65.100.109.105.110.105.115.116.114.97.116.111.114.' Termasuk langsung dalam OID, yang diminta saat otentikasi terakhir yang berhasil diminta.
Permintaan 8. Permintaan untuk membuat sesi
Minta:data: set-request,
msgData: dienkripsiPDU,
variabel-binding: (4 item)
1.3.6.1.4.1.42229.1.1.1.9.6.1.2.6.10.60.1.5.236.167 ==> 4 (Integer32) ==> createAndGo 1.3.6.1.4.1.42229.1.1.1.9.6.1.5.6.10.60.1. 5.236.167 ==> 2 (Integer32) ==> sessionRemoteLogin
1.3.6.1.4.1.42229.1.1.1.9.6.1.3.6.10.60.1.5.236.167 ==> 41646d696e6973747261746f72 (OctetString) ==> sessionUserName ('Administrator')
1.3.6.1.4.1.42229.1.1.1.9.6.1.4.6.10.60.1.5.236.167 ==> 4043542020 (OctetString) ==> sessionManager ==> 'root'
Jawaban:data: dapatkan respons,
msgData: dienkripsiPDU,
variabel-binding: (4 item)
1.3.6.1.4.1.42229.1.1.1.9.6.1.2.6.10.60.1.5.236.167 ==> 4 (Integer32) ==> createAndGo 1.3.6.1.4.1.42229.1.1.1.9.6.1.5.6.10.60.1. 5.236.167 ==> 2 (Integer32) ==> sessionRemoteLogin
1.3.6.1.4.1.42229.1.1.1.9.6.1.3.6.10.60.1.5.236.167 ==> 41646d696e6973747261746f72 (OctetString) ==> sessionUserName ('Administrator')
1.3.6.1.4.1.42229.1.1.1.9.6.1.4.6.10.60.1.5.236.167 ==> 4043542020 (OctetString) ==> sessionManager ==> 'root'
Alamat IP dan port sumber disertakan secara langsung dalam OID: '.10.60.1.5.236.167'.
Posting secara singkat menggambarkan fitur implementasi SNMP v3 yang melekat dalam MHTP.
[1] Douglas R. Mauro dan Kevin J. Schmidt "Essential SNMP" (edisi kedua).
[2]
gtacknowledge.extremenetworks.com/articles/How_To/How-to-decrypt-SNMPv3-packets-in-Wireshark[3]
labs.spritelink.net/talking-snmpv3-with-nsn-hit7300