CERTFR-2018-ALE-009

Vulnerability from certfr_alerte - Published: - Updated:

Le 27 août 2018, un utilisateur a publié sur Twitter l'existence d'une vulnérabilité de type élévation de privilèges ainsi qu'un lien vers un dépôt GitHub contenant le code d'attaque exploitant cette vulnérabilité. Ce code est stable et facilement adaptable.

Si la preuve de concept ne fonctionne en l'état que sur les versions 64 bits de Windows, la vulnérabilité est présente dans toutes les versions de Windows (de Windows 7 à Windows 10, Windows Server 2008 R2 à Windows Server 2016).

Cette vulnérabilité provient du planificateur de tâches, plus précisément de l'interface RPC ITaskSchedulerService.

Parmi les fonctions exportées par cette interface RPC, la fonction SchRpcSetSecurity permet de fixer arbitrairement un descripteur de sécurité (Discretionary access control lists ou DACLs) pour un fichier contenu dans le répertoire C:\Windows\Tasks.

Comme tout le monde peut écrire dans le répertoire C:\Windows\Tasks, il est possible de créer un lien non brisable (hard link) vers n'importe quel autre fichier sur lequel on possède les droits en lecture. Lorsque la fonction SchRpcSetSecurity est appelée, la DACL du fichier pointé par le lien est remplacée par celle spécifiée lors de l'appel à la fonction SchRpcSetSecurity. Cette action est réalisée avec le niveau de privilège System.

Cette vulnérabilité ne s'exploite que localement, elle peut toutefois être combinée avec une vulnérabilité d'exécution de code à distance.

Le CERT-FR rappelle ici l'importance d'installer les correctifs de sécurité dans les plus bref délais lorsque ceux-ci sont disponibles.

Jusqu'à ce que cette vulnérabilité soit corrigée, on peut considérer que si un attaquant arrive à exécuter du code sur une machine, il sera en mesure d'obtenir une compromission totale à moindre coût.

Solution

Se référer au bulletin de sécurité de l'éditeur pour l'obtention des correctifs (cf. section Documentation).

Contournement provisoire

Dans l'attente d'un correctif de la part de Microsoft, le CERT-FR propose de bloquer l'accès en écriture au répertoire C:\Windows\Tasks par le biais d'une Access Control Entry (ACE).

Cette mesure est restrictive mais permet d'éviter la création du lien matériel. Cela bloque donc de fait l'utilisation de la vulnérabilité pour acquérir des privilèges System.

Cette mesure est réversible et peut être désactivée le temps de créer un nouvelle tâche légitime.

Avec l'interface graphique, positionner une ACE sur le répertoire C:\Windows\Tasks avec les propriétés suivantes :

  • Type : Deny
  • Principal : EveryOne
  • Apply to: This folder, subfolders and files
  • Rights : 'Create files / write data' et 'Create folders / append data'

En ligne de commande :

[pastacode lang="c" manual="cacls%20c%3A%5CWindows%5CTasks%20%2FS%3A%22D%3APAI(D%3BOICI%3BDCLC%3B%3B%3BWD)(A%3B%3B0x1200ab%3B%3B%3BAU)(A%3B%3BFA%3B%3B%3BBA)(A%3BOICIIO%3BGA%3B%3B%3BBA)(A%3B%3BFA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BCO)%22" message="" highlight="" provider="manual"/]

La désactivation de la mesure de contournement consiste à enlever l'ACE d'interdiction ou en remettant les droits d'origine sur le répertoire C:\Windows\Tasks

[pastacode lang="c" manual="cacls%20c%3A%5CWindows%5CTasks%20%2FS%3A%22D%3APAI(A%3B%3B0x1200ab%3B%3B%3BAU)(A%3B%3BFA%3B%3B%3BBA)(A%3BOICIIO%3BGA%3B%3B%3BBA)(A%3B%3BFA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BCO)%22" message="" highlight="" provider="manual"/]

None
Impacted products
Vendor Product Description
Microsoft Windows Microsoft Windows toutes versions

Show details on source website

{
  "$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
  "affected_systems": [
    {
      "description": "Microsoft Windows toutes versions",
      "product": {
        "name": "Windows",
        "vendor": {
          "name": "Microsoft",
          "scada": false
        }
      }
    }
  ],
  "affected_systems_content": null,
  "closed_at": "2018-09-17",
  "content": "## Solution\n\nSe r\u00e9f\u00e9rer au bulletin de s\u00e9curit\u00e9 de l\u0027\u00e9diteur pour l\u0027obtention des\ncorrectifs (cf. section Documentation).\n\n## Contournement provisoire\n\nDans l\u0027attente d\u0027un correctif de la part de Microsoft, le CERT-FR\npropose de bloquer l\u0027acc\u00e8s en \u00e9criture au r\u00e9pertoire\n*C:\\\\Windows\\\\Tasks* par le biais d\u0027une *Access Control Entry* (ACE).\n\nCette mesure est restrictive mais permet d\u0027\u00e9viter la cr\u00e9ation du lien\nmat\u00e9riel. Cela bloque donc de fait l\u0027utilisation de la vuln\u00e9rabilit\u00e9\npour acqu\u00e9rir des privil\u00e8ges *System*.\n\nCette mesure est r\u00e9versible et peut \u00eatre d\u00e9sactiv\u00e9e le temps de cr\u00e9er un\nnouvelle t\u00e2che l\u00e9gitime.\n\nAvec l\u0027interface graphique, positionner une ACE sur le r\u00e9pertoire\n*C:\\\\Windows\\\\Tasks* avec les propri\u00e9t\u00e9s suivantes :\n\n-   Type : Deny\n-   Principal : EveryOne\n-   Apply to: This folder, subfolders and files\n-   Rights : \u0027Create files / write data\u0027 et \u0027Create folders / append\n    data\u0027\n\n\u00a0\n\nEn ligne de commande :\n\n\\[pastacode lang=\"c\"\nmanual=\"cacls%20c%3A%5CWindows%5CTasks%20%2FS%3A%22D%3APAI(D%3BOICI%3BDCLC%3B%3B%3BWD)(A%3B%3B0x1200ab%3B%3B%3BAU)(A%3B%3BFA%3B%3B%3BBA)(A%3BOICIIO%3BGA%3B%3B%3BBA)(A%3B%3BFA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BCO)%22\"\nmessage=\"\" highlight=\"\" provider=\"manual\"/\\]\n\nLa d\u00e9sactivation de la mesure de contournement consiste \u00e0 enlever l\u0027ACE\nd\u0027interdiction ou en remettant les droits d\u0027origine sur le r\u00e9pertoire\n*C:\\\\Windows\\\\Tasks*\n\n\\[pastacode lang=\"c\"\nmanual=\"cacls%20c%3A%5CWindows%5CTasks%20%2FS%3A%22D%3APAI(A%3B%3B0x1200ab%3B%3B%3BAU)(A%3B%3BFA%3B%3B%3BBA)(A%3BOICIIO%3BGA%3B%3B%3BBA)(A%3B%3BFA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BSY)(A%3BOICIIO%3BGA%3B%3B%3BCO)%22\"\nmessage=\"\" highlight=\"\" provider=\"manual\"/\\]\n",
  "cves": [],
  "links": [
    {
      "title": "Vulnerability Note VU#906424",
      "url": "https://www.kb.cert.org/vuls/id/906424"
    },
    {
      "title": "Avis CERT-FR CERTFR-2018-AVI-436",
      "url": "https://www.cert.ssi.gouv.fr/avis/CERTFR-2018-AVI-436/"
    },
    {
      "title": "Recommandations pour la mise en \u0153uvre d\u2019une politique de restrictions logicielles sous Windows",
      "url": "https://www.ssi.gouv.fr/uploads/2013/12/np_applocker_notetech-v2.pdf"
    },
    {
      "title": "MSDN Discretionary Access Control Lists (DACLs) and Access Control Entries (ACEs)",
      "url": "https://msdn.microsoft.com/en-us/library/cc246052.aspx"
    }
  ],
  "reference": "CERTFR-2018-ALE-009",
  "revisions": [
    {
      "description": "Version initiale",
      "revision_date": "2018-08-29T00:00:00.000000"
    },
    {
      "description": "cl\u00f4ture de l\u0027alerte",
      "revision_date": "2018-09-17T00:00:00.000000"
    }
  ],
  "risks": [
    {
      "description": "\u00c9l\u00e9vation de privil\u00e8ges"
    }
  ],
  "summary": "Le 27 ao\u00fbt 2018, un utilisateur a publi\u00e9 sur Twitter l\u0027existence d\u0027une\nvuln\u00e9rabilit\u00e9 de type \u00e9l\u00e9vation de privil\u00e8ges ainsi qu\u0027un lien vers un\nd\u00e9p\u00f4t GitHub contenant le code d\u0027attaque exploitant cette vuln\u00e9rabilit\u00e9.\nCe code est stable et facilement adaptable.\n\nSi la preuve de concept ne fonctionne en l\u0027\u00e9tat que sur les versions 64\nbits de Windows, la vuln\u00e9rabilit\u00e9 est pr\u00e9sente dans toutes les versions\nde Windows (de Windows 7 \u00e0 Windows 10, Windows Server 2008 R2 \u00e0 Windows\nServer 2016).\n\nCette vuln\u00e9rabilit\u00e9 provient du planificateur de t\u00e2ches, plus\npr\u00e9cis\u00e9ment de l\u0027interface\u00a0*RPC ITaskSchedulerService.*\n\nParmi les fonctions export\u00e9es par cette interface RPC, la fonction\n*SchRpcSetSecurity* permet de fixer arbitrairement un descripteur de\ns\u00e9curit\u00e9 (*Discretionary access control lists* ou DACLs) pour un fichier\ncontenu dans le r\u00e9pertoire *C:\\\\Windows\\\\Tasks*.\n\nComme tout le monde peut \u00e9crire dans le r\u00e9pertoire *C:\\\\Windows\\\\Tasks*,\nil est possible de cr\u00e9er un lien non brisable (*hard link*) vers\nn\u0027importe quel autre fichier sur lequel on poss\u00e8de les droits en\nlecture. Lorsque la fonction *SchRpcSetSecurity* est appel\u00e9e, la DACL du\nfichier point\u00e9 par le lien est remplac\u00e9e par celle sp\u00e9cifi\u00e9e lors de\nl\u0027appel \u00e0 la fonction *SchRpcSetSecurity*. Cette action est r\u00e9alis\u00e9e\navec le niveau de privil\u00e8ge *System*.\n\nCette vuln\u00e9rabilit\u00e9 ne s\u0027exploite que localement, elle peut toutefois\n\u00eatre combin\u00e9e avec une vuln\u00e9rabilit\u00e9 d\u0027ex\u00e9cution de code \u00e0 distance.\n\nLe CERT-FR rappelle ici l\u0027importance d\u0027installer les correctifs de\ns\u00e9curit\u00e9 dans les plus bref d\u00e9lais lorsque ceux-ci sont disponibles.\n\nJusqu\u0027\u00e0 ce que cette vuln\u00e9rabilit\u00e9 soit corrig\u00e9e, on peut consid\u00e9rer que\nsi un attaquant arrive \u00e0 ex\u00e9cuter du code sur une machine, il sera en\nmesure d\u0027obtenir une compromission totale \u00e0 moindre co\u00fbt.\n",
  "title": "Vuln\u00e9rabilit\u00e9 dans Microsoft Windows",
  "vendor_advisories": [
    {
      "published_at": null,
      "title": "Alerte de s\u00e9curit\u00e9 CERT/CC VU#906424 du 27 ao\u00fbt 2018",
      "url": null
    }
  ]
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…