Zastanawialiście się kiedyś, jak wygląda administrowanie botnetem od środka? Dzięki jednemu z moich kolegów z CERT Orange Polska macie tę wyjątkową okazję. W ogóle to sprawa wyszła przypadkiem, podczas analizy kodu źródłowego jednego z popularnych, nieco zmodyfikowanych backdoor’ów, znanego pod nazwą Kaiten.c. W efekcie ekspert trafił na kanał serwera IRCd (kto pamięta co to było? ja się czuję dinozaurem 🙂 ), administrujący botnetem wykorzystującym przejęte routery do ataku na telekomunikacyjnego giganta w USA, Comcast, a tam spotkał cyber-przestępcę we własnej cyber-osobie. Panowie porozmawiali sobie w swoim niezrozumiałym dla normalnych ludzi języku :), zły człowiek puszył się i machał ogonem, by po rozmowie z moim kolegą… pozamykać prawie wszystkie porty w komunikacji z serwerem Command&Control (C&C, serwer kontrolujący botnet), poczynając od 443 za pomocą którego wydawał polecenia botom. Dokładnie rzecz biorąc, serwer wyglądał tak:
W momencie skanowania | Po rozmowie 🙂 |
Starting Nmap 6.40 ( http://nmap.org ) at 2015-08-18 10:14 CEST Nmap scan report for xxx.xx.xxx.xxx Host is up (0.21s latency). Not shown: 996 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.3 (protocol 2.0) 311/tcp filtered asip-webadmin 443/tcp open irc Unreal ircd 1141/tcp filtered mxomss Service Info: Host: Proxys.gov |
Starting Nmap 6.40 ( http://nmap.org ) at 2015-08-18 11:08 CEST Nmap scan report for xxx.xx.xx.xxx) Host is up (0.19s latency). Not shown: 999 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.3 (protocol 2.0) |
Chyba się przestraszył 🙂
Tym niemniej – poniżej poszczególne kroki, opisujące, co dzieje się z botnetem, opisane przez autora analizy (jeśli masz problem z odczytaniem treści grafiki, kliknij w nią).
terminal powitalny na serwerze C&C botnetu | |
fragment kodu, przekazujący nam wiele ciekawych rzeczy o konfiguracji botów: – CHAN „#LA” – nazwa kanału IRC, do którego łączą się zainfekowane urządzenia – PORT 443 – numer portu ircd – AdminUser1 do AdminUser5 – login kont uprawnionych do wydawania poleceń botom – char *servers[] = { „206.72.200.116” – zdefiniowany adres IP serwera C&C |
BotMaster (przestępca zarządzajacy botnetem) wydaje na kanale #LA swojego serwera ircd polecenie aby wszystkie boty atakowały wybrany przez niego adres IP oraz port |
Kontynuacja niecnych działań BotMastera | |
Boty ukończyły atak i zwracają informacje dla BotMastera | Fragment kodu źródłowego backdoora, autorstwa atakującego oraz komunikat od botów o gotowości do kolejnego ataku. |
Bot zgłasza gotowość do kolejnego ataku | Fragment kodu źródłowego z opisanymi funkcjami ataku dla botów. |
Sekcja kodu backdoora, weryfikująca uprawnienia administratora do wydania polecenia o ataku |