161,162,10161,10162/udp - Pentesting SNMP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
If you are interested in hacking career and hack the unhackable - we are hiring! (wymagana biegła znajomość języka polskiego w mowie i piśmie).
SNMP - Protokół Prostej Obsługi Sieci to protokół używany do monitorowania różnych urządzeń w sieci (takich jak routery, przełączniki, drukarki, IoT...).
SNMP używa również portu 162/UDP do pułapek. Są to dane pakiety wysyłane z serwera SNMP do klienta bez wyraźnego żądania.
Aby zapewnić, że dostęp do SNMP działa w różnych urządzeniach i z różnymi kombinacjami klient-serwer, stworzono Management Information Base (MIB). MIB to niezależny format przechowywania informacji o urządzeniach. MIB to plik tekstowy, w którym wszystkie zapytania obiekty SNMP urządzenia są wymienione w standaryzowanej hierarchii drzewiastej. Zawiera co najmniej jeden Object Identifier
(OID
), który, oprócz niezbędnego unikalnego adresu i nazwa, dostarcza również informacji o typie, prawach dostępu i opisie danego obiektu.
Pliki MIB są napisane w formacie tekstowym ASCII w Abstract Syntax Notation One
(ASN.1
). MIB-y nie zawierają danych, ale wyjaśniają gdzie znaleźć jakie informacje i jak one wyglądają, jakie wartości zwracają dla konkretnego OID, lub jaki typ danych jest używany.
Object Identifiers (OIDs) odgrywają kluczową rolę. Te unikalne identyfikatory są zaprojektowane do zarządzania obiektami w Management Information Base (MIB).
Najwyższe poziomy identyfikatorów obiektów MIB, czyli OIDs, są przydzielane różnym organizacjom ustalającym standardy. To w tych najwyższych poziomach ustalany jest framework dla globalnych praktyk i standardów zarządzania.
Ponadto, dostawcy mają swobodę tworzenia prywatnych gałęzi. W ramach tych gałęzi mają autonomię do włączania zarządzanych obiektów związanych z ich własnymi liniami produktów. Ten system zapewnia, że istnieje uporządkowana i zorganizowana metoda identyfikacji i zarządzania szeroką gamą obiektów w różnych dostawcach i standardach.
Możesz nawigować przez drzewo OID w sieci tutaj: http://www.oid-info.com/cgi-bin/display?tree=#focus lub zobaczyć, co oznacza OID (jak 1.3.6.1.2.1.1
) uzyskując dostęp do http://oid-info.com/get/1.3.6.1.2.1.1.
Istnieją znane OID-y jak te w 1.3.6.1.2.1, które odnoszą się do zmiennych Simple Network Management Protocol (SNMP) zdefiniowanych w MIB-2. A z OID-ów zależnych od tego możesz uzyskać interesujące dane o hoście (dane systemowe, dane sieciowe, dane procesów...)
1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7
Oto analiza tego adresu.
1 – nazywa się to ISO i ustala, że jest to OID. Dlatego wszystkie OID-y zaczynają się od „1”
3 – nazywa się to ORG i służy do określenia organizacji, która zbudowała urządzenie.
6 – to dod lub Departament Obrony, który jest organizacją, która jako pierwsza ustanowiła Internet.
1 – to wartość internetu, aby oznaczyć, że wszystkie komunikacje będą odbywać się przez Internet.
4 – ta wartość określa, że to urządzenie zostało wyprodukowane przez prywatną organizację, a nie rządową.
1 – ta wartość oznacza, że urządzenie zostało wyprodukowane przez przedsiębiorstwo lub podmiot gospodarczy.
Te pierwsze sześć wartości zazwyczaj są takie same dla wszystkich urządzeń i dają podstawowe informacje o nich. Ta sekwencja liczb będzie taka sama dla wszystkich OID-ów, z wyjątkiem sytuacji, gdy urządzenie zostało wyprodukowane przez rząd.
Przechodząc do następnego zestawu liczb.
1452 – podaje nazwę organizacji, która wyprodukowała to urządzenie.
1 – wyjaśnia typ urządzenia. W tym przypadku jest to budzik.
2 – określa, że to urządzenie jest jednostką terminalową zdalnego dostępu.
Pozostałe wartości podają szczegółowe informacje o urządzeniu.
5 – oznacza punkt alarmowy.
1 – konkretny punkt w urządzeniu
3 – port
21 – adres portu
1 – wyświetlacz dla portu
4 – numer punktu
7 – stan punktu
Istnieją 2 ważne wersje SNMP:
SNMPv1: Główna wersja, nadal najczęściej używana, uwierzytelnianie opiera się na ciągu (ciąg społeczności), który podróżuje w czystym tekście (wszystkie informacje podróżują w czystym tekście). Wersja 2 i 2c również wysyłają ruch w czystym tekście i używają ciągu społeczności jako uwierzytelnienia.
SNMPv3: Używa lepszej formy uwierzytelniania i informacje podróżują szyfrowane (można przeprowadzić atak słownikowy, ale byłoby znacznie trudniej znaleźć poprawne dane uwierzytelniające niż w SNMPv1 i v2).
Jak wspomniano wcześniej, aby uzyskać dostęp do informacji zapisanych w MIB, musisz znać ciąg społeczności w wersjach 1 i 2/2c oraz dane uwierzytelniające w wersji 3. Istnieją 2 typy ciągów społeczności:
public
głównie funkcje tylko do odczytu
private
Odczyt/Zapis w ogólności
Zauważ, że możliwość zapisu OID zależy od używanego ciągu społeczności, więc nawet jeśli znajdziesz, że używany jest „public”, możesz być w stanie zapisać niektóre wartości. Mogą również istnieć obiekty, które są zawsze "tylko do odczytu".
Jeśli spróbujesz zapisać obiekt, otrzymasz błąd noSuchName
lub readOnly
.**.**
W wersjach 1 i 2/2c, jeśli użyjesz złego ciągu społeczności, serwer nie odpowie. Więc, jeśli odpowiada, użyto ważnego ciągu społeczności.
Agent SNMP odbiera żądania na porcie UDP 161.
Menedżer odbiera powiadomienia (Pułapki i InformRequests) na porcie 162.
Gdy używane jest z Transport Layer Security lub Datagram Transport Layer Security, żądania są odbierane na porcie 10161, a powiadomienia są wysyłane na port 10162.
Aby zgadnąć ciąg społeczności, możesz przeprowadzić atak słownikowy. Sprawdź tutaj różne sposoby przeprowadzenia ataku brute-force przeciwko SNMP. Często używanym ciągiem społeczności jest public
.
Zaleca się zainstalowanie następujących narzędzi, aby zobaczyć, co oznacza każdy zebrany OID z urządzenia:
Jeśli znasz ważny ciąg społeczności, możesz uzyskać dostęp do danych za pomocą SNMPWalk lub SNMP-Check:
Dzięki rozszerzonym zapytaniom (download-mibs) możliwe jest uzyskanie jeszcze więcej informacji o systemie za pomocą następującego polecenia:
SNMP zawiera wiele informacji o hoście, a rzeczy, które mogą być interesujące, to: Interfejsy sieciowe (adresy IPv4 i IPv6), Nazwy użytkowników, Czas działania, Wersja serwera/OS oraz procesy
działające (mogą zawierać hasła)....
W dziedzinie zarządzania siecią, niektóre konfiguracje i parametry są kluczowe dla zapewnienia kompleksowego monitorowania i kontroli.
Dwa główne ustawienia umożliwiają dostęp do pełnego drzewa OID, które jest kluczowym elementem w zarządzaniu siecią:
rwuser noauth
jest ustawione, aby zezwolić na pełny dostęp do drzewa OID bez potrzeby uwierzytelniania. To ustawienie jest proste i pozwala na nieograniczony dostęp.
Dla bardziej szczegółowej kontroli, dostęp można przyznać za pomocą:
rwcommunity
dla adresów IPv4, oraz
rwcommunity6
dla adresów IPv6.
Oba polecenia wymagają ciągu społeczności oraz odpowiedniego adresu IP, oferując pełny dostęp niezależnie od pochodzenia żądania.
Seria wartości Management Information Base (MIB) jest wykorzystywana do monitorowania różnych aspektów systemu Windows za pomocą SNMP:
Procesy systemowe: Dostępne przez 1.3.6.1.2.1.25.1.6.0
, ten parametr umożliwia monitorowanie aktywnych procesów w systemie.
Działające programy: Wartość 1.3.6.1.2.1.25.4.2.1.2
jest przeznaczona do śledzenia aktualnie działających programów.
Ścieżka procesów: Aby określić, skąd uruchamiany jest proces, używa się wartości MIB 1.3.6.1.2.1.25.4.2.1.4
.
Jednostki pamięci: Monitorowanie jednostek pamięci ułatwia 1.3.6.1.2.1.25.2.3.1.4
.
Nazwa oprogramowania: Aby zidentyfikować zainstalowane oprogramowanie w systemie, stosuje się 1.3.6.1.2.1.25.6.3.1.2
.
Konta użytkowników: Wartość 1.3.6.1.4.1.77.1.2.25
umożliwia śledzenie kont użytkowników.
Lokalne porty TCP: Na koniec, 1.3.6.1.2.1.6.13.1.3
jest przeznaczone do monitorowania lokalnych portów TCP, dostarczając informacji o aktywnych połączeniach sieciowych.
Zobacz tę stronę, jeśli masz sprzęt Cisco:
Jeśli masz ciąg, który pozwala na zapisywanie wartości w usłudze SNMP, możesz być w stanie go nadużyć, aby wykonywać polecenia:
Braa to masowy skaner SNMP. Zamierzonym zastosowaniem tego narzędzia jest, oczywiście, wykonywanie zapytań SNMP – ale w przeciwieństwie do snmpwalk z net-snmp, jest w stanie zapytać dziesiątki lub setki hostów jednocześnie, w jednym procesie. Dzięki temu zużywa bardzo mało zasobów systemowych i wykonuje skanowanie BARDZO szybko.
Braa implementuje własny stos SNMP, więc nie potrzebuje żadnych bibliotek SNMP, takich jak net-snmp.
Składnia: braa [Ciąg społeczności]@[IP serwera SNMP]:[iso id]
To może wyodrębnić wiele MB informacji, których nie możesz przetworzyć ręcznie.
Zatem, poszukajmy najbardziej interesujących informacji (z https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):
Proces zaczyna się od wyodrębnienia sysDesc MIB data (1.3.6.1.2.1.1.1.0) z każdego pliku, aby zidentyfikować urządzenia. Osiąga się to za pomocą grep command:
Krytycznym krokiem jest zidentyfikowanie prywatnego stringu społeczności używanego przez organizacje, szczególnie na routerach Cisco IOS. Ten string umożliwia wydobycie aktualnych konfiguracji z routerów. Identyfikacja często opiera się na analizie danych SNMP Trap w poszukiwaniu słowa "trap" za pomocą grep command:
Logi przechowywane w tabelach MIB są badane pod kątem nieudanych prób logowania, które mogą przypadkowo zawierać hasła wprowadzone jako nazwy użytkowników. Słowa kluczowe takie jak fail, failed lub login są wyszukiwane w celu znalezienia cennych danych:
Na koniec, aby wyodrębnić adresy e-mail z danych, używana jest komenda grep z wyrażeniem regularnym, koncentrując się na wzorcach, które pasują do formatów e-mail:
Możesz użyć NetScanTools, aby zmodyfikować wartości. Będziesz musiał znać prywatny ciąg, aby to zrobić.
Jeśli istnieje ACL, który pozwala tylko niektórym adresom IP na zapytania do usługi SMNP, możesz sfałszować jeden z tych adresów wewnątrz pakietu UDP i podsłuchiwać ruch.
snmp.conf
snmpd.conf
snmp-config.xml
Jeśli jesteś zainteresowany karierą w hackingu i chcesz zhakować to, co nie do zhakowania - zatrudniamy! (wymagana biegła znajomość polskiego w mowie i piśmie).
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)