NFsec Logo

eCapture – przechwytywanie SSL/TLS bez CA przy użyciu eBPF

25/05/2022 w Bezpieczeństwo, Pen Test Możliwość komentowania eCapture – przechwytywanie SSL/TLS bez CA przy użyciu eBPF została wyłączona

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ść… ]

MySQL – eskalacja uprawnień poprzez sytuację wyścigu

02/11/2016 w Bezpieczeństwo Możliwość komentowania MySQL – eskalacja uprawnień poprzez sytuację wyścigu została wyłączona

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

MySQL – Zdalne wykonanie kodu oraz eskalacja uprawnień

12/09/2016 w Bezpieczeństwo Możliwość komentowania MySQL – Zdalne wykonanie kodu oraz eskalacja uprawnień została wyłączona

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

Sprawdzanie ilości rekordów w tabeli przy pomocy information_schema

21/05/2013 w Administracja 1 komentarz.

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

Przewidywanie przestrzeni dyskowej dla bazy danych MySQL

22/08/2012 w Administracja 1 komentarz.

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ść… ]

Logowanie do pliku sesji MySQL

03/08/2012 w Administracja Możliwość komentowania Logowanie do pliku sesji MySQL została wyłączona

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ść… ]

MySQLdump dla replikacji przesłany na drugi host poprzez SSH

10/06/2012 w CmdLineFu Możliwość komentowania MySQLdump dla replikacji przesłany na drugi host poprzez SSH została wyłączona

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'

Operacje na logach (binarnych) lub upgrade MySQL podczas replikacji M-M

31/03/2012 w Administracja Możliwość komentowania Operacje na logach (binarnych) lub upgrade MySQL podczas replikacji M-M została wyłączona

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ść… ]

Percona Toolkit – pt-show-grants – klonowanie uprawnień między bazami

12/12/2011 w Administracja Możliwość komentowania Percona Toolkit – pt-show-grants – klonowanie uprawnień między bazami została wyłączona

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ść… ]

Ile miejsca zajmują tabele i bazy w MySQL?

26/09/2011 w Administracja 1 komentarz.

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ść… ]