hacktricks/network-services-pentesting/pentesting-snmp
2024-02-23 16:45:30 +00:00
..
cisco-snmp.md Translated ['generic-methodologies-and-resources/external-recon-methodol 2024-02-23 16:45:30 +00:00
README.md Translated ['generic-methodologies-and-resources/external-recon-methodol 2024-02-23 16:45:30 +00:00
snmp-rce.md Translated to Serbian 2024-02-10 13:11:20 +00:00

161,162,10161,10162/udp - Testiranje sigurnosti SNMP-a

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Ako ste zainteresovani za hakersku karijeru i hakovanje neuhvatljivog - zapošljavamo! (potrebno je tečno poznavanje pisanog i govornog poljskog jezika).

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

Osnovne informacije

SNMP - Jednostavan Protokol za Upravljanje Mrežom je protokol koji se koristi za praćenje različitih uređaja u mreži (poput rutera, prekidača, štampača, IoT uređaja...).

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

{% hint style="info" %} SNMP takođe koristi port 162/UDP za traps. Ovo su podaci paketi poslati sa SNMP servera ka klijentu bez eksplicitnog zahteva. {% endhint %}

MIB

Da bi se osiguralo da SNMP pristup funkcioniše preko različitih proizvođača i sa različitim kombinacijama klijenata i servera, kreiran je Management Information Base (MIB). MIB je nezavisan format za čuvanje informacija o uređaju. MIB je tekstualni fajl u kojem su navedeni svi upitni SNMP objekti uređaja u standardizovanoj hijerarhiji stabla. Sadrži barem jedan Object Identifier (OID), koji, pored neophodne jedinstvene adrese i imenovanja, pruža informacije o tipu, pravima pristupa i opisu odgovarajućeg objekta.
MIB fajlovi su napisani u ASCII tekstualnom formatu zasnovanom na Abstract Syntax Notation One (ASN.1). MIB-ovi ne sadrže podatke, već objašnjavaju gde pronaći koje informacije i kako izgledaju, koji vraćaju vrednosti za određeni OID, ili koji se tip podataka koristi.

OIDs

Object Identifiers (OIDs) igraju ključnu ulogu. Ovi jedinstveni identifikatori su dizajnirani za upravljanje objektima unutar Management Information Base (MIB).

Najviši nivoi MIB objektnih ID-ova, ili OIDs, dodeljeni su različitim organizacijama za postavljanje standarda. U okviru ovih najviših nivoa uspostavljen je okvir za globalne prakse upravljanja i standarde.

Pored toga, proizvođačima je data sloboda da uspostave privatne grane. Unutar ovih grana, oni imaju autonomiju da uključe upravljane objekte relevantne za svoje proizvodne linije. Ovaj sistem osigurava struktuiran i organizovan metod za identifikaciju i upravljanje različitim objektima kod različitih proizvođača i standarda.

Možete navigirati kroz OID stablo sa web strane ovde: http://www.oid-info.com/cgi-bin/display?tree=#focus ili videti šta znači OID (kao što je 1.3.6.1.2.1.1) pristupajući http://oid-info.com/get/1.3.6.1.2.1.1.
Postoje neki dobro poznati OIDs poput onih unutar 1.3.6.1.2.1 koji se odnose na MIB-2 definisane Simple Network Management Protocol (SNMP) varijable. I iz OID-ova koji slede nakon ovog možete dobiti neke zanimljive podatke o hostu (sistemski podaci, mrežni podaci, podaci o procesima...)

Primer OID-a

Primer odavde:

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

Evo razlaganja ove adrese.

  • 1 ovo se naziva ISO i označava da je ovo OID. Zato svi OID-ovi počinju sa "1"
  • 3 ovo se naziva ORG i koristi se za specificiranje organizacije koja je izgradila uređaj.
  • 6 ovo je dod ili Ministarstvo odbrane koje je prva uspostavila Internet.
  • 1 ovo je vrednost interneta koja označava da će se sva komunikacija odvijati preko Interneta.
  • 4 ova vrednost određuje da je ovaj uređaj napravljen od strane privatne organizacije, a ne vlade.
  • 1 ova vrednost označava da je uređaj napravljen od strane preduzeća ili poslovnog subjekta.

Prvih šest vrednosti obično su iste za sve uređaje i daju osnovne informacije o njima. Ovaj niz brojeva će biti isti za sve OID-ove, osim kada je uređaj napravljen od strane vlade.

Prelazimo na sledeći set brojeva.

  • 1452 daje ime organizacije koja je proizvela ovaj uređaj.
  • 1 objašnjava tip uređaja. U ovom slučaju, to je alarmni sat.
  • 2 određuje da je ovaj uređaj daljinska terminalna jedinica.

Preostale vrednosti daju specifične informacije o uređaju.

  • 5 označava diskretnu tačku alarma.
  • 1 specifična tačka na uređaju
  • 3 port
  • 21 adresa porta
  • 1 prikaz za port
  • 4 broj tačke
  • 7 stanje tačke

Verzije SNMP-a

Postoje 2 važne verzije SNMP-a:

  • SNMPv1: Glavna verzija, i dalje je najčešća, autentikacija se zasniva na stringu (community string) koji putuje u čistom tekstu (sve informacije putuju u čistom tekstu). Verzija 2 i 2c takođe šalju saobraćaj u čistom tekstu i koriste community string za autentikaciju.
  • SNMPv3: Koristi bolji oblik autentikacije i informacije putuju šifrovano (moguće je izvesti rečnik napad ali bi bilo mnogo teže pronaći tačne akreditive nego u SNMPv1 i v2).

Community Stringovi

Kao što je pomenuto ranije, da biste pristupili informacijama sačuvanim na MIB-u, morate znati community string na verzijama 1 i 2/2c i akreditive na verziji 3.
Postoje 2 tipa community stringova:

  • public uglavnom samo za čitanje funkcije
  • private Čitanje/Pisanje uopšteno

Imajte na umu da mogućnost pisanja OID-a zavisi od korišćenog community stringa, tako da čak i ako otkrijete da se koristi "public", možda ćete moći da pišete neke vrednosti. Takođe, možda postoje objekti koji su uvek "Samo za čitanje".
Ako pokušate da pišete objekat, dobićete grešku noSuchName ili readOnly.

U verzijama 1 i 2/2c, ako koristite pogrešan community string, server neće odgovoriti. Dakle, ako odgovori, korišćen je validan community string.

Portovi

Od Vikipedije:

Brute-Force Community String (v1 i v2c)

Da biste pogodili community string, možete izvesti rečnik napad. Proverite ovde različite načine za izvođenje brute-force napada protiv SNMP-a. Često korišćeni community string je public.

Enumeracija SNMP-a

Preporučuje se instaliranje sledećeg kako biste videli šta znači svaki prikupljeni OID sa uređaja:

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

Ako znate validan zajednički string, možete pristupiti podacima koristeći SNMPWalk ili SNMP-Check:

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

Zahvaljujući proširenim upitima (download-mibs), moguće je još više nabrojati informacija o sistemu pomoću sledeće komande:

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

SNMP ima puno informacija o hostu, a stvari koje biste mogli smatrati zanimljivim su: Mrežni interfejsi (IPv4 i IPv6 adresa), Korisnička imena, Vreme rada, Verzija servera/OS-a, i procesi

koji se izvršavaju (mogu sadržati lozinke)....

Opasne postavke

U oblasti upravljanja mrežom, određene konfiguracije i parametri su ključni za obezbeđivanje sveobuhvatnog nadgledanja i kontrole.

Postavke pristupa

Dve glavne postavke omogućavaju pristup celom OID stablu, što je ključna komponenta u upravljanju mrežom:

  1. rwuser noauth je podešen da dozvoli pun pristup OID stablu bez potrebe za autentifikacijom. Ovo podešavanje je jednostavno i omogućava neograničen pristup.
  2. Za precizniju kontrolu, pristup se može dozvoliti korišćenjem:
  • rwcommunity za IPv4 adrese, i
  • rwcommunity6 za IPv6 adrese.

Oba komanda zahtevaju string zajednice i odgovarajuću IP adresu, pružajući pun pristup bez obzira na poreklo zahteva.

SNMP Parametri za Microsoft Windows

Niz vrednosti Management Information Base (MIB) se koristi za praćenje različitih aspekata Windows sistema putem SNMP-a:

  • Sistemske procese: Pristupljeno putem 1.3.6.1.2.1.25.1.6.0, ovaj parametar omogućava praćenje aktivnih procesa u sistemu.
  • Pokrenuti programi: Vrednost 1.3.6.1.2.1.25.4.2.1.2 je namenjena praćenju trenutno pokrenutih programa.
  • Putanje procesa: Za određivanje gde se proces izvršava, koristi se MIB vrednost 1.3.6.1.2.1.25.4.2.1.4.
  • Jedinice skladištenja: Praćenje jedinica skladištenja omogućeno je putem 1.3.6.1.2.1.25.2.3.1.4.
  • Naziv softvera: Za identifikaciju instaliranog softvera na sistemu, koristi se 1.3.6.1.2.1.25.6.3.1.2.
  • Korisnički nalozi: Vrednost 1.3.6.1.4.1.77.1.2.25 omogućava praćenje korisničkih naloga.
  • TCP lokalni portovi: Na kraju, 1.3.6.1.2.1.6.13.1.3 je namenjen praćenju TCP lokalnih portova, pružajući uvid u aktivne mrežne veze.

Cisco

Pogledajte ovu stranicu ako koristite Cisco opremu:

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

Od SNMP-a do RCE

Ako imate string koji vam omogućava da pišete vrednosti unutar SNMP servisa, možda ćete moći da ga zloupotrebite za izvršavanje komandi:

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

Masovni SNMP

Braa je masovni SNMP skener. Predviđena upotreba ovakvog alata je, naravno, postavljanje SNMP upita - ali za razliku od snmpwalk iz net-snmp, sposoban je da istovremeno postavi upite na desetine ili stotine hostova, i to u jednom procesu. Stoga troši vrlo malo sistemskih resursa i vrši skeniranje VEOMA brzo.

Braa implementira sopstveni SNMP stek, tako da ne zahteva nikakve SNMP biblioteke poput net-snmp.

Sintaksa: braa [String zajednice]@[IP SNMP servera]:[iso id]

braa ignite123@192.168.1.125:.1.3.6.*

Ovo može izvući mnogo MB informacija koje ne možete obraditi ručno.

Dakle, potražimo najinteresantnije informacije (sa https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):

Uređaji

Proces počinje ekstrakcijom sysDesc MIB podataka (1.3.6.1.2.1.1.1.0) iz svake datoteke kako bi se identifikovali uređaji. To se postiže korišćenjem grep komande:

grep ".1.3.6.1.2.1.1.1.0" *.snmp

Identifikacija privatnog stringa

Ključni korak uključuje identifikaciju privatnog zajedničkog stringa koji koriste organizacije, posebno na Cisco IOS ruterima. Ovaj string omogućava izvlačenje konfiguracija u pokretu sa rutera. Identifikacija se često oslanja na analizu SNMP Trap podataka za reč "trap" pomoću grep komande:

grep -i "trap" *.snmp

Korisnička imena/Lozinke

Zapisi smešteni unutar MIB tabela se pregledaju radi neuspelih pokušaja prijavljivanja, koji mogu slučajno uključivati lozinke unete kao korisnička imena. Ključne reči poput fail, failed, ili login se traže kako bi se pronašli vredni podaci:

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

Emailovi

Konačno, da biste izdvojili adrese e-pošte iz podataka, koristi se grep komanda sa regularnim izrazom koji se fokusira na obrasce koji odgovaraju formatima e-pošte:

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

Modifikovanje vrednosti SNMP

Možete koristiti NetScanTools da modifikujete vrednosti. Morate znati privatni string da biste to uradili.

Spoofing

Ako postoji ACL koji dozvoljava samo određenim IP adresama da upituju SNMP servis, možete falsifikovati jednu od ovih adresa unutar UDP paketa i prisluškivati saobraćaj.

Pregled konfiguracionih fajlova SNMP

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

Ako vas zanima hakerska karijera i hakovanje onoga što se ne može hakovati - zapošljavamo! (potrebno je tečno poznavanje poljskog jezika u pismu i govoru).

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

HackTricks Automatske Komande

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


Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: