🔎MS-RPC - ports 135-593
Techniques d'exploitation des services MS-RPC
Modules Metasploit
Endpoint Mapper
Le module endpoint_mapper interroge le service EndPoint Mapper d'un système distant pour déterminer quels services sont disponibles.
Utilisation:
$ msfconsole
msf > use auxiliary/scanner/dcerpc/endpoint_mapper
msf auxiliary(scanner/dcerpc/endpoint_mapper) > set RHOST <target IP>
msf auxiliary(scanner/dcerpc/endpoint_mapper) > run
Hidden
Le scanner dcerpc/hidden se connecte à une plage d'adresses IP donnée et essaie de localiser tous les services RPC qui ne sont pas répertoriés dans Endpoint Mapper et de déterminer si l'accès anonyme au service est autorisé.
Utilisation:
$ msfconsole
msf > use auxiliary/scanner/dcerpc/hidden
msf auxiliary(scanner/dcerpc/hidden) > set RHOST <target IP>
msf auxiliary(scanner/dcerpc/hidden) > run
Management
Le module dcerpc/management analyse une plage d'adresses IP et obtient des informations de l'interface de gestion à distance du service DCERPC.
Utilisation:
$ msfconsole
msf > use auxiliary/scanner/dcerpc/management
msf auxiliary(scanner/dcerpc/management) > set RHOST <target IP>
msf auxiliary(scanner/dcerpc/management) > run
tcp_dcerpc_auditor
Le module dcerpc/tcp_dcerpc_auditor analyse une plage d'adresses IP pour déterminer quels services DCERPC sont disponibles sur un port TCP.
Utilisation:
$ msfconsole
msf > use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor
msf auxiliary(scanner/dcerpc/tcp_dcerpc_auditor) > set RHOST <target IP>
msf auxiliary(scanner/dcerpc/tcp_dcerpc_auditor) > run
ressource: https://www.offensive-security.com/metasploit-unleashed/scanner-dcerpc-auxiliary-modules/
Active Directory Énumération
Nécessite les identifiants d'un compte utilisateur du domaine sur la machine cible.
Connexion
$ rpcclient -U <Domaine>/<Username> <target IP>
Enter <Domaine>\<Username>'s password: <password>
rpcclient $>
Reconnaissance
rpcclient $> srv info #informations serveur
platform_id: ...
os_version: ...
server_type: ...
rpcclient $> querydominfo #informations domaine sur le serveur
domain: ...
Total users: ...
Total groups: ...
server Role: ...
...
...
rpcclient $> enumdomusers #Enumeration des utilisateurs
user:[Administrateur] rid:[...]
user: ...
...
rpcclient $> enumdomgroups #Enumeration des groupes
group: ... rid: ...
...
...
rpcclient $> enumprivs #Enumeration des privilèges
found ... privileges
...
...
rpcclient $> getdompwinfo #informations sur la politique de mdp
min_password_length: ...
password_properties: ...
rpcclient $> getusrdompwinfo <user_rid> #getdompwinfo ciblé pour un utilisateur speécifique
min_password_length: ...
password_properties: ...
rpcclient $> lsaenumsid #Enumeration des SID
found ... SIDs
...
...
rpcclient $> enumalsgroups builtin
rpcclient $> enumalsgroups domain #Enumeration des alias de groupes dans le domaine
group:[Administrators] rid:[...]
...
...
rpcclient $> netshareenum #Enumeration des partages réseaux
netname: ...
remark: ...
path: ...
password: ...
netname: ...
...
...
rpcclient $> enumdomains #Enumeration des domaines
name: [...] idx:[...]
...
...
rpcclient $> lsaquery
Domain Name: ...
Domain SID: ...
rpcclient $> dsroledominfo #Informations Directory Service
Machine Role = ...
Directory Service is running | is not running
rpcclient $> lsaquerysecobj #Visualisation des autoraisations, privilèges etc
Details
rpcclient $> queryuser <nom d'utilisateur>
User Name: ...
Full Name: ...
Description: ...
Comment: ...
Password last set time: ...
...
...
rpcclient $> enumdispinfo #enumdomuser détaillé
index: ... acb: ... Account: ... Name: ... Desc: ...
...
...
rpcclient $> querygroup <nom du groupe>
Group Name: ...
Description: ...
...
...
rpcclient $> netshareenumall #Enumeration totale des partages réseaux
netname: ...
remark: ...
path: ...
password: ...
netname: ...
...
...
rpcclient $> netsharegetinfo <partage> #détails sur un partage spécifique
Permissions: ...
SID: ...
Owner SID: ...
Group SID: ...
...
...
rpcclient $> lookupdomain <domaine> #détails sur un domaine
Domain Name: <domaine> Domain SID: ...
rpcclient $> samlookupnames domain <user> #SAM d'un utilisateur spécifique
name <user>: <SAM>
rpcclient $> lookupsids <SID> #A qui appartient ce SID
<SID> <user>
Création d'un utilisateur
rpcclient $> createdomuser <user>
rpcclient $> setuserinfo2 <user> 24 <password>
rpcclient $> enumdomusers
...
...
...
user:[<user>] rid:[...]
rpcclient $> lookupnames <user> #Vérifier si l'utilisateur créé a un SID
<user> <SID>
Supprimer un utilisateur
rpcclient $> deletedomuser <user>
rpcclient $> enumdomusers
...
...
Changement de mot de passe
rpcclient $> chpasswd <user> <password> <new password>
Création de compte LSA
rpcclient $> lookupnames <user>
<user> <SID>
rpcclient $> lsacreateaccount <SID>
Création d'un groupe
rpcclient $> createdomgroup <nom du groupe>
rpcclient $> enumdomgroups
...
...
group:[<nom du groupe>] rid:[...]
Suppression d'un groupe
rpcclient $> deletedomgroup <nom du groupe>
rpcclient $> enumdomgroups
...
...
Dernière mise à jour
Cet article vous a-t-il été utile ?