21:02
13/6/2017

Jesteś właścicielem botnetu, którego komputery rozsiane są po całym świecie. Problem jaki masz, to sposób wydawania poleceń swoim ofiarom. Dowodzenie przez własne domeny czy serwery jest problematyczne, bo te mogą zostać przejęte i wyłączone. Na świetne rozwiązanie problemu utraty serwera kontrolującego wpadła grupa “Turla”, a z pomocą przyszła im… Britney Spears.

Różne techniki zarządzania botnetem

Stara szkoła mówi, że wystarczy postawić jeden serwer C&C (Command & Control), a następnie skonfigurować zarażone komputery tak, aby pobierały z niego listę zadań do wykonania. Takie rozwiązanie jest jednak problematyczne — wyłączenie serwera C&C to osierocenie całego botnetu.

Twórcy malware poszli więc o krok dalej i zaczęli tworzyć całe sieci komputerów, mogących przejąć rolę centrum dowodzenia, jeśli podstawowy C&C padnie lub zostanie przejęty. Najczęściej odbywa się to za pomocą przekierowania domeny C&C na nowy adres IP. Ale i domeny mogą być blokowane… Przestępcy musieli więc wymyślić skuteczniejszy sposób na informowanie zarażonych komputerów o nowym adresie centrum dowodzenia, ale bez hardcodowania w aplikacji jakichkolwiek unikatowych domen i adresów IP.

Britney, jak mogłaś?!

Britney Spears regularnie wrzuca zdjęcia na swój profil na Instagramie. Pod każdą publikacją można znaleźć od kilku do kilkunastu tysięcy komentarzy. Można więc przypuszczać, że praktycznie nikt nie czyta wszystkich komentarzy na instagramowych profilach gwiazd. Z identycznego założenia wyszli członkowie grupy “Turla”. I dlatego, jedyny adres URL zaszyty w stworzonym przez nich kliencie botnetu to link do instagramowego profilu Britney.

Jak informują badacze z firmy ESET, która analizowała złośliwe oprogramowanie wykorzystywane przez grupę Turla, malware co pewien czas odwiedza profil Britney i czyta komentarze pod jej ostatnimi zdjęciami. Dla każdego napotkanego wpisu, wylicza numeryczną suma kontrolną. Grupa “Turla” posługuje się prostym algorytmem sprawdzającym wartość liczbową komentarzy (prawdopodobnie opierając się na wartości poszczególnych liter w tekście) i jeśli wynosi ona dokładnie 183, przystępuje do parsowania treści komentarza.

Britney! Jak mogłaś?

Przykładowy komentarz widoczny dla fana Britney (na screenie), to:

#2hot make loveid to her, uupss #Hot #X

Wewnątrz tekstu używany jest znak unicode o kodzie \200d, znany jako “zero with joiner“, a stosowany zazwyczaj do separowania znaków emoji. Nie jest on widoczny dla czytelnika (tzw. non-printable character).

Wspomniany wcześniej komentarz, z perspektywy komputera wygląda następująco:

<200d>#2hot ma<200d>ke lovei<200d>d to <200d>her, <200d>uupss <200d>#Hot <200d>#X

Aplikacja botnetu, przepuszcza go przez proste wyrażenie regularne:

(?:\\u200d(?:#|@)(\\w)

Zapis taki oznacza:

  1. znajdź w tekście znak o kodzie \200d,
  2. jeśli występuje po nim hash lub znak małpy, zignoruj je,
  3. pobierz następną literę.

Punkt drugi powstał dla zgodności ze sposobem działania Instagrama. Znak kontrolny \200d nie może występować w nazwach użytkowników jak i hashtagach, więc jest dodawany przed nimi, dzięki czemu pierwsza litera nazwy użytkownika/taga traktowana jest jako część zaszyfrowanej wiadomość. Wykorzystując tę prostą steganografię, możemy zaszyć wiadomość “NBZ” w komunikacie:

“dobry artykuł! @niebezpiecznik jak zwykle the best! #zachwycony”

w następujący sposób:

"dobry artykuł! <200d>@niebezpiecznik jak zwykle the <200d>best! <200d>#zachwycony"

Co zawiera zakodowany ciąg znaków?

Zacytowany komentarz z profilu Britney, po przepuszczeniu przez wyrażenie regularne, daje nam ciąg znaków “2kdhuHX“. Jest to fragment adresu URL — brakuje nam jednak nazwy domeny. Okazuje się, że jest nią bit.ly (popularna usługa skracania długich linków), a wygenerowany adres zawiera namiar na nowe C&C.

W przypadku powyższego komentarza, zakodowany URL prowadzi pod poniższy adres (i został otworzony tylko 17 razy):

Algorytm zmiany C&C jest więc następujący:

  1. kup nową domenę i skonfiguruj na niej C&C,
  2. skróć adres URL do C&C za pomocą bit.ly,
  3. weź hasha z adresu bit.ly i używając wspomnianej powyżej techniki steganografii ukryj go w tekście komentarza,
  4. wprowadź do komentarza drobne zmiany i literówki tak, aby jego suma kontrolna wynosiła 183,
  5. opublikuj komentarz pod jedną z fotek Britney,
  6. czekaj, aż zainfekowane komputery zauważą nowy komentarz i przepną się na nowe C&C.

Podsumowując, komputer ofiary po odczytaniu spreparowanego komentarza, wchodzi na krótkiego linka w serwisie bit.ly, skąd jest przekierowywany na nową domenę serwera C&C i z tego serwera pobiera nowe instrukcje do wykonania.

Funkcje malware

Mechanizm komunikacji tego malware mamy już za sobą. Przyjrzymy się jednak temu, jakie ma on funkcje. Kod klienta botnetu jest niezwykle zwięzły i oferuje zaledwie cztery operacje:

  • ściągnij plik z serwera C&C
  • wyślij plik na serwer C&C
  • uruchom plik wykonywalny z dysku ofiary
  • przygotuj listę plików z zadanego katalogu i wyślij ją na serwer C&C

Połączenie funkcji ściągania pliku z internetu z możliwością uruchomienia go, daje agresorom możliwość infekowania swoich ofiar nowym, bardziej bogatym w funkcje malwarem.

Jak dochodzi do infekcji?

Malware rozpowszechnia się jako zainfekowana wtyczka do przeglądarki Firefox. Nie jest tutaj wykorzystywana żadna luka w zabezpieczeniu Firefoxa, czy systemu operacyjnego. Wszystkie używane w kodzie funkcje to standardowe metody API przeglądarki, a sam dodatek najczęściej jest instalowany na komputerach ofiar dobrowolnie, choć nieświadomie (podszywa się pod użyteczny plugin).

“Niezatapialny” malware?

Metoda aktualizacji adresu serwera C&C zasługuje na pochwałę z kilku powodów.

  1. Nie ma możliwości zablokowania ‘tablicy kontaktowej’ wykorzystywanej przez malware (jest to oficjalny profil piosenkarki na Instagramie).
  2. Nie da się zablokować wszystkich adresów IP/domen wykorzystywanych przez malware, ponieważ nigdzie nie ma opublikowanej pełnej ich listy.
  3. Domeny nie są zaszyte w komunikacie bezpośrednio, lecz jako hashe usługi bit.ly. Serwis ten jest spopularyzowany w Internecie na tyle, że nie można np. zablokować go w sieciach korporacyjnych.
  4. Znak specjalny wklejany do wnętrza komentarza nie może być zablokowany przez Instagram, ponieważ jest on powszechnie używany do oddzielania emotek od siebie.

Mogłoby się wydawać, że nie ma sposobu na uśmiercenie tego botnetu, ale w praktyce, jego twórcy sami strzelili sobie w stopę…

Samozaoranie albo test

Złośliwa aplikacja rozpowszechniana jest jako rozszerzenie XPI, wykorzystujące stare, odchodzące już w zapomnienie metody API z Firefoxa. Od wersji 57 tej przeglądarki, rozszerzenia XPI przestaną być obsługiwane, więc malware przestanie poprawnie funkcjonować (obserwując tempo rozwoju FF, można założyć, że będzie to za kilka miesięcy).

Badacze spodziewają się, że analizowana przez nich próbka to tylko test. Nowa wersja prawdopodobnie będzie bardziej dopracowana… Ciekawe która z celebrytek tym razem dostąpi zaszczytu zostania serwerem C&C dla botnetu?

Tym artykułem na pokładzie niebezpiecznikowych redaktorów witamy Jakuba “unknowa” Mrugalskiego :) Nie jest to jednak pierwszy tekst Jakuba, który został opublikowany na łamach Niebezpiecznika — pierwszy był ten.

Przeczytaj także:

28 komentarzy

Dodaj komentarz
  1. A co jakby stworzyc własną domenę i według zasad dodać post pod zdjęciem tak aby przejąć sieć i pobrać nią plik usuwający malewere ?

    • W zasadzie to była pierwsza rzecz jaka przyszła mi na myśl po przeczytaniu artykułu, ale pewnie nawet “test” jest przed czymś takim zabezpieczony.

    • Pewnie można, tylko najpierw trzeba poznać te zasady…

    • Wystarczy, że serwer C&C będzie używał konkretnego certyfikatu SSL, a malware będzie sprawdzać, czy ten certyfikat ma hash zgodny z zapisanym w malware.

  2. He niezły pomysł

  3. Można by spróbować to złamać z pomocą samego Instagrama – jednocześnie zablokować C&C oraz wprowadzić filtr na komentarzach, który do każdego komentarza z hashem 183 wprowadza drobną zmianę (np. dodatkową spację)

  4. Fatal error! Haha! Zobaczcie co znalazłem: Wszelkie prawa zastrzeżone © 2009- echo date(“Y”);

    • witamy nowego użytkownika. To jest tzw. “weryfikator” nowych. Zobacz w kod strony ;)

    • Poważnie?

      Pod co drugim postem ktoś to znajduje :D

    • Dzis uruchomilismy testowo kanał na snapchacie , to moze byc powod :)

    • Pan tu nowy jak widzę, witamy ;-)

    • Kolega nie pomyślał, żeby użyć google, przed skomentowaniem?

      https://www.google.com/search?q=“Wszelkie+prawa+zastrzeżone+©+2009-+echo+date(“Y”)%3B”&oq=”Wszelkie+prawa+zastrzeżone+©+2009-+echo+date(“Y”)%3B”

    • RTFSource :)

    • Kolejny. BTW: (“Y”) wygląda jak ręce na czyimś tyłku. Przepraszam nie mogłem się oprzeć

  5. Siema info dostałem ze snapa
    Good work

  6. \200d to “zero width joiner”, a nie “zero with joiner”.

  7. Snap here :p

  8. Dobry pomysł ze snapem :D

  9. Ma ktoś może kopię tej wtyczki? Jedną z wad Firefoxa jest to, że wtyczki mogą być hostowane na własnym serwerze.

  10. Mam Snapchata, wygrałem coś?

  11. Mam zdjęcie Britney. Co robić, jak żyć?

    • :-D

  12. Następna będzie Sasha Gray albo Paulo Coelho.

  13. Dzisiejszy snap zachęcił mnie do zajrzenia na stronę. Pozdrawiam :D

  14. Dobre. Alternatywne sposoby:

    Twitter:
    – Dodawać posty z popularnym hashtagiem z “jajowych” kont. Nikt nie obserwuje, nikt nie zauważy. Ręcznie monitorować tweety pod danym hashtagiem, nie za pomocą API Twittera, ale używając scrapingu. A dlaczego z hashtagiem? Otóż pozwoli to na ochronę przed usunięciem twitterowych kont używanych do komunikacji.

    Imgur:
    – Umieszczanie obrazka z opisem z odpowiednią sumą i tagami. Dodatkowo można dane ukryć w samym obrazku (w PNG można to zrobić dość efektywnie, ukrywając 1 bajt/piksel jeśli się użyje 2 najniższych bitów z poszczególnych kanałów RGBA)

  15. Hej unknow!

  16. @q: bardziej jak FPV właścicielki piersi spoglądającej w dół.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: