10:30
23/7/2010

Jak nie tworzyć botnetu

Bycie moderatorem na hakierskim forum ma parę zalet. Jedną z nich jest dostęp do usuniętych tematów zawierających m.in. “złe” malware. Od czasu do czasu znajdzie się ktoś, kto wrzuci ‘super-hiper trojana/keyloggera’ zainfekowanego własnym syfem. Zazwyczaj są to gotowe programy, do tego koszmarnie skonfigurowane (logi wysyłane są z normalnego e-maila – login i hasło są w pliku), ale czasem zdarzy się, że ktoś poświęci chwilę i napisze coś swojego. Tak było i tym razem.

Autorem tego wpisu jest Michał Włodarczyk.

Żeby nie było żadnych nieporozumień — ten program nie jest specjalnie wybitny, nie ma szczególnych zabezpieczeń — ot po prostu jest. Znajduje się pod tym adresem, spakowany, czeka aż ktoś go pobierze i odpali. Napisany z użyciem .NET’a — kompletnie nie mogę zrozumieć, czemu ktoś pisze malware, które wymaga pobrania 70MB środowiska, aby je odpalić… No ale OK, pobieram program, odpalam (na wirtualnej maszynie — tak na wszelki wypadek) i widzę, że łączy się na porcie 6667. Czyli prawdopodobnie korzysta z IRC’a.

Jeden z kanałów IRC służący do handlu skradzionymi numerami kart kredytowych, kont pocztowych, itp, itd. (fot. niebezpiecznik.pl)

Bez żadnego zastanowienia włączyłem mIRC-a i wszedłem na kanał — prawie 90 maszyn. Lekko się zdenerwowałem, to kilka razy więcej ludzi niż miesięcznie odwiedza mojego bloga :-( No i do tego żaden AV go nie wykrywa.

Analize malware’u

Pora wziąć się do roboty (której za dużo nie będzie):
Dis# .NET decompiler wygląda nieźle, w wersji trial nie pokazuje całości kodu, ale powinien wystarczyć. Po chwili przeglądania kodu można znaleźć dwie interesujące funkcje:

oraz tą (a właściwie tylko część):

Pomijam całą resztę bo program za wiele nie robi — dodaje się do rejestru, kopiuje plik, podłącza do serwera, wchodzi na kanał i czeka na komendy. Adres serwera, nazwa kanału i hasło są co prawda zaszyfrowane 3DES’em ale nie ma potrzeby ich odszyfrowywać — wystarczy włączyć sniffer i wszystko wyłapać. W obecnej chwili dane te i tak nie zadziałają — autor zmienił hasło do kanału (co oznacza, że wszyscy zainfekowani do tej pory nie będą służyli za zombie — nie ma żadnego systemu aktualizacji/pobierania nowych danych).

Wracając do kodu – pierwsza funkcja służy do floodowania wybranego hosta pakietami UDP, za argumenty przyjmuje adres IP (w postaci numeru), port i czas, przez jaki ma trwać flood.

Co do drugiego fragmentu: w zmiennej s1 znajdują się pakiety odebrane z serwera. Właśnie uświadomiłem sobie, co robi pierwszy if (który na szczęście nie jest do niczego niezbędny) — sprawdza, czy na kanał nie weszła osoba z nickiem takim samym, jak jego nazwa i w razie potrzeby wita ją.

Drugi warunek jest ciekawszy, ponieważ odpowiada za praktycznie jedyną funkcję programu — DDoS. Na początek sprawdza, czy w pakiecie nie ma ciągu “UDP” (nie tylko w treści wiadomości — wejście na kanał z odpowiednim nickiem prawdopodobnie wywali wszystkie boty które nie mają żadnej walidacji danych). Dalej jest wyciąganie nicka osoby która wysłała wiadomość, wysyłanie do niej notice, przerwa (nie wiem po co) i kluczowa sprawa — dzielenie wiadomości i przekazywanie odpowiednich parametrów do funkcji floodującej. Pakiet jest rozbijany w miejscu, w którym występuje spacja i jego kolejne części są używane. Cały pakiet wygląda tak:

:nick!username@host PRIVMSG #channel :tresc

Po podzieleniu treść ląduje w sArr1[3] i jeśli zawiera spacje to kolejne wyrazy są kolejnymi elementami w tablicy. [4] nie jest nigdzie przekazywana, więc można wstawić dowolną treść, [5] ma być adresem IP (dla 127.0.0.1 trzeba przekazać np. 2130706433), [6] portem a [7] długością flooda w sekundach.

Autodestrukcja botnetu :-)

Po zebraniu wszystkiego do kupy okazuje się, że wystarczy wysłać na kanale wiadomość o treści “UDP lol 2130706433 80 3600” żeby przez godzinę wszystkie boty obecne na kanale próbowały same się wykończyć.

W międzyczasie pisał do mnie autor tego “cuda” — tak to jest, jak się wchodzi na kanał bez zmiany nicka. Stwierdził, że jeśli tylko ja o tym wiem to jest spoko, jak ktoś jeszcze się dowie to będzie musiał wszystko wyłączyć (podejrzewam, że stąd właśnie zmienione hasło). I to właśnie jeden z powodów, dla których w ogóle powstał ten wpis :>

Chcesz umieścić swój tekst na Niebezpieczniku? Daj nam znać.

Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

26 komentarzy

Dodaj komentarz
  1. Cóż poradzić, życie autora malware’u nie jest łatwe – chłopak chciał sobie tylko mały botnecik postawić, a “zue h4xx0ry” zrobiły “wjazd na program”. ;]

  2. Epic Fail

  3. autor pewnie zakładał, ze większość maszyn ma zainstalowany .net fw ;)
    btw – reflector jest za darmo i znacznie ciekawszy do podglądania kodu .net

  4. oj, mogłeś na kanał wejść z nickiem podobnym do nicków botów… :P (tia, zawsze trzeba się do czegoś doczepić, jak reszta ‘roboty’ jest idealna xD)

  5. Piękny wpisik, sarkazm & ironia jak zawsze na wysokim poziomie :D

  6. Nono…Poradzili sobie przy ataku DDoS i znów proszą się kułaka :D

  7. Bardzo ładny wpis, zwłaszcza dla takich noobków jak ja, co trzeba im wszystko krok po kroku wyjaśnić :) Dobra robota, oby więcej takich wpisów.

  8. Czyli znowu mamy spodziewać się zniknięcia niebezpiecznika z sieci na kilka dni?:P

  9. czy przypadkiem w tle scru z irc nie widac panelu administracyjengo, podczas pisania newsa ? :P

  10. @makak

    hehe jak wszystkim z drugiej strony internetu podpadają jest to wysoce prawdopodobne :D

  11. Do komentujacych powyżej:
    dobrze ze niebezpiecznik porusza te tematy i nie sra po gaciach jak reszta pożal się Boże sewisow informacyjnych z branży bezpieczeństwa w Polsce, które jedyne co potrafią wrzucić do siebie to kretynskie informacje prasowe, robiąc copypaste z worda od agencji reklamowej, albo niesamowicie wręcz interesujące raporty typu ile pendrivow sprzedało się w ostatnim kwartale…

    Niebezpieczniki, wiecej takich postów, a ddoserow od razu na policję (wiem ze macie na nich namiary ; zcwela ich w areszcie to się oducza gowniarstwa)

  12. Najpowazniejszym bledem autora tego botnetu jest to, ze uzyl IRC ktory traci plain textem jak kurczaki w tesco ludwikiem, ale jak chcial szybko to ma… no i mniej nakladow pracy…
    Takie botnety jak ten to rzadzily DAWNO temu, nie powiem, ubaw, dreszcz emocji, pewien krok w branzy zlego IT, no i gowniarstwo, mam nadzieje ze sie z tego szybko wyrasta w wielu przypadkach. Gdyby gosc poczytal was, oraz pare linkow przegladnal, poznal by budowe chociazby ideowa, botnetu made in china (jego analiza byla tu linknieta pod postacia PDFa) to dopiero cwana i zmyslna robota…

  13. @dumar tak! Widziałeś kawałek PA z wordpress.

    (Screeny rób cmd+shift+4, spacja i klik na okno)

  14. “prawie 90 maszyn. Lekko się zdenerwowałem, to kilka razy więcej ludzi niż miesięcznie odwiedza mojego bloga”
    Coś się nie chce wierzyć że tak mało ;)

    • @gogolian: zauważyłeś, że artykuł jest gościnnym wpisem hxv, który odnosi się w zacytowanym przez Ciebie zdaniu do swojego bloga, a nei Niebezpiecznika? ;-) Jeśli chodzi o nasze statystyki to obecnie mamy ponad pół miliona odwiedzin miesięcznie.

  15. W sumie co do tych 90 sztuk, to spamowac trzeba inaczej :) swoja droga spoko koles, mysle ze zrobi to teraz inaczej, ulepszy poszpera poduczy sie. zeby spamowac trzeba spreparowanej www, buga co uruchomi bezwiednie execa i wyswietlia golego lachona tak zeby user czul sie zaspokojony “kontentem” o ile pamietam w IE6 bylo cos takiego…. raj. http://cos.pl/~misio/lachon.jpg#sprytnybot.exe

    tylko nie mowcie ktory to byl rok, wole nie wiedziec :P

    w sumie to zle i niedobre, ale przyznajcie sie kolekcjonowanie zombie cieszy jak kolekcjonowanie znajomych na NK, to samo ale inaczej :P

  16. To, ze tak wielu amatorow ma mozliwosc tworzenia botnetow jest przede wszystkim wynikiem skrajnej nieswiadomosci uzytkownikow systemow operacyjnych, a nie nadzwyczajnych umiejetnosci kogokolwiek.

  17. “No i do tego żaden AV go nie wykrywa.”
    Wykrywa, wykrywa… chociażby Norton.

  18. Pisanie malwaru w .not(z filmu java4ever) ma o tyle sens(trochę), że nikt się go tam nie spodziewa.

    Mam dziwne wrażenie(nie wiem), że ów człowiek się tylko uczył co i jak, i atakował siebie czy kolegów.
    Jak się nauczysz od strony BH to będziesz lepszym WH bo będziesz wiedział dokładnie z czym to się je.

  19. @Heinrich uzytkownicy sa z reguly “lekkomyslni” po to sa admini zeby opieprzac wymuszac i straszyc, co do goscia, uczyl sie i jak zawsze indywidualnie, dla kazdego pierwsze k roki sa zwykle nadzwyczajne, dalej to juz chec poznania i apetyt oraz rozped…

    @zzz1986@o2.pl to fakt, zreszta wiele zalezy od mentalnosci w Indiach i Chinach jest inny swiat takze tyczy sie to rozwiazan IT, czesto spotykam sie z zupelnie dziwnymi rozwiazaniami chinskich kolegow, na ktore zaden polak przy zdrowej glowie nie wpadnie. Byle do przodu i jak dziala to sukces :D

  20. @Dyzio – teraz może i tak, w momencie pisania tekstu na VirusTotal wykrywalność wynosiła 0/41.

  21. Napisałem kiedyś “wirusa” w dev-c++ – skompilowałem -> novirusthanks.org -> 4 wykryte -> miscrosoft visual c++ 2008 -> kompiluje -> skan -> 0 wykrytych…
    No widzicie…;)

  22. Tak jest z tą wykrywalnością,jak ktoś przeskanował na virustotal to przeważnie na następny dzień już jest wykrywalny :)

  23. “Chaker” botnetowy pisał w .necie bo pewnie dotnet mu się kojarzył z botnetem :)

  24. wow .. jakby napisal cos genialnego pies z kulawa noga by nie spojrzał bo kto by sie zainteresował czyli “popularnosc budowana inaczej”!

    .. co za czasy :) tak sie zastanawiam czy to nowy kanon czy smiecie pływajace po powierzchni?

  25. Pobrałem sprawdziłem pod podanym linkiem jest jakiś hmm… botgenerator do jakiejś gry z tego co zauważyłem to ani wygenerowany bot ani “generator” nie komunikują się z IRCem natomiast z pewnością wysyłają na maila podanego podczas generacji ID i Hasło :P z tego co udało mi się jeszcze poszperać snifferem to program korzysta z INDY 9 :) autor poszedł na łatwiznę… swoją drogą autor nie pomyślał bo mógł “za symulować” działanie bota i w tym czasie pobrać backdoora, ukryć go jakoś w systemie i dodać wpis do rejestru a potem wywalić piękny błąd, że nie udało się nawiązać połączenia z serwerem :D i żeby user się wypchał… zły wywala program, a niespodzianka zostaje :)

Odpowiadasz na komentarz hxv

Kliknij tu, aby anulować

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

RSS dla komentarzy: