A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

A RouterOS (Mikrotik) alapú eszközök távoli visszaminősítésének lehetősége számos hálózati eszközt veszélyeztet. A sebezhetőség a Winbox protokoll DNS gyorsítótárának manipulálásával kapcsolatos, és lehetővé teszi elavult (az alapértelmezett jelszó visszaállításával) vagy módosított firmware betöltését az eszközre.

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

A sebezhetőség részletei

A RouterOS terminál támogatja a feloldási parancsot a DNS keresésére.

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

Ez a kérés egy resolver nevű bináris fájl által kerül feldolgozásra. A Resolver egyike a számos, a RouterOS Winbox protokollhoz csatlakoztatott bináris fájloknak. Magas szinten a Winbox portjára küldött "üzenetek" a számozási séma alapján különböző bináris fájlokhoz irányíthatók RouterOS-en belül.

Alapértelmezés szerint a RouterOS DNS-szolgáltatási funkciója ki van kapcsolva.

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

Azonban még ki kapcsolt DNS-szolgáltatás mellett is, a router saját DNS gyorsítótárat fenntart.

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

Amikor kérdést teszünk fel a winbox_dns_request segítségével, például example.com, a router gyorsítja a választ.

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

Mivel megadhatjuk a DNS-szolgáltatót, amelyen a kérésnek át kell mennie, roppant egyszerű hamis címeket beállítani. Például beállítható egy DNS-szolgáltatás a Philipp Klaus-tól, amely mindig A rekorddal válaszol, ami a 192.168.88.250 IP címet tartalmazza.

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("---- Válasz:n", reply)
    return reply.pack()

Most, ha Winbox segítségével megkeressük az example.com-ot, látható, hogy a router DNS gyorsítótára meg van mérgezve.

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

Természetesen az example.com megmérgezése nem túl hasznos, mivel a router ennek ténylegesen nem fogja használni. Mindazonáltal a routernek szüksége van az upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com és download.mikrotik.com elérésére. És egy újabb hiba révén lehetőség van az összes egyidejű megmérgezésére.

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("---- Válasz:n", reply)
    return reply.pack()

A router requests one permission, and we provide five in return. The router incorrectly caches all these responses.

A RouterOS backport sérülékenység számos eszköz biztonságát veszélyezteti

It is clear that this attack is also useful if the router acts as a DNS server, as it allows the attacker to target the router's clients.

This attack also enables the exploitation of a more serious vulnerability: downgrading or backporting the RouterOS version. The attacker recreates the update server's logic, including the changelog, and tricks RouterOS into thinking an outdated (vulnerable) version is current. The danger here is that during the version 'upgrade', the administrator password is reset to 'default' – the attacker can gain access with an empty password!

Videó lejátszása

The attack is quite effective, even though the author implements several other vectors, including embedding a backdoor in the firmware, but that is already an excessive technique, and using it for illegitimate purposes is illegal.

Védelem

Simply disabling Winbox provides protection against these attacks. Despite the convenience of administration through Winbox, it is better to use the SSH protocol.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster