hacktricks/network-services-pentesting/pentesting-snmp
2024-05-08 16:32:40 +00:00
..
cisco-snmp.md Translated ['README.md', 'binary-exploitation/rop-return-oriented-progra 2024-05-08 16:32:40 +00:00
README.md Translated ['README.md', 'binary-exploitation/rop-return-oriented-progra 2024-05-08 16:32:40 +00:00
snmp-rce.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00

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

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

As jy belangstel in 'n hakloopbaan en die onhackbare wil hack - ons is aan die werf! (vloeiende Pools geskrewe en gesproke vereis).

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

Basiese Inligting

SNMP - Simple Network Management Protocol is 'n protokol wat gebruik word om verskillende toestelle in die netwerk te monitor (soos routers, skakelaars, drukkers, IoTs...).

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

{% hint style="info" %} SNMP gebruik ook die poort 162/UDP vir traps. Hierdie is data pakette wat vanaf die SNMP-bediener na die klient gestuur word sonder om eksplisiet aangevra te word. {% endhint %}

MIB

Om te verseker dat SNMP-toegang oor verskillende vervaardigers en met verskillende klient-bediener kombinasies werk, is die Management Information Base (MIB) geskep. MIB is 'n onafhanklike formaat vir die stoor van toestelinligting. 'n MIB is 'n teks lêer waarin alle navraagbare SNMP-voorwerpe van 'n toestel in 'n gestandaardiseerde boomhiërargie gelys word. Dit bevat ten minste een Object Identifier (OID), wat, bo en behalwe die nodige unieke adres en 'n naam, ook inligting oor die tipe, toegangsregte, en 'n beskrywing van die betrokke voorwerp verskaf. MIB-lêers is in die Abstract Syntax Notation One (ASN.1) gebaseerde ASCII-teksformaat geskryf. Die MIBs bevat nie data nie, maar verduidelik waar om watter inligting te vind en hoe dit lyk, wat terugvoerwaardes vir die spesifieke OID lewer, of watter datatipe gebruik word.

OIDs

Object Identifiers (OIDs) speel 'n kritieke rol. Hierdie unieke identifiseerders is ontwerp om voorwerpe binne 'n Management Information Base (MIB) te bestuur. Die hoogste vlakke van MIB-voorwerp-ID's, of OIDs, word toegewys aan diverse standaardstellende organisasies. Dit is binne hierdie boonste vlakke dat die raamwerk vir globale bestuurspraktyke en standaarde vasgestel word. Verder word vervaardigers die vryheid gegee om private takke te vestig. Binne hierdie takke het hulle die selfstandigheid om bestuurde voorwerpe wat relevant is vir hul eie produklyne in te sluit. Hierdie stelsel verseker dat daar 'n gestruktureerde en georganiseerde metode is vir die identifisering en bestuur van 'n wye verskeidenheid voorwerpe oor verskillende vervaardigers en standaarde.

Jy kan deur 'n OID-boom navigeer van die web hier: http://www.oid-info.com/cgi-bin/display?tree=#focus of sien wat 'n OID beteken (soos 1.3.6.1.2.1.1) deur toegang te verkry tot http://oid-info.com/get/1.3.6.1.2.1.1. Daar is 'n paar bekende OIDs soos diegene binne 1.3.6.1.2.1 wat na MIB-2 gedefinieerde Eenvoudige Netwerkbestuursprotokol (SNMP) veranderlikes verwys. En van die OIDs wat uit hierdie een pendel, kan jy interessante gasheerdata verkry (sisteedata, netwerkdata, prosesdata...)

OID Voorbeeld

Voorbeeld van hier:

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

Hier is 'n uiteensetting van hierdie adres.

  • 1 - dit word die ISO genoem en dit stel vas dat dit 'n OID is. Dit is hoekom alle OIDs met "1" begin
  • 3 - dit word ORG genoem en dit word gebruik om die organisasie wat die toestel gebou het, te spesifiseer.
  • 6 - dit is die dod of die Departement van Verdediging wat die organisasie is wat die Internet eerste gevestig het.
  • 1 - dit is die waarde van die internet om aan te dui dat alle kommunikasie deur die Internet sal plaasvind.
  • 4 - hierdie waarde bepaal dat hierdie toestel deur 'n private organisasie gemaak is en nie deur 'n regeringsinstansie nie.
  • 1 - hierdie waarde dui aan dat die toestel deur 'n onderneming of 'n besigheidsentiteit gemaak is.

Hierdie eerste ses waardes is geneig om dieselfde te wees vir alle toestelle en hulle gee jou die basiese inligting oor hulle. Hierdie reeks getalle sal dieselfde wees vir alle OIDs, behalwe wanneer die toestel deur die regering gemaak is.

Bewegend na die volgende stel getalle.

  • 1452 - gee die naam van die organisasie wat hierdie toestel vervaardig het.
  • 1 - verduidelik die tipe toestel. In hierdie geval is dit 'n wekker.
  • 2 - bepaal dat hierdie toestel 'n afgeleë terminale eenheid is.

Die res van die waardes gee spesifieke inligting oor die toestel.

  • 5 - dui 'n diskrete alarm punt aan.
  • 1 - spesifieke punt in die toestel
  • 3 - poort
  • 21 - adres van die poort
  • 1 - vertoon vir die poort
  • 4 - puntnommer
  • 7 - toestand van die punt

SNMP Weergawes

Daar is 2 belangrike weergawes van SNMP:

  • SNMPv1: Hoofeen, dit is steeds die mees algemene, die verifikasie is gebaseer op 'n string (gemeenskapsnaam) wat in platte teks reis (alle inligting reis in platte teks). Weergawe 2 en 2c stuur die verkeer in platte teks ook en gebruik 'n gemeenskapsnaam as verifikasie.
  • SNMPv3: Gebruik 'n beter verifikasie vorm en die inligting reis geënkripteer met (woordeboekaanval kan uitgevoer word, maar dit sal baie moeiliker wees om die korrekte geloofsbriewe as in SNMPv1 en v2 te vind).

Gemeenskapsname

Soos voorheen genoem, om toegang te verkry tot die inligting wat in die MIB gestoor is, moet jy die gemeenskapsnaam op weergawes 1 en 2/2c ken en die geloofsbriewe op weergawe 3. Daar is 2 tipes gemeenskapsname:

  • public hoofsaaklik alleen leesfunksies
  • private Lees/Skryf in die algemeen

Let daarop dat die skryfbaarheid van 'n OID afhang van die gemeenskapsnaam wat gebruik word, so selfs as jy vind dat "public" gebruik word, kan jy dalk in staat wees om waardes te skryf. Daar mag ook voorwerpe wees wat altyd "Net Leesbaar" is. As jy probeer om 'n voorwerp te skryf, word 'n noSuchName of readOnly fout ontvang**.**

In weergawes 1 en 2/2c as jy 'n slegte gemeenskapsnaam gebruik, sal die bediener nie reageer nie. Dus, as dit reageer, is 'n geldige gemeenskapsnaam gebruik.

Poorte

Vanaf Wikipedia:

Brute-Force Gemeenskapsnaam (v1 en v2c)

Om die gemeenskapsnaam te raai, kan jy 'n woordeboekaanval uitvoer. Kyk hier na verskillende maniere om 'n brute-force aanval teen SNMP uit te voer. 'n Gereeld gebruikte gemeenskapsnaam is public.

Enumerating SNMP

Dit word aanbeveel om die volgende te installeer om te sien wat elke OID wat van die toestel ingesamel is, beteken:

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

Indien jy 'n geldige gemeenskapsnaam weet, kan jy die data toegang kry deur SNMPWalk of 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

Dankie aan uitgebreide navrae (laai-mibs af), is dit moontlik om selfs meer oor die stelsel op te som met die volgende bevel:

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

SNMP het baie inligting oor die gasheer en dinge wat jy dalk interessant vind is: Netwerkinterfaces (IPv4 en IPv6-adres), Gebruikersname, Bedryfstyd, Bediener/OS-weergawe, en prosesse

wat loop (kan wagwoorde bevat)....

Gevaarlike Instellings

In die domein van netwerkbestuur is sekere konfigurasies en parameters sleutel tot die versekering van omvattende monitering en beheer.

Toegangsinstellings

Twee hoofinstellings maak toegang tot die volledige OID-boom moontlik, wat 'n kritieke komponent in netwerkbestuur is:

  1. rwuser noauth is ingestel om volle toegang tot die OID-boom sonder die nodigheid van outentifikasie toe te laat. Hierdie instelling is maklik en maak vir onbeperkte toegang moontlik.
  2. Vir meer spesifieke beheer kan toegang verleen word deur:
  • rwcommunity vir IPv4-adresse, en
  • rwcommunity6 vir IPv6-adresse.

Beide bevele vereis 'n gemeenskapsnaam en die betrokke IP-adres, wat volle toegang bied ongeag die oorsprong van die versoek.

SNMP-parameters vir Microsoft Windows

'n Reeks van Bestuursinligtingsbasis (MIB) waardes word gebruik om verskeie aspekte van 'n Windows-sisteem deur SNMP te monitor:

  • Sisteemprosesse: Toeganklik via 1.3.6.1.2.1.25.1.6.0, hierdie parameter maak dit moontlik om aktiewe prosesse binne die sisteem te monitor.
  • Lopende Programme: Die waarde 1.3.6.1.2.1.25.4.2.1.2 is aangewys vir die opsporing van tans lopende programme.
  • Prosessepad: Om te bepaal waar 'n proses van hardloop, word die MIB-waarde 1.3.6.1.2.1.25.4.2.1.4 gebruik.
  • Stoor-eenhede: Die monitering van stoor-eenhede word gefasiliteer deur 1.3.6.1.2.1.25.2.3.1.4.
  • Sagteware Naam: Om die sagteware wat op 'n sisteem geïnstalleer is te identifiseer, word 1.3.6.1.2.1.25.6.3.1.2 gebruik.
  • Gebruikersrekeninge: Die waarde 1.3.6.1.4.1.77.1.2.25 maak dit moontlik om gebruikersrekeninge te monitor.
  • TCP Plaaslike Poorte: Laastens, 1.3.6.1.2.1.6.13.1.3 is aangewys vir die monitering van TCP plaaslike poorte, wat insig bied in aktiewe netwerkverbindings.

Cisco

Neem 'n kyk na hierdie bladsy as jy Cisco-toerusting het:

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

Van SNMP tot RCE

As jy die string het wat jou toelaat om waardes binne die SNMP-diens te skryf, kan jy dit moontlik misbruik om opdragte uit te voer:

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

Massiewe SNMP

Braa is 'n massiewe SNMP-skandeerder. Die bedoelde gebruik van so 'n instrument is natuurlik om SNMP-navrae te maak - maar anders as snmpwalk van net-snmp, is dit in staat om terselfdertyd tientalle of honderde gasheer te ondervra, en in 'n enkele proses. Dit verbruik dus baie min stelselbronne en doen die skandering BAIE vinnig.

Braa implementeer sy EIE snmp-stapel, sodat dit GEEN SNMP-biblioteke soos net-snmp benodig nie.

Sintaksis: braa [Gemeenskapsnaam]@[IP van SNMP-bediener]:[iso id]

braa ignite123@192.168.1.125:.1.3.6.*

Dit kan baie MB aan inligting onttrek wat jy nie handmatig kan verwerk nie.

Dus, laat ons vir die mees interessante inligting soek (van https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):

Toestelle

Die proses begin met die onttrekking van sysDesc MIB data (1.3.6.1.2.1.1.1.0) van elke lêer om die toestelle te identifiseer. Dit word bereik deur die gebruik van 'n grep-opdrag:

grep ".1.3.6.1.2.1.1.1.0" *.snmp

Identifiseer Privaat String

'n Kritieke stap behels die identifisering van die privaat gemeenskap string wat deur organisasies gebruik word, veral op Cisco IOS-roeteryers. Hierdie string maak die uittreksel van lopende konfigurasies van roeteryers moontlik. Die identifisering steun dikwels op die analise van SNMP Trap data vir die woord "trap" met 'n grep opdrag:

grep -i "trap" *.snmp

Gebruikersname/ Wagwoorde

Logboeke wat binne MIB-tabelle gestoor word, word ondersoek vir mislukte aanmeldingspogings, wat dalk per ongeluk wagwoorde wat as gebruikersname ingevoer is, kan insluit. Sleutelwoorde soos misluk, misluk, of aanmelding word gesoek om waardevolle data te vind:

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

E-posse

Laastens, om e-posadresse uit die data te onttrek, word 'n grep-opdrag met 'n regulêre uitdrukking gebruik, wat fokus op patrone wat ooreenstem met e-posformate:

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

Wysiging van SNMP-waardes

Jy kan NetScanTools gebruik om waardes te wysig. Jy sal die privaat string moet weet om dit te doen.

Spoofing

As daar 'n ACL is wat slegs sekere IP-adresse toelaat om die SMNP-diens te ondervra, kan jy een van hierdie adresse binne die UDP-pakket fop en die verkeer besnuffel.

Ondersoek SNMP-konfigurasie lêers

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

As jy belangstel in hackingsloopbaan en die onhackbare wil hack - ons is aan die aanstel! (vloeiende Pools geskrewe en gesproke vereis).

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

HackTricks Outomatiese Opdragte

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


Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: