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 |