Napisał: Patryk Krawaczyński
25/05/2022 w Bezpieczeństwo, Pen Test
W
yobraźmy sobie, że nasz system został zainfekowany przerobionym i trudnym do wykrycia implantem sieciowym. W swojej przeróbce został on uzbrojony w moduł inwigilacji oparty o eCapture. Jest to zwinne narzędzie napisane w języku Go, które również wykorzystuje technologię eBPF. Umożliwia ona uruchamianie programów zamkniętych w piaskownicy jądra systemu operacyjnego. Dzięki temu potrafi przechwycić zaszyfrowaną komunikację sieciową bez konieczności “podpinania” Urzędu Certyfikacji (ang. Certificate Authority), któremu należy zaufać. Zamiast tego wpina się w funkcje SSL_write
/ SSL_read
współdzielonej biblioteki SSL, aby uzyskać kontekst tekstowy i wysłać tak uzyskane wiadomości do przestrzeni użytkownika za pomocą map eBPF.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
02/11/2016 w Bezpieczeństwo
D
awid Golunski w formie. Serwer MySQL oraz jego odmiany (MariaDB, Percona) są podatne na eskalację uprawnień poprzez możliwość wygrania sytuacji wyścigu. Podatność pozwala lokalnemu użytkownikowi systemu na eskalację uprawnień i dowolne wykonanie kodu jako użytkownik bazy danych – najczęściej “mysql” – za pomocą dostępu zwykłego konta do bazy danych z podstawowymi uprawnieniami (CREATE/INSERT/SELECT). Eksploatacja zakończona sukcesem pozwala atakującemu na uzyskanie dostępu do wszystkich baz danych przechowywanych na podatnym serwerze. Wraz z połączeniem z innymi błędami może dojść nawet do pełnej kompromitacji systemu poprzez uzyskanie praw administratora. Wystarczy, że atakujący stworzy bazę danych w tymczasowym katalogu i wykona na niej operację REPAIR
, która pozwoli mu na wygranie wyścigu przed operacją chmod()
. W oknie atakujący może zamienić plik bazy danych na symlink do katalogu /var/lib/mysql
. W ten sposób wcześniej ustawione prawa dostępu bazy np. 777 zostaną przeniesione na katalog, na który wskazuje symlink. Inne wykorzystanie tej luki umożliwia uzyskanie powłoki systemowej z uprawnieniami użytkownika, z którymi został uruchomiony serwer MySQL. Podatne są wersje:
MariaDB:
< 5.5.52
< 10.1.18
< 10.0.28
MySQL:
<= 5.5.51
<= 5.6.32
<= 5.7.14
Percona Server:
< 5.5.51-38.2
< 5.6.32-78-1
< 5.7.14-8
Percona XtraDB Cluster:
< 5.6.32-25.17
< 5.7.14-26.17
< 5.5.41-37.0
Więcej informacji: PoC oraz Exploit wraz z szczegółowym opisem podatności
Napisał: Patryk Krawaczyński
12/09/2016 w Bezpieczeństwo
D
awid Glounski opublikował dzisiaj 0day na serwery bazodanowe oparte na silniku MySQL (dotyczy to również MariaDB oraz Percona). Błąd pozwala atakującym na wstrzyknięcie złośliwych ustawień do plików konfiguracyjnych serwera (my.cnf), które mogą prowadzić do poważnych konsekwencji. Podatność dotyka wszystkie serwery MySQL w podstawowej konfiguracji (wersje: 5.7, 5.6 oraz 5.5) wliczając w to najnowsze wersje. Eksploracja błędu może zostać przeprowadzona zarówno lokalnie, jak i zdanie (poprzez uwierzytelniony dostęp sieciowy / interfejs webowy w postaci PHPmyAdmin lub atak SQL Injection). Udane wykorzystanie luki może pozwolić agresorowi na wykonanie dowolnego kodu z uprawnieniami użytkownika root, czyli administratora – w konsekwencji może dojść do pełnej kompromitacji serwera, na którym został zaatakowany daemon MySQL, ponieważ wykorzystanie tej podatności jest możliwe nawet jeśli moduły zabezpieczeń w postaci AppArmor oraz SELinux są aktywowane z domyślnymi politykami dla różnych dystrybucji Linuksa.
Więcej informacji: Szczegóły ataku oraz dowód na słuszność koncepcji
Napisał: Patryk Krawaczyński
21/05/2013 w Administracja
J
eśli chcemy sprawdzić ilość rekordów w danej tabeli, a nie katować bazy (przy bardzo dużej ilości wpisów) kolejnym zapytaniem w stylu: select count(*)
– możemy wykorzystać information_schema:
mysql> use information_schema;
mysql> select table_rows from tables where table_name = 'tabela';
Więcej informacji: INFORMATION_SCHEMA
Napisał: Patryk Krawaczyński
22/08/2012 w Administracja
M
ożliwość obserwacji tendencji wzrostu danych jest bardzo ważnym elementem dalszego planowania pojemności przestrzeni dyskowej. Na przykład dla baz MySQL 5.0+ informacje o wielkości tabel wybranych baz danych są utrzymywane są w INFORMATION_SCHEMA. W celu ich analizy wystarczy stworzyć bazę danych stats
, w której będziemy okresowo umieszczać interesujące nas informacje:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
03/08/2012 w Administracja
W
jaki sposób zapisać przebieg sesji z interfejsu linii poleceń serwera MySQL do pliku? Wystarczy do tego celu wykorzystać polecenie tee:
mysql> tee /tmp/mysql_session
Logging to file '/tmp/mysql_session'
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables like '%slow%';
+--------------------------+
| Tables_in_mysql (%slow%) |
+--------------------------+
| slow_log |
+--------------------------+
1 row in set (0.00 sec)
mysql> quit;
Bye
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
10/06/2012 w CmdLineFu
MySQLdump z wykluczeniem kilku baz danych, przesyłany z kompresją przez SSH na 2’gi host:
mysql -u root -p$PASS -e 'show databases' | perl -ne 'print unless /\b(?:mysql|information_schema|Database)\b/' | xargs mysqldump -u root -p$PASS --master-data=2 --single-transaction -B | gzip -c | ssh login@2host.com 'cat > ~/mysql.sql.gz'
Napisał: Patryk Krawaczyński
31/03/2012 w Administracja
P
odczas operacji na ustawieniach związanych z logami binarnymi lub logowaniem zdarzeń (np. zmiana expire_logs_days, general_log, slow_query_log), czy podnoszenie wersji serwera MySQL, który jest wpięty w replikację Master – Master, należy liczyć się, że operacja ta może zakończyć się na drugim serwerze wypięciem replikacji i komunikatem błędu podobnym do tego:
Last_Errno: 1580
Last_Error: Error 'You cannot 'ALTER' a log table if logging is enabled' on query.
Default database: 'mysql'. Query: 'ALTER TABLE slow_log...
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
12/12/2011 w Administracja
P
odczas przenoszenia całych baz danych MySQL np. na inne, szybsze i mocniejsze serwery – często występuje problem szybkiego przenoszenia uprawnień do tych baz. Z pomocą administratorom przychodzi Percona Toolkit (dawniej Maatkit), który w zestawie swoich narzędzi posiada m.in. program pt-show-grants. Załóżmy, że zrobiliśmy zrzut całego serwera MySQL i wgraliśmy go na inną maszynę. Jedyną rzeczą jaką pozostaje wykonać to sklonowanie uprawnień.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
26/09/2011 w Administracja
Z
nalezienie najwięcej zajmujących tabeli i baz w MySQL 5.0+ jest możliwe dzięki metadanym znajdującym się w tabeli INFORMATION_SCHEMA. Przechowuje ona informacje o wszystkich bazach danych, jakie serwer MySQL utrzymuje. Na przykład, aby znaleźć całkowitą liczbę tabel, wierszy oraz danych w indeksach dla danej instancji serwera MySQL wystarczy wydać polecenie:
[ czytaj całość… ]
Ostatni komentarz :