OS Architecture

wmic os get osarchitecture
 
systeminfo
 
# Get 64bit or 32 bit from registry
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
 
# check dotnet framework version, version below 4.0
 
# get .NET framework version
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"
 
 
cd C:\Windows\Microsoft.Net\Framework64
dir
# d-----        2/25/2026  11:13 AM                v4.0.30319
 
# check dotnet version with registry, version above 4.0
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse
 
# or 
PS C:\Users> reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
    CBS    REG_DWORD    0x1
    Install    REG_DWORD    0x1
    InstallPath    REG_SZ    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
    Release    REG_DWORD    0x70bf6
    Servicing    REG_DWORD    0x0
    TargetVersion    REG_SZ    4.0.0
    Version    REG_SZ    4.7.03190
 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\1033
 
# to see the path to place modules.
echo $Env:PSModulePath

Service Enumeration

hacktricks - https://book.hacktricks.wiki/en/windows-hardening/windows-local-privilege-escalation/index.html#services

# look for service dllsvc
Get-Service -name 'dllsvc'
 
# Look for service via registry
Set-Location HKLM:\SYSTEM\CurrentControlSet\Services
Get-ChildItem .
 
# Look for process. note the process name.
# fl - format list
Get-Process
Get-Process -Name CloudMe | fl *
Get-Process -Name CloudMe | Format-Table -Property Id
 
#requires admin priv to check who is running this process.
Get-Process -Name CloudMe -IncludeUserName

Filesystem Search

# Look for hidden files
Get-ChildItem -Force
 
# look for file 'bash.exe' in C drive.
Get-ChildItem -Path C:\ -Include *.kdbx -File -Recurse -ErrorAction SilentlyContinue
Get-ChildItem -Path C:\Users\dave\ -Include *.txt,*.pdf,*.xls,*.xlsx,*.doc,*.docx -File -Recurse -ErrorAction SilentlyContinue
Get-ChildItem -Path "C:\" -Filter "bash.exe" -Recurse -File
 
# check a files permissions
icacls filename
 
# when in user directory - list all files 
tree . /f
tree /f /a
 
# see hex
Format-Hex 'file'
 
# find strings in file.
 
# print last 5 lines of file.
Get-Content -Path "C:\ProgramData\UpdateMonitor\Logs\monitor.log" -Tail 5

network

netstat -ano | findstr LISTENING

RunAs

# run as service account
runas /netonly

User Privileges

User Privileges

Registeries