Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
OS root przez SNMP
Zapisy na Sekurak Hacking Party trwają w najlepsze, a my zajmiemy się pewną mało znaną techniką uzyskiwania uprawnień root na urządzeniach sieciowych.
Naszym obiektem doświadczalnym będzie urządzenie, które niedawno widzieliśmy w akcji (os root by tftp) – czyli routerek Cisco z serii SRP:
Błąd, który swego czasu udało mi się tutaj odnaleźć, został scharakteryzowany przez Cisco tak:
Wygląda to dość niebezpiecznie, choć ocena 9.3/10 jest IMO nieco przesadzona. ;-)
Zobaczmy szczegóły.
Jak w większości tego typu urządzeń, mamy tu dostępną obsługę protokołu SNMP. Ale w jaki sposób przez SNMP uzyskać OS root? Poczytajmy pożyteczne tutoriale:
Fortunately, the SNMP deamon from the Net-SNMP package allows us to extend the functionality by executing custom commands on the managed server to collect their exit code and output. According the the snmpd.conf man page there are several machanisms to extend the agent. They include:
- running external commands (exec, extend, pass),
- loading new code dynamically (embedded perl, dlmod),
- communicating with other agents (proxy, SMUX, AgentX).
Zatem poprzez SNMP możemy wykonać zewnętrzne polecenie, np. wykorzystując parametr konfiguracyjny extend. Ale jak zmienić plik konfiguracyjny na routerze? Pewnym prostym trickiem. :) Tak wygląda strona konfiguracji SNMP:
Nie mamy tutaj zbyt wielu możliwości… Spróbujemy przechwycić i zmodyfikować request HTTP wysyłany po naciśnięciu przycisku „Submit”:
W skrócie, za słowem public wstrzyknąłem:
O co tutaj chodzi? %0a to zakodowany szesnastkowo znak końca linii, %23 to hash, a znak: + odpowiada spacji. Po prostu bezczelnie wstrzyknęliśmy złamanie linii, a później zupełnie nową linijkę konfiguracyjną do snmpd.conf! Zobaczmy, jak wstrzyknięcie wpłynęło na zawartość pliku snmpd.conf:
W działaniu wygląda to z kolei tak:
Bez obaw – bug został już jakiś czas temu załatany.
— michal.sajdak<at>securitum.pl
Piękne w swojej prostocie :)