Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Mundësia për të ulur pajisjet që bazohen në RouterOS (Mikrotik) rrezikon qindra mijëra pajisje rrjeti. Kjo dobësi lidhet me helmimin e caches DNS të protokollit Winbox dhe lejon ngarkimin e një firmware të vjetruar (me rivendosjen e fjalëkalimit 'default') ose të modifikuar në pajisje.

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Detajet e dobësisë

Terminali RouterOS mbështet komandën e zgjidhjes për të kërkuar DNS.

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Kjo kërkesë trajtohet nga një skedar binar me emrin resolver. Resolver është një nga shumë skedarë binarë që lidhen me protokollin Winbox në RouterOS. Në një nivel të lartë, 'mesazhet' që dërgohen në portin Winbox mund të ruterizohen në skedarë të ndryshëm binarë në RouterOS bazuar në një sistem numërimi të bazuar në array.

Në mënyrë të parazgjedhur, funksioni i serverit DNS në RouterOS është i çaktivizuar.

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Megjithatë, edhe kur funksioni i serverit është i çaktivizuar, routeri ruan caches DNS të vetat.

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Kur bëjmë një kërkesë duke përdorur winbox_dns_request, për shembull, example.com, routeri do të ruajë rezultatin.

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Pasja e mundësisë për të specifikuar një server DNS për të kaluar kërkesën e bën lehtësisht të mundshme futjen e adresave të gabuara. Për shembull, mund të konfigurohet një implementim të serverit DNS nga Filip Kraus, për të përgjigjur gjithmonë me një përgjigje A që përmban adresën IP 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("---- Përgjigje:n", reply)
    return reply.pack()

Tani, kur të kërkoni example.com me Winbox, mund të shihni se cache DNS i router-it është i helmuar.

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Sigurisht, helmimi i example.com nuk është shumë i dobishëm, pasi router-i në realitat nuk do ta përdorë atë. Megjithatë, router-i ka nevojë të lidhet me upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com dhe download.mikrotik.com. Dhe për shkak të një tjetër gabimi, ka mundësinë për ta helmuar të gjitha njëherësh.

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("---- Përgjigje:n", reply)
    return reply.pack()

Ruteri kërkon një autorizim, ndërsa ne ofrojmë pesë përgjigje. Ruteri keqkthen të gjitha këto përgjigje.

Backport vulnerabiliteti në RouterOS kërcënon qindra mijëra pajisje

Èshtë e qartë se kjo sulm është gjithashtu e dobishme nëse ruteri vepron si një server DNS, pasi lejon sulmin ndaj klientëve të routerit.

Po ashtu, kjo sulm lejon shfrytëzimin e një dobësie më serioze: për të bërë downgrade ose backport të versionit RouterOS. Sulmuesi riprodhon logjikën e serverit të përditësimeve, duke përfshirë changelog dhe e bën RouterOS të perceptojë versionin e vjetruar (të dobët) si aktual. Rreziku këtu qëndron se, gjatë 'përditësimit' të versionit, fjalëkalimi i administratorit zbret në vlerën e 'default' - sulmuesi mund të hyjë në sistem me një fjalëkalim bosh!

Luaj videon

Sulmi është plotësisht funksional, megjithatë autori implementon disa vektorë të tjerë, që lidhen gjithashtu me integresionin e një backdoor në firmware, por kjo është një teknikë tërësisht e tepruar dhe aplikimi i saj në qëllime të paligjshme është i jashtëligjshëm.

Mbrojtja

Thjesht çaktivizimi i Winbox mundëson mbrojtje nga këto sulme. Megjithëse administrimi përmes Winbox është i përshtatshëm, është më mirë të përdoret protokolli SSH.

Burimi: habr.com

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster