SNMP RCE
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:
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ę:
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:
Lub odwrócony shell:
Odwołania
Last updated