Yillar davomida biz ko‘pincha Simple Network Management Protocol (SNMP) ko‘plab tarmoq administratorlari tomonidan yaxshi tushunilmasligini aniqladik. Bu ko‘pincha SNMP noto‘g‘ri sozlanishlariga olib keladi, natijada muhim ma’lumotlar sizib chiqishi mumkin.
SNMP UDP ga asoslanadi, bu oddiy, holatni saqlamaydigan protokol bo‘lib, shuning uchun IP spoofing va replay attacklarga moyil. Bundan tashqari, keng tarqalgan SNMP protokollari 1, 2 va 2c trafikni shifrlashni taklif qilmaydi, ya’ni SNMP ma’lumotlari va hisob ma’lumotlari mahalliy tarmoqda osongina ushlanib olinishi mumkin. An’anaviy SNMP protokollari, shuningdek, zaif autentifikatsiya sxemalariga ega va odatda standart public va private community stringlar bilan sozlanib qoldiriladi.
<aside> 💡
Yaqin vaqtgacha SNMPv3, autentifikatsiya va shifrlashni ta’minlovchi versiya, faqat DES-56 ni qo‘llab-quvvatlab kelgan, bu zaif shifrlash sxemasi bo‘lib, uni osongina brute-force qilish mumkin edi. Yaqinda SNMPv3 ning yangi implementatsiyasi AES-256 shifrlash sxemasini qo‘llab-quvvatlaydi.
</aside>
Yuqoridagi barcha xususiyatlar tarmoqni boshqarish uchun mo‘ljallangan protokolga taalluqli bo‘lgani uchun, SNMP bizning sevimli enumeration protokollarimizdan biridir.
<aside> 💡
Bir necha yil oldin OffSec korporativ mijozlar, banklar va shunga o‘xshash tashkilotlarga tarmoq integratsiya xizmatlarini ko‘rsatuvchi kompaniyada ichki penetration test o‘tkazdi. Tizimni bir necha soat davomida o‘rganib chiqqanimizdan so‘ng, minglab Cisco routerlari ulangan katta class B tarmog‘ini aniqladik. Bizga tushuntirishlaricha, bu routerlarning har biri mijozlardan biriga boshqaruv va konfiguratsiya maqsadlari uchun ulanish nuqtasi edi. Default cisco/cisco telnet hisob ma’lumotlari uchun tezkor skanlash natijasida bitta past darajali Cisco ADSL routeri topildi. Bir oz chuqurroq tekshiruv router konfiguratsiya faylida murakkab SNMP public va private community stringlar to‘plamini ochib berdi. Ma’lum bo‘lishicha, ushbu public va private community stringlar butun class B diapazonidagi va undan tashqaridagi har bir tarmoq qurilmasida ishlatilgan edi – oddiy boshqaruv, to‘g‘rimi? Korporativ router uskunasining qiziqarli jihati shundaki, bu qurilmalar ko‘pincha private SNMP community string orqali konfiguratsiya fayllarini o‘qish va yozishni qo‘llab-quvvatlaydi. Endi barcha gateway routerlar uchun private community stringlar bizga ma’lum bo‘lganligi sababli, SNMP va TFTP protokollari yordamida butun tarmoqdagi router konfiguratsiyalarini nusxalash uchun oddiy skript yozish orqali nafaqat butun tarmoq integratsiya kompaniyasining infratuzilmasini, balki ularning mijozlarining infratuzilmasini ham xavf ostiga qo‘ydik.
</aside>
Endi SNMP haqida asosiy tushunchaga ega bo‘lganimizdan so‘ng, uning asosiy xususiyatlaridan biri bo‘lgan SNMP MIB Tree ni o‘rganishimiz mumkin.
SNMP Management Information Base (MIB) odatda tarmoq boshqaruvi bilan bog‘liq ma’lumotlarni o‘z ichiga olgan ma’lumotlar bazasidir. Ma’lumotlar bazasi daraxt kabi tashkil qilingan bo‘lib, uning shoxlari turli tashkilotlar yoki tarmoq funktsiyalarini ifodalaydi. Daraxtning barglari (yoki oxirgi nuqtalari) tashqi foydalanuvchi tomonidan so‘ralishi va tekshirilishi mumkin bo‘lgan maxsus o‘zgaruvchi qiymatlarga mos keladi. IBM Knowledge Center MIB tree haqida juda ko‘p ma’lumotni o‘z ichiga oladi.
Masalan, quyidagi MIB qiymatlari Microsoft Windows SNMP parametrlariga mos keladi va tarmoqqa asoslangan ma’lumotlardan ko‘proq narsani o‘z ichiga oladi:
| 1.3.6.1.2.1.25.1.6.0 | System Processes |
| 1.3.6.1.2.1.25.4.2.1.2 | Running Programs |
| 1.3.6.1.2.1.25.4.2.1.4 | Processes Path |
| 1.3.6.1.2.1.25.2.3.1.4 | Storage Units |
| 1.3.6.1.2.1.25.6.3.1.2 | Software Name |
| 1.3.6.1.4.1.77.1.2.25 | User Accounts |
| 1.3.6.1.2.1.6.13.1.3 | TCP Local Ports |
Jadval 1 - Windows SNMP MIB qiymatlari
SNMP portlarini ochiqligini tekshirish uchun nmap dan foydalanishimiz mumkin, bunda -sU opsiyasi UDP skanerlashni amalga oshirish uchun, --open opsiyasi esa faqat ochiq portlarni ko‘rsatish uchun ishlatiladi.
kali@kali:~$ **sudo nmap -sU --open -p 161 192.168.50.1-254 -oG open-snmp.txt**
Starting Nmap 7.92 ( <https://nmap.org> ) at 2022-03-14 06:02 EDT
Nmap scan report for 192.168.50.151
Host is up (0.10s latency).
PORT STATE SERVICE
161/udp open snmp
Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds
...
Ro‘yxat 52 - SNMP skanerlash uchun nmap dan foydalanish
Shuningdek, onesixtyone kabi vositadan foydalanib, IP manzillar ro‘yxatiga qarshi brute force hujumini sinab ko‘rish mumkin. Avval community stringlar va skan qilinadigan IP manzillar ro‘yxatini o‘z ichiga olgan matnli fayllarni yaratishimiz kerak.
kali@kali:~$ **echo public > community**
kali@kali:~$ **echo private >> community**
kali@kali:~$ **echo manager >> community**
kali@kali:~$ **for ip in $(seq 1 254); do echo 192.168.50.$ip; done > ips**
kali@kali:~$ **onesixtyone -c community -i ips**
Scanning 254 hosts, 3 communities
192.168.50.151 [public] Hardware: Intel64 Family 6 Model 79 Stepping 1 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 17763 Multiprocessor Free)
...
Ro‘yxat 53 - onesixtyone yordamida community stringlarni brute force qilish