(modifié le 28 février 2022 à 19:27)

Mise à jour : si vous n'aimez pas la ligne de commande vous pouvez utiliser un utilitaire gratuit

Parfois on a besoin de lancer un programme ou exécutable avec des droits d'exécution élevés. Au delà du compte administrateur il y a le compte NT\Authority (NT Autorité) qui est un compte intégré à Windows et disposant d'encore plus de droits, sans aucun profil.

Grâce à PsExec il est possible de lancer CMD avec ces super droits. C'est un outil que j'utilise depuis de nombreuses années et c'est un incontournable (bigUp à Mark Russinovich). D'autant qu'à l'époque le semblable Invoke-Command en PowerShell n'existait pas.

PsExec

Récupérez psexec dans les PSTools.zip

Copiez psexec.exe dans %windir%\system32 ou le répertoire de votre choix.

Ouvrir une cmd en tant qu'administrateur puis :

psexec.exe -accepteula -s -i cmd

Une nouvelle fenêtre cmd doit s'ouvrir, vérifiez avec whoami que vous bien en tant que "autorite nt\système" :

Récupérer PsExec avec PowerShell

Invoke-WebRequest -Uri 'https://download.sysinternals.com/files/PSTools.zip' -OutFile 'pstools.zip'
Expand-Archive -Path 'pstools.zip' -DestinationPath "$env:TEMP\pstools"
Move-Item -Path "$env:TEMP\pstools\psexec.exe" .
Remove-Item -Path "$env:TEMP\pstools" -Recurse

source

PsExec à distance

PsExec fonctionne également à distance pour atteindre d'autres machines, à condition d'avoir :

  • le partage administratif admin$ activé
  • le flux CIFS ouvert (port TCP 445)
  • un compte pour ouvrir une session (domaine ou local)

Exemple pour atteindre le cmd d'un serveur distant zeus.bm avec mes identifiants de domaine :

psexec.exe -accepteula \\zeus.bm -s -i cmd -u BM\xhark -p MonPassword

Vous pouvez également lancer une commande sur plusieurs machines d'un coup :

psexec -accepteula \\zeus.bm,srv-file.bm,srv-git -s -i ipconfig

Activer le bureau à distance avec PsExec

Comme on est dans les astuces, voici comment utiliser PsExec pour activer le bureau à distance (à distance^^) :

psexec.exe -accepteula \\srv-dc reg add "hklm\system\currentcontrolset\control\terminal server"/f /v fDenyTSConnections /t REG_DWORD /d 0

Lancer une application (GUI)

psexec \\srv-file -i notepad.exe -d

Attention ce n'est pas mais l'utilisateur distant qui verra l'application s'ouvrir.

Désactiver le pare-feu sur tous les profils de connexion

psexec.exe -accepteula  \\srv-dc -s netsh advfirewall set allprofiles state off

Attention aux GPO qui reprennent le dessus si vous avez défini une stratégie liée au pare-feu

Conclusion

➡️ N'hésitez pas à me donner vos astuces PsExec en commentaire 🙂

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter