Пример использования Metasploit Framework

Metasploit Framework

В прошлый раз мы подробно рассмотрели Metasploit Нас­тало вре­мя что‑нибудь взломать. Впро­чем, не что‑нибудь, а намеренно уязвимую машину Lame с площадки Hack The Box. В ней при­сутс­тву­ет уяз­вимость CVE-2007-2447. Это будет короткий гайд с примером использования.

Еще по теме: Сравнение C&C Metasploit и Havoc

Справка и пример использования Metasploit

Запуск Metasploit

Для начала необходимо правильно запустить Metasploit.

Структура Metasploit

Metasploit сос­тоит из семи раз­делов:

  • Exploits — это, счи­тайте, кос­тяк фрей­мвор­ка, он вклю­чает в себя экс­пло­иты на любой вкус и для любых плат­форм. О том, как они хра­нят­ся и как их искать, мы погово­рим поз­же;
  • Auxiliary — вспо­мога­тель­ные модули, слу­жат не для экс­плу­ата­ции, а ско­рее для обна­руже­ния уяз­вимос­тей, как при­мер — Nmap;
  • Post — пос­тэкс­плу­ата­ция. То есть, ког­да сис­тему уже ломану­ли, можем исполь­зовать шту­ки отсю­да для работы с ней. По фак­ту это тоже экс­пло­иты, но для сис­темы, к которой у нас есть дос­туп;
  • Payloads — полез­ные наг­рузки. Это не экс­пло­иты, а ско­рее вре­донос­ный код на все слу­чаи жиз­ни. Нап­ример, для получе­ния обратно­го шел­ла;
  • Encoders — кодиров­щики наг­рузок. Приз­ваны скрыть факт про­ник­новения от анти­виру­са или обой­ти служ­бы безопас­ности;
  • Nops — модули из это­го раз­дела зас­тавля­ют про­цес­сор ничего не делать в течение какого‑то вре­мени;
  • Evasion — укло­нение от детек­та. Сюда вхо­дят раз­ные трю­ки для обхо­да Microsoft Defender, фай­рво­лов и про­чих защит Windows. Я этот модуль не буду рас­смат­ривать, так как тема уже не сов­сем для нович­ков.

Мо­дули здесь стро­го струк­туриро­ваны. Нап­ример, рас­смот­рим рас­положе­ние модуля, который нам пот­ребу­ется для взло­ма Lame.

Структура Metasploit

Важ­ная ремар­ка: multi — зна­чит для любой сис­темы (если толь­ко для вин­ды, будет windows, для Unix — unix и так далее).

Преж­де чем читать даль­ше, вам нуж­но выпол­нить прос­тое задание:

В Kali Linux это дефол­тная пап­ка Metasploit. Заходите в нее и про­буйте походить по раз­делам и осво­ить­ся со струк­турой. Это потом при­годит­ся.

Но вер­немся к самому Metasploit. Пер­вая коман­да, о которой нуж­но знать, — это search. Даль­ше прос­то вби­ваем нуж­ное нам наз­вание. У этой коман­ды есть допол­нитель­ные парамет­ры, про­бежим­ся по самым важ­ным из них:

  • type — из какого раз­дела взять модуль;
  • cve — поиск по базе CVE;
  • platform — для какой плат­формы нужен экс­пло­ит.

Нап­ример, ищем экс­пло­иты для Samba, получив­шие CVE в 2007 году:

Под­робнее о воз­можнос­тях поис­ка можете узнать, наб­рав search -h.

Пример использования Metasploit

Давайте ее для начала най­дем:

Что­бы начать работать с модулем, вам нуж­но выпол­нить коман­ду use.

Пример использования Metasploit

Здесь — это поряд­ковый номер в спис­ке вывода коман­ды search.

Мож­но еще выб­рать модуль вот такой коман­дой:

В качес­тве парамет­ра ука­зан пол­ный путь до экс­пло­ита.

Пер­вое, что вы дол­жны сде­лать пос­ле перехода к модулю, — наб­рать коман­ду info. Она отоб­ража­ет базовую информа­цию о модуле. Далее мы начина­ем работать с самим модулем. Выполняем команду:

Это покажет основные нас­трой­ки модуля.

Metasploit пример

Да­вайте раз­берем­ся, что это вооб­ще за парамет­ры:

  • RHOSTS — сюда будем встав­лять апиш­ник жер­твы;
  • RPORT — порт, который мы ата­куем;
  • Payload — наг­рузка, которая будет исполь­зовать­ся. Обыч­но задана дефол­тная, но иног­да нуж­но будет менять;
  • LHOST — наш локаль­ный хост, куда будет при­ходить отстук;
  • LPORT — порт, на который при­дет отстук.

Что­бы выс­тавить какой‑то из парамет­ров, нуж­но ввес­ти коман­ду

Нап­ример:

Еще сра­зу запом­ните коман­ду show payloads, она показы­вает наг­рузки, которые мож­но при­менять с выб­ранным модулем. То есть мы можем поменять дефол­тный пей­лоад на тот, который захотим (разуме­ется, если он ком­биниру­ется). Нап­ример:

В нашем слу­чае этот пей­лоад не сра­бота­ет, я показал его как при­мер. Ста­вим пре­дыду­щую наг­рузку:

Те­перь перед запус­ком прог­раммы переп­роверя­ем все парамет­ры:

Уч­тите, что в некото­рых экс­пло­итах будет мало прос­то ука­зать RHOSTS и LHOST. Подробнее об этом см. в статье «Что означает LHOST RHOST в Metasploit».

Па­рамет­ры кор­рек­тны, зна­чит, мож­но запус­кать!

Пи­шем run или exploit.

Metasploit примеры

Все, мы внут­ри.

Ка­залось бы, тут мож­но и закон­чить статью. Но у Metasploit есть еще нес­коль­ко очень инте­рес­ных фич.

Сессии Metasploit

Что­бы сох­ранить сес­сию в бэк­гра­унд, можете нажать Ctrl-Z. А что­бы про­верить ее, вве­дите коман­ду sessions.

Сессии Metasploit 

Что­бы вер­нуть­ся к сес­сии, введите sessions -i [ID нужной сессии].

Сес­сии при­годят­ся вам при работе с модуля­ми из раз­дела POST. Пред­положим, у нас есть сес­сия с ID 10 и нам нуж­но най­ти всех поль­зовате­лей на машине с Linux:

Все кор­рек­тно, мож­но запус­кать: run.

Сессии Metasploit 

Staged и non-staged пейлоады

Бы­ло бы прес­тупле­нием не упо­мянуть типы пей­лоадов. Их тут два:

  • staged — содер­жит весь код наг­рузки, ну нап­ример, весь код реверс‑шел­ла;
  • non-staged — тут гораз­до инте­рес­нее, такой пей­лоад содер­жит код, который сам заг­ружа­ет полез­ную наг­рузку на хост.

Пей­лоады типа non-staged поз­воля­ют куда лег­че обхо­дить анти­виру­сы и фай­рво­лы, потому что их раз­мер зна­читель­но мень­ше и они не содер­жат сам код злов­реда.

Meterpreter

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

Для начала советую запом­нить нес­коль­ко команд, которые при­годят­ся при работе с Meterpreter:

  • help — выводит все основные коман­ды Meterpreter;
  • run — запус­кает скрипт Meterpreter;
  • upload — заг­ружа­ет файл на ата­куемую машину;
  • download — ска­чива­ет файл с ата­куемой машины;
  • shell — акти­виру­ет обыч­ную коман­дную обо­лоч­ку;
  • execute — выпол­няет коман­ду на целевой сис­теме;
  • ps — вывод всех про­цес­сов;
  • sysinfo — инфа о сис­теме, на которую мы заб­рались;
  • getuid — отоб­ража­ет поль­зовате­ля, от име­ни которо­го запущен Metasploit.

Подробнее см. в статье «Обход антивируса в Meterpreter».

Msfvenom

Ну и наконец, погово­рим о msfvenom. Это тул­за для генера­ции пей­лоадов (к сло­ву, очень удоб­ная). Нап­ример, нуж­но нам сге­нерить бинар­ный реверс‑шелл для Linux (см. также Как использовать MSFVenom).

Дела­ется это так:

Прой­дем­ся по парамет­рам:

  • -p — пей­лоад;
  • -f — рас­ширение фай­ла;
  • -o — наз­вание фай­ла;
  • -e — шиф­рование, обфуска­ция или кодиров­ка;
  • -x — путь к исполня­емо­му фай­лу, он будет взят как осно­ва для сос­тавле­ния пей­лоада, и это понизит веро­ятность обна­руже­ния в нес­коль­ко раз;
  • -a — архи­тек­тура, под которую будет соз­дан пей­лоад;
  • --platform — плат­форма, под которую будет соз­дан пей­лоад.

Заключение

На этом наш крат­кий экскурс и пример использования закон­чен, не забудьте сох­ранить рабочее прос­транс­тво:

На­пос­ледок — неболь­шой спи­сок лег­ких машинок с Hack The Box для отра­бот­ки навыков: Lame, Legacy, Optimum, Arctik и Blue и ссылок с примерами использования Metasploit:

Дима (Kozhuh)

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

Добавить комментарий