SNMP RCE
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:
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ę:
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:
Lub odwrotna powłoka:
Odniesienia
Last updated