hacktricks/network-services-pentesting/pentesting-snmp
2024-03-17 16:37:08 +00:00
..
cisco-snmp.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-17 16:37:08 +00:00
README.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-17 16:37:08 +00:00
snmp-rce.md Translated to Turkish 2024-02-10 18:14:16 +00:00

161,162,10161,10162/udp - SNMP Pentesting

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Eğer hacking kariyeri ilginizi çekiyorsa ve hacklenemez olanı hacklemek istiyorsanız - işe alıyoruz! (akıcı şekilde Lehçe yazılı ve konuşma gereklidir).

{% embed url="https://www.stmcyber.com/careers" %}

Temel Bilgiler

SNMP - Basit Ağ Yönetim Protokolü, ağdaki farklı cihazları izlemek için kullanılan bir protokoldür (örneğin yönlendiriciler, anahtarlar, yazıcılar, IoT'ler...).

PORT    STATE SERVICE REASON                 VERSION
161/udp open  snmp    udp-response ttl 244   ciscoSystems SNMPv3 server (public)

{% hint style="info" %} SNMP ayrıca tuzaklar için 162/UDP bağlantı noktasını da kullanır. Bunlar, SNMP sunucusundan istekte bulunulmadan istemciye gönderilen veri paketleridir. {% endhint %}

MIB

SNMP erişiminin farklı üreticiler arasında ve farklı istemci-sunucu kombinasyonlarıyla çalışmasını sağlamak için Yönetim Bilgi Tabanı (MIB) oluşturulmuştur. MIB, cihaz bilgilerini depolamak için bağımsız bir formattır. MIB, tüm sorgulanabilir SNMP nesnelerinin standartlaştırılmış bir ağaç hiyerarşisinde listelendiği bir metin dosyasıdır. En az bir Nesne Tanımlayıcı (OID) içerir ve gerekli benzersiz adresin yanı sıra bir isim de sağlar ve ayrıca ilgili nesnenin türü, erişim hakları ve açıklaması hakkında bilgi verir.
MIB dosyaları, Abstract Syntax Notation One (ASN.1) tabanlı ASCII metin formatında yazılmıştır. MIB'ler veri içermez, ancak hangi bilginin nerede bulunacağını ve nasıl görüneceğini açıklar, belirli OID'ler için değerler döndürür veya hangi veri türünün kullanıldığını belirtir.

OIDs

Nesne Tanımlayıcılar (OID'ler) önemli bir rol oynar. Bu benzersiz tanımlayıcılar, bir Yönetim Bilgi Tabanı (MIB) içindeki nesneleri yönetmek için tasarlanmıştır.

MIB nesne kimliklerinin en üst seviyeleri, çeşitli standart belirleme kuruluşlarına tahsis edilmiştir. Küresel yönetim uygulamaları ve standartlar çerçevesi bu üst seviyelerde oluşturulur.

Ayrıca, satıcılar özel dallar oluşturma özgürlüğüne sahiptir. Bu dallar içinde, kendi ürün hatlarıyla ilgili yönetilen nesneleri eklemek için özerklikleri vardır. Bu sistem, farklı satıcılar ve standartlar arasında geniş bir nesne yelpazesini tanımlamak ve yönetmek için yapılandırılmış ve düzenli bir yöntem olduğunu sağlar.

Bir OID ağacı üzerinde gezebilirsiniz buradan: http://www.oid-info.com/cgi-bin/display?tree=#focus veya bir OID'nin ne anlama geldiğini görebilirsiniz (örneğin 1.3.6.1.2.1.1) http://oid-info.com/get/1.3.6.1.2.1.1.
1.3.6.1.2.1 içindeki gibi tanınmış OID'ler bulunmaktadır, bu, MIB-2 tarafından tanımlanan Basit Ağ Yönetim Protokolü (SNMP) değişkenlerine referans verir. Ve bu OID'lerden elde edilen bazı ilginç ana bilgisayar verilerini (sistem verileri, ağ verileri, işlem verileri...) alabilirsiniz.

OID Örneği

Buradan örnek:

1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7

Bu adresin ayrıntıları şöyle:

  • 1 - Bu ISO olarak adlandırılır ve bu bir OID olduğunu belirler. Bu nedenle, tüm OID'ler "1" ile başlar.
  • 3 - Bu ORG olarak adlandırılır ve cihazı kuran organizasyonu belirtmek için kullanılır.
  • 6 - Bu dod veya Savunma Bakanlığıdır ve İnternet'i ilk kez kuran organizasyondur.
  • 1 - Bu, tüm iletişimlerin İnternet üzerinden gerçekleşeceğini belirtmek için internetin değeridir.
  • 4 - Bu değer, bu cihazın bir devlet kurumu değil, özel bir kuruluş tarafından yapıldığını belirler.
  • 1 - Bu değer, cihazın bir işletme veya ticari bir varlık tarafından yapıldığını belirtir.

Bu ilk altı değer genellikle tüm cihazlar için aynı olma eğilimindedir ve temel bilgileri verir. Bu sayı dizisi, cihazlar için tüm OID'ler için aynı olacaktır, cihaz devlet tarafından yapıldığında hariç.

Sonraki sayılar dizisine geçelim.

  • 1452 - Bu cihazı üreten organizasyonun adını verir.
  • 1 - Cihazın türünü açıklar. Bu durumda, bir alarm saati.
  • 2 - Bu cihazın bir uzak terminal ünitesi olduğunu belirler.

Gerisi, cihaz hakkında belirli bilgiler verir.

  • 5 - ayrı bir alarm noktasını belirtir.
  • 1 - cihazdaki belirli nokta
  • 3 - bağlantı noktası
  • 21 - bağlantı noktasının adresi
  • 1 - bağlantı noktası için ekran
  • 4 - nokta numarası
  • 7 - noktanın durumu

SNMP Sürümleri

SNMP'nin 2 önemli sürümü vardır:

  • SNMPv1: Ana sürüm, hala en yaygın olanıdır, kimlik doğrulama bir dizeye dayanır (topluluk dizesi) ve tüm bilgiler düz metin olarak iletilir. Sürüm 2 ve 2c de trafik düz metin olarak gönderilir ve kimlik doğrulaması için bir topluluk dizesi kullanır.
  • SNMPv3: Daha iyi bir kimlik doğrulama biçimi kullanır ve bilgi, şifrelenmiş olarak iletilir (sözlük saldırısı gerçekleştirilebilir ancak doğru kimlik bilgilerini bulmak SNMPv1 ve v2'den daha zor olacaktır).

Topluluk Dizileri

Daha önce belirtildiği gibi, MIB'de kayıtlı bilgilere erişmek için sürüm 1 ve 2/2c'de topluluk dizesini, sürüm 3'te kimlik bilgilerini bilmelisiniz.
2 tür topluluk dizesi vardır:

  • public genellikle salt okunur işlevler
  • private genellikle Oku/Yaz işlevi görür

Bir OID'nin yazılabilirliği, kullanılan topluluk dizesine bağlıdır, bu nedenle "public" kullanıldığını bulsanız bile, bazı değerleri yazabilirsiniz. Ayrıca, her zaman "Salt Okunur" olan nesneler olabilir.
Bir nesneyi yazmaya çalışırsanız noSuchName veya readOnly hatası alırsınız**.**

Sürüm 1 ve 2/2c'de kötü bir topluluk dizesi kullanırsanız sunucu yanıt vermez. Bu nedenle, yanıt verirse, geçerli bir topluluk dizesi kullanılmıştır.

Bağlantı Noktaları

Wikipedia'dan:

Kaba Kuvvet Topluluk Dizesi (v1 ve v2c)

Topluluk dizesini tahmin etmek için bir sözlük saldırısı gerçekleştirebilirsiniz. SNMP'ye karşı kaba kuvvet saldırısı yapmanın farklı yolları için buraya bakın. Sıkça kullanılan bir topluluk dizesi publicdir.

SNMP Numaralandırma

Her bir OID'nin ne anlama geldiğini görmek için aşağıdakileri yüklemeniz önerilir:

apt-get install snmp-mibs-downloader
download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf

Eğer geçerli bir topluluk dizesini biliyorsanız, verilere SNMPWalk veya SNMP-Check kullanarak erişebilirsiniz:

snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot
snmpbulkwalk -c public -v2c 10.10.11.136 .

snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP]
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] 1.3.6.1.2.1.4.34.1.3 #Get IPv6, needed dec2hex
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] NET-SNMP-EXTEND-MIB::nsExtendObjects #get extended
snmpwalk -v [VERSION_SNMP] -c [COMM_STRING] [DIR_IP] .1 #Enum all

snmp-check [DIR_IP] -p [PORT] -c [COMM_STRING]

nmap --script "snmp* and not snmp-brute" <target>

braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID

Uzatılmış sorgular (download-mibs) sayesinde, aşağıdaki komut ile sistem hakkında daha fazla bilgi sıralamak mümkündür:

snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull

SNMP, ana bilgisayar hakkında birçok bilgi içerir ve ilginizi çekebilecek şeyler şunlardır: Ağ arabirimleri (IPv4 ve IPv6 adresi), Kullanıcı adları, Çalışma süresi, Sunucu/İşletim sistemi sürümü ve çalışan işlemler (şifreler içerebilir)....

Tehlikeli Ayarlar

Ağ yönetimi alanında, belirli yapılandırmalar ve parametreler kapsamlı izleme ve kontrol sağlamak için önemlidir.

Erişim Ayarları

Ağ yönetiminde önemli iki ayar, ağ yönetiminde kritik bir bileşen olan tam OID ağacına erişimi sağlar:

  1. rwuser noauth, kimlik doğrulama gerektirmeksizin OID ağacına tam erişime izin vermek için ayarlanmıştır. Bu ayar açıktır ve kısıtlamasız erişime olanak tanır.
  2. Daha spesifik kontrol için erişim, şu şekilde sağlanabilir:
  • rwcommunity için IPv4 adresleri ve
  • rwcommunity6 için IPv6 adresleri.

Her iki komut da bir topluluk dizesi ve ilgili IP adresini gerektirir, isteğin kaynağından bağımsız olarak tam erişim sağlar.

Microsoft Windows İçin SNMP Parametreleri

Bir Windows sisteminin çeşitli yönlerini izlemek için SNMP aracılığıyla kullanılan bir dizi Yönetim Bilgi Tabanı (MIB) değeri:

  • Sistem İşlemleri: 1.3.6.1.2.1.25.1.6.0 üzerinden erişilen bu parametre, sistem içindeki etkin işlemlerin izlenmesine olanak tanır.
  • Çalışan Programlar: 1.3.6.1.2.1.25.4.2.1.2 değeri, şu anda çalışan programların izlenmesi için belirlenmiştir.
  • İşlem Yolu: Bir işlemin nereden çalıştığını belirlemek için 1.3.6.1.2.1.25.4.2.1.4 MIB değeri kullanılır.
  • Depolama Birimleri: Depolama birimlerinin izlenmesi, 1.3.6.1.2.1.25.2.3.1.4 ile kolaylaştırılır.
  • Yazılım Adı: Bir sisteme yüklenen yazılımı tanımlamak için 1.3.6.1.2.1.25.6.3.1.2 kullanılır.
  • Kullanıcı Hesapları: 1.3.6.1.4.1.77.1.2.25 değeri, kullanıcı hesaplarının izlenmesine olanak tanır.
  • TCP Yerel Portlar: Son olarak, 1.3.6.1.2.1.6.13.1.3, TCP yerel portların izlenmesi için belirlenmiştir, aktif ağ bağlantıları hakkında bilgi sağlar.

Cisco

Eğer Cisco ekipmanına sahipseniz, bu sayfaya göz atın:

{% content-ref url="cisco-snmp.md" %} cisco-snmp.md {% endcontent-ref %}

SNMP'den RCE'ye

Eğer SNMP servisi içinde değer yazmaya izin veren dizeye sahipseniz, bunu komutları yürütmek için kötüye kullanabilirsiniz:

{% content-ref url="snmp-rce.md" %} snmp-rce.md {% endcontent-ref %}

Kapsamlı SNMP

Braa , kapsamlı bir SNMP tarayıcıdır. Bu tür bir aracın amaçlanan kullanımı elbette SNMP sorguları yapmaktır - ancak net-snmp'den snmpwalk'ın aksine, onlarca veya yüzlerce ana bilgisayara aynı anda sorgu yapabilir ve tek bir işlemde yapabilir. Bu nedenle, çok az sistem kaynağı tüketir ve taramayı ÇOK hızlı yapar.

Braa, kendi SNMP yığını uygular, bu nedenle net-snmp gibi SNMP kütüphanelerine ihtiyaç duymaz.

Syntax: braa [Topluluk-dizesi]@[SNMP sunucusunun IP adresi]:[iso kimliği]

braa ignite123@192.168.1.125:.1.3.6.*

Bu, manuel olarak işleyemeyeceğiniz birçok MB bilgi çıkarabilir.

Bu yüzden, en ilginç bilgileri arayalım (https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):

Cihazlar

İşlem, cihazları tanımlamak için her dosyadan sysDesc MIB verilerinin (1.3.6.1.2.1.1.1.0) çıkarılmasıyla başlar. Bu, bir grep komutu kullanılarak gerçekleştirilir:

grep ".1.3.6.1.2.1.1.1.0" *.snmp

Özel Dizeyi Tanımlama

Örgütler tarafından özellikle Cisco IOS yönlendiricilerinde kullanılan özel topluluk dizesini tanımlamak önemli bir adımdır. Bu dize, yönlendiricilerden çalışan yapılandırmaların çıkarılmasını sağlar. Tanımlama genellikle "trap" kelimesini içeren SNMP Trap verilerini analiz etmeye dayanır ve bir grep komutu kullanılır:

grep -i "trap" *.snmp

Kullanıcı Adları/Şifreler

MIB tablolarında saklanan günlükler, yanlış giriş denemeleri için incelenir, bu yanlışlıkla kullanıcı adı olarak girilen şifreleri içerebilir. Değerli verileri bulmak için fail, failed veya login gibi anahtar kelimeler aranır:

grep -i "login\|fail" *.snmp

E-postalar

Son olarak, verilerden e-posta adreslerini çıkarmak için, e-posta formatlarına uyan desenlere odaklanan bir grep komutu ile bir düzenli ifade kullanılır:

grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp

SNMP Değerlerini Değiştirme

Değerleri değiştirmek için NetScanTools kullanabilirsiniz. Bunu yapabilmek için özel dizeyi bilmelisiniz.

Spoofing

Eğer yalnızca belirli IP'lerin SMNP servisine sorgu yapmasına izin veren bir ACL varsa, bu adreslerden birini UDP paketi içinde sahteleştirebilir ve trafiği dinleyebilirsiniz.

SNMP Yapılandırma Dosyalarını İnceleme

  • snmp.conf
  • snmpd.conf
  • snmp-config.xml

Eğer hacking kariyeri sizi ilgilendiriyorsa ve hacklenemez olanı hacklemek istiyorsanız - işe alıyoruz! (akıcı şekilde Lehçe yazılı ve konuşulması gerekmektedir).

{% embed url="https://www.stmcyber.com/careers" %}

HackTricks Otomatik Komutları

Protocol_Name: SNMP    #Protocol Abbreviation if there is one.
Port_Number:  161     #Comma separated if there is more than one.
Protocol_Description: Simple Network Managment Protocol         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for SNMP
Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).

https://book.hacktricks.xyz/pentesting/pentesting-snmp

Entry_2:
Name: SNMP Check
Description: Enumerate SNMP
Command: snmp-check {IP}

Entry_3:
Name: OneSixtyOne
Description: Crack SNMP passwords
Command: onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt {IP} -w 100

Entry_4:
Name: Nmap
Description: Nmap snmp (no brute)
Command: nmap --script "snmp* and not snmp-brute" {IP}

Entry_5:
Name: Hydra Brute Force
Description: Need Nothing
Command: hydra -P {Big_Passwordlist} -v {IP} snmp


Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları: