161,162,10161,10162/udp - Pentesting SNMP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
If you are interested in hacking career and hack the unhackable - we are hiring! (fluent polish written and spoken required).
SNMP - Simple Network Management Protocol je protokol koji se koristi za praćenje različitih uređaja u mreži (kao što su ruteri, prekidači, štampači, IoT uređaji...).
SNMP takođe koristi port 162/UDP za trape. To su podaci paketi poslati sa SNMP servera klijentu bez eksplicitnog zahteva.
Da bi se osiguralo da SNMP pristup funkcioniše među proizvođačima i sa različitim kombinacijama klijent-server, Management Information Base (MIB) je stvoren. MIB je nezavistan format za čuvanje informacija o uređaju. MIB je tekstualna datoteka u kojoj su svi upitni SNMP objekti uređaja navedeni u standardizovanoj hijerarhiji stabla. Sadrži najmanje jedan Object Identifier
(OID
), koji, pored potrebne jedinstvene adrese i imena, takođe pruža informacije o tipu, pravima pristupa i opisu odgovarajućeg objekta.
MIB datoteke su napisane u Abstract Syntax Notation One
(ASN.1
) zasnovanom ASCII tekstualnom formatu. MIB-ovi ne sadrže podatke, ali objašnjavaju gde pronaći koje informacije i kako izgledaju, koje vraća vrednosti za specifični OID, ili koji tip podataka se koristi.
Object Identifiers (OIDs) igraju ključnu ulogu. Ovi jedinstveni identifikatori su dizajnirani za upravljanje objektima unutar Management Information Base (MIB).
Najviši nivoi MIB identifikatora objekata, ili OIDs, su dodeljeni raznim organizacijama koje postavljaju standarde. Unutar ovih najviših nivoa uspostavlja se okvir za globalne prakse i standarde upravljanja.
Pored toga, proizvođačima je data sloboda da uspostave privatne grane. Unutar ovih grana, imaju autonomiju da uključe upravljane objekte relevantne za svoje vlastite proizvodne linije. Ovaj sistem osigurava da postoji strukturiran i organizovan metod za identifikaciju i upravljanje širokim spektrom objekata među različitim proizvođačima i standardima.
Možete navigirati kroz OID stablo sa veba ovde: http://www.oid-info.com/cgi-bin/display?tree=#focus ili videti šta OID znači (kao 1.3.6.1.2.1.1
) pristupajući http://oid-info.com/get/1.3.6.1.2.1.1.
Postoje neki poznati OIDs kao što su oni unutar 1.3.6.1.2.1 koji se odnose na MIB-2 definisane Simple Network Management Protocol (SNMP) varijable. I iz OIDs koji zavise od ovog možete dobiti neke zanimljive podatke o hostu (sistemskim podacima, mrežnim podacima, podacima o procesima...)
1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7
Evo razlaganja ove adrese.
1 – ovo se zove ISO i uspostavlja da je ovo OID. Zato svi OIDs počinju sa “1”
3 – ovo se zove ORG i koristi se za specificiranje organizacije koja je izgradila uređaj.
6 – ovo je dod ili Ministarstvo odbrane koje je organizacija koja je prvi uspostavila Internet.
1 – ova vrednost interneta označava da će sve komunikacije biti obavljene putem Interneta.
4 – ova vrednost određuje da je ovaj uređaj napravljen od strane privatne organizacije, a ne vladine.
1 – ova vrednost označava da je uređaj napravljen od strane preduzeća ili poslovnog entiteta.
Ovih prvih šest vrednosti obično su iste za sve uređaje i daju vam osnovne informacije o njima. Ova sekvenca brojeva biće ista za sve OIDs, 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 budilnik.
2 – određuje da je ovaj uređaj daljinski terminal.
Ostatak vrednosti daje specifične informacije o uređaju.
5 – označava diskretnu tačku alarma.
1 – specifična tačka u uređaju
3 – port
21 – adresa porta
1 – prikaz za port
4 – broj tačke
7 – stanje tačke
Postoje 2 važne verzije SNMP:
SNMPv1: Glavna verzija, još uvek je najčešća, autentifikacija se zasniva na stringu (community string) koji putuje u plain-text (svi podaci putuju u običnom tekstu). Verzija 2 i 2c takođe šalju saobraćaj u plain text i koriste community string kao autentifikaciju.
SNMPv3: Koristi bolji oblik autentifikacije i informacije putuju kriptovano koristeći (dictionary attack može biti izveden, ali bi bilo mnogo teže pronaći ispravne kredencijale nego u SNMPv1 i v2).
Kao što je ranije pomenuto, da biste pristupili informacijama sačuvanim na MIB-u, morate znati community string za verzije 1 i 2/2c i kredencijale za verziju 3. Postoje 2 tipa community strings:
public
uglavnom samo za čitanje funkcije
private
Čitanje/Pisanje uopšteno
Napomena da pisivost OID-a zavisi od korišćenog community string-a, tako da čak i ako otkrijete da se koristi "public", mogli biste biti u mogućnosti da pišete neke vrednosti. Takođe, može postojati objekata koji su uvek "Samo za čitanje".
Ako pokušate da pišete objekat, dobićete noSuchName
ili readOnly
grešku.**.**
U verzijama 1 i 2/2c, ako koristite loš community string, server neće odgovoriti. Dakle, ako odgovara, korišćen je validan community string.
SNMP agent prima zahteve na UDP portu 161.
Menadžer prima obaveštenja (Trape i InformRequests) na portu 162.
Kada se koristi sa Transport Layer Security ili Datagram Transport Layer Security, zahtevi se primaju na portu 10161 i obaveštenja se šalju na port 10162.
Da biste pogodili community string, mogli biste izvesti napad rečnikom. Proverite ovde različite načine za izvođenje brute-force napada protiv SNMP. Često korišćen community string je public
.
Preporučuje se instalacija sledećeg da biste videli šta znači svaki OID prikupljen sa uređaja:
Ako znate validni community string, možete pristupiti podacima koristeći SNMPWalk ili SNMP-Check:
Hvala proširenim upitima (download-mibs), moguće je enumerisati još više o sistemu sa sledećom komandom:
SNMP ima mnogo informacija o hostu, a stvari koje bi mogle biti zanimljive su: Mrežni interfejsi (IPv4 i IPv6 adresa), Korisnička imena, Uptime, Verzija servera/OS-a, i procesi
koji se izvršavaju (mogu sadržati lozinke)....
U oblasti upravljanja mrežom, određene konfiguracije i parametri su ključni za osiguranje sveobuhvatnog nadzora i kontrole.
Dve glavne postavke omogućavaju pristup celom OID stablu, što je ključna komponenta u upravljanju mrežom:
rwuser noauth
je postavljen da omogući potpuni pristup OID stablu bez potrebe za autentifikacijom. Ova postavka je jednostavna i omogućava neograničen pristup.
Za specifičniju kontrolu, pristup se može odobriti korišćenjem:
rwcommunity
za IPv4 adrese, i
rwcommunity6
za IPv6 adrese.
Obe komande zahtevaju community string i relevantnu IP adresu, nudeći potpuni pristup bez obzira na poreklo zahteva.
Serija Management Information Base (MIB) vrednosti se koristi za praćenje različitih aspekata Windows sistema putem SNMP:
Sistemski procesi: Pristupa se putem 1.3.6.1.2.1.25.1.6.0
, ovaj parametar omogućava praćenje aktivnih procesa unutar sistema.
Pokrenuti programi: Vrednost 1.3.6.1.2.1.25.4.2.1.2
je namenjena praćenju trenutno pokrenutih programa.
Putanja procesa: Da bi se odredilo odakle se proces izvršava, koristi se MIB vrednost 1.3.6.1.2.1.25.4.2.1.4
.
Skladišne jedinice: Praćenje skladišnih jedinica olakšava 1.3.6.1.2.1.25.2.3.1.4
.
Ime softvera: Da bi se identifikovao softver instaliran 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 lokalne portove: Na kraju, 1.3.6.1.2.1.6.13.1.3
je namenjena za praćenje TCP lokalnih portova, pružajući uvid u aktivne mrežne veze.
Pogledajte ovu stranicu ako imate Cisco opremu:
Cisco SNMPAko imate string koji vam omogućava da pišete vrednosti unutar SNMP servisa, možda ćete moći da ga zloupotrebite da izvršite komande:
SNMP RCEBraa je masovni SNMP skener. Predviđena upotreba ovog alata je, naravno, pravljenje SNMP upita – ali za razliku od snmpwalk iz net-snmp, može da upita desetine ili stotine hostova istovremeno, i u jednom procesu. Tako, troši vrlo malo sistemskih resursa i skeniranje obavlja VEOMA brzo.
Braa implementira svoj VLASTITI snmp stek, tako da mu nisu potrebne nikakve SNMP biblioteke poput net-snmp.
Sintaksa: braa [Community-string]@[IP SNMP servera]:[iso id]
Ovo može da izvuče mnogo MB informacija koje ne možete obraditi ručno.
Dakle, hajde da potražimo najzanimljivije informacije (sa https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):
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:
Ključni korak uključuje identifikaciju privatnog community stringa koji koriste organizacije, posebno na Cisco IOS ruterima. Ovaj string omogućava ekstrakciju running configurations sa rutera. Identifikacija se često oslanja na analizu SNMP Trap podataka za reč "trap" uz pomoć grep command:
Zapisnici pohranjeni unutar MIB tabela se ispituju za neuspešne pokušaje prijavljivanja, koji mogu slučajno uključivati lozinke unesene kao korisnička imena. Ključne reči kao što su fail, failed, ili login se pretražuju kako bi se pronašli vredni podaci:
Na kraju, za ekstrakciju email adresa iz podataka, koristi se grep komanda sa regularnim izrazom, fokusirajući se na obrasce koji odgovaraju formatima emailova:
Možete koristiti NetScanTools da modifikujete vrednosti. Biće vam potrebna privatna string da biste to uradili.
Ako postoji ACL koji dozvoljava samo nekim IP adresama da upitaju SNMP servis, možete spoofovati jednu od ovih adresa unutar UDP paketa i prisluškivati saobraćaj.
snmp.conf
snmpd.conf
snmp-config.xml
Ako ste zainteresovani za hakersku karijeru i da hakujete nehakovano - zapošljavamo! (potrebno je tečno pisanje i govorenje poljskog).
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)