Uwezo wa kushusha vifaa ukiwa mbali kulingana na RouterOS (Mikrotik) huweka mamia ya maelfu ya vifaa vya mtandao hatarini. Athari hii inahusishwa na uwekaji sumu kwenye akiba ya DNS ya itifaki ya Winbox na hukuruhusu kupakia zilizopitwa na wakati (kwa kuweka upya nenosiri chaguomsingi) au programu dhibiti iliyorekebishwa kwenye kifaa.
Maelezo ya mazingira magumu
Terminal ya RouterOS inasaidia amri ya kutatua kwa utafutaji wa DNS.
Ombi hili linashughulikiwa na jozi inayoitwa solver. Resolver ni mojawapo ya jozi nyingi zinazounganishwa na itifaki ya Winbox ya RouterOS. Katika kiwango cha juu, "ujumbe" unaotumwa kwenye mlango wa Winbox unaweza kuelekezwa kwenye jozi mbalimbali katika RouterOS kulingana na mpango wa kuorodhesha unaotegemea safu.
Kwa chaguo-msingi, RouterOS ina kipengele cha seva ya DNS kimezimwa.
Walakini, hata kazi ya seva inapozimwa, kipanga njia hudumisha kashe yake ya DNS.
Tunapotuma ombi kwa kutumia winbox_dns_request kwa mfano example.com, kipanga njia kitahifadhi matokeo.
Kwa kuwa tunaweza kutaja seva ya DNS ambayo ombi linapaswa kwenda, kuingiza anwani zisizo sahihi ni jambo dogo. Kwa mfano, unaweza kusanidi utekelezaji wa seva ya DNS kutoka
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()
Sasa ukitafuta mfano.com kwa kutumia Winbox, unaweza kuona kwamba kashe ya DNS ya kipanga njia ina sumu.
Kwa kweli, sumu mfano.com sio muhimu sana kwani kipanga njia hakitatumia. Hata hivyo, kipanga njia kinahitaji kufikia upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com na download.mikrotik.com. Na shukrani kwa kosa lingine, inawezekana kuwatia sumu wote mara moja.
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()
Router inaomba ruhusa moja, na tunatoa tano nyuma. Router haina akiba ya majibu haya yote kwa usahihi.
Kwa wazi, shambulio hili pia linafaa ikiwa kipanga njia kinafanya kazi kama seva ya DNS, kwani inaruhusu wateja wa kipanga njia kushambuliwa.
Shambulio hili pia hukuruhusu kutumia athari mbaya zaidi: kushusha kiwango au kurudisha nyuma toleo la RouterOS. Mshambulizi huunda upya mantiki ya seva ya sasisho, ikiwa ni pamoja na logi ya kubadilisha, na kulazimisha RouterOS kutambua toleo la kizamani (hali hatarishi) kama la sasa. Hatari hapa iko katika ukweli kwamba wakati toleo "limesasishwa", nenosiri la msimamizi linawekwa upya kwa thamani ya chaguo-msingi - mshambuliaji anaweza kuingia kwenye mfumo na nenosiri tupu!
Shambulio hilo linafanya kazi kabisa, licha ya ukweli kwamba
Ulinzi
Kuzima tu Winbox hukuruhusu kujikinga na mashambulizi haya. Licha ya urahisi wa usimamizi kupitia Winbox, ni bora kutumia itifaki ya SSH.
Chanzo: mapenzi.com