Admin ma wiele problemów na głowie. Trzeba dbać o bezpieczeństwo, sprawność infrastruktury, pomagać userom (w granicach rozsądku) i wdrażać nowe rozwiązania. A co zrobić jak trzeba w starym i zapomnianych rozwiązaniach coś zmienić, aby dało się z nich korzystać? Można zwalić winę na brak dokumentacji i olać całą sprawę, można zamknąć sprawę stwierdzeniem, że coś jest tak stare, że nie da się obecnie z tego korzystać, można też podwinąć rękawy i zacząć rozbierać na czynniki pierwsze celem nauczenia się czegoś, co nigdy więcej nam nie będzie potrzebne do szczęścia.
Tak było w przypadku pewnego oprogramowani, które pomimo wieku, nadal trzeba było użytkować. Pojawiła się silna potrzeba po pierwsze wyciągnięcia z bazy pewnych danych, a po drugie zmiany ustawień dla dotychczasowych userów i po trzecie dopisania nowego użytkownika, aby mógł sobie tam pracować. No ale jak to zrobić jak nie ma się dostępu administracyjnego. Zadanie jest więc jasne: uzyskać dostęp do bazy i systemu na uprawnieniach, które pozwolą administrowanie całością.
Badanie ofiary
Nie ma loginu i hasła? Najprościej by było skontaktować się z poprzednim adminem, ale problem w tym, że ten system był wyspą obsługiwaną tylko przez jedną osobę i o ile wszystkich interesowały wynikowe dane, to nikogo administracja całością. Ma działać i tyle. Czyli tak się nie da.
Można by też wejść w kontakt z producentem, ale ten zapadł na amnezję finansową. W wolnym tłumaczeniu: jak zapłacicie jakieś chore pieniądze, to przypomnę sobie login i hasło do bazy danych. Też odpada.
Próby wpisywanie typowych haseł również nie przyniosły jakiegokolwiek skutku.
Czas zabawić się w detektywa i poszperać wy komputerach, bo może ktoś coś zostawił. Niestety nikt nie zostawił, ani kopii dokumentacji, ani skanów, ani nawet notatek. No ale skoro są pliki konfiguracyjne to może tam coś się znajdzie?
O ile jednak pliki zawierały kilka ciekawych ustawień jak kolor tła okna programu, wysokość i szerokość okna logowania, czy ścieżka do pliku dźwiękowego, który ma zabrzmieć po udanym logowaniu to nie było tam nic odnośnie bazy danych. Był tam jednak jeszcze jeden program, który służył do wspomagania procesu archiwizacji danych na płytkach CD/DVD. W nim znalazły się wpisy dotyczące nazw baz danych (to wiedziałem) i loginów dostępowych do baz (tego nie wiedziałem). Czyli coś mamy, ale nadal brakuje haseł. A gdyby tak zdać się na lenistwo osób wdrażających i spróbować wpisać login i hasło identyczne? BINGO, jest pełny dostęp do bazy danych.
Wchodzimy w bazę
Jedno zadanie zrobione, czas dobrać się do tabeli z userami. Rzut okiem na tabelę użytkowników bazodanowych pokazał, że hasła musiałem i tak zgadywać, bo pola password są zagwiazdkowane. Tylko że ilość gwiazdek odpowiada ilości liter hasła, co troszkę ułatwia sprawę. No nic, szukam tabeli użytkowników oprogramowania. Po przekopaniu kilkudziesięciu tabel w końcu jest (nie ma to jak nazywać tabelę w sposób zrozumiały tylko projektantowi bazy) i znowu dzięki za lenistwo osoby co robiła bazę. Dane typu hasło zostały wpisane w polach typu Open_TEXT i nic nie trzeba zgadywać, wszystko podane jak na tacy.
Wnioski
Kilka rzeczy nasuwa mi się po tej akcji.
- Gdyby system był zabezpieczony zgodnie z dobrymi praktykami bezpieczeństwa, to raczej nie udało by mi się w tak banalny sposób uzyskać potrzebne mi dane.
- Brak dokumentacji i zabezpieczonych danych dostępowych to duży błąd organizacyjny i nie ważne czy system jest dla jednej osoby czy grupy – pewne rzeczy trzeba robić.
- Producenci oprogramowania często porzucają oprogramowanie w starszych wersjach, nie starając się w jakikolwiek sposób pomóc klientowi.
- Całość akcji zajęła mi jakieś 4 godziny i wiem że ta wiedza raczej nigdy mi się więcej nie przyda.
- Wszystkie loginy i hasła zostały wrzucone oczywiście do KeePass’a, aby nie było więcej z nimi problemów.