Kapasite pou desann aparèy adistans ki baze sou RouterOS (Mikrotik) mete plizyè santèn milye aparèy rezo an risk. Se vilnerabilite a ki asosye ak anpwazònman nan kachèt DNS nan pwotokòl Winbox la epi li pèmèt ou chaje demode (ak yon reset modpas default) oswa modifye firmwèr sou aparèy la.
Detay vilnerabilite
Tèminal RouterOS la sipòte lòd rezolisyon pou rechèch DNS.
Demann sa a okipe pa yon binè ki rele resolutor. Resolver se youn nan anpil binè ki konekte ak pwotokòl Winbox RouterOS la. Nan yon wo nivo, "mesaj" yo voye nan pò Winbox la ka dirije nan binè divès kalite nan RouterOS ki baze sou yon konplo nimero ki baze sou etalaj.
Pa default, RouterOS gen karakteristik sèvè dns la enfim.
Sepandan, menm lè fonksyon sèvè a enfim, routeur la kenbe pwòp kachèt DNS li yo.
Lè nou fè yon demann lè l sèvi avèk winbox_dns_request pou egzanp example.com, routeur la pral kachèt rezilta a.
Depi nou ka presize sèvè dns kote demann lan ta dwe ale, antre nan adrès ki pa kòrèk la se trivial. Pou egzanp, ou ka configured yon aplikasyon sèvè DNS soti nan
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()
Koulye a, si w ap chèche egzanp.com lè l sèvi avèk Winbox, ou ka wè ke kachèt DNS routeur la anpwazonnen.
Natirèlman, anpwazònman example.com pa trè itil depi routeur la pa pral aktyèlman sèvi ak li. Sepandan, routeur la bezwen jwenn aksè nan upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com ak download.mikrotik.com. Ak gras a yon lòt erè, li posib anpwazonnen yo tout nan yon fwa.
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()
Routeur a mande yon sèl pèmisyon, epi nou bay senk tounen. Routeur la pa kache tout repons sa yo kòrèkteman.
Li evidan, atak sa a itil tou si routeur la ap aji kòm yon sèvè dns, paske li pèmèt kliyan routeur la yo dwe atake.
Atak sa a pèmèt ou tou eksplwate yon vilnerabilite ki pi grav: downgrade oswa backport vèsyon RouterOS la. Atakè a rkree lojik sèvè aktyalizasyon a, ki gen ladann changelog la, epi fòse RouterOS wè vèsyon an demode (vilnerab) kòm aktyèl. Danje isit la se nan lefèt ke lè vèsyon an "mizajou", modpas administratè a reset nan valè default la - yon atakè ka konekte nan sistèm lan ak yon modpas vid!
Atak la byen travay, malgre lefèt ke
pwoteksyon
Senpleman enfimite Winbox pèmèt ou pwoteje tèt ou kont atak sa yo. Malgre konvenyans nan administrasyon atravè Winbox, li pi bon yo sèvi ak pwotokòl la SSH.
Sous: www.habr.com