Vooruitgang bij het maken van een exploit voor OpenSSH 9.1

Qualys heeft een manier gevonden om malloc- en dubbelvrije bescherming te omzeilen en zo een overdracht van controle naar code te initiëren met behulp van een kwetsbaarheid in OpenSSH 9.1 waarvan was vastgesteld dat deze een laag risico met zich meebracht op het creëren van een werkende exploit. Tegelijkertijd blijft de mogelijkheid om een ​​werkende exploit te creëren een grote vraag.

De kwetsbaarheid wordt veroorzaakt door een pre-authenticatie double free. Om de voorwaarden te creëren waarin de kwetsbaarheid zich kan manifesteren, volstaat het om de SSH-clientbanner te wijzigen in “SSH-2.0-FuTTYSH_9.1p1” (of een andere oude SSH-client) om de vlaggen “SSH_BUG_CURVE25519PAD” en “SSH_OLD_DHGEX” in te stellen. Na het instellen van deze vlaggen wordt het geheugen voor de buffer “options.kex_algorithms” twee keer vrijgemaakt.

Onderzoekers van Qualys zijn er tijdens het manipuleren van de kwetsbaarheid in geslaagd controle te krijgen over het “%rip”-processorregister, dat een verwijzing bevat naar de volgende uit te voeren instructie. De ontwikkelde exploitatietechniek laat u toe om de controle over te dragen naar elk punt in de adresruimte van het sshd-proces in een niet-bijgewerkte OpenBSD 7.2-omgeving, standaard meegeleverd met OpenSSH 9.1.

Opgemerkt wordt dat het voorgestelde prototype slechts een implementatie is van de eerste fase van de aanval. Om een ​​werkende exploit te creëren, is het noodzakelijk om de ASLR-, NX- en ROP-beschermingsmechanismen te omzeilen en te ontsnappen aan sandbox-isolatie, wat onwaarschijnlijk is. Om het probleem van het omzeilen van ASLR, NX en ROP op te lossen, is het noodzakelijk om informatie over adressen te verkrijgen, wat kan worden bereikt door een andere kwetsbaarheid te identificeren die tot informatielekken leidt. Een bug in het geprivilegieerde ouderproces of de kernel kan helpen bij het verlaten van de sandbox.

Bron: opennet.ru

Voeg een reactie