Divertissement - L'énigme du service

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Re: Divertissement - L'énigme du service

Message par ѠOOT » 16 sept. 2014 14:10

Bonjour,

L'intervenant était un professionnel qualifié effectuant une mission. Il n'est pas autorisé à bidouiller des trucs sur la machine en croisant les doigts pour savoir si ça va le faire ou pas. C'est ce qui différencie l'utilisateur au technicien. J'ai peut-être mal exprimé l'attente dans l'énoncé, il s'agit avant tout de comprendre l'anomalie, de clarifier techniquement la situation, ... Il y a du bon dans vos réflexions :

-(¤)- lab34 « un clic-droit "Autorisations" sur la clé de registre »
Conséquence du service démarré : impossible de lister, refus.
Si c'était lié, je vous aurai au moins fourni un export complet.
Oubliez la base de registre, je ne l'ai jamais mentionnée.

-(¤)- lab34 « Administrateurs & AUTORITE NT\SYSTEM ne sont pas décrits comme ayant les droits de lecture dans le DACL du secure object, à savoir le service "EVIL" »
C'est exactement ça, mais aucun rapport avec la réponse précédente qui concerne le Registre.
Vous êtes sur la bonne piste, évitez de mélanger les objets et vous trouverez.

-(¤)- lab34 « un autre utilisateur existant qui a les droits et lance le service »
Bien vu, si le service démarre c'est bien qu'il y a quelque chose là dessous.

"A security descriptor identifies the object's owner AND primary group."

-(¤)- chef « Utiliser Security Descriptor pour lister les utilisateurs ou groupes qui peuvent avoir accès à l'objet puis pour contrôler l'enregistrement des tentatives d'accès à l'objet. »
Justement tout le problème c'est que pour l'instant toutes tentatives depuis l'utilisateur "Administrateur" du groupe "Administrateurs" et "SYSTEM" ont échouées faute de droits d'accès au descripteur de sécurité du service.

Que des échecs, sans succès. La question posée est : existe t'il d'autres entités de sécurité telles que SYSTEM ? Et si oui, pourriez-vous les lister ?

Autre point. Depuis tout à l'heure vous me parlez de ce que vous connaissez. Vous n'avez pas encore enclenché vos petites cellules grises sur un détail écrit noir sur blanc dans la MSDN.

ACL : "A list of security protections that applies to an object. An object can be a file, process, event, or anything else having a security descriptor."

L'intitulé du sujet concerne l'objet service, si ACL il y a, sur l'objet service il sera ( dédicace à Yoda :þ ). Vous avez peut-être déjà manipulé des ACLs, d'accord.. mais sur des objets différents tels que des fichiers ou des dossiers, voir des clefs ou des valeurs liées au registre, etc...

Et d'ailleurs à ce propos, existe t'il une situation similaire avec refus total d'accès aux dossiers / fichiers ? Et lorsque tout le monde est refusé, qui détient l'accès aux modifications de restrictions ?


‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ


lab34
newbie
newbie
Messages : 40
Inscription : 02 févr. 2012 11:07

Re: Divertissement - L'énigme du service

Message par lab34 » 16 sept. 2014 15:15

Je suis trop terre à terre, pour moi un service, ça se palpait, clé de registre, etc...
Mais visiblement l'objet service existe et se manipule par programmation comme expliqué là:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

OK, donc le DACL sur le service exclu les admins et le system. Qui a le droit maintenant ? le "créateur propriétaire" je dirais.

Le cas semblable ? par exemple quand on monte un disque dur d'un autre PC windows, le proprio des fichier n'est pas le même. Et donc on change le proprio des fichiers et on peut les manipuler.

Bon maintenant, comment il a fait ?
Peut être là:
http://support.microsoft.com/kb/914392/fr
Soyez très vigilant avec l'autorisation ChangeConf (DC). Examinez-la lorsque vous évaluez si votre service est vulnérable face à une attaque de type élévation de privilège. Cette autorisation permet à l'utilisateur désigné de modifier la configuration du service afin d'y inclure le fichier binaire exécuté lors du démarrage du service. Soyez aussi extrêmement vigilant avec les autorisations WDac (WD) et WOwn (WO) car l'une comme l'autre peuvent être utilisées pour élever les autorisations au niveau de Système local. Assurez-vous que ces droits ne sont pas attribués à un utilisateur dont le niveau d'autorisation est peu élevé.

On peut imaginer qu'il y avait un tel service sur la machine. Vulnérable car everyone par exemple ont l'autorisation DC.
Du coup, un user quelconque modifie le binaire exécuté au démarrage et le remplace par le sien.

Et puis après, comme je disais, le service evil s'auto-configure à l'exécution...

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Re: Divertissement - L'énigme du service

Message par ѠOOT » 16 sept. 2014 17:32

Bonjour,

Effectivement lab34, c'est le propriétaire.
Une alerte s'affiche lorsqu'il s'agit d'un dossier.
Image

Déterminons qui est le propriétaire du service. Le lien MSDN que vous avez mentionné (bravo) indique le listing du Type d'utilisateur )

Ci-dessous la liste des entités de sécurité disponibles.
Image

J'écris un script d'attaque pour forcer l'élévation de privilège afin d'explorer toutes les entités, une à une. J'obtiens des refus sur tous les comptes. Excepté sur un détail concernant le compte "service réseau" pour les services ( NS: Network Service ). Apriori, ce serait le propriétaire du service car SC avec sdshow ne retourne pas d'erreur.

Image

A quoi correspond ce D ? Et comment reprendre possession ?
‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ

lab34
newbie
newbie
Messages : 40
Inscription : 02 févr. 2012 11:07

Re: Divertissement - L'énigme du service

Message par lab34 » 16 sept. 2014 18:24

Je viens d'apprendre que D représenterait les DACL alors que S représenterait les SACL

Donc on à ici aucune DACL définie. D'où le denied erreur 5 tant qu'on est pas le propriétaire.

Il faudrait donc les repositionner, en tant que "autorite nt\service reseau" :

sc sdset EVIL D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)

Là je me suis inspiré de services existants sur ma machine (bien sûr, un vrai tech réfléchirait plus, plutôt que de copier-coller)

D: = le DACL,
(A = allow

puis il faut:
CC – SERVICE_QUERY_CONFIG – ask the SCM for the service’s current configuration
LC – SERVICE_QUERY_STATUS – ask the SCM for the service’s current status

Additional permissions:
RP – SERVICE_START – start the service
WP – SERVICE_STOP – stop the service

etc...

EDIT: "BA" est le built in administrator, “SU” Service logon user , “IU” Interactively logged-on user, SY je sais pas...


Mes lectures:
http://blogs.msmvps.com/erikr/2007/09/2 ... e-windows/
http://deploywindows.info/2013/10/17/ho ... rmissions/

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Re: Divertissement - L'énigme du service

Message par ѠOOT » 16 sept. 2014 19:29

Bonjour,

La réponse à votre question est dans le lien MSDN que vous aviez donné, à savoir que SY correspond à Système local.

The Security Descriptor Definition Language (SDDL) uses ACE strings in the DACL & SACL components of a security descriptor string. Security Descriptor String Format : The format is a null-terminated string with tokens to indicate each of the four main components of a security descriptor: owner (O:), primary group (G:), DACL (D:), and SACL (S:).

Pour ce qui est de l'explication technique, elle est satisfaisante - bien joué.

En tant que SERVICE RÉSEAU, exécution SC avec l'option sdset.
Image

Surprenant non ? La vérité est ailleurs, Mulder...
Persévérer en ce sens mais autrement :þ
‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ


Avatar de l’utilisateur
xtrem47
newbie
newbie
Messages : 13
Inscription : 26 déc. 2012 15:15

Re: Divertissement - L'énigme du service

Message par xtrem47 » 16 sept. 2014 19:59

salut,

Si je comprends bien, même le proprio ne peut pas modifier les descripteurs de sécurité du service. [SC] OpenSCManager FAILED, commençons par regarder là. Que donne : SC sdshow SCMANAGER ?

En passant, merci de nous faire profiter cette petite énigme Ѡ :)

chef
Geek à longue barbe
Geek à longue barbe
Messages : 5319
Inscription : 25 janv. 2008 17:06
Localisation : ici et la !!!!

Re: Divertissement - L'énigme du service

Message par chef » 16 sept. 2014 20:03

bonsoir,
un détail concernant le compte "service réseau" pour les services ( NS: Network Service ). Apriori, ce serait le propriétaire du service car SC avec sdshow ne retourne pas d'erreur.
Et en ligne de commande, on peut pas changer les droits avec Remove-ADPermission ?
comme par exemple sur cette article -->
http://technet.microsoft.com/en-us/libr ... G.80).aspx
marque pc:EasyNote TV44HC
produit: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
mémoire: 4GiB
carte graphique : nvidia geforce 710
Description: Debian GNU/Linux 8.0 (jessie)

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Re: Divertissement - L'énigme du service

Message par ѠOOT » 16 sept. 2014 20:25

Bonjour,

-(¤)- xtrem47 : [SC] OpenService FAILED 1060: Le service spécifié n'existe pas en tant que service installé.

-(¤)- chef : Remove-ADPermission c'est pour Active Directory ;)

Je vais vous donner un petit coups de pouce. Quand vous êtes dans de telles situations, cherchez dans les ressources disponibles pour les Administrateurs Microsoft, il y a souvent un outil plus approprié, plus performant.

SubInACL a command-line tool that enables administrators to obtain security information about files, registry keys, and services, and transfer this information from user to user, from local or global group to group, and from domain to domain.

Depuis l'interpréteur, j'obtiens la même erreur mais avec un petit complément.

WARNING :Unable to set SeSecurityPrivilege privilege. This privilege may be required.
Error OpenSCManager : Accès refusé.


Je vous laisse m'expliquer ce qui cloche.
‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ

Avatar de l’utilisateur
xtrem47
newbie
newbie
Messages : 13
Inscription : 26 déc. 2012 15:15

Re: Divertissement - L'énigme du service

Message par xtrem47 » 16 sept. 2014 20:39

Étrange tout ça :D

Un petit whoami /priv avec SERVICE RÉSEAU ?

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Re: Divertissement - L'énigme du service

Message par ѠOOT » 16 sept. 2014 20:42

Bonjour,

(X) SeAuditPrivilege = Générer des audits de sécurité
(X) SeIncreaseQuotaPrivilege = Changer les quotas de mémoire d'un processus
(X) SeAssignPrimaryTokenPrivilege = Remplacer un jeton niveau de processus
(X) SeChangeNotifyPrivilege = Outrepasser le contrôle de défilement
(X) SeShutdownPrivilege = Arrêter le système
(X) SeUndockPrivilege = Retirer l'ordinateur de la station d'accueil
(X) SeImpersonatePrivilege = Emprunter l'identité d'un client après l'authentification
(X) SeCreateGlobalPrivilege = Créer des objets globaux
‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ

lab34
newbie
newbie
Messages : 40
Inscription : 02 févr. 2012 11:07

Re: Divertissement - L'énigme du service

Message par lab34 » 16 sept. 2014 20:51

ѠOOT a écrit : Surprenant non ? La vérité est ailleurs, Mulder...
Persévérer en ce sens mais autrement :þ
Effectivement, j'ai reproduit le problème chez moi.

Il faut aller dans la base de registre, supprimer la clé Security qui se trouve sous hklm\CurentControlSet\Services\EVIL, rebooter.
Le service EVIL se retrouve avec les droits par défaut. (les droits sont stockés dans cette clé).

Ensuite le sc sdset fonctionne et recrée une clé Security.

EDIT: on peut aussi le faire pour le SCManager: http://networkadminkb.com/KB/a158/how-t ... sions.aspx

Avatar de l’utilisateur
xtrem47
newbie
newbie
Messages : 13
Inscription : 26 déc. 2012 15:15

Re: Divertissement - L'énigme du service

Message par xtrem47 » 16 sept. 2014 21:05

NtRights +r SeSecurityPrivilege -u "service réseau" -m Bestla

Puis réessayer le sc sdset.

(Ntrights permet de modifier les privilège d'un utilisateur / groupe.

chef
Geek à longue barbe
Geek à longue barbe
Messages : 5319
Inscription : 25 janv. 2008 17:06
Localisation : ici et la !!!!

Re: Divertissement - L'énigme du service

Message par chef » 16 sept. 2014 21:08

SubInACL a command-line tool that enables administrators to obtain security information about files, registry keys, and services, and transfer this information from user to user, from local or global group to group, and from domain to domain.

Depuis l'interpréteur, j'obtiens la même erreur mais avec un petit complément.

WARNING :Unable to set SeSecurityPrivilege privilege. This privilege may be required.
Error OpenSCManager : Accès refusé.
la liste des entités de sécurité disponibles.
ben du coup l'idée serai de changer les droits sur un groupe via "service réseau" pour les services ( NS: Network Service ), puisse que lui répond ?
marque pc:EasyNote TV44HC
produit: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
mémoire: 4GiB
carte graphique : nvidia geforce 710
Description: Debian GNU/Linux 8.0 (jessie)

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Re: Divertissement - L'énigme du service

Message par ѠOOT » 16 sept. 2014 22:06

Bonjour,

-(¤)- chef: C'est ce qui a été déjà réalisé.

-(¤)- xtrem47, le whoami /priv après ntrights.

(X) SeSecurityPrivilege = Gérer le journal d'audit et de sécurité
Mais sc sdset EVIL = accés refusé. Quant à SubInAcl c'est un WARNING :Unable to set SeBackupPrivilege privilege. This privilege may be required. Error OpenSCManager : Accès refusé.

ntrights +r SeBackupPrivilege -u "SERVICE RÉSEAU" -m bestla
Granting SeBackupPrivilege to SERVICE RÉSEAU on bestla... successful

Mais le whoami /priv ne l'indique pas comme ayant été ajouté.

-(¤)- lab34, par défaut.

Image

Le programme scrute et ré-écrit ses règles mais s'il est gelé au préalable, là ça fonctionnera. En tant que SYSTEM, remplacer le propriétaire puis supprimer le contenu de Security et enfin redémarrer. Il est alors possible d'utiliser l'option sdset de SC pour modifier le descripteur de sécurité du service. Cette manipulation nécessite toutefois un redémarrage, embêtant si machine de prod... ceci étant c'est déjà pas si mal, d'autant que tu as compris la situation et évalué les conséquences de tes actions, bravo à toi.

edit: Dans le prochain message, je vous expliquerai comment il a été possible de surmonter rapidement, facilement et efficacement cette difficulté.
‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ

lab34
newbie
newbie
Messages : 40
Inscription : 02 févr. 2012 11:07

Re: Divertissement - L'énigme du service

Message par lab34 » 17 sept. 2014 09:49

ѠOOT a écrit : Depuis l'interpréteur, j'obtiens la même erreur mais avec un petit complément.

WARNING :Unable to set SeSecurityPrivilege privilege. This privilege may be required.
Error OpenSCManager : Accès refusé.


Je vous laisse m'expliquer ce qui cloche.
Bonjour,

SeSecurityPrivilège est le droit de manager les journaux et audit de sécurité !

Il faudrait aller voir dans l'editeur de stratégie de groupe si le groupe administrateurs n'aurait pas été enlevé dans les stratégies locales ou dans les stratégies de groupe.

stratégie de sécurité locale / paramètres de sécurité / stratégies locales / attribution des droits d'utilisateurs / gérer le journal d'audit et de sécurité : Administrateurs

Je ne vois pas trop en quoi la gestion du journal empêche le positionnement des droits avec subinacl.
Cela cache peut être autre chose.

Si Admins n'ont plus les droits de gérer les journaux, ils ont dû être retirés d'autres stratégies également...
Notamment "prendre possession de fichiers ou d'autres objets" !!!
ѠOOT a écrit :ceci étant c'est déjà pas si mal, d'autant que tu as compris la situation et évalué les conséquences de tes actions, bravo à toi.
Merci ! :-)


Répondre

Revenir vers « Tech, Tips & Tricks »