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-ի խոցելիությունը վտանգի տակ է դնում հարյուր հազարավոր սարքեր

Երբ մենք հարցում ենք անում՝ օգտագործելով winbox_dns_request օրինակ օրինակ.com-ը, երթուղիչը կքեշի արդյունքը:

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()

Այժմ, եթե որոնեք օրինակ.com-ը՝ օգտագործելով Winbox-ը, կարող եք տեսնել, որ երթուղիչի DNS քեշը թունավորված է:

RouterOS-ում Backport-ի խոցելիությունը վտանգի տակ է դնում հարյուր հազարավոր սարքեր

Իհարկե, poisoning 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

Добавить комментарий