PowerHuntShares/Scripts/ConfigParsers/parser-htpasswd.ps1
2024-09-23 10:35:53 -05:00

50 lines
1.2 KiB
PowerShell

# Author: Scott Sutherland, NetSPI (@_nullbind / nullbind)
function Get-HtpasswdContent {
param (
[string]$FilePath
)
# Check if the file exists
if (-Not (Test-Path $FilePath)) {
Write-Error "File not found at path: $FilePath"
return
}
# Read the file contents
$lines = Get-Content $FilePath
# Initialize an array to store user objects
$users = @()
# Process each line
foreach ($line in $lines) {
# Split each line into username and hashed password
$parts = $line -split ':', 2
if ($parts.Length -eq 2) {
# Create a custom object for each user
$userObj = [pscustomobject]@{
Username = $parts[0]
PasswordHash = $parts[1]
}
# Add the user object to the array
$users += $userObj
}
}
# Output the results
return $users
}
# Example usage
$result = Get-HtpasswdContent -FilePath "c:\temp\configs\.htpasswd"
$result
<# .htpasswd
user1:$apr1$5lRQ1y3v$pmOQf9/fNVE5dTtQDBl9D1
user2:$apr1$Jd9UE91p$J/H8G9HSvj5l8LKQ2qfd3.
admin:$apr1$GZJoqjNF$wl8IjDhZC84z5Bb4wHOv50
#>