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 мекенжайы бар A жазбасымен жауап беру.

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 протоколын қолданған дұрыс.

Ақпарат көзі: www.habr.com

пікір қалдыру