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

Support HackTricks

As jy belangstel in 'n hacking loopbaan en die onhackbare hack - ons is op soek na mense! (vloeiende Pools geskryf en gesproke vereis).

Basiese Inligting

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

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

SNMP gebruik ook die poort 162/UDP vir traps. Dit is data pakkette wat van die SNMP-bediener na die kliënt gestuur word sonder om eksplisiet versoek te word.

MIB

Om te verseker dat SNMP-toegang oor vervaardigers en met verskillende kliënt-bediener kombinasies werk, is die Management Information Base (MIB) geskep. MIB is 'n onafhanklike formaat vir die stoor van toestel-inligting. 'n MIB is 'n tekst-lêer waarin al die navraagbare SNMP-objekte van 'n toestel in 'n gestandaardiseerde boomhiërargie gelys word. Dit bevat ten minste een Object Identifier (OID), wat, benewens die nodige unieke adres en 'n naam, ook inligting oor die tipe, toegangregte, en 'n beskrywing van die onderskeie objek verskaf. MIB-lêers is geskryf in die Abstract Syntax Notation One (ASN.1) gebaseerde ASCII teksformaat. Die MIBs bevat nie data nie, maar hulle verduidelik waar om watter inligting te vind en hoe dit lyk, wat waardes vir die spesifieke OID teruggee, of watter datatipe gebruik word.

OIDs

Object Identifiers (OIDs) speel 'n belangrike rol. Hierdie unieke identifiseerders is ontwerp om objekte binne 'n Management Information Base (MIB) te bestuur.

Die hoogste vlakke van MIB objek-ID's, of OIDs, word toegeken aan verskillende standaardstellende organisasies. Dit is binne hierdie top vlakke dat die raamwerk vir globale bestuurspraktyke en standaarde gevestig word.

Verder word verskaffers die vryheid gegee om private takke te vestig. Binne hierdie takke het hulle die outonomie om bestuurde objekte wat relevant is vir hul eie produklyne in te sluit. Hierdie stelsel verseker dat daar 'n gestruktureerde en georganiseerde metode is om 'n wye verskeidenheid objekte oor verskillende verskaffers en standaarde te identifiseer en te bestuur.

Jy kan navigeer deur 'n OID-boom vanaf 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 die wat binne 1.3.6.1.2.1 verwys na MIB-2 gedefinieerde Simple Network Management Protocol (SNMP) veranderlikes. En van die OIDs wat van hierdie een hang kan jy 'n paar interessante gasheerdata verkry (stelseldatas, 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 ontleding van hierdie adres.

  • 1 – dit word die ISO genoem en dit vestig dat dit 'n OID is. Dit is waarom alle OIDs met "1" begin.

  • 3 – dit word ORG genoem en dit word gebruik om die organisasie wat die toestel gebou het, aan te dui.

  • 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 'n regeringsorganisasie nie.

  • 1 – hierdie waarde dui aan dat die toestel deur 'n onderneming of 'n besigheid entiteit 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 volgorde van nommers sal dieselfde wees vir alle OIDs, behalwe wanneer die toestel deur die regering gemaak is.

Gaan voort na die volgende stel nommers.

  • 1452 – gee die naam van die organisasie wat hierdie toestel vervaardig het.

  • 1 – verduidelik die tipe toestel. In hierdie geval is dit 'n alarmklok.

  • 2 – bepaal dat hierdie toestel 'n afstandsterminaal eenheid is.

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

  • 5 – dui 'n diskrete alarmpunt 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: Hoof een, dit is steeds die mees algemene, die authentisering is gebaseer op 'n string (gemeenskapsstring) wat in duidelike teks reis (alle inligting reis in duidelike teks). Weergawes 2 en 2c stuur die verkeer in duidelike teks ook en gebruik 'n gemeenskapsstring as authentisering.

  • SNMPv3: Gebruik 'n beter authentisering vorm en die inligting reis versleuteld (dikwels kan 'n woordeboekaanval uitgevoer word, maar dit sal baie moeiliker wees om die korrekte kredensiale te vind as in SNMPv1 en v2).

Gemeenskapsstrings

Soos voorheen genoem, om toegang te verkry tot die inligting wat op die MIB gestoor is, moet jy die gemeenskapsstring weet op weergawes 1 en 2/2c en die kredensiale op weergawes 3. Daar is 2 tipes gemeenskapsstrings:

  • public hoofsaaklik lees net funksies

  • private Lees/Skryf in die algemeen

Let daarop dat die skryfbaarheid van 'n OID afhang van die gemeenskapsstring wat gebruik word, so selfs as jy vind dat "public" gebruik word, kan jy dalk sekere waardes skryf. Daar kan ook voorwerpe wees wat altyd "Lees Net" is. As jy probeer om 'n objek te skryf, sal 'n noSuchName of readOnly fout ontvang word**.**

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

Poorte

Van Wikipedia:

Brute-Force Gemeenskapsstring (v1 en v2c)

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

Enumerating SNMP

Dit word aanbeveel om die volgende te installeer om te sien wat elke OID wat van die toestel versamel 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

As jy 'n geldige gemeenskapsstring ken, kan jy die data toegang met 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 (download-mibs), is dit moontlik om selfs meer oor die stelsel te tel met die volgende opdrag :

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, uptime, bediener/OS weergawe, en prosesse

wat (kan wagwoorde bevat)....

Gevaarlike Instellings

In die wêreld van netwerkbestuur is sekere konfigurasies en parameters sleutel tot die verseker van omvattende monitering en beheer.

Toegang Instellings

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

  1. rwuser noauth is ingestel om volle toegang tot die OID-boom toe te laat sonder die behoefte aan verifikasie. Hierdie instelling is eenvoudig en laat onbeperkte toegang toe.

  2. Vir meer spesifieke beheer kan toegang verleen word met:

  • rwcommunity vir IPv4 adresse, en

  • rwcommunity6 vir IPv6 adresse.

Albei opdragte vereis 'n gemeenskapsstring en die relevante IP-adres, wat volle toegang bied ongeag die oorsprong van die versoek.

SNMP Parameters vir Microsoft Windows

'n Reeks Bestuur Inligting Basis (MIB) waardes word gebruik om verskeie aspekte van 'n Windows-stelsel deur SNMP te monitor:

  • Stelselsprosesse: Toegang via 1.3.6.1.2.1.25.1.6.0, hierdie parameter stel die monitering van aktiewe prosesse binne die stelsel moontlik.

  • Lopende Programme: Die 1.3.6.1.2.1.25.4.2.1.2 waarde is aangewys vir die opsporing van tans lopende programme.

  • Prosesse Pad: Om te bepaal waar 'n proses van loop, word die 1.3.6.1.2.1.25.4.2.1.4 MIB waarde gebruik.

  • Bergingseenhede: Die monitering van bergingseenhede word gefasiliteer deur 1.3.6.1.2.1.25.2.3.1.4.

  • Sagteware Naam: Om die sagteware wat op 'n stelsel geïnstalleer is te identifiseer, word 1.3.6.1.2.1.25.6.3.1.2 gebruik.

  • Gebruikersrekeninge: Die 1.3.6.1.4.1.77.1.2.25 waarde stel die opsporing van gebruikersrekeninge moontlik.

  • 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 netwerkverbindinge.

Cisco

Kyk na hierdie bladsy as jy Cisco-toerusting het:

Cisco SNMP

Van SNMP na RCE

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

SNMP RCE

Massiewe SNMP

Braa is 'n massiewe SNMP skandeerder. Die beoogde gebruik van so 'n hulpmiddel is, natuurlik, om SNMP versoeke te maak – maar anders as snmpwalk van net-snmp, is dit in staat om dosyne of honderde gashere gelyktydig te ondervra, en in 'n enkele proses. Dus, dit verbruik baie min stelselhulpbronne en doen die skandering BAIE vinnig.

Braa implementeer sy EIE snmp-stapel, so dit het GEEN SNMP biblioteke soos net-snmp nodig nie.

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

braa ignite123@192.168.1.125:.1.3.6.*

Dit kan 'n groot hoeveelheid MB inligting onttrek wat jy nie handmatig kan verwerk nie.

So, kom ons soek na die mees interessante inligting (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) uit elke lêer om die toestelle te identifiseer. Dit word bereik deur die gebruik van 'n grep command:

grep ".1.3.6.1.2.1.1.1.0" *.snmp

Identifiseer Privaat String

'n Belangrike stap behels die identifisering van die privaat gemeenskap string wat deur organisasies gebruik word, veral op Cisco IOS-ruters. Hierdie string stel die onttrekking van lopende konfigurasies van ruters in staat. Die identifisering staat dikwels op die analise van SNMP Trap-data vir die woord "trap" met 'n grep-opdrag:

grep -i "trap" *.snmp

Gebruikersname/Wagwoorde

Logs wat in MIB-tabelle gestoor is, word ondersoek vir mislukte aanmeldpogings, wat per ongeluk wagwoorde wat as gebruikersname ingevoer is, kan insluit. Sleutelwoorde soos fail, failed, of login word gesoek om waardevolle data te vind:

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

E-pos

Laastens, om e-pos adresse uit die data te onttrek, word 'n grep-opdrag met 'n gereelde uitdrukking gebruik, wat fokus op patrone wat e-pos formate pas:

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

Modifying SNMP values

Jy kan NetScanTools gebruik om waardes te wysig. Jy sal die private string moet ken om dit te doen.

Spoofing

As daar 'n ACL is wat slegs sekere IP's toelaat om die SNMP-diens te vra, kan jy een van hierdie adresse in die UDP-pakket spoof en die verkeer snuffel.

Examine SNMP Configuration files

  • snmp.conf

  • snmpd.conf

  • snmp-config.xml

As jy belangstel in 'n hacking career en die onhackable te hack - ons huur aan! (vloeiende Pools skriftelik en geselskaplik vereis).

HackTricks Automatic Commands

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

Ondersteun HackTricks

Last updated