Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Aftësia për të ulur në distancë pajisjet e bazuara në RouterOS (Mikrotik) vë në rrezik qindra mijëra pajisje rrjeti. Dobësia shoqërohet me helmimin e memories DNS të protokollit Winbox dhe ju lejon të ngarkoni firmware të vjetëruar (me një rivendosje të fjalëkalimit të paracaktuar) ose të modifikuar në pajisje.

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Detajet e cenueshmërisë

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

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Kjo kërkesë trajtohet nga një binar i quajtur zgjidhës. Resolver është një nga shumë binarët që lidhen me protokollin Winbox të RouterOS. Në një nivel të lartë, "mesazhet" e dërguara në portin Winbox mund të drejtohen në binare të ndryshme në RouterOS bazuar në një skemë numërimi të bazuar në grup.

Si parazgjedhje, RouterOS e ka të çaktivizuar funksionin e serverit DNS.

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Megjithatë, edhe kur funksioni i serverit është i çaktivizuar, ruteri ruan cache-in e tij DNS.

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

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

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Meqenëse ne mund të specifikojmë serverin DNS përmes të cilit duhet të kalojë kërkesa, futja e adresave të pasakta është e parëndësishme. Për shembull, mund të konfiguroni një implementim të serverit DNS nga Philip Klaustë përgjigjeni gjithmonë me një rekord 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("---- Reply:n", reply)
    return reply.pack()

Tani nëse kërkoni për shembull.com duke përdorur Winbox, mund të shihni që cache DNS e ruterit është helmuar.

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Sigurisht, poisoning example.com nuk është shumë i dobishëm pasi ruteri nuk do ta përdorë atë. Megjithatë, ruteri duhet të hyjë në upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com dhe download.mikrotik.com. Dhe falë një gabimi tjetër, është e mundur që të helmohen të gjithë menjëherë.

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

Ruteri kërkon një leje dhe ne japim pesë. Ruteri nuk i ruan si duhet të gjitha këto përgjigje.

Dobësia e portit të pasme në RouterOS vë në rrezik qindra mijëra pajisje

Natyrisht, ky sulm është gjithashtu i dobishëm nëse ruteri po vepron si një server DNS, pasi lejon që klientët e ruterit të sulmohen.

Ky sulm ju lejon gjithashtu të shfrytëzoni një dobësi më serioze: të reduktoni ose të mbështesni versionin e RouterOS. Sulmuesi rikrijon logjikën e serverit të përditësimit, përfshirë regjistrin e ndryshimeve, dhe detyron RouterOS të perceptojë versionin e vjetëruar (të cenueshëm) si aktual. Rreziku këtu qëndron në faktin se kur versioni "përditësohet", fjalëkalimi i administratorit rivendoset në vlerën e paracaktuar - një sulmues mund të hyjë në sistem me një fjalëkalim bosh!


Sulmi është mjaft funksional, pavarësisht se autor zbaton disa vektorë të tjerë, duke përfshirë ata që lidhen me futja e një dere të pasme në firmware, por kjo tashmë është një teknikë e tepërt dhe përdorimi i saj për qëllime jolegjitime është i paligjshëm.

mbrojtje

Thjesht çaktivizimi i Winbox ju lejon të mbroni veten nga këto sulme. Megjithë komoditetin e administrimit përmes Winbox, është më mirë të përdorni protokollin SSH.

Burimi: www.habr.com

Shto një koment