В этом выпус­ке: бру­тим вир­туаль­ные хос­ты, исполь­зуя TLS SNI, экспор­тиру­ем дамп в Wireshark, собира­ем спис­ки для пен­теста, собира­ем све­дения, исполь­зуя SNMP без MIB, получа­ем кон­троль над сер­вером через BMC и зах­ватыва­ем кон­троль над сер­вером через BMC, исполь­зуя IPMI.

warning

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

 

Задача

Проб­рутить вир­туаль­ные хос­ты, исполь­зуя TLS SNI

 

Решение

Я думаю, тебе извес­тно, что на одном веб‑сер­вере может рас­полагать­ся нес­коль­ко сай­тов. Это воз­можно за счет при­мене­ния вир­туаль­ных хос­тов. Ког­да поль­зователь под­клю­чает­ся к сай­ту, то в HTTP-заголов­ках переда­ется в поле Host имя сер­вера, куда хочет попасть поль­зователь, и на осно­вании это­го веб‑сер­вер отда­ет тот или иной сайт. Таким обра­зом, на одном IP-адре­се может рас­полагать­ся любое количес­тво сай­тов.

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

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

Для таких ситу­аций недав­но и появи­лась идея бру­та вир­туаль­ных хос­тов с исполь­зовани­ем TLS- (он же SSL-) рас­ширения SNI.

Из­началь­но пред­полага­лось, что SSL фак­тичес­ки при­вязы­вал­ся к IP-адре­су хос­та. Ты под­клю­чаешь­ся, а сер­вер тебе воз­вра­щает свой сер­тификат. Воз­можнос­ти передать сер­веру имя хос­та, к которо­му ты под­клю­чаешь­ся, не было. В свою оче­редь, и у сер­вера не было воз­можнос­ти отдать тебе необ­ходимый сер­тификат (если у него их было нес­коль­ко). Что­бы испра­вить эту проб­лему, внед­рили такое рас­ширение для про­токо­ла TLS, как SNI (Server Name Indication).

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

Про­тес­тировать и пос­мотреть при­меры кон­фигов для Apache мож­но тут.

Так вот, идея бру­та лежит на повер­хнос­ти. Все, что нам нуж­но, — менять имя хос­та в SNI в ClientHello и пар­сить отве­ты, отсле­дить дру­гой сер­тификат дос­таточ­но прос­то. К момен­ту выхода этот статьи в паб­лик, я думаю, успею намутить и выложить прос­тень­кий PoC (смот­ри у меня в твит­тере). Из дос­тоинств, кро­ме прос­тоты пар­синга, еще мож­но упо­мянуть незамет­ность (пол­ного хен­дшей­ка не про­исхо­дит, дан­ных по HTTP не посыла­ем). Кста­ти, у тех­ники боль­шой потен­циал — надо толь­ко дож­дать­ся, ког­да SPDY или даже HTTP вер­сии 2 будет пов­семес­тным.

 

Задача

Эк­спор­тировать дамп в Wireshark

 

Решение

Wireshark явля­ется де‑фак­то стан­дартом для ана­лиза тра­фика. Воз­можнос­ти его дос­таточ­но широки, а количес­тво под­держи­ваемых про­токо­лов (точ­нее, дис­секто­ров, с помощью которых пар­сятся про­токо­лы) заш­калива­ет. В общем, если не зна­ешь, как осу­щест­вля­ется под­клю­чение к любимо­му сай­ту, то Wireshark тебе поможет: уви­дишь всю пос­ледова­тель­ность TCP handshake и резол­ва UDP, пос­мотришь поля всех сло­ев TCP/IP-сте­ка.

Но сегод­ня хотелось бы кос­нуть­ся инте­рес­ной фичи — воз­можнос­ти импорта в Wireshark дам­пов пакетов, при­чем мож­но не целого пакета (по всей OSI), а c любого уров­ня. Нап­ример, с тран­спортно­го (TCP).

За­чем это может быть нуж­но? Ну, как минимум для того, что­бы никуда не отправ­лять дан­ные, а сра­зу их ана­лизи­ровать. Я вот пока смот­рел TLS SNI — отправ­лял пакеты с помощью скрип­та, сни­фал их в Wiresharkе и толь­ко пос­ле это­го мог раз­бирать. А так мож­но было сра­зу импорти­ровать в него.

Дан­ные для импорта (File-Import from Hex Dump) дол­жны быть, во‑пер­вых, в hex’овом фор­мате, а во‑вто­рых, с допол­нитель­ным полем offset (см. рисунок), которое ука­зыва­ет на отступ. Так как обыч­но дам­пы пред­став­ляют собой прос­то пос­ледова­тель­ность, их необ­ходимо нем­ного кон­верти­ровать.

Сде­лать это мож­но либо руч­ками (а‑ля Python), либо скрип­тиком от Дидье Сти­вен­са (Didier Stevens). Прав­да, этот скрипт сов­местим толь­ко с его зна­мени­тым hex-редак­тором 010 Editor.

Еще момент: если у тебя есть толь­ко часть пакета (не все уров­ни), то мож­но ука­зать Wireshark’у, что­бы он «забил» отсутс­тву­ющую часть пус­тышка­ми. Дела­ется это при импорте — Dummy Headers, и далее выбира­ешь уро­вень.

Конвертация скриптов и импорт в Wireshark
Кон­верта­ция скрип­тов и импорт в Wireshark
 

Задача

Соб­рать спис­ки для пен­теста

 

Решение

Пен­тест — это дело очень прак­тичес­кое. Даже если какая‑то сис­тема с пер­вого взгля­да кажет­ся дос­таточ­но защищен­ной, «пощупав» ее с раз­личных сто­рон, мы все рав­но най­дем хоть что‑то дель­ное. Раз­личные пароли­ки, кри­вые кон­фигура­ции, вре­мен­ные фай­лы и про­чее. С дру­гой сто­роны, есть целая мас­са око­лоте­оре­тичес­ких и лабора­тор­ных атак, которые на прак­тике неп­римени­мы. Я вот под­держи­ваю опре­делен­ное мне­ние, что та же Beast-ата­ка на SSL (наделав­шая неког­да мно­го шума) совер­шенно далека от жиз­ни.

Как ни стран­но, одним из основных методов пен­тесте­ра явля­ется раз­личный брут­форс, то есть перебор (в более широком понятии). При­чем спи­соч­ков для бру­та необ­ходимо дос­таточ­но мно­го от раз­лично­го вида паролей до типовых URL’ов. Обыч­но они накап­лива­ются в том или ином виде в ходе работ, но все‑таки необ­ходим какой‑то базис. Так вот, его мож­но почер­пнуть в одном из OWASPов­ских про­ектов — SecList. На гит­хабе (где он фак­тичес­ки рас­полага­ется) мож­но най­ти под­борки паролей, дефол­тных путей по основным веб‑сер­верам, стро­чек для фаз­зинга и перебо­ра под­доменов и так далее. Отличный набор­чик — качай да попол­няй.

 

Задача

Соб­рать све­дения, исполь­зуя SNMP без MIB

 

Решение

SNMP (по умол­чанию UDP/161) — это такой борода­тый про­токол управле­ния и монито­рин­га за раз­лично­го вида девай­сами, который очень час­то исполь­зует­ся в кор­поратив­ных сетях. О нем я писал номеров 20–30 назад :). Но кос­нусь его еще раз.

Ес­ли опи­сывать в общих чер­тах, то у нас есть агент, который кон­солиди­рует информа­цию о какой‑то сис­теме, а есть менед­жер, который под­клю­чает­ся и по необ­ходимос­ти зап­рашива­ет нуж­ную информа­цию. Есть еще такая шту­ка, как snmp trap, — воз­можность аген­та ска­зать менед­жеру, что что‑то про­изош­ло. Для дос­тупа к аген­ту исполь­зует­ся community string (читай: пароль).

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

Для дос­тупа к кон­крет­ному зна­чению необ­ходимо ука­зать его ключ — OID. Это мес­тонахож­дение зна­чения в дереве, так как каж­дое зна­чение меж­ду точ­ками ука­зыва­ет на некото­рую вет­ку — 1.3.6.1.2.1.1.3.0. При­мер дерева мож­но пос­мотреть на рисун­ке.

Дерево OID в SNMP
Де­рево OID в SNMP

Есть еще такое понятие — MIB (Management Information Bases). По сути, это офи­циаль­ное опи­сание какой‑то вет­ки дерева — какой OID для хра­нения чего исполь­зует­ся. Есть MIB для дефол­тных веток, а есть спе­циаль­ные от отдель­ных про­изво­дите­лей (у Cisco, нап­ример, их нес­коль­ко).

Так вот, дос­туп к кас­томным MIB’ам зачас­тую зак­рыт (то есть ска­чать у про­изво­дите­ля их не получит­ся), но обла­зить все угол­ки дос­тупной информа­ции хочет­ся. Вот тут и помога­ет нам одна из команд SNMP-про­токо­ла GetNextRequest, которая дает нам воз­можность про­читать сле­дующее зна­чение. При этом агент авто­мати­чес­ки будет спус­кать­ся по дереву, и мы смо­жем таким обра­зом прой­ти по всем дос­тупным вет­кам (даже где MIB’а у нас нет).

Вот этот самый фун­кци­онал и реали­зован в зна­мени­той тул­зе snmpwalk. При­мер исполь­зования:

snmpwalk -v 2c -c public 192.168.0.254 .1
  • -v — вер­сия SNMP про­токо­ла;
  • -c — community string;
  • 192.168.0.254 — ска­ниру­емый хост;
  • .1 — ска­ниру­емая вет­ка дерева.

Кос­нулись мы этой темы сегод­ня потому, что в SNMP иног­да мож­но най­ти сов­сем уди­витель­ные вещи. Недав­но в Metasploit были до­бав­лены модули, которые для груп­пы сетевых девай­сов из опре­делен­ного поля по SNMP вытас­кивали пароли (хеши) всех поль­зовате­лей девай­са. И если для поль­зовате­лей в самих девай­сах еще меня­ют пароли, то вот про community-стрин­ги чаще все­го забыва­ют. Так что рекомен­дую гра­бить все, что отда­ется по SNMP, и прос­матри­вать на раз­личные при­ятности.

Могучая железячка Brocade и дисклоз хешиков
Мо­гучая железяч­ка Brocade и дис­клоз хешиков
 

Задача

По­лучить кон­троль над сер­вером через BMC

 

Решение

Про­дол­жим тему про без­гра­мот­ную кон­фигура­цию железок. Где‑то с год назад про­кати­лась боль­шая вол­на инфы про взлом сер­веров с исполь­зование про­токо­ла IPMI. И могу тебе под­твер­дить — поч­ти во всех кор­поратив­ных сетях это работа­ет :).

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

Есть сер­веры (желез­ные шту­ки) кор­поратив­ного уров­ня. В смыс­ле брен­довые, дорогие и, воз­можно, мощ­ные. Во мно­гих из них встро­ена допол­нитель­ная железяч­ка (либо отдель­но встав­лено) — BMC, Baseboard Management Controllers. По сути, это отдель­ный компь­ютер (компь­ютер внут­ри компь­юте­ра — вау! :)), который исполь­зует­ся для уда­лен­ного управле­ния сер­вером. Нап­ример, это может при­годить­ся, ког­да у тебя сер­вер под­вис или сло­малось желез­ное что‑то и фак­тичес­ки нет воз­можнос­ти уже под­клю­чить­ся нап­рямую к сер­веру и про­мони­торить, что с ним. А тут бац — и через BMC име­ешь дос­туп. При­чем воз­можнос­тей через BMC мас­са: это и прос­мотр раз­личных харак­терис­тик сер­вера, и воз­можность управлять питани­ем, а глав­ное — воз­можность уда­лен­но под­клю­чить устрой­ства (жес­ткий диск, DVD-образ) и иметь пол­ный визу­аль­ный дос­туп, то есть видеть изоб­ражение, иметь воз­можность тыкать мышью и кла­цать кла­вой. И из таких воз­можнос­тей и появ­ляет­ся вто­рое при­мене­ние для BMC — воз­можность уда­лен­ной уста­нов­ки ОС по типу с сис­темами вир­туали­зации. Все это ста­новит­ся воз­можным потому, что BMC реаль­но встра­ивает­ся в сер­вер и име­ет пря­мой дос­туп к ком­понен­там материн­ской пла­ты.

Доступ BMC к различным компонентам сервера
Дос­туп BMC к раз­личным ком­понен­там сер­вера

Как видишь, BMC — вещь кру­тая, но к ней надо иметь дос­туп, и, как ни стран­но, для это­го дос­таточ­но час­то исполь­зует­ся тот же сетевой адап­тер, что и у сер­вера. Вот толь­ко IP-шник дру­гой. По бест­прак­тис, конеч­но, BMC’шки дол­жны выделять­ся в отдель­ный сетевой сег­мент... да вот толь­ко мно­гие даже не зна­ют про BMC и их воз­можнос­ти, что уж тут говорить про прак­тики. А ведь BMC по умол­чанию вклю­чен.

Окей, с целью и задачей, я думаю, ясно — захакать BMC и зах­ватить мир. Но как же это сде­лать? Итак, BMC — это мод­ные шту­ки, а потому и методов дос­тупа они пре­дос­тавля­ют мас­су. Это и веб, и SSH, и IPMI, плюс вся­кое дру­гое… Самое труд­ное, веро­ятно, — это най­ти в кучах «мусора», что встре­чает­ся в кор­поратив­ке, то, что нам нуж­но. А сде­лать это иног­да ой как неп­росто.

Есть ряд методов. Во‑пер­вых, каж­дая кор­порация при­дума­ла свое наз­вание для BMC и окру­жающих его тех­нологий: HP iLO, Dell DRAC/iDRAC, ASUS iKVM BMC, Oracle/Sun ILOM, Fujitsu iRMC, IBM IMM, Supermicro IPMI. Если мы видим где‑то такие сло­ва, то сра­зу понима­ем, что это — «слад­кое».

Уви­деть мы их можем чаще все­го на пор­тах 80 (в HTTP), а так­же в SSL-сер­тифика­тах с 443-го пор­та, то есть при ска­ниро­вании Nmap’ом с –sV –sC (опре­деле­ние сер­висов и запуск дефол­тных скрип­тов). Вто­рой вари­ант — IPMI, но его я кос­нусь отдель­но в сле­дующем воп­росе. Дру­гие же сер­висы чаще все­го воз­вра­щают слиш­ком общую информа­цию.

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

Дефолтные пароли к BMC
Де­фол­тные пароли к BMC

Что же делать, если они не подош­ли? Вари­ант пер­вый — еще поб­рутить, вари­ант вто­рой — вос­поль­зовать­ся уяз­вимос­тями. Так, в веб‑скрип­тах от Supermicro IPMI наш­ли нес­коль­ко перепол­няшек, в том чис­ле и ано­ним­ных. Плюс в тех же Supermicro исполь­зует­ся UPNP уяз­вимой вер­сии. Поиск в Metasploit’e — search supermicro выдаст тебе необ­ходимые резуль­таты.

Ва­риант тре­тий — поломать через IPMI. Об этом читай далее.

 

Задача

Зах­ватить кон­троль над сер­вером через BMC, исполь­зуя IPMI

 

Решение

Про­дол­жим пре­дыду­щий воп­рос. Итак, IPMI — это Intelligent Platform Management Interface, то есть еще один про­токол управле­ния, под­держи­ваемый боль­шинс­твом топовых про­изво­дите­лей (см. выше) и задуман­ный неког­да Intel’ом.

У него есть нес­коль­ко спе­цифи­каций: 1, 1.5 и 2.0. Пер­вая не под­держи­вала управле­ние через сеть (исполь­зовал­ся RS232), а потому нам не очень инте­рес­на. 1.5 и 2.0 выш­ли в 2001 и 2004 году соот­ветс­твен­но. При­чем вто­рая акту­аль­ная и под­держи­вает­ся все­ми про­изво­дите­лями.

Ос­новная раз­ница для нас меж­ду 1.5 и 2.0 была во внед­рении допол­нитель­ных мер защиты и допол­нитель­ных воз­можнос­тей (уда­лен­ная кон­соль, воз­можность проб­роса девай­сов).

Сам IPMI по сети работа­ет через про­токол RMCP, исполь­зующий 623-й UDP-порт (но может встре­тить­ся и на TCP). Пока что Nmap не уме­ет детек­тировать и опре­делять, что сер­вис — это IPMI, а жаль. Но с поис­ком отлично справ­ляет­ся модуль Metasploit’а, плюс выводит информа­цию по вер­сиям.

use auxiliary/scanner/ipmi/ipmi_version
set RHOSTS 192.168.0.1/24
run
Поиск IPMI. Вывод версии и возможность анонимного входа
По­иск IPMI. Вывод вер­сии и воз­можность ано­ним­ного вхо­да

Так вот, как было ска­зано выше, в 2.0 добави­ли поболь­ше «секь­юри­ти». Я вот лич­но не понимаю, как вооб­ще такое мог­ло появить­ся...

IPMI 2.0 под­держи­вает 14 видов раз­лично­го шиф­рования и аутен­тифика­ции поль­зовате­ля в сис­теме (раз­личные виды хеш‑фун­кций и методы для переда­чи пароля, виды шиф­рования тра­фика). Зачем оно так сде­лано — ума не при­ложу. Но проб­лема в дру­гом.

Кто‑то удо­сужил­ся добавить в спе­цифи­кацию так называ­емый cipher 0 (zero), который под­разуме­вает отсутс­твие необ­ходимос­ти переда­вать пароль. Да‑да, у нас все секь­юрно: пароль не переда­ем, аутен­тифици­руем поль­зовате­ля толь­ко по логину. WTF?!

Да, такая вот фича. Но что еще хуже (не для нас, конеч­но), до недав­него вре­мени у поч­ти всех про­изво­дите­лей была вклю­чена под­дер­жка этой фичи по умол­чанию. То есть все, что нам нуж­но для дос­тупа, — знать имя логина. А он, как мы видели, поч­ти вез­де известен.

Но и это еще не все. На некото­рых IPMI сущес­тву­ет так­же null-поль­зователь, то есть поль­зователь без име­ни и с таким же пус­тым паролем, и при этом с админ­ски­ми пра­вами.

О’кей, как нам это все заюзать?

Во‑пер­вых, най­ден­ные ранее IPMI чека­ем на под­дер­жку cipher 0.

use auxiliary/scanner/ipmi/ipmi_cipher_zero
set RHOSTS 192.168.0.1/24
run
Проверка на поддержку Cipher 0
Про­вер­ка на под­дер­жку Cipher 0

Да­лее, под­клю­чаем­ся и выпол­няем коман­ды. Для это­го нам нуж­на тул­зенка ipmitool.

sudo apt-get install ipmitool

Дан­ная коман­да дос­тавит нам ее в ОС. Кста­ти, рань­ше был косяк, что вер­сия IPMI в Kali была ста­рой и не под­держи­вала такую шту­ку, как cipher 0. Далее пишем

ipmitool -I lanplus -C 0 -H 192.168.0.10 -U Administrator -P any_password user list
  • -I lanplus — ука­зыва­ем, что мы исполь­зуем IPMI вер­сии 2;
  • -С 0 — ука­зыва­ем, что при­менить cipher 0, то есть без пароля;
  • -U — имя поль­зовате­ля (он дол­жен сущес­тво­вать);
  • -P — пароль мож­но ука­зать любой;
  • user list — коман­да пос­ле аутен­тифика­ции — вывес­ти спи­сок поль­зовате­лей.

В некото­рых ману­алах пишут, что надо сна­чала пытать­ся выпол­нить коман­ду без cipher 0, а потом с ним, но у меня и без это­го работа­ет.

Ес­ли хочет­ся под­клю­чить­ся под ано­ним­ным юзе­ром, то прос­то на мес­те логина и пароля оставля­ем ничего (точ­нее, кавыч­ки с пус­тотой):

ipmitool -I lanplus -H 192.168.0.10 -U '' -P '' user list

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

ipmitool -I lanplus -C 0 -H 192.168.0.10 -U Administrator -P any_password user set name 6 hacker
ipmitool -I lanplus -C 0 -H 192.168.0.10 -U Administrator -P any_password user set password 6 password
ipmitool -I lanplus -C 0 –H 192.168.0.10 -U Administrator -P any_password user priv 6 4
ipmitool -I lanplus -C 0 -H 192.168.0.10 -U Administrator -P any_password user enable 6

Суть ее такова. Ранее в user list мы смот­рим сво­бод­ный слот (в при­мере — 6). А пос­ле для него в пер­вой стро­ке зада­ем имя юзе­ра (hacker), далее зада­ем пароль (password), уста­нав­лива­ем при­виле­гии адми­нис­тра­тора (4) и в кон­це вклю­чаем акка­унт. Теперь мож­но идти в веб‑интерфейс.

Сог­ласись, эти баги — тре­шатин­ка. Но и это еще не все. В той же спе­цифи­кации есть под­дер­жка еще одной фичи «безопас­ной аутен­тифика­ции».

Он намути­ли еще один вид «безопас­ной» аутен­тифика­ции (HMAC-SHA-1, под­робнее мож­но почитать тут), при которой до пол­ной аутен­тифика­ции мож­но получить соленый хеш пароля поль­зовате­ля. Да‑да, нуж­но знать толь­ко лишь сущес­тву­ющее имя поль­зовате­ля в сис­теме, и бац! У нас уже есть все необ­ходимое для бру­та: и соль, и хеш.

Что хуже все­го — это часть спе­цифи­кации, то есть бага на уров­не про­токо­ла, а потому и под­держи­вает­ся все­ми вен­дорами!

Опять‑таки для про­веде­ния ата­ки нам поможет MSF:

use auxiliary/scanner/ipmi/ipmi_dumphashes
set RHOSTS 192.168.0.10
set OUTPUT_HASHCAT_FILE /home/user/ipmi_hashcat.txt
run

По умол­чанию MSF так­же про­бега­ется по получен­ным хешам с мини‑набором паролей, так что, воз­можно, и к Hashcat’у при­бегать не пот­ребу­ется. Если же пот­ребу­ется, то фай­лик из OUTPUT_HASHCAT_FILE нам при­годит­ся.

При­мер для запус­ка Hashcat:

hashcat --username -m 7300 ipmi_hashcat.txt -a 0 passwords.txt
  • --username — про­пус­тить имя поль­зовате­ля из фай­ла;
  • -m 7300 — ука­зыва­ем, что лома­ем IPMI соленые хешики;
  • -a 0 num_passwords.txt — говорим, что исполь­зуем перебор по сло­варю, и ука­зыва­ем его.

Но и это еще не все! Так уж получа­ется, что хра­нить пароль BMC-шке необ­ходимо в откры­том виде (в смыс­ле не в виде хеша, хотя мог­ли бы и зашиф­ровать), так как он исполь­зует­ся при аутен­тифика­ции. И ведь наш­ли зло­деи мес­то хра­нения, как минимум для Supermicro IPMI: /nv/PSBlock или /nv/PSStore. Да, конеч­но, в слу­чае дос­тупа BMC через cipher 0 мы можем най­ти и вытащить пароль от реаль­ных уче­ток и с ними уже пой­ти на дру­гие сер­вера, но это не так серь­езно.

А серь­езно то, что в тех же замучен­ных Supermicro IPMI эти фай­лики дос­тупны всем без аутен­тифика­ции по UPnP на пор­ту 49152, который так­же дос­тупен по умол­чанию!

http://192.168.0.10:49152/PSBlock, и все!

No comments, как говорит­ся.

Скачиваем PSBlock и видим учетки и пароли
Ска­чива­ем PSBlock и видим учет­ки и пароли

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

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