Jak sobie radzić z włamaniem na Serwer Counter-Strike 1.6

Wstęp

Nie da się ukryć, że w dzisiejszym świecie Counter-Strike’a ciężko o zdrową rywalizacje. Niektórzy postanowili ją eliminować w nielegalny sposób, a jeszcze inni postanowili bawić się w super-hackerów niczym z filmu Mr Robot. Zdecydowanie częściej słyszymy ten drugi scenariusz. Jednak pierwszą i najważniejszą rzeczą jest to, że sami siebie nazywają „hackerami”. Tak na prawdę żaden z ich dotychczasowych „ataków” nie był wysublimowany, wyszukany lub, który wymagałby odkrycia czegokolwiek nowego. Każda osoba, atakująca serwer 1.6 posługuje się dotychczasowymi dziurami, błędami, a przede wszystkim – zaniedbaniem osób, które tworzą serwer. W zdecydowanie większej liczbie przypadków zawodził czynnik ludzki: słabe hasła, te same hasła stosowane do wielu platform, uploadowanie podejrzanych pluginów bez kodu źródłowego czy nawet podejmowanie współpracy z ludźmi, którzy od samego początku mają jeden cel: zaszkodzić nam, jak najbardziej się da. Artykuł ten tylko częściowo ma na celu pokazanie sposobów na zabezpieczenie serwerów. Jego meritum jest to, jak radzić sobie już po dokonanym włamaniu.

Pierwsze kroki

Przede wszystkim zachowajmy spokój i zimną głowę. Nie róbmy wszystkiego na raz. Lepiej analizować wolniej – a dokładniej. Zacznijmy od spraw banalnych.

Zmień hasło do własnego konta na hostingu. Odbierz innym subkonta, do czasu rozwiązania sprawy (poleć im zmianę hasła). Jak najszybciej zmień dane do wszelkich baz danych, które wykorzystuje serwer oraz FTP. Musisz ustalić w jaki sposób włamywacz zdobył flagi. Na początku sprawdź logi. Znajdź pierwsze połączenie atakującego z serwerem. Jeśli będziesz widział tam taki wpis: [amxbans_core.amxx] Login: "Nick<27855><>" became an admin (account "STEAM_0:0:1234") (access "abcdefijmnopqru") (address "IP") (static 0) to znaczy, że włamywacz miał już flagi przed wejściem na serwer i nie posłużył się on RCON’em (bo przykładowo mógł go odgadnąć co też się zdarza).

Jeśli jest to obcy Ci nick – trzeba szukać. Pamiętaj, jeśli zdiagnozujesz problem – wyłącz serwer, tak aby po Twoich interwencjach atakujący nie mógł z powrotem dodać sobie flag czy zmienić hasła RCON. Ewentualnie, dobrym rozwiązaniem, które polecam jest założenie hasła na ten serwer.

Diagnozowanie

Sprawdź czy nie pojawił się w Twoim FTP jakiś nowy plugin, którego pochodzenia nie znasz. Jeśli tak, usuń go czym prędzej. Koniecznie upewnij się, że każdy plugin był kompilowany lokalnie. Oznacza to, że masz do niego swobodny dostęp i możesz przeglądać kod źródłowy. Pobieranie i wgrywanie pluginów od nieznanego, mało zaufanego autora jest bardzo ryzykowne. Istnieje możliwość, że zostawił on tam tzw. backdoora, dzięki któremu przykładowo przypisywane są mu flagi, czy ustawia hasło RCON komendą.

Jeśli atakujący dostał się na serwer pod nickiem admina, który posiada flagi, to znaczy, że zna jego hasło setinfo. W jaki sposób zostaje pozyskane setinfo? No to już jest problem admina, jak dysponował hasłem. Czy używa je gdzieś jeszcze, czy podawał komuś, czy nawet wszedł na inny serwer – istnieje możliwość zapisywania haseł graczy przy wchodzeniu na serwer. Jeśli atakujący będzie miał hasło setinfo admina wystarczy, że wejdzie na jego nicku. Dlatego tak złe jest przypisywanie adminów na nick+hasło. Posiadanie setinfo admina gwarantuje dostęp do flag adminowskich, bo przecież potem to już kwestia połączenia się z serwerem na nicku admina. Usuń wszystkich adminów zapisanych na nick + hasło, nie tylko tego, z którego padł włam.

Być może problem nie leży po żadnej z w/w stron. Jeśli korzystasz ze sklepu sms, który znajduje się na stronie www to włam mógł paść również z tamtego sektora. Sprawdź czy delikwent nie przypisał sobie flag na nick, ip czy nawet sid (w sid wątpie) w sklepie. Ale zaraz zaraz… W jaki sposób miało by to być? Tutaj również nie pojawia się żadna zaawansowana technika, albo atakujący wrzucił shell’a na naszą stronę, albo odgadł hasło administratora. Upewnijmy się, że nasze oprogramowanie webowe jest zabezpieczone i nie jest podatne na shelle. Jeśli jest zabezpieczone – atakujący dostał się na konto administratora przy wcześniejszym odgadnięciu hasła. Reszta to już czysta formalność: zostaje stworzona usługa dodająca wszystkie flagi, włamywacz przypisuje ją do danego serwera i dodaje ją sobie.

Jeśli admini są czytani z AmxBans’a, a nie z pliku users.ini to oczywiście sprawdź go. Jestem prawie pewny, że to właśnie tam będzie ukryty admin i flagi atakującego. Wiele osób używa dziurawych AmxBans’ów, które są podatne na shelle, możesz być jedną z nich! Dlatego warto dowiedzieć się jaka konkretnie wersja jest najlepsza, aby uniemożliwić następne ataki.

Atakujący wykorzystał RCON’a – co dalej?

Jeśli admini mają dodaną flagę „l” to przeważnie „zabawa” nie kończy się tak szybko. Dzięki temu atakujący ma swoim zanadrzu potężne narzędzie jakim jest RCON. Dzięki niemu może zmieniać ustawienia serwera, jak można się domyśleć – na gorsze. Zmienia on tzw. cvary, przez co psuje całą rozgrywkę. Znacznie poważniejszym problemem jest, jeśli odczytuje on cvary, które służą do łączenia się z jakąś bazą danych, która w jakikolwiek sposób ingeruje we flagi graczy. Pobiera on host’a, login, hasło co pozwala mu na późniejsze dodanie się do PhpMyAdmin’a i dodania tam sobie flag nawet na kilka/kilkanaście nicków, żebyś męczył się z usuwaniem ich. Warto, na prawdę warto sprawdzić plik cmdaccess.ini znajdujący się w cstrike/addons/amxmodx/configs/ Znajdują się tam wszystkie możliwe komendy do użycia na naszym serwerze. Być może jakaś komenda zapisuje flagi gracza. Atakujący może strzelać, że taki plugin z taką komendą znajduje się na serwerze i wpisze – skutkuje to dodaniem flag w kolejno miejsce, do jakiegoś pliku. Zweryfikuj to.

Poskładaj wszystko do kupy

Wiesz już jak padł włam, jak flagi zostały przypisane. Pozostaje Ci posprzątanie tego. Pamiętaj, że ważne jest, aby robić to w odpowiedniej kolejności. Pamiętaj, że musisz się upewnić, że włamywacz nie ma już nigdzie flag (pkt. Diagnozowanie)! W innym przypadku ten akapit może okazać się bezużyteczny i wykonanie go będzie bezskuteczne. Pamiętaj, że serwer ma być wyłączony lub z hasłem.

  • Usuń wszystkim adminom (w tym sobie) flagę „l” > flaga zarządzania RCON’em.
  • Usuń hasło rcon. Sprawdź server.cfg, amxx.cfg czy nie ma go nigdzie. Zrestartuj serwer, jeśli chcesz sprawdzić czy prawidłowo usunąłeś rcona wpisz w konsole rcon_password, wyprintuje Ci rcon_password is „”
  • Pozmieniaj jeszcze raz hasła do wszelkich baz danych.
  • Jeśli włam padł przy użyciu amxbansa – zmień na taki, który jest bezpieczniejszy + najlepiej jeśli będziesz odczytywał flagi adminów z pliku.

Włącz serwer i monitoruj go przez pierwsze kilkanaście minut. Pamiętaj, że cenne informacje znajdziesz zawsze w logach/konsoli serwera.

Przykładowy incydent włamania

Ostatnio byłem świadkiem, kiedy to włamywacz dostał się na serwer z flagami przy użyciu sklepu SMS. Krótki opis, jak to wszystko się działo.

  1. Pozyskanie setinfo jednego z adminów i połączenie się z serwerem na jego nicku.
  2. Ustawienie hasła RCON. (admin miał dostęp do RCON’a w swoich flagach).
  3. Odczytanie cvarów służących do łączenia się bazy <-> sklep SMS.
  4. Zalogowanie się do PhpMyAdmina sklepu SMS, dodanie tam nowej usługi ze wszystkimi flagami, przypisanie jej do serwera i dodanie na jakiś nick.
  5. Połączenie z serwerem na nicku, na którym przypisał sobie flagi.
  6. Bawienie się RCONem: zmienianie ustawień serwera, takich jak roundtime, hostname, gravity i wiele innych. W tym momencie następuje także sprawdzenie przez atakującego czy można dodać gdzieś jeszcze flagi.
  7. Przykładowym miejscem, gdzie włamywacz może dodać sobie flagi jest plugin nVaultAdmins.amxx Służy on do odczytywania flag graczy zakupionych na serwerze. Jego komendy to między innymi na_addadmin, na_setadmin – może dzięki nim dodać sobie wszystkie flagi, które są później zapisywane jako plik .vault w katalogu addons/amxmodx/data/vault/ Jednak nie możemy bezpośrednio z tego pliku sprawdzić, czy są tam dodane flagi włamywacza. Trzeba posłużyć się programem NVault Reader, który odkoduje nam wszystko i będziemy mogli to przejrzeć.

Podsumowanie

Jak widzisz, wszystko dzieje się w oparciu o zaniedbanie ludzi. To właśnie tutaj najczęściej zaczyna się włamanie. Czasami to my zaczynamy atak na samych siebie nie wiedząc o tym. Pamiętajmy, że hasła to można powiedzieć rzecz święta.

Niedługo pojawi się wpis mający na celu pomoc w zabezpieczeniu serwerów tak, aby takie artykuły jak ten nie były potrzebne.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *