Ostatnio rodzina luki związane z błędem Bash, najpopularniejszy interpreter w systemach GNU/Linux, MAC OS i niektórych Uniksach i został nazwany SpiekłoSzok lub Bashdoor (CVE-2014-6271). Najważniejsza i najbardziej niepokojąca kwestia w tym zakresie ma związek z faktem, że wspomniany BUG jest obecny w Bash od 20 lat, więc szacuje się, że powaga sprawy jest nawet większa niż Heartbleed.
ten Bash BAD lub Nerwica wojenna Sam w sobie nie jest złośliwym kodem (takim jak wirusy komputerowe, oprogramowanie szpiegujące, złośliwe oprogramowanie itp.), więc nie może zostać wykryty i zablokowany przez oprogramowanie antywirusowe lub podobne systemy, ale musi zostać poprawiony w samej implementacji oprogramowania, które go „cierpi”.
Zaleca się stosowanie tego samouczka w kontrolowanych środowiskach do celów związanych z badaniami i studiami informatyki, jak wyjaśniono tutaj.
Co to jest Bash Bash ShellShock?
Zasadniczo problem polega na tym, że Bash musi przechowywać definicję funkcji skryptowych w zmiennych środowiskowych, a dokładniej w sposobie, w jaki te funkcje są ładowane przez Bash.
BŁĄD objawia się, gdy w zmiennej środowiskowej, po definicji funkcji, dodawany jest dodatkowy kod, który Bash będzie nadal analizował i wykonywał po załadowaniu funkcji.
Za pomocą następującego polecenia pusta definicja funkcji, dowolny kod, została załadowana do zmiennej „x”, a następnie wywołano Bash.
Dzieje się tak, że przed wywołaniem Bash zmienna środowiskowa została załadowana i wstrzyknięty kod został wykonany, który po prostu pokazuje ciąg „podatny” na konsoli (oczywiście mogło być gorzej!). Następnie Bash został wykonany i jako przykład wywołano polecenie echo. Prostszy wariant polecenia wykonania testu:
$ env x = '() {:;}; echo wrażliwe 'bashTo ostatnie polecenie pokaże na ekranie ciąg „podatny”, jeśli wersja Bash zawiera BŁĄD lub nie pokaże niczego, jeśli jest to wersja załatana.
Jak wskazano we wstępie, ten błąd określa rodzinę luk, które mogą zostać wykorzystane przez atakującego do zdalnego kontrolowania komputerów. W ramach tych wariantów są niektóre nieco bardziej złożone, inne bardzo proste, a niektóre mniej lub bardziej złożone. Istnieją warianty związane z modułami Apache i CGI, inne dla klienta DHCP, a niektóre nieco bardziej rozbudowane niż inne.
W tym przewodniku zostanie wykorzystany jeden z najprostszych przypadków, Atak shellShock na klienta DHCP GNU / Linux.
Zaangażowane systemyGospodarz ofiary:
GNU / Linux z Bash 4.3
Klient DHCP isc-dhclient-4.2.4
IP 192.168.1.88 (przez DHCP)
Atakujący host:
Windows XP
Serwer DHCP „tftp32” autorstwa Ph. Jounin
IP: 192.168.1.100
POWIĘKSZAĆ
Do weryfikacji koncepcji zakładamy sieć LAN, w której połączeni są zarówno ofiara, jak i atakujący.
Ponieważ oprogramowanie klienta DHCP jest uruchamiane z uprawnieniami administracyjnymi, atakujący będzie próbował zawrzeć złośliwy kod w jakimś parametrze opcji DHCP w konfiguracji DHCP przypisanej ofierze.
Proces
1) Atakujący uruchamia oprogramowanie usługi DHCP {(ftp32 ”przez Ph. Jounin) został użyty w tym przewodniku}
1.1) Wybierz interfejs sieciowy, którego chcesz użyć, i naciśnij przycisk „Ustawienia”
1.2) Skonfiguruj opcje, aby uruchamiać tylko usługę DHCP.
1.3) Przejdź do zakładki „DHCP” i skonfiguruj w następujący sposób:
1.4) Uwaga w polu „Opcja dodatkowa” określono opcję 114 (używaną w VOIP), a w polu szczegółów opcji wprowadzono definicję funkcji Bash i złośliwego kodu:
() {ignorowane;}; echo 'WPROWADZONY KOD'; / bin / cat / etc / passwd1.5) Naciśnij "OK", usługa DHCP jest gotowa.
2) W terminalu systemowym ofiary wykonaj następujące polecenie, aby odsłonić systemowy dziennik Syslog, gdy wykonujemy żądanie DHCP:
# tail -f / var / log / syslog &3) Zakładając, że eth1 jest interfejsem sieciowym ofiary, uruchom klienta DHCP:
# dhclient eth14) Polecenie spowoduje, że żądanie DHCP i atakujący zostaną odpowiednio przydzielone:
5) W terminalu ofiary, dzięki komendzie tail, która była w tle pokazując syslog systemowy, zostanie wyświetlone wykonanie wstrzykniętego kodu, w tym przypadku zostanie wyświetlony ciąg „INJECTED CODE”, a następnie zawartość pliku /etc/passwd ofiary (mogło być znacznie gorzej…):
Ta ostatnia część jest dzięki poleceniu "/ bin / cat / etc / passwd„Który jest częścią ciągu określonego jako opcja 114.
Atakujący mógł wykonać inne polecenia i wykonać dowolną akcję, ponieważ ma uprawnienia „root”, ponieważ klient DHCP ofiary działa z tymi uprawnieniami.
RozważaniaW tym przewodniku zastosowano typowe oprogramowanie, bez zmian w systemie Victim. Ta luka występuje w innych aplikacjach, które używają Bash do wykonywania parametrów lub skryptów w systemie.
jest konieczne zastosuj odpowiednie aktualizacje do systemu, aby zapobiec tego typu atakom.
Warto wyjaśnić, że prezentowane tu treści są przydatne zarówno do zrozumienia mechaniki ataku, jak i do podniesienia świadomości na temat tego ostatniego punktu. Pamiętaj, że to orzeczenie obowiązuje od co najmniej 20 lat, więc mogło zostać zastosowane na długo przed jego wydaniem.
Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt