Add files via upload
This commit is contained in:
parent
2c6013864d
commit
ec69dcb12e
119
checksecsysvol6.ps1
Normal file
119
checksecsysvol6.ps1
Normal file
@ -0,0 +1,119 @@
|
||||
|
||||
function Find-SMSClearTextPassword {
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory = $false)]
|
||||
[String]$dnsDomain = $env:USERDNSDOMAIN
|
||||
)
|
||||
|
||||
# Suppression de runspace "fantomes"
|
||||
$PreviousRS = get-runspace | where-object {($_.id -ne 1)}
|
||||
if ($PreviousRS) { $PreviousRS.dispose() }
|
||||
|
||||
$Results = $null
|
||||
|
||||
|
||||
#region getxmlcontenant
|
||||
# Récupérer les extensions de fichiers à partir du fichier XML
|
||||
$xmlFileExtensions = "C:\temp\file_extensions.xml"
|
||||
$extensionsXML = [xml](Get-Content $xmlFileExtensions)
|
||||
$fileExtensions = $extensionsXML.FileExtensions.Extension
|
||||
|
||||
# Récupérer les motifs de mots de passe à partir du fichier XML
|
||||
$xmlPasswordPatterns = "C:\temp\password_patterns.xml"
|
||||
$passwordPatternsXML = [xml](Get-Content $xmlPasswordPatterns)
|
||||
$passwordPatterns = $passwordPatternsXML.PasswordPatterns.Pattern
|
||||
|
||||
# Récupérer les fichiers dans les dossiers Sysvol du domaine DNS spécifié
|
||||
#$sysvolFolders = Get-ChildItem -Path "\\$dnsDomain\sysvol" -Recurse -File -Include $fileExtensions -ErrorAction SilentlyContinue
|
||||
|
||||
# Initialiser une liste pour stocker les résultats
|
||||
$Results = @()
|
||||
|
||||
#endregion getxmlcontenant
|
||||
|
||||
# définition du Pool (creation des slots)
|
||||
$pool = [RunspaceFactory]::CreateRunspacePool(1,10)
|
||||
$pool.ApartmentState = "MTA"
|
||||
$pool.Open()
|
||||
$runspaces = @()
|
||||
|
||||
# définition des commandes à executer dans les jobs
|
||||
$scriptblock = {
|
||||
Param (
|
||||
[string]$sysfiles,
|
||||
[string[]]$passwordPatterns
|
||||
)
|
||||
|
||||
$content = Get-Content -Path $sysfiles -Raw;
|
||||
$results = @() # Initialisation de la variable $results dans le scriptblock
|
||||
|
||||
foreach ($pattern in $passwordPatterns) {
|
||||
if ($content -match $pattern) {
|
||||
$result = [PSCustomObject]@{
|
||||
FilePath = $sysfiles
|
||||
#Pattern = $pattern
|
||||
Word = $Matches[0]
|
||||
}
|
||||
$results += $result # Ajoute chaque résultat à la variable $results
|
||||
}
|
||||
}
|
||||
|
||||
$results # Retourne tous les résultats à la fin du scriptblock
|
||||
}
|
||||
|
||||
|
||||
# creation des jobs par machine et lancement des jobs
|
||||
#foreach ($sysfiles in $sysvolFolders)
|
||||
Get-ChildItem -Path "\\$dnsDomain\sysvol" -Recurse -File -Include $fileExtensions -Force -ErrorAction SilentlyContinue | ForEach-Object {
|
||||
|
||||
$sysfiles = $_.fullname
|
||||
|
||||
#clear
|
||||
Write-Host nous traitons $sysfiles
|
||||
|
||||
$runspace = [PowerShell]::Create()
|
||||
$null = $runspace.AddScript($scriptblock)
|
||||
$null = $runspace.AddArgument($sysfiles)
|
||||
$null = $runspace.AddArgument($passwordPatterns)
|
||||
$runspace.RunspacePool = $pool
|
||||
$runspaces += [PSCustomObject]@{ Pipe = $runspace; Status = $runspace.BeginInvoke() }
|
||||
}
|
||||
|
||||
|
||||
# Afficher les slots + statistiques en cours
|
||||
while ($runspaces.Status -ne $null)
|
||||
{
|
||||
start-sleep 1
|
||||
cls
|
||||
get-runspace | where-object {($_.id -ne 1) -and ($_.runspaceisremote -eq $false) -and ($_.runspaceAvailability -like "Available")}
|
||||
get-runspace | where-object {($_.id -ne 1) -and ($_.runspaceisremote -eq $true)}
|
||||
$slt_encours = get-runspace | where-object {($_.id -ne 1) -and ( $_.runspaceisremote -eq $true)}
|
||||
$slt_tot = get-runspace | where-object {($_.id -ne 1) -and ($_.runspaceisremote -eq $false)}
|
||||
|
||||
write-host "Nbre Objets total= " $runspaces.count
|
||||
write-host "Nbre slots totaux= " $slt_tot.count
|
||||
write-host "Nbre slots utilisés= " $slt_encours.count
|
||||
write-host "Nbre objets restants =" $runspaces.Status.IsCompleted.count
|
||||
|
||||
$completed = $runspaces | Where-Object { $_.Status.IsCompleted -eq $true }
|
||||
|
||||
foreach ($runspace in $completed)
|
||||
{
|
||||
$Results += $runspace.Pipe.EndInvoke($runspace.Status)
|
||||
$runspace.Status = $null
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$Results | Out-GridHtml
|
||||
|
||||
# Fermeture les connexions et suppression des slots du Pool
|
||||
$pool.Close()
|
||||
$pool.Dispose()
|
||||
|
||||
|
||||
}
|
||||
|
||||
# Appeler la fonction pour trouver les mots de passe en texte clair dans les fichiers Sysvol
|
||||
Find-SMSClearTextPassword
|
11
file_extensions.xml
Normal file
11
file_extensions.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<FileExtensions>
|
||||
<Extension>*.txt</Extension>
|
||||
<Extension>*.csv</Extension>
|
||||
<Extension>*.docx</Extension>
|
||||
<Extension>*.ps1</Extension>
|
||||
<Extension>*.bat</Extension>
|
||||
<Extension>*.ini</Extension>
|
||||
<Extension>*.psm1</Extension>
|
||||
<Extension>*.xml</Extension>
|
||||
<Extension>*.vbs</Extension>
|
||||
</FileExtensions>
|
22
password_patterns.xml
Normal file
22
password_patterns.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<PasswordPatterns>
|
||||
<Pattern>\bpass\b</Pattern>
|
||||
<Pattern>\bmdp\b</Pattern>
|
||||
<Pattern>\bsecret\b</Pattern>
|
||||
<Pattern>\bssh-key\b</Pattern>
|
||||
<Pattern>\bprivate-key\b</Pattern>
|
||||
<Pattern>\bapikey\b</Pattern>
|
||||
<Pattern>\baccesskey\b</Pattern>
|
||||
<Pattern>\btoken\b</Pattern>
|
||||
<Pattern>\buser\b</Pattern>
|
||||
<Pattern>\busername\b</Pattern>
|
||||
<Pattern>\blogin\b</Pattern>
|
||||
<Pattern>\bidentifiant\b</Pattern>
|
||||
<Pattern>\bauth\b</Pattern>
|
||||
<Pattern>\bcredentials\b</Pattern>
|
||||
<Pattern>\bcred\b</Pattern>
|
||||
<Pattern>\bpwd\b</Pattern>
|
||||
<Pattern>\bmotdepasse\b</Pattern>
|
||||
<Pattern>\bmdpass\b</Pattern>
|
||||
<Pattern>\bmotdepasse\b</Pattern>
|
||||
<Pattern>password</Pattern>
|
||||
</PasswordPatterns>
|
Loading…
x
Reference in New Issue
Block a user