OS root przez SNMP

25 marca 2013, 21:17 | Aktualności | 1 komentarz
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.

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:

srp

Błąd, który swego czasu udało mi się tutaj odnaleźć, został scharakteryzowany przez Cisco tak:

cvss

cvss

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:

 snmp1

Nie mamy tutaj zbyt wielu możliwości… Spróbujemy przechwycić i zmodyfikować request HTTP wysyłany po naciśnięciu przycisku „Submit”:

snmp2
W skrócie, za słowem public wstrzyknąłem:

%0aextend+ps+/bin/ps%0a%23

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:

wstrzyknięcie do snmpd.conf

wstrzyknięcie do snmpd.conf

W działaniu wygląda to z kolei tak:

snmp root

snmp root

Bez obaw – bug został już jakiś czas temu załatany.

Wszystkie publikowane tutaj informacje służą jedynie celom edukacyjnym!

— michal.sajdak<at>securitum.pl

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Michał

    Piękne w swojej prostocie :)

    Odpowiedz

Odpowiedz