Длинный-предлинный кейс. Как мы захватили два домена с помощью ИНН, PostgreSQL и антивируса

1 час назад 4

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

Об инфраструк­туре мы ничего не зна­ли — на руках была лишь мас­ка домена *.domain.com. Допол­нитель­ной прег­радой стал WAF, который кол­леги незадол­го до это­го внед­рили и решили про­верить на проч­ность в боевых усло­виях.

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

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

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

ИНН вместо пароля

Пос­ле стан­дар­тно­го активно­го рекона и пас­сивно­го сбо­ра vhost, под­доменов и про­чего мы стол­кну­лись с бло­киров­ками WAF. Поэто­му решили перей­ти к более деталь­ному ана­лизу вруч­ную.

При руч­ном ана­лизе мы под­робно изу­чили биз­нес‑про­цес­сы и наш­ли информа­цию о том, как фор­миру­ют пароли для кор­поратив­ных учет­ных записей. Эта информа­ция содер­жалась в одной из пре­зен­таций для новых «кон­суль­тан­тов», выложен­ной в откры­тый дос­туп на облачном дис­ке.

За­тем мы наш­ли кор­поратив­ные адре­са элек­трон­ной поч­ты всех сот­рудни­ков орга­низа­ции в их кар­точках.

В пре­зен­тации ска­зано, что пароль сов­пада­ет с ИНН, поэто­му мы прос­то загуг­лили его. Из‑за спе­цифи­ки биз­неса все про­дав­цы были зарегис­три­рова­ны как ИП, а их ИНН мож­но най­ти в откры­том реес­тре.

За­тем мы исполь­зовали поч­товый логин и ИНН в качес­тве пароля, успешно вош­ли в поч­товые ящи­ки и под­твер­дили ком­про­мета­цию учет­ных записей.

Точ­но так же мы вош­ли еще в 3–4 поч­товых ящи­ка, что­бы рас­ширить охват и изу­чить роли и пра­ва кон­крет­ных сот­рудни­ков в ИТ‑инфраструк­туре.

info

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

За­тем мы наш­ли один из dev-стен­дов за SSO-авто­риза­цией и успешно вош­ли с помощью связ­ки «OSINT mindset + ИНН‑пароль». Пос­ле это­го при­нялись изу­чать воз­можнос­ти веб‑ресур­са.

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

От LINQ до SYSTEM

При ана­лизе это­го веб‑ресур­са наш­лась конеч­ная точ­ка (ее FQDN изме­нен):

https://development.domain.com/endpoint.aspx?pageName=DataSources.Item

Нас­тоящий подарок для пен­тесте­ра! При гра­мот­ном реконе и пра­виль­ном под­ходе такие вещи встре­чают­ся неред­ко. Мы поняли, что перед нами LINQ-зап­росы на C#.

Источник