RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

RouterOS (Mikrotik) негизинде түзмөктөрдү алыстан төмөндөтүү мүмкүнчүлүгү жүз миңдеген тармак түзмөктөрүн тобокелге салат. Алсыздык Winbox протоколунун DNS кэшин уулануу менен байланышкан жана түзмөккө эскирген (демейки сырсөздү кайра коюу менен) же өзгөртүлгөн микропрограмманы жүктөөгө мүмкүндүк берет.

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

Алсыздыктын чоо-жайы

RouterOS терминалы DNS издөө үчүн чечүү буйругун колдойт.

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

Бул сурам чечүүчү деп аталган бинардык система тарабынан иштетилет. Resolver - RouterOSтун Winbox протоколуна туташкан көптөгөн бинардык файлдардын бири. Жогорку деңгээлде Winbox портуна жөнөтүлгөн "билдирүүлөрдү" массивге негизделген номерлөө схемасынын негизинде RouterOS ичиндеги ар кандай бинардык системаларга багыттаса болот.

Демейки боюнча, RouterOS DNS сервер функциясы өчүрүлгөн.

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

Бирок, сервер функциясы өчүрүлгөн учурда да, роутер өзүнүн DNS кэшин сактайт.

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

Мисалы, example.com үчүн winbox_dns_request аркылуу сурам жасаганыбызда, роутер натыйжаны кэштейт.

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

Сурам жөнөтүлө турган DNS серверин аныктай алгандыктан, туура эмес даректерди киргизүү анча маанилүү эмес. Мисалы, сиз DNS серверинин ишке ашырылышын конфигурациялай аласыз Филипп Клаусар дайым 192.168.88.250 IP дарегин камтыган А жазуусу менен жооп берүү.

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 кэши ууланганын көрө аласыз.

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

Албетте, 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()

Роутер бир уруксат сурайт, биз бешөөнү кайтарып беребиз. Роутер бул жооптордун баарын туура кэштебейт.

RouterOS ичиндеги Backport аялуулугу жүз миңдеген түзмөктөрдү тобокелге салат

Албетте, бул чабуул роутер DNS серверинин милдетин аткарып жаткан учурда да пайдалуу, анткени ал роутердин кардарларына чабуул жасоого мүмкүндүк берет.

Бул чабуул дагы олуттуураак кемчиликти колдонууга мүмкүндүк берет: RouterOS версиясын төмөндөтүүгө же артка кайтарууга. Чабуулчу жаңыртуу серверинин логикасын, анын ичинде өзгөртүүлөр журналын кайра жаратат жана RouterOSти эскирген (аялуу) версияны учурдагы катары кабыл алууга мажбурлайт. Бул жерде коркунуч версия "жаңыртылганда" администратордун сырсөзү демейки мааниге кайтарылганында жатат - чабуулчу системага бош сырсөз менен кире алат!


Буга карабастан чабуул кыйла иштеп жатат жазуучу менен байланышкан дагы бир нече векторлорду ишке ашырат микропрограмманын ичине бэк эшикти киргизүү, бирок бул ашыкча техника жана аны мыйзамсыз максаттарда колдонуу мыйзамсыз.

коргоо

Жөн гана Winboxту өчүрүү бул чабуулдардан өзүңүздү коргоого мүмкүндүк берет. Winbox аркылуу башкаруунун ыңгайлуулугуна карабастан, SSH протоколун колдонуу жакшы.

Source: www.habr.com

Комментарий кошуу