diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml
index 2ae56580..06354bfe 100644
--- a/.github/workflows/CI-master_tests.yml
+++ b/.github/workflows/CI-master_tests.yml
@@ -47,8 +47,8 @@ jobs:
run: nuget restore $env:Solution_Path
# build
- #- name: run MSBuild
- # run: msbuild $env:Solution_Path
+ - name: run MSBuild
+ run: msbuild $env:Solution_Path
# Execute all unit tests in the solution
#- name: Execute unit tests
@@ -66,6 +66,39 @@ jobs:
echo "build Any CPU"
msbuild -m $env:Solution_Path /t:Rebuild /p:Configuration=$env:Configuration /p:Platform="Any CPU"
+ - name: Execute winPEAS -h
+ shell: pwsh
+ run: |
+ $Configuration = "Release"
+ $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe"
+ if (Test-Path $exePath) {
+ & $exePath -h
+ } else {
+ Write-Error "winPEAS.exe not found at $exePath"
+ }
+
+ - name: Execute winPEAS cloudinfo
+ shell: pwsh
+ run: |
+ $Configuration = "Release"
+ $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe"
+ if (Test-Path $exePath) {
+ & $exePath cloudinfo
+ } else {
+ Write-Error "winPEAS.exe not found at $exePath"
+ }
+
+ - name: Execute winPEAS systeminfo
+ shell: pwsh
+ run: |
+ $Configuration = "Release"
+ $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe"
+ if (Test-Path $exePath) {
+ & $exePath systeminfo
+ } else {
+ Write-Error "winPEAS.exe not found at $exePath"
+ }
+
# Copy the built versions
- name: Copy all versions
run: |
diff --git a/winPEAS/winPEASexe/winPEAS/App.config b/winPEAS/winPEASexe/winPEAS/App.config
old mode 100755
new mode 100644
index 2177a059..15487293
--- a/winPEAS/winPEASexe/winPEAS/App.config
+++ b/winPEAS/winPEASexe/winPEAS/App.config
@@ -14,6 +14,166 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/winPEAS/winPEASexe/winPEAS/packages.config b/winPEAS/winPEASexe/winPEAS/packages.config
index 55040706..10092168 100644
--- a/winPEAS/winPEASexe/winPEAS/packages.config
+++ b/winPEAS/winPEASexe/winPEAS/packages.config
@@ -33,7 +33,7 @@
-
+
@@ -56,7 +56,7 @@
-
+
diff --git a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj
old mode 100755
new mode 100644
index bfb8d5fe..2dcd1fd1
--- a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj
+++ b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj
@@ -217,9 +217,8 @@
..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll
-
- ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll
- True
+
+ ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll
True
@@ -284,9 +283,8 @@
..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll
-
- ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll
- True
+
+ ..\packages\System.Text.RegularExpressions.4.3.1\lib\net463\System.Text.RegularExpressions.dll
True
diff --git a/winPEAS/winPEASps1/winPEAS.ps1 b/winPEAS/winPEASps1/winPEAS.ps1
index b08d06bf..47848c7c 100644
--- a/winPEAS/winPEASps1/winPEAS.ps1
+++ b/winPEAS/winPEASps1/winPEAS.ps1
@@ -67,7 +67,8 @@ Function Start-ACLCheck {
$Identity = @()
$Identity += "$env:COMPUTERNAME\$env:USERNAME"
if ($ACLObject.Owner -like $Identity ) { Write-Host "$Identity has ownership of $Target" -ForegroundColor Red }
- whoami.exe /groups /fo csv | ConvertFrom-Csv | Select-Object -ExpandProperty 'group name' | ForEach-Object { $Identity += $_ }
+ # This should now work for any language. Command runs whoami group, removes the first two line of output, converts from csv to object, but adds "group name" to the first column.
+ whoami.exe /groups /fo csv | select-objet -skip 2 | ConvertFrom-Csv -Header 'group name' | Select-Object -ExpandProperty 'group name' | ForEach-Object { $Identity += $_ }
$IdentityFound = $false
foreach ($i in $Identity) {
$permission = $ACLObject.Access | Where-Object { $_.IdentityReference -like $i }
@@ -1225,7 +1226,8 @@ Write-Host "Will enumerate SMB Shares and Access if any are available"
Get-SmbShare | Get-SmbShareAccess | ForEach-Object {
$SMBShareObject = $_
- whoami.exe /groups /fo csv | ConvertFrom-Csv | Select-Object -ExpandProperty 'group name' | ForEach-Object {
+# see line 70 for explanation of what this does
+ whoami.exe /groups /fo csv | select-objet -skip 2 | ConvertFrom-Csv -Header 'group name' | Select-Object -ExpandProperty 'group name' | ForEach-Object {
if ($SMBShareObject.AccountName -like $_ -and ($SMBShareObject.AccessRight -like "Full" -or "Change") -and $SMBShareObject.AccessControlType -like "Allow" ) {
Write-Host -ForegroundColor red "$($SMBShareObject.AccountName) has $($SMBShareObject.AccessRight) to $($SMBShareObject.Name)"
}