161,162,10161,10162/udp - Pentesting SNMP
Reading time: 11 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
SNMP - Simple Network Management Protocol ni protokali inayotumika kufuatilia vifaa tofauti katika mtandao (kama vile routers, switches, printers, IoTs...).
PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
note
SNMP pia inatumia bandari 162/UDP kwa traps. Hizi ni data pakiti zinazotumwa kutoka kwa seva ya SNMP kwenda kwa mteja bila kuombwa waziwazi.
MIB
Ili kuhakikisha kuwa ufikiaji wa SNMP unafanya kazi kati ya watengenezaji na kwa mchanganyiko tofauti wa mteja-seva, Management Information Base (MIB) iliundwa. MIB ni format huru ya kuhifadhi taarifa za kifaa. MIB ni faili ya maandiko ambayo vitu vyote vinavyoweza kuulizwa vya SNMP vya kifaa vimeorodheshwa katika hierarchi ya miti iliyoandikwa kwa kiwango. Inajumuisha angalau Object Identifier
(OID
), ambayo, pamoja na anwani ya kipekee na jina, pia inatoa taarifa kuhusu aina, haki za ufikiaji, na maelezo ya kitu husika.
Mifano ya MIB imeandikwa katika format ya maandiko ya ASCII ya Abstract Syntax Notation One
(ASN.1
). MIBs hazina data, lakini zinaelezea wapi kupatikana taarifa gani na inavyoonekana, ambayo inarudisha thamani kwa OID maalum, au ni aina gani ya data inayotumika.
OIDs
Object Identifiers (OIDs) zina jukumu muhimu. Vitambulisho hivi vya kipekee vimeundwa ili kudhibiti vitu ndani ya Management Information Base (MIB).
Viwango vya juu vya vitambulisho vya MIB, au OIDs, vimepewa mashirika mbalimbali yanayoweka viwango. Ni ndani ya viwango hivi vya juu ambapo mfumo wa mazoea na viwango vya usimamizi wa kimataifa umeanzishwa.
Zaidi ya hayo, wauzaji wanapewa uhuru wa kuanzisha matawi binafsi. Ndani ya matawi haya, wana uhuru wa kujumuisha vitu vilivyo na usimamizi vinavyohusiana na mistari yao ya bidhaa. Mfumo huu unahakikisha kuwa kuna njia iliyopangwa na iliyoandaliwa ya kutambua na kusimamia anuwai ya vitu kati ya wauzaji na viwango tofauti.
Unaweza kuvinjari kupitia OID tree kutoka kwenye wavuti hapa: http://www.oid-info.com/cgi-bin/display?tree=#focus au ona maana ya OID (kama 1.3.6.1.2.1.1
) kwa kufikia http://oid-info.com/get/1.3.6.1.2.1.1.
Kuna OIDs maarufu kama zile ndani ya 1.3.6.1.2.1 zinazorejelea MIB-2 iliyofafanuliwa Simple Network Management Protocol (SNMP) variables. Na kutoka kwa OIDs zinazotarajiwa kutoka hapa unaweza kupata data ya kuvutia ya mwenyeji (data ya mfumo, data ya mtandao, data ya michakato...)
OID Mfano
1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7
Hapa kuna ufafanuzi wa anwani hii.
- 1 – hii inaitwa ISO na inaweka wazi kuwa hii ni OID. Hii ndiyo sababu OIDs zote huanza na “1”
- 3 – hii inaitwa ORG na inatumika kubainisha shirika lililojenga kifaa.
- 6 – hii ni dod au Wizara ya Ulinzi ambayo ni shirika lililoanzisha Mtandao kwanza.
- 1 – hii ni thamani ya mtandao kuashiria kuwa mawasiliano yote yatatokea kupitia Mtandao.
- 4 – thamani hii inaashiria kuwa kifaa hiki kimeundwa na shirika binafsi na si la serikali.
- 1 – thamani hii inaashiria kuwa kifaa kimeundwa na kampuni au shirika la biashara.
Thamani hizi sita za kwanza huwa sawa kwa vifaa vyote na zinakupa taarifa za msingi kuhusu hivyo. Mfuatano huu wa nambari utakuwa sawa kwa OIDs zote, isipokuwa wakati kifaa kimeundwa na serikali.
Tukihamia kwenye seti inayofuata ya nambari.
- 1452 – inatoa jina la shirika lililotengeneza kifaa hiki.
- 1 – inaelezea aina ya kifaa. Katika kesi hii, ni saa ya alamu.
- 2 – inaashiria kuwa kifaa hiki ni kitengo cha terminal cha mbali.
Thamani zilizobaki zinatoa taarifa maalum kuhusu kifaa.
- 5 – inaashiria alama ya alamu ya pekee.
- 1 – alama maalum katika kifaa
- 3 – bandari
- 21 – anwani ya bandari
- 1 – onyesho la bandari
- 4 – nambari ya alama
- 7 – hali ya alama
SNMP Versions
Kuna toleo 2 muhimu za SNMP:
- SNMPv1: Kuu, bado ni ya kawaida zaidi, uthibitishaji unategemea mfuatano (community string) unaosafiri kwa maandishi wazi (taarifa zote zinatembea kwa maandiko wazi). Toleo 2 na 2c pia hutuma trafiki kwa maandiko wazi na hutumia mfuatano wa jamii kama uthibitishaji.
- SNMPv3: Inatumia aina bora ya uthibitishaji na taarifa inasafiri imefichwa (attack ya dictionary inaweza kufanywa lakini itakuwa ngumu zaidi kupata creds sahihi kuliko katika SNMPv1 na v2).
Community Strings
Kama ilivyotajwa hapo awali, ili kufikia taarifa zilizohifadhiwa kwenye MIB unahitaji kujua mfuatano wa jamii katika matoleo 1 na 2/2c na akidi katika toleo 3.
Kuna aina 2 za mfuatano wa jamii:
public
hasa kazi za kusoma tuprivate
Soma/Andika kwa ujumla
Kumbuka kuwa uwezo wa kuandika OID unategemea mfuatano wa jamii ulio tumika, hivyo hata ukigundua kuwa "public" inatumika, unaweza kuwa na uwezo wa kuandika baadhi ya thamani. Pia, kuna weza kuwepo vitu ambavyo ni daima "Soma Tu".
Ikiwa unajaribu kuandika kitu, noSuchName
au readOnly
kosa linapokelewa**.**
Katika matoleo 1 na 2/2c ikiwa utatumia mfuatano wa jamii mbaya seva haitajibu. Hivyo, ikiwa inajibu, mfuatano wa jamii halali umetumika.
Ports
- Wakala wa SNMP hupokea maombi kwenye bandari ya UDP 161.
- Meneja hupokea arifa (Traps na InformRequests) kwenye bandari 162.
- Wakati inapotumika na Transport Layer Security au Datagram Transport Layer Security, maombi yanapokelewa kwenye bandari 10161 na arifa zinatumwa kwenye bandari 10162.
Brute-Force Community String (v1 na v2c)
Ili kukisia mfuatano wa jamii unaweza kufanya shambulio la kamusi. Angalia hapa njia tofauti za kufanya shambulio la brute-force dhidi ya SNMP. Mfuatano wa jamii unaotumika mara nyingi ni public
.
Kuorodhesha SNMP
Inapendekezwa kufunga yafuatayo ili kuona maana ya kila OID iliyokusanywa kutoka kwa kifaa:
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
Ikiwa unajua mfuatano halali wa jamii, unaweza kufikia data kwa kutumia SNMPWalk au 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
Shukrani kwa maswali ya kupanuliwa (download-mibs), inawezekana kuhesabu zaidi kuhusu mfumo kwa kutumia amri ifuatayo:
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
SNMP ina taarifa nyingi kuhusu mwenyeji na mambo ambayo unaweza kupendezwa nayo ni: Interfaces za Mtandao (anwani za IPv4 na IPv6), Majina ya Watumiaji, Wakati wa Uendeshaji, Toleo la Server/OS, na mchakato
unaotembea (inaweza kuwa na nywila)....
Mipangilio Hatari
Katika eneo la usimamizi wa mtandao, mipangilio na vigezo fulani ni muhimu kuhakikisha ufuatiliaji na udhibiti wa kina.
Mipangilio ya Ufikiaji
Mipangilio miwili kuu inaruhusu ufikiaji wa mti mzima wa OID, ambao ni sehemu muhimu katika usimamizi wa mtandao:
rwuser noauth
imewekwa kuruhusu ufikiaji kamili wa mti wa OID bila haja ya uthibitisho. Mipangilio hii ni rahisi na inaruhusu ufikiaji usio na vizuizi.- Kwa udhibiti maalum zaidi, ufikiaji unaweza kutolewa kwa kutumia:
rwcommunity
kwa anwani za IPv4, narwcommunity6
kwa anwani za IPv6.
Amri zote zinahitaji nywila ya jamii na anwani husika ya IP, zikitoa ufikiaji kamili bila kujali chanzo cha ombi.
Vigezo vya SNMP kwa Microsoft Windows
Mfululizo wa Thamani za Msingi wa Taarifa za Usimamizi (MIB) hutumiwa kufuatilia vipengele mbalimbali vya mfumo wa Windows kupitia SNMP:
- Mchakato wa Mfumo: Inapatikana kupitia
1.3.6.1.2.1.25.1.6.0
, vigezo hivi vinaruhusu ufuatiliaji wa michakato hai ndani ya mfumo. - Programu Zinazoendesha: Thamani ya
1.3.6.1.2.1.25.4.2.1.2
imetengwa kwa ajili ya kufuatilia programu zinazotembea kwa sasa. - Njia za Michakato: Ili kubaini mahali mchakato unapoendesha, thamani ya
1.3.6.1.2.1.25.4.2.1.4
ya MIB inatumika. - Vitengo vya Hifadhi: Ufuatiliaji wa vitengo vya hifadhi unarahisishwa na
1.3.6.1.2.1.25.2.3.1.4
. - Jina la Programu: Ili kubaini programu iliyosanikishwa kwenye mfumo,
1.3.6.1.2.1.25.6.3.1.2
inatumika. - Akaunti za Watumiaji: Thamani ya
1.3.6.1.4.1.77.1.2.25
inaruhusu ufuatiliaji wa akaunti za watumiaji. - Ports za TCP za Mitaa: Hatimaye,
1.3.6.1.2.1.6.13.1.3
imetengwa kwa ajili ya ufuatiliaji wa ports za TCP za mitaa, ikitoa mwanga kuhusu muunganisho hai wa mtandao.
Cisco
Angalia ukurasa huu ikiwa una vifaa vya Cisco:
{{#ref}} cisco-snmp.md {{#endref}}
Kutoka SNMP hadi RCE
Ikiwa una nywila inayokuruhusu kuandika thamani ndani ya huduma ya SNMP, unaweza kuwa na uwezo wa kuitumia vibaya ili kutekeleza amri:
{{#ref}} snmp-rce.md {{#endref}}
SNMP Kubwa
Braa ni skana kubwa ya SNMP. Matumizi yaliyokusudiwa ya zana kama hii ni, bila shaka, kufanya maswali ya SNMP – lakini tofauti na snmpwalk kutoka net-snmp, ina uwezo wa kuuliza mwenyeji kumi au mia moja kwa wakati mmoja, na katika mchakato mmoja. Hivyo, inatumia rasilimali chache za mfumo na inafanya ufuatiliaji HARAKA SANA.
Braa inatekeleza stack yake ya snmp, hivyo haitaji maktaba yoyote ya SNMP kama net-snmp.
Syntax: braa [Community-string]@[IP ya server ya SNMP]:[iso id]
braa ignite123@192.168.1.125:.1.3.6.*
Hii inaweza kutoa MB nyingi za taarifa ambazo huwezi kusindika kwa mikono.
Hivyo, hebu tutafute taarifa za kuvutia zaidi (kutoka https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):
Vifaa
Mchakato huanza kwa kutoa sysDesc MIB data (1.3.6.1.2.1.1.1.0) kutoka kila faili ili kubaini vifaa. Hii inafanywa kwa kutumia grep command:
grep ".1.3.6.1.2.1.1.1.0" *.snmp
Tambua Mfuatano wa Kibinafsi
Hatua muhimu inahusisha kutambua mfuatano wa jamii ya kibinafsi unaotumiwa na mashirika, hasa kwenye routers za Cisco IOS. Mfuatano huu unaruhusu kutoa mipangilio inayoendelea kutoka kwa routers. Utambuzi mara nyingi unategemea kuchambua data ya SNMP Trap kwa neno "trap" kwa kutumia amri ya grep:
grep -i "trap" *.snmp
Majina ya Watumiaji/Maneno ya Siri
Makaratasi yaliyohifadhiwa ndani ya MIB yanachunguzwa kwa jaribio la kuingia lililoshindwa, ambalo linaweza kwa bahati mbaya kujumuisha maneno ya siri yaliyoingizwa kama majina ya watumiaji. Maneno muhimu kama fail, failed, au login yanatafutwa ili kupata data muhimu:
grep -i "login\|fail" *.snmp
Barua pepe
Hatimaye, ili kutoa anwani za barua pepe kutoka kwa data, amri ya grep yenye muundo wa kawaida inatumika, ikilenga mifumo inayolingana na muundo wa barua pepe:
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
Kubadilisha thamani za SNMP
Unaweza kutumia NetScanTools kubadilisha thamani. Itabidi ujue nyota ya faragha ili kufanya hivyo.
Kupotosha
Ikiwa kuna ACL inayoruhusu tu IP chache kuuliza huduma ya SMNP, unaweza kupotosha moja ya anwani hizi ndani ya pakiti ya UDP na kunusa trafiki.
Kagua faili za Mipangilio ya SNMP
- snmp.conf
- snmpd.conf
- snmp-config.xml
Amri za Kiotomatiki za HackTricks
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
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.