Add files via upload

This commit is contained in:
Dakhama mehdi 2024-05-14 15:25:28 +02:00 committed by GitHub
parent 2c6013864d
commit ec69dcb12e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 152 additions and 0 deletions

119
checksecsysvol6.ps1 Normal file
View 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
View 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
View 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>