RouterOS (Mikrotik) негизинде түзмөктөрдү алыстан төмөндөтүү мүмкүнчүлүгү жүз миңдеген тармак түзмөктөрүн тобокелге салат. Алсыздык Winbox протоколунун DNS кэшин уулануу менен байланышкан жана түзмөккө эскирген (демейки сырсөздү кайра коюу менен) же өзгөртүлгөн микропрограмманы жүктөөгө мүмкүндүк берет.
Алсыздыктын чоо-жайы
RouterOS терминалы DNS издөө үчүн чечүү буйругун колдойт.
Бул сурам чечүүчү деп аталган бинардык система тарабынан иштетилет. Resolver - RouterOSтун Winbox протоколуна туташкан көптөгөн бинардык файлдардын бири. Жогорку деңгээлде Winbox портуна жөнөтүлгөн "билдирүүлөрдү" массивге негизделген номерлөө схемасынын негизинде RouterOS ичиндеги ар кандай бинардык системаларга багыттаса болот.
Демейки боюнча, RouterOS DNS сервер функциясы өчүрүлгөн.
Бирок, сервер функциясы өчүрүлгөн учурда да, роутер өзүнүн DNS кэшин сактайт.
Мисалы, example.com үчүн winbox_dns_request аркылуу сурам жасаганыбызда, роутер натыйжаны кэштейт.
Сурам жөнөтүлө турган DNS серверин аныктай алгандыктан, туура эмес даректерди киргизүү анча маанилүү эмес. Мисалы, сиз DNS серверинин ишке ашырылышын конфигурациялай аласыз
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()
Эми Winbox аркылуу example.com сайтын издесеңиз, роутердин DNS кэши ууланганын көрө аласыз.
Албетте, example.com сайтын уулануу абдан пайдалуу эмес, анткени роутер аны колдонбойт. Бирок, роутер upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com жана download.mikrotik.com сайтына кирүү керек. Жана дагы бир жаңылыштыктын аркасында алардын баарын бир убакта ууландырса болот.
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()
Роутер бир уруксат сурайт, биз бешөөнү кайтарып беребиз. Роутер бул жооптордун баарын туура кэштебейт.
Албетте, бул чабуул роутер DNS серверинин милдетин аткарып жаткан учурда да пайдалуу, анткени ал роутердин кардарларына чабуул жасоого мүмкүндүк берет.
Бул чабуул дагы олуттуураак кемчиликти колдонууга мүмкүндүк берет: RouterOS версиясын төмөндөтүүгө же артка кайтарууга. Чабуулчу жаңыртуу серверинин логикасын, анын ичинде өзгөртүүлөр журналын кайра жаратат жана RouterOSти эскирген (аялуу) версияны учурдагы катары кабыл алууга мажбурлайт. Бул жерде коркунуч версия "жаңыртылганда" администратордун сырсөзү демейки мааниге кайтарылганында жатат - чабуулчу системага бош сырсөз менен кире алат!
Буга карабастан чабуул кыйла иштеп жатат
коргоо
Жөн гана Winboxту өчүрүү бул чабуулдардан өзүңүздү коргоого мүмкүндүк берет. Winbox аркылуу башкаруунун ыңгайлуулугуна карабастан, SSH протоколун колдонуу жакшы.
Source: www.habr.com