HTB Visual. Захватываем сервер на Windows через проект Visual Studio

Содержание статьи

  • Разведка
  • Сканирование портов
  • Точка входа
  • Точка опоры
  • Продвижение
  • Локальное повышение привилегий

В этом рай­тапе я покажу, как про­ник­нуть на хост через бэк­дор в нас­трой­ках про­екта Visual Studio. Затем получим сес­сию от име­ни служ­бы веб‑сер­вера, акти­виру­ем при­виле­гию SeImpersonate и исполь­зуем оче­ред­ную «кар­тошку» для выпол­нения кода от име­ни сис­темы.

На­ша цель — получе­ние прав супер­поль­зовате­ля на машине Visual с учеб­ной пло­щад­ки Hack The Box. Уро­вень слож­ности машины — сред­ний.

warning

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

 

Разведка

 

Сканирование портов

До­бав­ляем IP-адрес машины в /etc/hosts:

10.10.11.234 visual.htb

И запус­каем ска­ниро­вание пор­тов.

Справка: сканирование портов

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

На­ибо­лее извес­тный инс­тру­мент для ска­ниро­вания — это Nmap. Улуч­шить резуль­таты его работы ты можешь при помощи сле­дующе­го скрип­та:

#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1

Он дей­ству­ет в два эта­па. На пер­вом про­изво­дит­ся обыч­ное быс­трое ска­ниро­вание, на вто­ром — более тща­тель­ное ска­ниро­вание, с исполь­зовани­ем име­ющих­ся скрип­тов (опция -A).

Ре­зуль­тат работы скрип­та

Ска­нер нашел толь­ко один откры­тый порт — 80 (веб‑сер­вер Apache 2.4.56), что для Windows край­не нехарак­терно. Давай взгля­нем на сайт, с которым нам пред­сто­ит работать.

Глав­ная стра­ница сай­та 

Точка входа

На сай­те есть фор­ма встав­ки URL и Git-репози­торий. Давай для тес­та запус­тим локаль­ный веб‑сер­вер и пос­мотрим, что будет, если вста­вить в поле для ссыл­ки его адрес.

python3 -m http.server 80

Мы получа­ем лог сбор­ки про­екта.

Лог сбор­ки

Ло­ги веб‑сер­вера

На сай­те ука­зано, что исполь­зует­ся язык раз­работ­ки C# и сре­да Visual Studio, а зна­чит, ожи­дает­ся, что поль­зователь вста­вит адрес репози­тория с про­ектом на C#. Давай под­готовим такой репози­торий.

Под­нима­ем вир­туал­ку с Windows и ста­вим Visual Studio. Теперь соз­дадим прос­той кон­соль­ный про­ект C# и ско­пиру­ем его пап­ку на свой основной хост.

Струк­тура про­екта Visual Studio

Те­перь нуж­но соз­дать Git-репози­торий. Ини­циали­зиро­вать пус­той репози­торий мож­но коман­дой git init в катало­ге с про­ектом.

Соз­дание Git-репози­тория

Те­перь коман­дой git add нуж­но добавить каталог про­екта в репози­торий и соз­дать ком­мит с любым име­нем, к при­меру e1:

git commit -m e1

В кон­це обновля­ем информа­цию о сер­вере коман­дой git update-server-info.

До­бав­ление фай­лов в репози­торий

Ког­да все готово, в текущем катало­ге сно­ва запус­каем веб‑сер­вер и отправ­ляем адрес репози­тория:

http://10.10.16.91/.git

Ло­ги веб‑сер­вера

Ло­ги сбор­ки

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

 

Точка опоры

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

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *