RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

RouterOSi (Mikrotik) seadmete kauguuendamise vĂ”imalus seab ohvriks sadu tuhandeid vĂ”rguseadmeid. Haavatuse tĂ”ttu on seotud Winbox protokolli DNS-vahemĂ€lu rĂŒndamine, mis vĂ”imaldab laadida seadmele vananenud (pöördusparooli "vaikimisi" lĂ€htestamisega) vĂ”i modifitseeritud pĂŒsivara.

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

Haavatuse ĂŒksikasjad

RouterOSi terminal toetab DNS-i otsimise kÀsu kasutamist.

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

See pĂ€ring töödeldakse binaarfaili nimega resolver poolt. Resolver on ĂŒks paljusid binaarfailide, mis on seotud RouterOSi Winbox protokolliga. KĂ”rgel tasemel "sĂ”numid", mis saadetakse Winboxi pordile, saavad suunata erinevatesse binaarfailidesse RouterOSis vastavalt massiivi pĂ”hjalikule nummerdamissemanale.

RouterOSis on vaikimisi DNS-serveri funktsioon keelatud.

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

Kuid isegi kui serveri funktsioon on keelatud, toetab reitermine oma DNS-vahemÀlu.

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

Kui teeme pÀringu, kasutades winbox_dns_request, nÀiteks example.com, salvestab ruuter tulemuse.

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

Kuna me saame mÀÀrata DNS-serveri, mille kaudu pÀring peab minema, on vale aadressi sisestamine triviaalne. NÀiteks, vÔime seadistada DNS-serveri rakenduse Philipp Klausilt, et vastata A-kirjega, mis sisaldab IP-aadressi 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()

NĂŒĂŒd, kui Winboxis otsida example.com, nĂ€eme, et ruuteri DNS-vahemĂ€lu on rĂŒnnatud.

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

Muidugi, example.com-i rĂŒndamine pole eriti kasulik, kuna ruuter ei kasuta seda tĂ”eliselt. Sellegipoolest peab ruuter pöörduma upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com ja download.mikrotik.com poole. Ja tĂ€nu veel ĂŒhele veale on vĂ”imalus neid kĂ”iki korraga rĂŒnnata.

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

Ruuter kĂŒsib ĂŒhte luba, kuid me anname tagasi viis. Ruuter vahemĂ€lustab kĂ”ik need vastused valesti.

RouterOSi backport-haavatus seab ohvriks sadu tuhandeid seadmeid

Ilmselgelt on see rĂŒnnak kasulik ka juhul, kui ruuter tegutseb DNS-teenusena, kuna see vĂ”imaldab rĂŒnnata ruuteri kliente.

Samuti vĂ”imaldab see rĂŒnnak Ă€ra kasutada tĂ”sisema haavatavuse: viia lĂ€bi RouterOS-i versiooni alandamine vĂ”i tagasiportimine. RĂŒndaja rekonstrueerib uuenduste сДрĐČДрi loogika, sealhulgas muudatused, ja suunab RouterOS-i kĂ€sitlema vananenud (haavatavat) versiooni kui kehtivat. Oht seisneb selles, et 'uuendamise' kĂ€igus lĂ€htestatakse administraatori parool vaikevÀÀrtusele – kurjategija saab sĂŒsteemi siseneda tĂŒhja parooliga!

MĂ€ngi videot

RĂŒnnak on tĂ€iesti toimiv, hoolimata sellest, et autor rakendab veel mitmeid vektorite, sealhulgas tagaukse sisestamine pĂŒsivale tarkvarale, kuid see on juba liialdatud tehnika ning selle rakendamine ebaseaduslikel eesmĂ€rkidel on seadusevastane.

Kaitse

Lihtne Winboxi vĂ€ljalĂŒlitamine aitab kaitsta nende rĂŒnnakute eest. Kuigi Winboxi kaudu haldamine on mugav, on parem kasutada SSH-protokolli.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster