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



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

Си­няя коман­да — защит­ники. В нее вхо­дили Фреш, Трик­си и еще один нез­накомый парень, пред­ста­вив­ший­ся Иго­рем. Их отсе­лили в сосед­нее помеще­ние, но Лео все рав­но с оза­бочен­ным видом бегал туда‑сюда, пери­оди­чес­ки заг­лядывая Кирил­лу в монитор, чем жут­ко дей­ство­вал ему на нер­вы. Получа­лось, что сей­час Кирилл играл про­тив сво­его быв­шего работо­дате­ля и, ко все­му про­чему, про­тив избран­ника сво­ей быв­шей девуш­ки. А зна­чит, обла­жать­ся было никак нель­зя, это­го он себе уж точ­но не прос­тит.

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

— Ну что, ког­да нач­нем? — Ваня ерзал на сту­ле, слов­но сидел на гус­тонасе­лен­ном муравей­нике, нас­толь­ко ему не тер­пелось прис­тупить к делу.

— Да вот пря­мо сей­час, — отклик­нулся Кирилл, запус­кая ска­нер пор­тов. — Зай­мем­ся работой, пока наши ува­жаемые кол­леги изво­лят пить кофе.

Спи­сок потен­циаль­ных целей им любез­но пре­дос­тавил заказ­чик, отдель­но упо­мянув в догово­ре, куда лезть катего­ричес­ки нель­зя, и изба­вив их тем самым от необ­ходимос­ти про­водить пред­варитель­ную раз­ведку инфраструк­туры. Тем не менее Кирилл все рав­но решил на вся­кий слу­чай поис­кать дру­гие потен­циаль­ные точ­ки вхо­да: чем боль­ше ты зна­ешь о сети, в которую собира­ешь­ся вло­мить­ся, тем луч­ше.

— А вот это уже инте­рес­но, — задум­чиво про­изнес он, и Иван прид­винул­ся бли­же, что­бы ничего не про­пус­тить.

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

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

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

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

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

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

— А спи­сок где взять? — усом­нился Леонид.

— Да из базы фин­гер­прин­тов Nmap, там боль­шой набор иден­тифика­торов пре­дус­мотрен. Бери и поль­зуйся, даже выдумы­вать ничего не нуж­но.

— Блин, точ­но! — хлоп­нул себя по лбу Фреш. — Кирюх, я всег­да говорил, что баш­ка у тебя золотая.

— Глав­ное, что­бы ее кому‑нибудь отдель­но от осталь­ного орга­низ­ма не про­дали… И прог­рамму я бы нас­тро­ил таким обра­зом, что­бы при каж­дом зап­росе она прис­ваива­ла одно­му и тому же пор­ту оди­нако­вый фин­гер­принт. А то на мес­те зло­дея я, нап­ример, пов­торил бы ска­ниро­вание пару раз и сопос­тавил резуль­таты, а потом те пор­ты, где откли­ки раз­лича­ются, выкинул из выбор­ки.

— Точ­няк! Спа­сибо!

Ле­онид радос­тно убе­жал в сосед­нюю ком­нату, а Кирилл тем вре­менем про­дол­жил сидеть за ноут­буком, вгля­дыва­ясь в тем­ный квад­рат тер­минала, слов­но в ноч­ное окно.

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

— А зачем?

— Что­бы ска­ниро­вание у ата­кующих затяну­лось надол­го. Тог­да есть шанс, что они зас­куча­ют и бро­сят это неб­лагодар­ное дело… Прав­да, от авто­мати­чес­ких ска­неров это все рав­но не защитит.

Иван смот­рел на про­исхо­дящее, открыв рот, — для него это пока еще выг­лядело непос­тижимой маги­ей, но Кирилл знал: магия закан­чива­ется ров­но в тот момент, ког­да начина­ешь вни­матель­но под­мечать детали. Нап­ример, то, как сер­вер отве­чает на зап­росы.

Ки­рилл оста­новил ска­нер и перек­лючил­ся на дру­гие инс­тру­мен­ты. Теперь его инте­ресо­вало не столь­ко наличие сер­висов, сколь­ко поведе­ние самой сети. Вре­мя откли­ка, порядок отве­тов, мел­кие несо­ответс­твия при­выч­ной кар­тине мира. Он начал акку­рат­но «про­щупы­вать» выб­ранные сер­висы, про­веряя, нас­коль­ко охот­но они рас­ска­зыва­ют о себе. Заголов­ки, вер­сии, нетипич­ные поля в пакетах — все это шаг за шагом скла­дыва­лось в моза­ику. Ничего кри­тич­ного, но дос­таточ­но, что­бы понять: сис­тема собира­лась и нас­тра­ива­лась раз­ными людь­ми, в раз­ное вре­мя и с раз­ным уров­нем акку­рат­ности. Вот, нап­ример, одна из машин в сети бук­валь­но приг­лашала заг­лянуть к ней в гос­ти: тут тебе и дырявый сер­вис печати, и ста­рый доб­рый MS05-039, через который в сис­тему мож­но было вой­ти, как в откры­тую дверь магази­на в день рас­про­даж.

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

— Не спе­ши, — оса­дил он прак­тикан­та. — Самый яркий свет обыч­но зажига­ют для того, что­бы сле­телось поболь­ше мотыль­ков. Это ханипот, слы­шал про такое? При­ман­ка. «Синие» выс­тавили этот сер­вер спе­циаль­но, что­бы мы на него наб­росились. Как толь­ко ты попыта­ешь­ся про­экс­плу­ати­ровать там уяз­вимость, их сис­тема монито­рин­га тут же зафик­сиру­ет наш IP и все осталь­ное, вплоть до вер­сии ядра моего «Линук­са». И даже, если Фреш не сов­сем дурак, поп­робу­ет про­бить нас в ответ. Мы пой­дем дру­гим путем.

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

— Маль­чики, перерыв на обед, — про­воз­гла­сила она.

Ки­рилл пос­мотрел на уго­щение, потом на экран, где в тер­минале мед­ленно пол­зли стро­ки. Иван с Сер­геем рез­во отклик­нулись на при­зыв, а сам он, нес­мотря на голод­ное бур­ление в животе, вер­нулся к кла­виату­ре: кажет­ся, в логах уда­лось заметить неч­то любопыт­ное. По все­му выходи­ло, что сет­кой рулил сер­вер под управле­нием 2003-й вин­ды, на которой кру­тил­ся кон­трол­лер домена Active Directory. Для сис­темно­го адми­нис­тра­тора это был рай­ский сад, где с помощью мыш­ки и кра­сивых око­шек он мог зап­росто объ­еди­нять сетевых поль­зовате­лей в груп­пы, наз­начая и отби­рая у них нуж­ные пра­ва. Для хакера же кон­трол­лер домена пред­став­лялся Вавило­ном, выс­тро­енным из раз­номас­тных прог­рамм и ста­рых про­токо­лов, дер­жавших­ся исклю­читель­но на вере в то, что ник­то не догада­ется дер­нуть за нуж­ную верев­ку, к которой при­вяза­на доб­рая полови­на этой шат­кой конс­трук­ции.

— Похоже, кто‑то забыл отклю­чить null sessions, — про­бор­мотал впол­голоса Кирилл.

— А это что такое? — перес­про­сил с набитым ртом Иван.

— Ано­ним­ное под­клю­чение. Без осо­бых при­виле­гий, зато с богаты­ми пер­спек­тивами. Как минимум мы смо­жем получить спи­сок зарегис­три­рован­ных на сер­вере поль­зовате­лей.

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

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

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии