November 3, 2020

Небесное око. Тестируем возможности Quasar RAT

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

  • Установка и настройка
  • Конфигурируем сервер
  • Билдим клиент
  • Тестируем «Квазар»
  • Удаленное администрирование
  • Мониторинг и работа с удаленным хостом
  • Заключение

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

Что такое RAT. Эта кон­крет­ная тул­за написа­на под вин­ду, но глав­ное — она фри­вар­ная и опен­сор­сная, что опре­делен­но добав­ляет ей пре­иму­ществ по срав­нению с дру­гим ана­логич­ным соф­том. Ска­чать Quasar RAT мож­но со стра­нич­ки про­екта на гит­хабе.

Прог­рамма написа­на на С# и позици­они­рует­ся раз­работ­чиками как «лег­кое и удоб­ное средс­тво для уда­лен­ного адми­нис­три­рова­ния, тех­ничес­кой под­дер­жки и наб­людения за сот­рудни­ками». Quasar RAT име­ет тра­дици­онную для Remote Assistance Tool кли­ент‑сер­верную архи­тек­туру и, нес­мотря на ком­пак­тность, обла­дает доволь­но‑таки богатым арсе­налом воз­можнос­тей, сре­ди которых:

  • под­клю­чение к уда­лен­ному рабоче­му сто­лу;
  • уда­лен­ный шелл и запуск исполня­емых фай­лов по коман­де;
  • уда­лен­ное редак­тирова­ние реес­тра;
  • за­пуск фай­лового менед­жера, дис­петче­ра задач и менед­жера заг­рузки;
  • уда­лен­ное выпол­нение команд на вык­лючение и перезаг­рузку;
  • кей­лог­гинг (с под­дер­жкой Unicode);
  • пе­рех­ват паролей в бра­узе­рах, FTP-кли­ентах и дру­гих прог­раммах;
  • за­пуск Reverse Proxy (SOCKS5).

Нес­мотря на при­сутс­твие Quasar RAT в сво­бод­ном дос­тупе и опре­делен­ную популяр­ность в узких кру­гах цените­лей прек­расно­го (судя по количес­тву фор­ков и активнос­ти комь­юни­ти), докумен­тирова­на соф­тина, я бы ска­зал, скром­но. С дру­гой сто­роны, она доволь­но прос­та в исполь­зовании, и разоб­рать­ся с ней под силу даже неис­кушен­ному юзе­ру. Так уж выш­ло, что мне вне­зап­но понадо­билась ути­лита для уда­лен­ного управле­ния одним из ком­пов в моей локал­ке. По совету кол­лег в качес­тве инс­тру­мен­та я выб­рал имен­но Quasar RAT. И коли уж мне приш­лось раз­бирать­ся с этой прог­раммой, было бы греш­но не поделить­ся с тобой впе­чат­лени­ями от ее исполь­зования. Пог­нали!

УСТАНОВКА И НАСТРОЙКА

Прог­рамма пос­тавля­ется в виде архи­ва, внут­ри которо­го рас­полага­ются все необ­ходимые для ее работы фай­лы. Перед рас­паков­кой содер­жимого сле­дует отклю­чить анти­виру­сы, ина­че они радос­тно уда­лят экзешник и .bat-файл из ком­плек­та пос­тавки Quasar. Так­же для начала работы нуж­но ус­тановить .NET Framework 4.5.2 или более поз­днюю вер­сию, если она еще не уста­нов­лена в тво­ей сис­теме.

Что­бы не путать­ся, сра­зу опре­делим­ся, что в тер­миноло­гии Quasar сер­вером называ­ется машина, куда переда­ются дан­ные с поль­зователь­ских компь­юте­ров, а кли­ентом — ПК, за которым ты сле­дишь. Кли­ент иден­тифици­рует­ся по тегу, который ты ука­жешь в нас­трой­ках. Он может быть про­изволь­ным. Пос­ле уста­нов­ки на уда­лен­ной машине кли­ент работа­ет авто­ном­но, пыта­ясь соеди­нить­ся с сер­вером через задан­ные про­межут­ки вре­мени либо по IP-адре­су (под­держи­вает­ся IPv4 и IPv6), либо по DNS-име­ни. Общий алго­ритм дей­ствий таков: нуж­но запус­тить сер­вер, ука­зать необ­ходимые нас­трой­ки, сбил­дить при­ложе­ние‑кли­ент и залить его на уда­лен­ную машину. Все прос­то.

Конфигурируем сервер

Пос­ле запус­ка прог­раммы Quasar.exe нам пред­ложат соз­дать сер­тификат, с помощью которо­го будет уста­нав­ливать­ся защищен­ное соеди­нение меж­ду сер­вером и кли­ентом. Если Quasar уже исполь­зовал­ся на тво­ем компь­юте­ре, мож­но импорти­ровать сущес­тву­ющий сер­тификат, в про­тив­ном слу­чае прог­рамма соз­даст файл quasar.p12, который луч­ше сра­зу же прип­рятать в укромное мес­то. Если при­дет­ся пере­уста­новить «Ква­зар», без него будет невоз­можно соеди­нить­ся с дру­гими машина­ми, на которых запущен RAT, что гро­зит потерей всех кли­ентов.

При пер­вом запус­ке Quasar пред­лага­ет соз­дать или импорти­ровать сер­тификат

Жми кноп­ку Create, а затем — Save. Теперь сме­ло запус­кай Quasar.exe и жми над­пись Settings в вер­хней час­ти окна. По умол­чанию Quasar исполь­зует для свя­зи TCP-порт 4782, но ты можешь выб­рать вмес­то него любой дру­гой сво­бод­ный порт, ука­зав его в поле Port to listen on. Потом этот порт тебе нуж­но будет открыть в фай­рво­ле, нас­тро­ив соот­ветс­тву­ющее пра­вило.

Нас­тра­иваем Quasar Server

Все осталь­ные парамет­ры окна нас­трой­ки сер­вера име­ют сле­дующие зна­чения:

  • Enable IPv6 Support — вклю­чить под­дер­жку про­токо­ла IPv6, если он исполь­зует­ся в тво­ей сети;
  • Listen for new connections on startup — авто­мати­чес­ки начать прос­лушива­ние новых вхо­дящих соеди­нений от кли­ентов при запус­ке сер­вера;
  • Show popup notification on new connection — отоб­ражать всплы­вающее сооб­щение при новом соеди­нении;
  • Try to automatically forward the port (UPnP) — пытать­ся авто­мати­чес­ки проб­расывать порт для под­дер­жки UPnP;
  • Show tooltip on client with system information — показы­вать на уда­лен­ных кли­ент­ских машинах всплы­вающую под­сказ­ку с сис­темной информа­цией (для обес­печения скрыт­ности эту фун­кцию луч­ше не исполь­зовать).

От­дель­но сле­дует ска­зать о фун­кции Enable No-IP.com DNS updater. Если твое сетевое под­клю­чение исполь­зует динами­чес­кий IP, у под­клю­чающих­ся из интерне­та кли­ентов неиз­бежно воз­никнут проб­лемы с уста­нов­кой соеди­нения. Решить их мож­но с помощью DDNS-сер­виса No-IP, поз­воля­юще­го соз­дать хос­тнейм (hostname) в фор­мате DNS и при­вязать его к тво­ей машине. В моем слу­чае кли­ент рас­полагал­ся в моей же локаль­ной сети, и я нас­тро­ил на сер­вере ста­тичес­кий IP-адрес, отклю­чив в нас­трой­ках соеди­нения авто­мати­чес­кое получе­ние IP через DHCP. Если твои кли­енты рас­полага­ются в интерне­те и внеш­него ста­тичес­кого адре­са у тебя нет, зарегис­три­руй­ся на noip.com и вве­ди дан­ные сво­ей учет­ки в окне нас­тро­ек сер­вера.

Билдим клиент

Что­бы соз­дать кли­ент­ское при­ложе­ние, щел­кни мышью по над­писи Builder в вер­хней час­ти окна прог­раммы. Окош­ко бил­дера содер­жит пять вкла­док, по которым мы сей­час быс­трень­ко про­бежим­ся.

Вклад­ка Basic Settings нас­трой­ки бил­дера

На вклад­ке Basic Setting нуж­но ука­зать Client Tag — это сво­его рода ID, по которо­му будет иден­тифици­ровать­ся кли­ент­ская машина. Луч­ше дать ей какое‑то осмыслен­ное наз­вание, что­бы ты не запутал­ся в под­клю­чени­ях, если кли­ентов будет нес­коль­ко. В поле Mutex отоб­ража­ется мьютекс, который пре­дот­вра­щает запуск нес­коль­ких экзем­пля­ров прог­раммы на кли­ент­ском компь­юте­ре. Его мож­но оста­вить как есть. Для пущей скрыт­ности рекомен­дует­ся уста­новить фла­жок Enable unattended mode. Он поз­волит управлять кли­ент­ской машиной, не прив­лекая вни­мания поль­зовате­ля — в этом слу­чае ему не будут демонс­три­ровать­ся никакие окна, сооб­щающие об уста­нов­ке соеди­нения с сер­вером, а в трее не отоб­разит­ся зна­чок Quasar.

На вклад­ке Connection Settings нуж­но ука­зать IP-адрес или видимое в сети имя машины, где раз­вернут сер­вер, порт для под­клю­чения и интервал в мил­лисекун­дах, через который кли­ент­ская машина ста­нет пытать­ся уста­новить или возоб­новить соеди­нение. Все эти дан­ные будут зашиты в кли­ент­скую прог­рамму, и изме­нить их потом ока­жет­ся невоз­можно, так что будь вни­мате­лен.

Вклад­ка Connection Settings нас­трой­ки бил­дера

Вклад­ка Installation Settings управля­ет парамет­рами уста­нов­ки и запус­ка кли­ента. Кли­ент­ское при­ложе­ние Quasar может быть уста­нов­лено в три пап­ки: AppData\Roaming текуще­го поль­зовате­ля, Program Files или System — при этом пос­ледние два пот­ребу­ют наличия от поль­зователь­ской учет­ки при­виле­гий локаль­ного адми­нис­тра­тора. Выбери соот­ветс­тву­ющий вари­ант, уста­новив фла­жок Install client.

Нас­трой­ка парамет­ров уста­нов­ки и запус­ка кли­ента

Те­перь нуж­но выб­рать имя пап­ки для уста­нов­ки при­ложе­ния (Install subdirectory) и имя самой прог­раммы (Install name). Прис­воить этой под­дирек­тории и фай­лу кли­ента пос­ле уста­нов­ки атри­бут «скры­тый» поз­воля­ют флаж­ки Set file attributes to hidden и Set subdir attributes to hidden. Что­бы не изоб­ретать спо­собы авто­мати­чес­кого запус­ка прог­раммы на кли­ент­ской машине, уста­нови фла­жок Run Client when the computer starts и вве­ди отоб­ража­емое имя кли­ента в поле Startup Name — имен­но оно будет отоб­ражать­ся в парамет­рах авто­запус­ка и в спис­ке про­цес­сов на уда­лен­ном ПК.

Вклад­ка Assembly Settings поз­воля­ет нас­тро­ить такие парамет­ры сбор­ки прог­раммы‑кли­ента, как наз­вание при­ложе­ния и ее про­изво­дите­ля, копирайт, номер вер­сии, а так­же добавить кас­томизи­рован­ный зна­чок. Все это, как ты понима­ешь, отоб­ража­ется в свой­ствах инстал­лятора, если кто‑то любопыт­ный пожела­ет туда заг­лянуть. То есть кли­ент мож­но замас­кировать под любой дру­гой исполня­емый файл — хоть кодек, хоть обновле­ние вин­ды, хоть баналь­ный Adobe Flash Player.

Нас­трой­ка кей­лог­гера

Ес­ли ты хочешь, что­бы кли­ент выпол­нял ко все­му про­чему фун­кции кей­лог­гера, перей­ди на вклад­ку Monitoring settings, уста­нови фла­жок Enable keyboard logging, вве­ди наз­вание пап­ки, в которую будет сох­ранять­ся жур­нал кей­лог­гера, и сде­лай ее скры­той, пос­тавив гал­ку Set directory attributes to hidden.

Те­перь мож­но нажать кноп­ку Build и ввес­ти имя для фай­ла кли­ента. Оста­лось толь­ко уста­новить его на уда­лен­ной машине: у меня исполня­емый файл кли­ента получил­ся очень ком­пак­тным — все­го 502 Кбайт.

ТЕСТИРУЕМ «КВАЗАР»

Для начала я попытал­ся уста­новить кли­ент на тес­товой машине с вклю­чен­ным анти­виру­сом Кас­пер­ско­го. Разуме­ется, фокус не про­шел: тот бла­гопо­луч­но при­бил тул­зу пря­мо на флеш­ке, не поз­волив ско­пиро­вать ее на комп или запус­тить. К сожале­нию, добав­ление прог­раммы в исклю­чения так­же не помог­ло: «Кас­пер» бло­киро­вал запуск кли­ента даже при отклю­чен­ной активной защите, пос­ле чего уда­лял его, радос­тно рапор­туя, что обна­ружил ковар­ный и опас­ный тро­ян (при­чем ловит он его, судя по все­му, эвристи­кой).

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

Пос­ле перезаг­рузки уда­лен­ной машины запус­каем на сер­вере Quasar.exe, нажима­ем в вер­хней час­ти окна над­пись Settings и жмем на кноп­ку Start Listening. На экра­не появит­ся окно с пред­ложени­ем добавить выб­ранный в нас­трой­ках порт в пра­вила бран­дма­уэра. Сог­лаша­емся — и в спис­ке уда­лен­ных хос­тов мы видим нашу целевую машину. Уда­лен­ный компь­ютер может исчезнуть из спис­ка, если поль­зователь вык­лючил его или отклю­чил­ся от сети, и авто­мати­чес­ки появ­ляет­ся сно­ва при вклю­чении или возоб­новле­нии соеди­нения.

Вхо­дящее под­клю­чение выпол­нено успешно

Все опе­рации на уда­лен­ной машине выпол­няют­ся по щел­чку пра­вой кноп­кой мыши на ее иден­тифика­торе в окне Quasar Server.

Удаленное администрирование

Все основные фун­кции уда­лен­ного адми­нис­три­рова­ния сос­редото­чены в кон­текс­тном меню Administration. Здесь мож­но отыс­кать сле­дующие воз­можнос­ти вза­имо­дей­ствия с кли­ент­ской машиной:

  • System Information — вывод под­робной информа­ции об аппа­рат­ной и прог­рам­мной кон­фигура­ции уда­лен­ного компь­юте­ра;
  • File Manager — удоб­ный окон­ный фай­ловый менед­жер, похожий на про­вод­ник Windows: он поз­воля­ет переме­щать­ся по дис­кам уда­лен­ного компь­юте­ра, ска­чивать и заг­ружать фай­лы, запус­кать их, если они исполня­емые, пере­име­новы­вать, уда­лять и добав­лять в авто­заг­рузку;
  • Startup manager — ути­лита управле­ния авто­заг­рузкой: показы­вает текущие объ­екты в авто­заг­рузке и отве­чающие за них вет­ви реес­тра. Что­бы добавить новый объ­ект, щел­кни в окне менед­жера пра­вой кноп­кой мыши и выбери Add Entry;
  • Task Manager — откры­вает окно со спис­ком запущен­ных на уда­лен­ной машине задач. Поз­воля­ет убить любой из запущен­ных про­цес­сов или запус­тить новый;
  • Remote Shell — уда­лен­ное выпол­нение команд в обо­лоч­ке cmd.exe;
  • TCP Connections — демонс­три­рует спи­сок откры­тых на уда­лен­ном хос­те TCP-соеди­нений. С помощью кон­текс­тно­го меню мож­но обно­вить соеди­нение или зак­рыть его;
  • Reverse Proxy — под­нима­ет на кли­ент­ской машине обратный прок­си;
  • Registry Editor — откры­вает окно уда­лен­ного редак­тора реес­тра;
  • Remote execute — запуск на кли­ент­ском ПК локаль­ного фай­ла или фай­ла из интерне­та, URL которо­го ты ука­жешь в открыв­шемся окне;
  • Actions — коман­да на вык­лючение, перезаг­рузку или гибер­нацию уда­лен­ной машины.
Фай­ловый менед­жер Quasar очень похож на обыч­ный про­вод­ник Windows

Мониторинг и работа с удаленным хостом

Од­на из самых инте­рес­ных воз­можнос­тей Quasar RAT — прос­мотр уда­лен­ного рабоче­го сто­ла. Эта фун­кция дос­тупна в меню Monitoring → Remote Desktop или User Support → Remote Desktop. В вер­хней час­ти окна уда­лен­ного дес­кто­па рас­положен регуля­тор, с помощью которо­го мож­но задать качес­тво кар­тинки (чем оно выше, тем боль­ше будет тра­фик), и две кноп­ки, поз­воля­ющие вклю­чить либо отклю­чить переда­чу управля­ющих сиг­налов тво­ей мыши и кла­виату­ры на кли­ент­скую машину. Наж­ми кноп­ку Start, что­бы под­клю­чить­ся к уда­лен­ному рабоче­му сто­лу, и Stop, если хочешь прер­вать сес­сию.

Се­анс уда­лен­ного рабоче­го сто­ла

Фун­кция Monitoring → Password Recovery поз­воля­ет вытащить все сох­ранен­ные в бра­узе­ре поль­зовате­ля пароли. Информа­ция пред­став­ляет­ся в виде таб­лички с адре­сом сай­та и сох­ранен­ным паролем, ты можешь ско­пиро­вать его в отдель­ный файл, в буфер обме­на или сте­реть на уда­лен­ном ком­пе.

В раз­деле Monitoring → Keylogger хра­нят­ся жур­налы кей­лог­гера Quasar RAT. Логи тул­за сох­раня­ет в виде фай­лов HTML, каж­дый из них содер­жит информа­цию о при­ложе­нии, в котором выпол­нялся ввод, и запись о нажатых кла­вишах. Спи­сок дос­тупных логов обновля­ется нажати­ем на кноп­ку Get Logs в левом вер­хнем углу окна.

Жур­нал кей­лог­гера Quasar RAT

Кон­текс­тное меню User Support, помимо еще одной кноп­ки вызова уда­лен­ного рабоче­го сто­ла, содер­жит пун­кты Show Messagebox, с помощью которо­го мож­но показать юзе­ру диало­говое окно с про­изволь­ным тек­стом, и Send to Website — вве­ден­ный тобой URL откро­ется на уда­лен­ной машине в бра­узе­ре, нас­тро­енном по умол­чанию. А если ты уста­новишь фла­жок Visit hidden, поль­зователь ничего не уви­дит, но сайт откро­ется в скры­том окне, и его посеще­ние оста­нет­ся в History.

Пе­ред отправ­кой диало­гово­го окна конеч­ному получа­телю мож­но про­тес­тировать его на сво­ей машине

На­конец, кон­текс­тное меню Client management откры­вает перед уда­лен­ным адми­нис­тра­тором сле­дующие воз­можнос­ти:

  • Elevate Client Permissions — Quasar попыта­ется повысить сис­темные при­виле­гии при­ложе­ния‑кли­ента на уда­лен­ной машине (при этом у него сра­бота­ет UAC с прось­бой под­твер­дить запуск скрип­та в коман­дной стро­ке, поэто­му будь осто­рожен);
  • Update — коман­да на обновле­ние кли­ента: выбери файл кли­ента на локаль­ной машине или ука­жи URL его рас­положе­ния в интерне­те, выбери кли­ент в спис­ке и наж­ми Execute Remotely;
  • Reconnect — возоб­новить соеди­нение с уда­лен­ной машиной;
  • Disconnect — разор­вать соеди­нение;
  • Reinstall — уда­лить кли­ент с поль­зователь­ско­го компь­юте­ра.

ЗАКЛЮЧЕНИЕ

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

Кли­ент­ская часть живет в поль­зователь­ской вин­де тихо и незамет­но, прак­тичес­ки не пот­ребляя ресур­сов. Единс­твен­ный серь­езный недос­таток это­го инс­тру­мен­та — кли­ент палит­ся анти­виру­сами (по край­ней мере анти­виру­сом «Лабора­тории Кас­пер­ско­го»), что пот­ребу­ет либо отклю­чить защиту, либо шаманить с упа­ков­щиками и про­тек­торами. Да и их исполь­зование не гаран­тиру­ет «невиди­мос­ти» ути­литы для эвристи­чес­ких ана­лиза­торов, отсле­жива­ющих подоз­ритель­ные при­ложе­ния по их поведе­нию. А поведе­ние Quasar RAT, надо ска­зать, очень подоз­ритель­ное!

Ины­ми сло­вами, «Ква­зар» — доволь­но неп­лохая аль­тер­натива дру­гим ути­литам уда­лен­ного адми­нис­три­рова­ния вро­де TeamViewer, осо­бен­но если исполь­зовать ее нуж­но, не вызывая лиш­них воп­росов у юзе­ра. А вот то, как имен­но исполь­зует­ся эта тул­за, оста­нет­ся на совес­ти поль­зовате­ля. Глав­ное — не забывай об ответс­твен­ности, которую наше законо­датель­ство пре­дус­матри­вает за рас­простра­нение нехоро­ших прог­рамм и шалос­ти с несан­кци­они­рован­ным дос­тупом к чужим компь­юте­рам.