mirror of
https://github.com/NetSPI/PowerHuntShares.git
synced 2025-06-28 21:58:42 +02:00
Add files via upload
This commit is contained in:
79
Scripts/ConfigParsers/parser-bootstrap.ini.ps1
Normal file
79
Scripts/ConfigParsers/parser-bootstrap.ini.ps1
Normal file
@ -0,0 +1,79 @@
|
||||
# Author: Scott Sutherland, NetSPI (@_nullbind / nullbind)
|
||||
|
||||
function Get-BootstrapConfig {
|
||||
param (
|
||||
[string]$FilePath
|
||||
)
|
||||
|
||||
# Read all lines from the provided file path
|
||||
$iniContent = Get-Content -Path $FilePath
|
||||
|
||||
# Initialize a hash table to store key-value pairs
|
||||
$fields = @{
|
||||
Username = $null
|
||||
Password = $null
|
||||
Public = $null
|
||||
Private = $null
|
||||
Key = $null
|
||||
Secret = $null
|
||||
}
|
||||
|
||||
# Loop through each line and look for the required fields
|
||||
foreach ($line in $iniContent) {
|
||||
if ($line -match 'username\s*=\s*(.*)') {
|
||||
$fields['Username'] = $matches[1].Trim()
|
||||
}
|
||||
if ($line -match 'password\s*=\s*(.*)') {
|
||||
$fields['Password'] = $matches[1].Trim()
|
||||
}
|
||||
if ($line -match 'public\s*=\s*(.*)') {
|
||||
$fields['Public'] = $matches[1].Trim()
|
||||
}
|
||||
if ($line -match 'private\s*=\s*(.*)') {
|
||||
$fields['Private'] = $matches[1].Trim()
|
||||
}
|
||||
if ($line -match 'key\s*=\s*(.*)') {
|
||||
$fields['Key'] = $matches[1].Trim()
|
||||
}
|
||||
if ($line -match 'secret\s*=\s*(.*)') {
|
||||
$fields['Secret'] = $matches[1].Trim()
|
||||
}
|
||||
}
|
||||
|
||||
# Convert the hash table into a custom PowerShell object
|
||||
$configObject = [PSCustomObject]$fields
|
||||
|
||||
# Output the custom object
|
||||
return $configObject
|
||||
}
|
||||
|
||||
# Example call using the example file path
|
||||
$bootstrapIniPath = "c:\temp\configs\bootstrap.ini"
|
||||
$config = Get-BootstrapConfig -FilePath $bootstrapIniPath
|
||||
|
||||
# Output the result
|
||||
$config
|
||||
|
||||
|
||||
<# bootstrap.ini
|
||||
|
||||
[GeneralSettings]
|
||||
username=adminUser
|
||||
password=P@ssw0rd123
|
||||
timeout=30
|
||||
loglevel=info
|
||||
public=public
|
||||
private=mysecret
|
||||
secret=mysecret
|
||||
key=mykey
|
||||
|
||||
[DatabaseSettings]
|
||||
db_name=my_database
|
||||
db_host=localhost
|
||||
db_port=3306
|
||||
|
||||
[NetworkSettings]
|
||||
protocol=http
|
||||
port=8080
|
||||
|
||||
#>
|
Reference in New Issue
Block a user