Netpsexec : exécuter un processus en tant que local system ou en impersonant l'utilisateur courant en local ou sur une machi

Soyez le premier à donner votre avis sur cette source.

Vue 5 119 fois - Téléchargée 519 fois

Description

Ce code permet de faire une partie de ce que fait PsExec de sysinternal (http://technet.microsoft.com/en-us/sysinternals/b b897553) :
-> lancer un processus en tant que Local System sur la machine locale
-> lancer un processus en tant que Local System sur une machine distante
-> lancer un processus en impersonant votre compte utilisateur sur une machine distante

Ce code montre :
-> l'utilisation de WCF en mode namedpipe et nettcp avec impersonation (en self hosted),
-> la gestion d'un service Windows (enregistrement, lancement, arrêt, suppression),
-> la redirection native des flux StdOut/StdIn d'un processus (ce que fait en interne la classe Process, CreatePipe, CreateProcess, lecture asynchrone),
-> le lancement d'un processus à partir d'un token de sécurité d'un utilisateur (CreateProcessAsUser)
-> le lancement d'un processus depuis un service dans la session de l'utilisateur connecté (SetTokenInformation, SessionId)

Les applications sont par exemple:
-> psexec -i -d -s c:\windows\regedit.exe => lancement de regedit pour voir les clés SAM et SECURITY (accessible uniquement par Local System)
-> psexec \\machine cmd.exe => lance cmd.exe sur la machine distante, comme telnet ou ssh mais sans installation (à part le framework .Net)

Conclusion :


Testé sur Vista et Seven

N'hésitez pas à commenter et à noter

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_JLN
Messages postés
373
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013
-
Bonjour,
J'ai compilé et testé les 2 commandes que tu donnes en exemple.
- J'ai 129 avertissements (VS2010)
- La commande locale fonctionne correctement.
- La commande distante ne fonctionne pas et heureusement devrai-je dire, sinon quelle faille !
Pour t'éclairer, j'ai mis dans un fichier texte la commande 2 suivie du resultat, ainsi que les 129 avertissements.
Chargement : http://dl.free.fr/nZ7RrUD2a
Mot de passe : csharp
cs_Warny
Messages postés
478
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015
-
JLN, la commande distante peut fonctionner. Par contre il y a quelques prérequis :
- Tu dois utiliser un compte réseau ou être loggué (avec un net use par exemple) sur le poste distant.
- Tu dois avoir les droits d'exécution distante sur le poste cible (pour faire simple, c'est le cas quand tu es administrateur du poste)
cs_JLN
Messages postés
373
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013
-
Bonjour,
Je suis administrateur de ma machine et de la machine distante.
J'ai plusieurs lecteurs distants ouvert sur ma machine.
Les machines font partie du même reseau (même noeud) et appartiennent au même domaine (workgroup)
Je pense qu'il s'agit plutôt d'un probleme de firewall.
Actuellement j'utilise realvnc et je n'ai aucun probleme pour prendre la main sur la machine distante.
Peux-tu expliquer les avertissements de VS.
Bonne prog,
JLN

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.